From ecb8f7b6ce884c2044a75056ec13c9ef6f93c4ef Mon Sep 17 00:00:00 2001 From: peterc8 Date: Sun, 15 Dec 2024 22:08:22 -0500 Subject: [PATCH] final notebookgit add peterc_finalProjectF24* --- .../peterc_finalProjectF24.Rmd | 427 ++++++++++-- .../peterc_finalProjectF24.nb.html | 643 +++++++++++++++--- .../peterc_finalProjectF24.pdf | Bin 326362 -> 364510 bytes 3 files changed, 918 insertions(+), 152 deletions(-) diff --git a/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.Rmd b/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.Rmd index f0286b2..73ed848 100644 --- a/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.Rmd +++ b/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.Rmd @@ -24,13 +24,11 @@ output: # 0.0 Preliminaries. -This report is generated from an R Markdown file that includes all the R code necessary to produce the results described and embedded in the report. Code blocks can be suppressed from output for readability using the command code `{R, echo=show}` in the code block header. If `show <- FALSE` the code block will be suppressed; if `show <- TRUE` then the code will be show. ```{r} # Set to TRUE to expand R code blocks; set to FALSE to collapse R code blocks show <- TRUE ``` - Executing this R notebook requires some subset of the following packages: * `ggplot2` @@ -45,6 +43,7 @@ Executing this R notebook requires some subset of the following packages: * `caret` * `ggrepel` * `ggtern` +* `geosphere` These will be installed and loaded as necessary (code suppressed). @@ -118,6 +117,10 @@ if (!require("ggtern")) { library(ggrepel) } +if (!require("geosphere")) { + install.packages("geosphere") + library(geosphere) +} ``` # 1.0 Project Introduction @@ -136,28 +139,25 @@ This report is organize as follows: * Section 6.0 Overall conclusions and suggestions -* Section 7.0 Appendix This section describe the following additional works that may be helpful in the future work: *list subjects*. +* Section 7.0 Appendix This section describe the following additional works that may be helpful in the future work: Additional Soil Composition Plots of LIBS and PIXL # 3.0 Finding 1: PIXL and LIBS Matching -_Give a highlevel overview of the major finding. What questions were your trying to address, what approaches did you employ, and what happened?_ - Firstly, we will be taking a look at how PIXL and LIBS correspond. Our group found very early in our research that there wasn't a feature among them that can be used to match the data sets. For example, the columns of PIXL are organized by latitude and longitude as well as sample number (1-16), sample name, and abrasion name. Unfortunately, LIBS wasn't sorted the same way. LIBS was organized by the sol that the sample was taken at. LIBS is broken up into many different types of samples as well, including the fact it carries around earth reference data to be used in comparing with different sample sites. That being said, in order to match PIXL targets to corresponding LIBS samples, Margo and I created a new data set that added another metadata feature to PIXL (latitude and longitude coordinates) which we obtained from the Analyst's Notebook. Once this was added in, we realized that the longitude and latitude didn't really match. So Margo created a distance function to match LIBS samples to PIXL targets based on whatever distance a person specifies. Originally, we set it to be rounded to three thousandths and match based on that. This helped answer the question of how can we correlate the LIBS and PIXL data sets to be able to plot them on the same axis of whatever plot is trying to be created. I was curious to see how close PIXL targets were to LIBS sample sites as well as how many LIBS samples would be associated with a PIXL target perhaps with a radius of 7 or 10 meters. ## 3.1 Data, Code, and Resources -Here is a list data sets, codes, that are used in your work. Along with brief description and URL where they are located. +1. peterc_finalProjectF24.Rmd (with knit pdf and html) is this notebook. +[https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.Rmd](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd) -1. peterc-finalProjectF24.Rmd (with knit pdf and html) is this notebook. -[https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd) 2. v1_libs_to_sample.Rds is the combined data set of PIXL and LIBS that includes the distance from a PIXL abrasion to a LIBS sample. [https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentData/v1_libs_to_sample.Rds](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentData/v1_libs_to_sample.Rds). -Firstly, we set the number of meters distance threshold between a PIXL abrasion and LIBS sample. Within the v1_libs_to_sample.Rds, which Margo and I collaborated on there is a distance variable that is set via a function that Margo created to measure the distance between a PIXL abrasion and LIBS sample using their latitude and longitude coordinates. +Firstly, we set the number of meters distance threshold between a PIXL abrasion and LIBS sample. Within the v1_libs_to_sample.Rds, which Margo and I collaborated on there is a distance variable that is set via a function that Margo created to measure the distance between a PIXL abrasion and LIBS sample using their latitude and longitude coordinates. 7 meters is the best metric because that is the maximum distance the LIBS instrument can accurately collect data from. ```{r} meters <- 7 ``` @@ -210,8 +210,6 @@ ggplot(data = df_distance_filter) + theme( plot.caption = element_text(hjust = 0) # Aligns caption to the left ) - -#add legend for PIXL idk why it's not working ``` When looking at this plot, the data frame of the filtered LIBS data (df_distance_filter) based on distances to a PIXL abrasion less than or equal to 7 meters finds 3 LIBS samples corresponding to Alfalfa, 2 corresponding to Bellegrade, 3 corresponding to Dourbes, 7 corresponding to Novarupta, 4 corresponding to Quartier, and 9 corresponding to Thornton Gap. @@ -220,16 +218,13 @@ When looking at this plot, the data frame of the filtered LIBS data (df_distance I believe my findings make it very easy for researchers and scientists to have a visualization of PIXL and LIBS samples that they want to see based on what max distance they are focusing on when examining PIXL and LIBS together. For future work, I think as more coordinates and data is added to the LIBS and PIXL data sets as they become available from NASA this will continue to be built upon and although it isn't super complicated of a plot, it provides a very necessary context to visualize PIXL and LIBS. I didn't find many limitations in this plot as it basically is only providing an easy visual of the PIXL and LIBS data together. # 4.0 Finding 2: Soil Composition Analysis -_Give a highlevel overview of the major finding. What questions were your trying to address, what approaches did you employ, and what happened?_ - -Using the LIBS and PIXL combined data set, I created a plot of the composition percentages of chemical compounds such as Si02, K20, etc. using log scaling to compare the compositions of a PIXL abrasion and the corresponding LIBS sample compositions (based on the LIBS samples for x distance away from a PIXL abrasion). The question I was trying to answer was how does the LIBS data of a certain area compare to the PIXL data of that area? By looking at the composition of the soil in certain locations, we can compare the differences in the PIXL abrasion and relating LIBS samples for a certain area utilizing the same data set (v1_libs_to_sample.Rmd). In order to accomplish this, +Using the LIBS and PIXL combined data set, I created a plot of the composition percentages of chemical compounds such as Si02, K20, etc. using log scaling to compare the compositions of a PIXL abrasion and the corresponding LIBS sample compositions (based on the LIBS samples for x distance away from a PIXL abrasion). The question I was trying to answer was how does the LIBS data of a certain area compare to the PIXL data of that area? Are there many differences between locations (meaning which abrasions and their corresponding LIBS targets are different and in what ways, do igneous vs. sedimentary show a pattern?). In order to accomplish this, we will use a distance function to filter within 7 meters of distance between a PIXL sample and LIBS target (this is the maximum distance of accuracy based on NASA's information on LIBS spectroscopy machinery). Then, the data for earth quartile references (first and third quartiles and median), PIXL abrasion chemical composition, and corresponding LIBS target chemical compositions will be plotted based on the chosen PIXL abrasion (only one abrasion is plotted at a time). ## 4.1 Data, Code, and Resources -Here is a list data sets, codes, that are used in your work. Along with brief description and URL where they are located. 1. peterc_finalProjectF24.Rmd (with knit pdf and html) is this notebook. -[https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd) +[https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.Rmd](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd) 2. peterc_assignment5.Rmd (with knit pdf and html) which is my previous notebook. [https://github.rpi.edu/DataINCITE/DAR-Mars-F24/tree/main/StudentNotebooks/Assignment05/peterc_assignment05.Rmd](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/tree/main/StudentNotebooks/Assignment05/peterc_assignment05.Rmd]) @@ -243,7 +238,7 @@ Here is a list data sets, codes, that are used in your work. Along with brief de 4. LIBS_training_set_quartiles.Rds is the data with earth quartile reference data. [https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/Data/LIBS_training_set_quartiles.Rds](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/Data/LIBS_training_set_quartiles.Rds). -To prepare the data, I start by loading in the LIBS data. Then, we drop the standard deviation columns and sum of percentage columns leaving us with just the weighted composition in terms of numerical data. We also remove the scct values, as those values are the ones that are earth reference samples that Perserverance carries with it. Therefore, they will not be very relevant when plotting the LIBS data as we are focused on the Mars soil compositions. +To prepare the data, I start by loading in the LIBS data. Then, we drop the standard deviation columns and sum of percentage columns leaving us with just the weighted composition in terms of numerical data. We also remove the scct values, as those values are the ones that are earth reference samples that Perseverance carries with it. Therefore, they will not be very relevant when plotting the LIBS data as we are focused on the Mars soil compositions. ```{r} #Earth quartiles @@ -273,7 +268,7 @@ Set meters and chosen abrasion to act as a slider in the 2d app. #Choose max distance variable between PIXL and LIBS data meters = 7 #Choose PIXL abrasion you want to look at -abrasion_name = "Alfalfa" +abrasion_name = "ThorntonGap" ``` Next, we load in the PIXL data. We remove the atmospheric sample and only select one PIXL sample of each abrasion. @@ -337,7 +332,7 @@ libs.matrix<-libs.matrix[,c(1:2,4:9,3)] libs.matrix<-cbind("Abrasion"=0,libs.matrix) libs.matrix<-libs.matrix%>% mutate(Abrasion = ifelse(target%in%Alfalfa,"Alfalfa", - ifelse(target %in% Bellegrade, "Belegrade", + ifelse(target %in% Bellegrade, "Bellegrade", ifelse(target %in% BerryHollow, "Berry Hollow", ifelse(target %in% Dourbes, "Dourbes", ifelse(target %in% Novarupta, "Novarupta", @@ -369,20 +364,22 @@ pixllibs.df<-rbind(pixl.df,libs.matrix) ## 4.2 Contribution -Some of the data manipulating work was Margo's, such as the distance function. In terms of pivoting the data frame and the other steps of the preprocessing is my own work. The manipulating below to plot the line soil composition plots is my own. +Some of the data manipulating work was Margo's, such as the distance function. In terms of pivoting the data frame and the other steps of the preprocessing is my own work. The manipulating and setup of data below to plot the line soil composition plots is my own. Margo and I worked together to create the data sets used. In our presentation, David was able to create a facid grid to compliment my single abrasion analysis which showed the average LIBS target chemical composition and corresponding PIXL abrasion composition. This was done in RShiny and implemented in the app, so I felt that redoing the same plot wouldn't be necessary. I focused on plotting one specific abrasion to provide more in depth analysis of one abrasion and the surrounding area since David was able to provide more context and plot the PIXL abrasions all at once. ## 4.3 Methods Description When deciding how to approach the concept of building soil composition plots of each PIXL abrasion and the corresponding LIBS targets within a certain distance maximum, I decided the best way was to start with the original data sets and modify them as needed. For the actual plot, the best way to format the data correctly is to pivot it, as I need the x axis to be the column names in the current data frame we have (SiO2 and other compositions) and the y axis to be the weighted composition values. We also need an indicator of if the data is from PIXL or LIBS, which also is helpful for building the line plots. -Users will have to set the distance variable in order to choose the max distance between PIXL abrasions and LIBS targets. This can vastly change the number of lines on the plots which can help prevent overcrowded plots. Users also can set a variable to choose a specific PIXL abrasion and corresponding LIBS targets, which is easier to interpret as plotting all of the LIBS and PIXL composition information on line plots leads to very condensed graphs that are hard to read. +Users will have to set the distance variable in order to choose the maximum distance between PIXL abrasions and LIBS targets. This can vastly change the number of lines on the plots which can help prevent overcrowded plots. Users also can set a variable to choose a specific PIXL abrasion and corresponding LIBS targets, which is easier to interpret as plotting all of the LIBS and PIXL composition information on line plots leads to very condensed graphs that are hard to read. ## 4.4 Result and Discussion -First, we will turn the earth quartile information into a long data frame (meaning pivoting the columns into the values). +First, we will turn the earth quartile information into a long data frame (meaning pivoting the columns into the values) and only select the first and third quartile rows. ```{r} # Earth quartiles -earthquartiles_long <- earthquartiles.df %>% +filtered_rows <- earthquartiles.df %>% + filter(`Training set Quartiles` %in% c("1st", "3rd", "Med")) +earthquartiles_long <- filtered_rows %>% pivot_longer(cols = starts_with("SiO2"):last_col(), names_to = "Compound", values_to = "Percentage") earthquartiles_long <- earthquartiles_long %>% rename(Quartiles = `Training set Quartiles`) @@ -402,10 +399,10 @@ desired_order <- c("SiO2", "Al2O3", "FeOT", "MgO", "CaO", "Na2O", "K2O", "TiO2") pixllibs_long$Compound <- factor(pixllibs_long$Compound, levels = desired_order) ``` -For the plot, we use ggplot to plot the pixllibs_long data frame we created. The plot is colored by if the line is a PIXL abrasion's composition or a LIBS target's composition. We also add a layer with the earth quartile information, which is the dotted lines. +For the plot, we use ggplot to plot the pixllibs_long data frame we created. The plot is colored by if the line is a PIXL abrasion's composition or a LIBS target's composition. We also add a layer with the earth quartile information, which is the dotted lines. The weight percentages on the y axis are log scaled as it makes the plot more readable, but this can be edited (will be added as a toggle in the app). ```{r} # Map the PIXL/LIBS column to color and use target_name to differentiate lines -ggplot(pixllibs_long, aes(x = Compound, y = Percentage, color = as.factor(libsorpixl), group = target)) + +suppressWarnings(ggplot(pixllibs_long, aes(x = Compound, y = Percentage, color = as.factor(libsorpixl), group = target)) + geom_line() + geom_point() + scale_y_continuous(trans='log10') + @@ -416,24 +413,30 @@ ggplot(pixllibs_long, aes(x = Compound, y = Percentage, color = as.factor(libsor x = "Chemical Compound", y = "Weight Percentage", color = "Measurement Type", - linetype = "Earth Quartiles") + + linetype = "Quartiles", + caption = "The chemical composition of a PIXL abrasion and the corresponding LIBS targets \n within specified distance of respective abrasion.") + scale_color_manual(values = c("0" = "blue", "1" = "red"), labels = c("PIXL", "LIBS")) + - theme_minimal() + annotate("text", x = 5, y = .50, label = "1st Quartile", color = "black", hjust = 0) + + annotate("text", x = 5, y = 2, label = "Median", color = "black", hjust = 0) + + annotate("text", x = 5, y = 10, label = "3rd Quartile", color = "black", hjust = 0)+ + theme_minimal()+ + # Center the caption on the left side + theme( + plot.caption = element_text(hjust = 0) # Aligns caption to the left + )) + ``` -I still plan to update and try using the ggplotlay feature to incorporate all the abrasions and data onto one grid of line plots. I also am going to add plots where the mean is taken of all the LIBS targets that correspond to a PIXL abrasion so the plot will only have one LIBS line and one PIXL line (along with the references), this is all just for the draft. I also need to only add certain quartile information and label them, this is just a placeholder of the previous plot. Also maybe will add in SCCT values as references, not sure if they are super relevant or how to sort them. +To save space in this notebook, I did not plot each abrasion (based on chosen abrasion variable name). In comparing each PIXL abrasion and the corresponding LIBS targets, I found that the PIXL abrasions corresponding to igneous had very similar plots, while the PIXL abrasions corresponding to sedimentary had very similar plots. The igneous/sedimentary indicator is shown in the PIXL data. An interesting thing to note is that for some abrasions, like Alfalfa and ThorntonGap, the chemical compositions of both PIXL samples in the abrasion are the same. For other abrasions, like Bellegrade, the chemical compositions of the PIXL samples in the Bellegrade abrasion differ. Also, many of the plots had a few points with very low K2O which seems like a major outlier. ## 4.5 Conclusions and Future Work -This finding can be used by geologists to analyze what different soil compositions around different PIXL abrasions can mean for life on Mars. For example, oxide presence doesn't necessarily indicate life, but it could indicate biological or chemical life processes. For example, CaO can indicate the presence of old biological material like shells or fossils. --Add more about future work, not sure what else to include +This finding can be used by geologists to analyze what different soil compositions around different PIXL abrasions can mean for life on Mars. For example, oxide presence doesn't necessarily indicate life, but it could indicate biological or chemical life processes. For example, CaO can indicate the presence of old biological material like shells or fossils. For future work, I would like to see why certain abrasions differ in their PIXL core sample composition. Is this based on the research done by scientists in selecting specific abrasions and trying to obtain differing samples for abrasions in certain areas? Or is this by chance? Or is it simply showing more rock variety or weathering the certain abrasions? # 5.0 Finding 3: Analyzing Cation Combinations using LIBS and PIXL matched data -Using the LIBS and PIXL combined data set, we created a ternary plot to show the distribution of LIBS samples sorted by what PIXL abrasion they are closest to (based on a chosen distance variable). Much of the data preprocessing is similar to Finding 1 which we will repeat here. However, the goal here is to analyze how different groups of LIBS samples (colored by matching PIXL abrasion) differ by cation composition. +Using the LIBS and PIXL combined data set, we created a ternary plot to show the distribution of LIBS samples sorted by what PIXL abrasion they are closest to (based on a chosen distance variable). Much of the data preprocessing is similar to Finding 1 which we will repeat here. It will involve using a distance function to correlate LIBS targets with PIXL samples, matching the data based on the closest PIXL sample, and plotting the LIBS data (colored by corresponding PIXL abrasion) and the PIXL abrasions on a ternary plot. The goal here is to analyze how different groups of LIBS samples (colored by matching PIXL abrasion) differ by cation composition. Do igneous vs. sedimentary rock play a roll in composition tendencies and show a pattern? By looking at the composition of the soil in certain locations, we can compare the differences in the PIXL abrasion and relating LIBS samples for a certain area by combining the LIBS and PIXL data sets. In order to accomplish this, we will use a distance function to filter within 7 meters of distance between a PIXL sample and LIBS target (this is the maximum distance of accuracy based on NASA's information on LIBS spectroscopy machinery). ## 5.1 Data, Code, and Resources -Here is a list data sets, codes, that are used in your work. Along with brief description and URL where they are located. - -1. peterc-finalProjectF24.Rmd (with knit pdf and html) is this notebook. -[https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd) +1. peterc_finalProjectF24.Rmd (with knit pdf and html) is this notebook. +[https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.Rmd](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd) 2. supercam_libs_moc_loc.Rds which is the original LIBS data given to our research group. [https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/Data/supercam_libs_moc_loc.Rds](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/Data/supercam_libs_moc_loc.Rds) @@ -467,7 +470,7 @@ libstargets.df<-libs.df[,c(1,3,4,5)] libstargets.df<-distinct(libstargets.df) ``` -Load in PIXL data +Next, we will load in the PIXL data that is in StudentData as the pixl_sol_coordinates data frame includes the latitude, longitude, and sol of each PIXL sample. We only include the metadata as this is all that is necessary for the distance function (the sample name and coordinates of the sample) as well as only one PIXL sample from each abrasion. As each abrasion has 2 PIXL samples taken, they have the same latitude and longitude and therefore it is unnecessary to use both. We also remove the atmospheric sample. ```{r} #read in pixl data with lat/long pixl.df<-readRDS("/academics/MATP-4910-F24/DAR-Mars-F24/StudentData/pixl_sol_coordinates.Rds") @@ -507,7 +510,7 @@ libstargets.df$nearestpixl<-as.factor(libstargets.df$nearestpixl) levels(libstargets.df$nearestpixl)<-(c("Bellegrade","Dourbes","Quartier","Alfalfa","ThorntonGap","BerryHollow","Novarupta","UganikIsland")) ``` -Below is another initializer for the PIXL abrasion data. This sets the variables for each PIXL abrasion. +Below is another initializer for the PIXL abrasion data. This sets the variables for each PIXL abrasion name. ```{r} #Sets each nearest PIXL variable for future use in deciding which target is closest to a LIBS sample Bellegrade<-libstargets.df[libstargets.df$nearestpixl=="Bellegrade",]$target @@ -520,7 +523,7 @@ Novarupta<-libstargets.df[libstargets.df$nearestpixl=="Novarupta",]$target UganikIsland<-libstargets.df[libstargets.df$nearestpixl=="UganikIsland",]$target ``` -Next, we filter out the LIBS targets that are not within the specified distance variable. Then, we merge the LIBS data with the respective PIXL abrasion by mutating and adding an abrasion column that has the abrasion name closest to each LIBS target. We also add a column, LIBS or PIXL, which denotes if the row of data is from the PIXL and LIBS data sets. We also set up the libs.tern matrix which will +Next, we filter out the LIBS targets that are not within the specified distance variable. Then, we merge the LIBS data with the respective PIXL abrasion by mutating and adding an abrasion column that has the abrasion name closest to each LIBS target. We also add a column, LIBS or PIXL, which denotes if the row of data is from the PIXL and LIBS data sets. We also set up the libs.tern matrix which will format the data properly for the ternary plot. This groups the cation compositions given by Dr. Rogers to set up the ternary diagram axes. ```{r} included.libs<-(libstargets.df%>% filter(Distance% mutate(Abrasion = ifelse(target%in%Alfalfa,"Alfalfa", - ifelse(target %in% Bellegrade, "Belegrade", + ifelse(target %in% Bellegrade, "Bellegrade", ifelse(target %in% BerryHollow, "BerryHollow", ifelse(target %in% Dourbes, "Dourbes", ifelse(target %in% Novarupta, "Novarupta", @@ -574,15 +577,11 @@ c("2","3","4,6,7","5,8,9","","","","", ## 5.2 Contribution -This work was also a combination of me and Margo. The data set creation was both of us in our brainstorming as this utilizes the data set we created of latitude and longitude for PIXL. -- Add more here -- Very similar to other two sections add in later, Margo and I worked on most of this together +This work was also a combination of Margo and I. The data set creation was both of us in our brainstorming as this utilizes the data set we created of latitude and longitude for PIXL. The setting up of this plot was also collaborative between Margo and myself, we worked together to debug and set up how to best format the data for this ternary plot. ## 5.3 Methods Description -- Started with filtering original data to get rid of SCCT values -- then set up ternary data frame by mutating by cation compositions -- then mutated to make the PIXL abrasions the key, so the LIBS targets are colored by the closest PIXL abrasion, creating a form of clusters. +For this ternary representation, we took the time to remove the SCCT (earth reference data) from the LIBS data, remove the atmospheric sample from the PIXL data, use a distance function to match PIXL abrasions to corresponding LIBS targets within 7 meters of the respective abrasion (or whatever the specified distance) and set up a ternary data frame with cation combinations. Then, the data frame is mutated to make the PIXL abrasions as the key (color LIBS targets by related PIXL abrasion) and plotted on the ternary diagram. We also plot the PIXL samples sorted by igneous or sedimentary as stated by the PIXL data set. This can help show the mineral evolution from igneous to sedimentary and which PIXL abrasions correlate to this. ## 5.4 Result and Discussion Using all of the manipulation done for the creation of the ternary plot, we then plot using the ggtern command. We will color by abrasion to see the distribution of composition between different abrasions. This should help us be able to draw different conclusions about how abrasions relate or don't relate. The max distance between the PIXL target and LIBS sample can be modified however desired. @@ -610,18 +609,342 @@ ggtern(libs.tern, ggtern::aes(x=x,y=y,z=z)) + size=2.7)) ``` + ## 5.5 Conclusions and Future Work -Based on this ternary plot, we can see Alfalfa and Belegrade are higher in Si+Al and Uganik Island is an outlier. As this was the last piece of the PIXL data in the data set and it was missing a pair since every other abrasion was made up of two samples, it is included in here but until the data set is updated there is not enough context to explain why it is so vastly different. I would assume it is due to how the robot is traveling and the location of the UganikIsland abrasion is very different than the other 7 abrasions. -- Future work, would include more data to gain broader context +Based on this ternary plot, we can see Alfalfa and Bellegrade are higher in Si+Al and Uganik Island is an outlier. We can also see the rock evolution from igneous (black circles) to sedimentary (black triangles) as we move from higher Si+Al (over 80 %) to low in Si+Al and high in Fe+Mg. This conclusion was commented on by Andrew Steele of the Carnegie Institute of Science. As this was the last piece of the PIXL data in the data set and it was missing a pair since every other abrasion was made up of two samples, it is included in here but until the data set is updated there is not enough context to explain why it is so vastly different. I would assume it is due to how the robot is traveling and the location of the Uganik Island abrasion is very different than the other 7 abrasions. Future work could include diving deeper into the evolution process of rocks (igneous abrasions Alfalfa and Dourbes to sedimentary abrasions Thornton Gap). # Bibliography -Provide a listing of references and other sources. -* Analyst's Notebook -* Not sure what else is relevant, most of what I used was similar to Analyst's Notebook +* “Mars Rock Samples - NASA Science.” NASA, science.nasa.gov/mission/mars-2020- +perseverance/mars-rock-samples/. +* “Analyst Notebook”, https://an.rsl.wustl.edu/m20/AN/account/login.aspx. # Appendix -*Include here whatever you think is relevant to support the main content of your notebook. For example, you may have only include example figures above in your main text but include additional ones here. Or you may have done a more extensive investigation, and want to put more results here to document your work in the semester. Be sure to divide appendix into appropriate sections and make the contents clear to the reader using approaches discussed above. * -Should I add more examples here of soil composition plots of different abrasions? I also could add heat map analysis to this notebook as a finding but wasn't sure if it was really relevant. +Here, I will display some of the earlier soil composition plots for different PIXL abrasions. + +```{r, include=FALSE} +#Earth quartiles +earthquartiles.df<-readRDS("/academics/MATP-4910-F24/DAR-Mars-F24/Data/LIBS_training_set_quartiles.Rds") +#Load in LIBS data +libs.df <- readRDS("/academics/MATP-4910-F24/DAR-Mars-F24/Data/supercam_libs_moc_loc.Rds") +#Drop the standard deviation features, the sum of the percentages, +#the distance, and the total frequencies +libs.df <- libs.df %>% + select(!(c(distance_mm,Tot.Em.,SiO2_stdev,TiO2_stdev,Al2O3_stdev,FeOT_stdev, + MgO_stdev,Na2O_stdev,CaO_stdev,K2O_stdev,Total))) +# Convert the points to numeric +libs.df$point <- as.numeric(libs.df$point) +libs.df[,6:13] <- sapply(libs.df[,6:13],as.numeric) +#remove the scct/reference samples +libs.df<-libs.df%>% + filter(!(grepl("scct", target))) +#add a column to indicate the nearest pixl +libs.df<-cbind(nearestpixl=0,libs.df) +#make a dataframe of just the LIBS Lat/Long and target name and remove duplicates +libstargets.df<-libs.df[,c(1,3,4,5)] +libstargets.df<-distinct(libstargets.df) +``` + +```{r, include=FALSE} +#Choose max distance variable between PIXL and LIBS data +meters = 7 +#Choose PIXL abrasion you want to look at +abrasion_name = "Alfalfa" +``` + +```{r, include=FALSE} +#read in pixl data with lat/long +pixl.df<-readRDS("/academics/MATP-4910-F24/DAR-Mars-F24/StudentData/pixl_sol_coordinates.Rds") +#include only pixl metadata +pixl.df<-pixl.df %>% + select(c(1,2,19,20,22)) +#convert Lat/Long to numeric +pixl.df$Lat <- as.numeric(pixl.df$Lat) +pixl.df$Long <- as.numeric(pixl.df$Long) +#remove rows so we only have one sample per abrasion and remove atmospheric sample +pixl.df<-pixl.df[c(2,4,6,8,10,12,14,16),] +``` + +```{r, include=FALSE} +libstargets.df<-cbind(libstargets.df,"Distance"=0,"Bellegrade"=0,"Dourbes"=0,"Quartier"=0,"Alfalfa"=0,"ThorntonGap"=0,"Berry Hollow"=0,"Novarupta"=0,"Uganik Island"=0) +``` + +```{r, include=FALSE} +for(i in 1:nrow(libstargets.df)) { + libstargets.df[i,c(6:13)]<-c(distHaversine(pixl.df[1,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[2,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[3,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[4,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[5,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[6,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[7,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[8,c(1,2)],libstargets.df[i,c(2,3)],r=3393169)) + + libstargets.df[i,1]<-which.min(libstargets.df[i,c(6:13)]) + libstargets.df[i,5]<-min(libstargets.df[i,c(6:13)]) +} +libstargets.df$nearestpixl<-as.factor(libstargets.df$nearestpixl) +levels(libstargets.df$nearestpixl)<-(c("Bellegrade","Dourbes","Quartier","Alfalfa","ThorntonGap","Berry Hollow","Novarupta","Uganik Island")) +``` + +```{r, include=FALSE} +Bellegrade<-libstargets.df[libstargets.df$nearestpixl=="Bellegrade",]$target +Dourbes<-libstargets.df[libstargets.df$nearestpixl=="Dourbes",]$target +Quartier<-libstargets.df[libstargets.df$nearestpixl=="Quartier",]$target +Alfalfa<-libstargets.df[libstargets.df$nearestpixl=="Alfalfa",]$target +ThorntonGap<-libstargets.df[libstargets.df$nearestpixl=="ThorntonGap",]$target +BerryHollow<-libstargets.df[libstargets.df$nearestpixl=="Berry Hollow",]$target +Novarupta<-libstargets.df[libstargets.df$nearestpixl=="Novarupta",]$target +UganikIsland<-libstargets.df[libstargets.df$nearestpixl=="Uganik Island",]$target +``` + +```{r, include=FALSE} +included.libs<-(libstargets.df%>% + filter(Distance% + filter(target %in% included.libs) +libs.matrix <- libs.matrix[,c(5,7:14)] +libs.matrix<-libs.matrix[,c(1:2,4:9,3)] +libs.matrix<-cbind("Abrasion"=0,libs.matrix) +libs.matrix<-libs.matrix%>% + mutate(Abrasion = ifelse(target%in%Alfalfa,"Alfalfa", + ifelse(target %in% Bellegrade, "Bellegrade", + ifelse(target %in% BerryHollow, "Berry Hollow", + ifelse(target %in% Dourbes, "Dourbes", + ifelse(target %in% Novarupta, "Novarupta", + ifelse(target %in% Quartier, "Quartier", + ifelse(target %in% ThorntonGap, "ThorntonGap", + ifelse(target %in% UganikIsland, "Uganik Island",Abrasion))))))))) +libs.matrix<-cbind(libsorpixl=1,libs.matrix) +``` + +```{r, include=FALSE} +#read in pixl data with lat/long +pixl.df<-readRDS("/academics/MATP-4910-F24/DAR-Mars-F24/StudentData/pixl_sol_coordinates.Rds") +pixl.df<-pixl.df %>% + select(c(5:8,12:14,17,19,18,22)) +#reorder pixl columns so that it matches libs data organization +pixl.df<-pixl.df[,c(11,10,4,3,8,2,6,1,5,7)] +#remove atmospheric sample +pixl.df<-pixl.df[2:16,] +pixl.df<-cbind(libsorpixl=0,pixl.df) +``` + +```{r, include=FALSE} +colnames(pixl.df)<-colnames(libs.matrix) +pixllibs.df<-rbind(pixl.df,libs.matrix) +``` + +```{r, include=FALSE} +# Earth quartiles +filtered_rows <- earthquartiles.df %>% + filter(`Training set Quartiles` %in% c("1st", "3rd", "Med")) +earthquartiles_long <- filtered_rows %>% + pivot_longer(cols = starts_with("SiO2"):last_col(), names_to = "Compound", values_to = "Percentage") + +earthquartiles_long <- earthquartiles_long %>% rename(Quartiles = `Training set Quartiles`) +``` +```{r, include=FALSE} +# Filter for the specific abrasion sample, e.g., "Alfalfa" +pixllibs_filtered <- pixllibs.df %>% + filter(Abrasion == abrasion_name) + +# Pivot the data to longer format for ggplot +pixllibs_long <- pixllibs_filtered %>% + pivot_longer(cols = starts_with("SiO2"):last_col(), names_to = "Compound", values_to = "Percentage") + +desired_order <- c("SiO2", "Al2O3", "FeOT", "MgO", "CaO", "Na2O", "K2O", "TiO2") # Specify your custom order here +pixllibs_long$Compound <- factor(pixllibs_long$Compound, levels = desired_order) +``` + +```{r, include=TRUE} +# Map the PIXL/LIBS column to color and use target_name to differentiate lines +suppressWarnings(ggplot(pixllibs_long, aes(x = Compound, y = Percentage, color = as.factor(libsorpixl), group = target)) + + geom_line() + + geom_point() + + scale_y_continuous(trans='log10') + + # Add Earth quartile lines using earthquartiles_long + geom_line(data = earthquartiles_long, aes(x = Compound, y = Percentage, linetype = Quartiles, group = Quartiles), + color = "black", linetype = "dotted") + + labs(title = paste("Soil Composition for PIXL",abrasion_name,"and LIBS within", meters, "meters", sep = " "), + x = "Chemical Compound", + y = "Weight Percentage", + color = "Measurement Type", + linetype = "Quartiles", + caption = "The chemical composition of a PIXL abrasion and the corresponding LIBS targets \n within specified distance of respective abrasion.") + + scale_color_manual(values = c("0" = "blue", "1" = "red"), labels = c("PIXL", "LIBS")) + + annotate("text", x = 5, y = .50, label = "1st Quartile", color = "black", hjust = 0) + + annotate("text", x = 5, y = 2, label = "Median", color = "black", hjust = 0) + + annotate("text", x = 5, y = 10, label = "3rd Quartile", color = "black", hjust = 0)+ + theme_minimal()+ + # Center the caption on the left side + theme( + plot.caption = element_text(hjust = 0) # Aligns caption to the left + )) + +``` + +```{r, include=FALSE} +#Earth quartiles +earthquartiles.df<-readRDS("/academics/MATP-4910-F24/DAR-Mars-F24/Data/LIBS_training_set_quartiles.Rds") +#Load in LIBS data +libs.df <- readRDS("/academics/MATP-4910-F24/DAR-Mars-F24/Data/supercam_libs_moc_loc.Rds") +#Drop the standard deviation features, the sum of the percentages, +#the distance, and the total frequencies +libs.df <- libs.df %>% + select(!(c(distance_mm,Tot.Em.,SiO2_stdev,TiO2_stdev,Al2O3_stdev,FeOT_stdev, + MgO_stdev,Na2O_stdev,CaO_stdev,K2O_stdev,Total))) +# Convert the points to numeric +libs.df$point <- as.numeric(libs.df$point) +libs.df[,6:13] <- sapply(libs.df[,6:13],as.numeric) +#remove the scct/reference samples +libs.df<-libs.df%>% + filter(!(grepl("scct", target))) +#add a column to indicate the nearest pixl +libs.df<-cbind(nearestpixl=0,libs.df) +#make a dataframe of just the LIBS Lat/Long and target name and remove duplicates +libstargets.df<-libs.df[,c(1,3,4,5)] +libstargets.df<-distinct(libstargets.df) +``` + +```{r, include=FALSE} +#Choose max distance variable between PIXL and LIBS data +meters = 7 +#Choose PIXL abrasion you want to look at +abrasion_name = "Quartier" +``` + +```{r, include=FALSE} +#read in pixl data with lat/long +pixl.df<-readRDS("/academics/MATP-4910-F24/DAR-Mars-F24/StudentData/pixl_sol_coordinates.Rds") +#include only pixl metadata +pixl.df<-pixl.df %>% + select(c(1,2,19,20,22)) +#convert Lat/Long to numeric +pixl.df$Lat <- as.numeric(pixl.df$Lat) +pixl.df$Long <- as.numeric(pixl.df$Long) +#remove rows so we only have one sample per abrasion and remove atmospheric sample +pixl.df<-pixl.df[c(2,4,6,8,10,12,14,16),] +``` + +```{r, include=FALSE} +libstargets.df<-cbind(libstargets.df,"Distance"=0,"Bellegrade"=0,"Dourbes"=0,"Quartier"=0,"Alfalfa"=0,"ThorntonGap"=0,"Berry Hollow"=0,"Novarupta"=0,"Uganik Island"=0) +``` + +```{r, include=FALSE} +for(i in 1:nrow(libstargets.df)) { + libstargets.df[i,c(6:13)]<-c(distHaversine(pixl.df[1,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[2,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[3,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[4,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[5,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[6,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[7,c(1,2)],libstargets.df[i,c(2,3)],r=3393169), + distHaversine(pixl.df[8,c(1,2)],libstargets.df[i,c(2,3)],r=3393169)) + + libstargets.df[i,1]<-which.min(libstargets.df[i,c(6:13)]) + libstargets.df[i,5]<-min(libstargets.df[i,c(6:13)]) +} +libstargets.df$nearestpixl<-as.factor(libstargets.df$nearestpixl) +levels(libstargets.df$nearestpixl)<-(c("Bellegrade","Dourbes","Quartier","Alfalfa","ThorntonGap","Berry Hollow","Novarupta","Uganik Island")) +``` + +```{r, include=FALSE} +Bellegrade<-libstargets.df[libstargets.df$nearestpixl=="Bellegrade",]$target +Dourbes<-libstargets.df[libstargets.df$nearestpixl=="Dourbes",]$target +Quartier<-libstargets.df[libstargets.df$nearestpixl=="Quartier",]$target +Alfalfa<-libstargets.df[libstargets.df$nearestpixl=="Alfalfa",]$target +ThorntonGap<-libstargets.df[libstargets.df$nearestpixl=="ThorntonGap",]$target +BerryHollow<-libstargets.df[libstargets.df$nearestpixl=="Berry Hollow",]$target +Novarupta<-libstargets.df[libstargets.df$nearestpixl=="Novarupta",]$target +UganikIsland<-libstargets.df[libstargets.df$nearestpixl=="Uganik Island",]$target +``` + +```{r, include=FALSE} +included.libs<-(libstargets.df%>% + filter(Distance% + filter(target %in% included.libs) +libs.matrix <- libs.matrix[,c(5,7:14)] +libs.matrix<-libs.matrix[,c(1:2,4:9,3)] +libs.matrix<-cbind("Abrasion"=0,libs.matrix) +libs.matrix<-libs.matrix%>% + mutate(Abrasion = ifelse(target%in%Alfalfa,"Alfalfa", + ifelse(target %in% Bellegrade, "Bellegrade", + ifelse(target %in% BerryHollow, "Berry Hollow", + ifelse(target %in% Dourbes, "Dourbes", + ifelse(target %in% Novarupta, "Novarupta", + ifelse(target %in% Quartier, "Quartier", + ifelse(target %in% ThorntonGap, "ThorntonGap", + ifelse(target %in% UganikIsland, "Uganik Island",Abrasion))))))))) +libs.matrix<-cbind(libsorpixl=1,libs.matrix) +``` + +```{r, include=FALSE} +#read in pixl data with lat/long +pixl.df<-readRDS("/academics/MATP-4910-F24/DAR-Mars-F24/StudentData/pixl_sol_coordinates.Rds") +pixl.df<-pixl.df %>% + select(c(5:8,12:14,17,19,18,22)) +#reorder pixl columns so that it matches libs data organization +pixl.df<-pixl.df[,c(11,10,4,3,8,2,6,1,5,7)] +#remove atmospheric sample +pixl.df<-pixl.df[2:16,] +pixl.df<-cbind(libsorpixl=0,pixl.df) +``` + +```{r, include=FALSE} +colnames(pixl.df)<-colnames(libs.matrix) +pixllibs.df<-rbind(pixl.df,libs.matrix) +``` + +```{r, include=FALSE} +# Earth quartiles +filtered_rows <- earthquartiles.df %>% + filter(`Training set Quartiles` %in% c("1st", "3rd", "Med")) +earthquartiles_long <- filtered_rows %>% + pivot_longer(cols = starts_with("SiO2"):last_col(), names_to = "Compound", values_to = "Percentage") + +earthquartiles_long <- earthquartiles_long %>% rename(Quartiles = `Training set Quartiles`) +``` + +```{r, include=FALSE} +# Filter for the specific abrasion sample, e.g., "Alfalfa" +pixllibs_filtered <- pixllibs.df %>% + filter(Abrasion == abrasion_name) + +# Pivot the data to longer format for ggplot +pixllibs_long <- pixllibs_filtered %>% + pivot_longer(cols = starts_with("SiO2"):last_col(), names_to = "Compound", values_to = "Percentage") + +desired_order <- c("SiO2", "Al2O3", "FeOT", "MgO", "CaO", "Na2O", "K2O", "TiO2") # Specify your custom order here +pixllibs_long$Compound <- factor(pixllibs_long$Compound, levels = desired_order) +``` + +```{r, include=TRUE} +# Map the PIXL/LIBS column to color and use target_name to differentiate lines +suppressWarnings(ggplot(pixllibs_long, aes(x = Compound, y = Percentage, color = as.factor(libsorpixl), group = target)) + + geom_line() + + geom_point() + + scale_y_continuous(trans='log10') + + # Add Earth quartile lines using earthquartiles_long + geom_line(data = earthquartiles_long, aes(x = Compound, y = Percentage, linetype = Quartiles, group = Quartiles), + color = "black", linetype = "dotted") + + labs(title = paste("Soil Composition for PIXL",abrasion_name,"and LIBS within", meters, "meters", sep = " "), + x = "Chemical Compound", + y = "Weight Percentage", + color = "Measurement Type", + linetype = "Quartiles", + caption = "The chemical composition of a PIXL abrasion and the corresponding LIBS targets \n within specified distance of respective abrasion.") + + scale_color_manual(values = c("0" = "blue", "1" = "red"), labels = c("PIXL", "LIBS")) + + annotate("text", x = 5, y = .50, label = "1st Quartile", color = "black", hjust = 0) + + annotate("text", x = 5, y = 2, label = "Median", color = "black", hjust = 0) + + annotate("text", x = 5, y = 10, label = "3rd Quartile", color = "black", hjust = 0)+ + theme_minimal()+ + # Center the caption on the left side + theme( + plot.caption = element_text(hjust = 0) # Aligns caption to the left + )) + +``` diff --git a/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.nb.html b/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.nb.html index 3b7e802..b46da0e 100644 --- a/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.nb.html +++ b/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.nb.html @@ -1768,13 +1768,6 @@

DAR Project and Group Members

0.0 Preliminaries.

-

This report is generated from an R Markdown file that includes all -the R code necessary to produce the results described and embedded in -the report. Code blocks can be suppressed from output for readability -using the command code {R, echo=show} in the code block -header. If show <- FALSE the code block will be -suppressed; if show <- TRUE then the code will be -show.

@@ -1790,7 +1783,6 @@

0.0 Preliminaries.

<!-- rnb-text-begin --> -<!-- Expand this list as necessary for your notebook --> Executing this R notebook requires some subset of the following packages: * `ggplot2` @@ -1805,6 +1797,7 @@

0.0 Preliminaries.

* `caret` * `ggrepel` * `ggtern` +* `geosphere` These will be installed and loaded as necessary (code suppressed). @@ -1834,28 +1827,25 @@

0.0 Preliminaries.

* Section 6.0 Overall conclusions and suggestions -* Section 7.0 Appendix This section describe the following additional works that may be helpful in the future work: *list subjects*. +* Section 7.0 Appendix This section describe the following additional works that may be helpful in the future work: Additional Soil Composition Plots of LIBS and PIXL # 3.0 Finding 1: PIXL and LIBS Matching -_Give a highlevel overview of the major finding. What questions were your trying to address, what approaches did you employ, and what happened?_ - Firstly, we will be taking a look at how PIXL and LIBS correspond. Our group found very early in our research that there wasn't a feature among them that can be used to match the data sets. For example, the columns of PIXL are organized by latitude and longitude as well as sample number (1-16), sample name, and abrasion name. Unfortunately, LIBS wasn't sorted the same way. LIBS was organized by the sol that the sample was taken at. LIBS is broken up into many different types of samples as well, including the fact it carries around earth reference data to be used in comparing with different sample sites. That being said, in order to match PIXL targets to corresponding LIBS samples, Margo and I created a new data set that added another metadata feature to PIXL (latitude and longitude coordinates) which we obtained from the Analyst's Notebook. Once this was added in, we realized that the longitude and latitude didn't really match. So Margo created a distance function to match LIBS samples to PIXL targets based on whatever distance a person specifies. Originally, we set it to be rounded to three thousandths and match based on that. This helped answer the question of how can we correlate the LIBS and PIXL data sets to be able to plot them on the same axis of whatever plot is trying to be created. I was curious to see how close PIXL targets were to LIBS sample sites as well as how many LIBS samples would be associated with a PIXL target perhaps with a radius of 7 or 10 meters. ## 3.1 Data, Code, and Resources -Here is a list data sets, codes, that are used in your work. Along with brief description and URL where they are located. +1. peterc_finalProjectF24.Rmd (with knit pdf and html) is this notebook. +[https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.Rmd](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd) -1. peterc-finalProjectF24.Rmd (with knit pdf and html) is this notebook. -[https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd) 2. v1_libs_to_sample.Rds is the combined data set of PIXL and LIBS that includes the distance from a PIXL abrasion to a LIBS sample. [https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentData/v1_libs_to_sample.Rds](https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentData/v1_libs_to_sample.Rds). -Firstly, we set the number of meters distance threshold between a PIXL abrasion and LIBS sample. Within the v1_libs_to_sample.Rds, which Margo and I collaborated on there is a distance variable that is set via a function that Margo created to measure the distance between a PIXL abrasion and LIBS sample using their latitude and longitude coordinates. +Firstly, we set the number of meters distance threshold between a PIXL abrasion and LIBS sample. Within the v1_libs_to_sample.Rds, which Margo and I collaborated on there is a distance variable that is set via a function that Margo created to measure the distance between a PIXL abrasion and LIBS sample using their latitude and longitude coordinates. 7 meters is the best metric because that is the maximum distance the LIBS instrument can accurately collect data from. <!-- rnb-text-end --> @@ -1990,26 +1980,28 @@

3.5 Conclusions, Limitations, and Future Work.

4.0 Finding 2: Soil Composition Analysis

-

Give a highlevel overview of the major finding. What questions -were your trying to address, what approaches did you employ, and what -happened?

Using the LIBS and PIXL combined data set, I created a plot of the composition percentages of chemical compounds such as Si02, K20, etc. using log scaling to compare the compositions of a PIXL abrasion and the corresponding LIBS sample compositions (based on the LIBS samples for x distance away from a PIXL abrasion). The question I was trying to answer was how does the LIBS data of a certain area compare to the PIXL data of -that area? By looking at the composition of the soil in certain -locations, we can compare the differences in the PIXL abrasion and -relating LIBS samples for a certain area utilizing the same data set -(v1_libs_to_sample.Rmd). In order to accomplish this,

+that area? Are there many differences between locations (meaning which +abrasions and their corresponding LIBS targets are different and in what +ways, do igneous vs. sedimentary show a pattern?). In order to +accomplish this, we will use a distance function to filter within 7 +meters of distance between a PIXL sample and LIBS target (this is the +maximum distance of accuracy based on NASA’s information on LIBS +spectroscopy machinery). Then, the data for earth quartile references +(first and third quartiles and median), PIXL abrasion chemical +composition, and corresponding LIBS target chemical compositions will be +plotted based on the chosen PIXL abrasion (only one abrasion is plotted +at a time).

4.1 Data, Code, and Resources

-

Here is a list data sets, codes, that are used in your work. Along -with brief description and URL where they are located.

  1. peterc_finalProjectF24.Rmd (with knit pdf and html) is this -notebook. https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd

  2. +notebook. https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.Rmd

  3. peterc_assignment5.Rmd (with knit pdf and html) which is my previous notebook. https://github.rpi.edu/DataINCITE/DAR-Mars-F24/tree/main/StudentNotebooks/Assignment05/peterc_assignment05.Rmd

  4. supercam_libs_moc_loc.Rds which is the original LIBS data given @@ -2023,7 +2015,7 @@

    4.1 Data, Code, and Resources

    drop the standard deviation columns and sum of percentage columns leaving us with just the weighted composition in terms of numerical data. We also remove the scct values, as those values are the ones that -are earth reference samples that Perserverance carries with it. +are earth reference samples that Perseverance carries with it. Therefore, they will not be very relevant when plotting the LIBS data as we are focused on the Mars soil compositions.

    @@ -2055,11 +2047,11 @@

    4.1 Data, Code, and Resources

    Set meters and chosen abrasion to act as a slider in the 2d app.

    - +
    #Choose max distance variable between PIXL and LIBS data
     meters = 7
     #Choose PIXL abrasion you want to look at
    -abrasion_name = "Alfalfa"
    +abrasion_name = "ThorntonGap" @@ -2177,7 +2169,7 @@

    4.1 Data, Code, and Resources

    composition line plot.

    - +
    included.libs<-(libstargets.df%>%
       filter(Distance<meters))$target
     libs.matrix <-libs.df %>%
    @@ -2187,7 +2179,7 @@ 

    4.1 Data, Code, and Resources

    libs.matrix<-cbind("Abrasion"=0,libs.matrix) libs.matrix<-libs.matrix%>% mutate(Abrasion = ifelse(target%in%Alfalfa,"Alfalfa", - ifelse(target %in% Bellegrade, "Belegrade", + ifelse(target %in% Bellegrade, "Bellegrade", ifelse(target %in% BerryHollow, "Berry Hollow", ifelse(target %in% Dourbes, "Dourbes", ifelse(target %in% Novarupta, "Novarupta", @@ -2203,8 +2195,17 @@

    4.1 Data, Code, and Resources

    4.2 Contribution

    Some of the data manipulating work was Margo’s, such as the distance function. In terms of pivoting the data frame and the other steps of the -preprocessing is my own work. The manipulating below to plot the line -soil composition plots is my own.

    +preprocessing is my own work. The manipulating and setup of data below +to plot the line soil composition plots is my own. Margo and I worked +together to create the data sets used. In our presentation, David was +able to create a facid grid to compliment my single abrasion analysis +which showed the average LIBS target chemical composition and +corresponding PIXL abrasion composition. This was done in RShiny and +implemented in the app, so I felt that redoing the same plot wouldn’t be +necessary. I focused on plotting one specific abrasion to provide more +in depth analysis of one abrasion and the surrounding area since David +was able to provide more context and plot the PIXL abrasions all at +once.

4.3 Methods Description

@@ -2218,8 +2219,8 @@

4.3 Methods Description

composition values. We also need an indicator of if the data is from PIXL or LIBS, which also is helpful for building the line plots.

Users will have to set the distance variable in order to choose the -max distance between PIXL abrasions and LIBS targets. This can vastly -change the number of lines on the plots which can help prevent +maximum distance between PIXL abrasions and LIBS targets. This can +vastly change the number of lines on the plots which can help prevent overcrowded plots. Users also can set a variable to choose a specific PIXL abrasion and corresponding LIBS targets, which is easier to interpret as plotting all of the LIBS and PIXL composition information @@ -2228,7 +2229,8 @@

4.3 Methods Description

4.4 Result and Discussion

First, we will turn the earth quartile information into a long data -frame (meaning pivoting the columns into the values).

+frame (meaning pivoting the columns into the values) and only select the +first and third quartile rows.

@@ -2259,27 +2261,35 @@

4.4 Result and Discussion

For the plot, we use ggplot to plot the pixllibs_long data frame we created. The plot is colored by if the line is a PIXL abrasion’s composition or a LIBS target’s composition. We also add a layer with the -earth quartile information, which is the dotted lines.

+earth quartile information, which is the dotted lines. The weight +percentages on the y axis are log scaled as it makes the plot more +readable, but this can be edited (will be added as a toggle in the +app).

- +
# Earth quartiles
-earthquartiles_long <- earthquartiles.df %>%
+filtered_rows <- earthquartiles.df %>%
+  filter(`Training set Quartiles` %in% c("1st", "3rd", "Med"))
+earthquartiles_long <- filtered_rows %>%
   pivot_longer(cols = starts_with("SiO2"):last_col(), names_to = "Compound", values_to = "Percentage")
 
 earthquartiles_long <- earthquartiles_long %>% rename(Quartiles = `Training set Quartiles`)
-

I still plan to update and try using the ggplotlay feature to -incorporate all the abrasions and data onto one grid of line plots. I -also am going to add plots where the mean is taken of all the LIBS -targets that correspond to a PIXL abrasion so the plot will only have -one LIBS line and one PIXL line (along with the references), this is all -just for the draft. I also need to only add certain quartile information -and label them, this is just a placeholder of the previous plot. Also -maybe will add in SCCT values as references, not sure if they are super -relevant or how to sort them.

+

To save space in this notebook, I did not plot each abrasion (based +on chosen abrasion variable name). In comparing each PIXL abrasion and +the corresponding LIBS targets, I found that the PIXL abrasions +corresponding to igneous had very similar plots, while the PIXL +abrasions corresponding to sedimentary had very similar plots. The +igneous/sedimentary indicator is shown in the PIXL data. An interesting +thing to note is that for some abrasions, like Alfalfa and ThorntonGap, +the chemical compositions of both PIXL samples in the abrasion are the +same. For other abrasions, like Bellegrade, the chemical compositions of +the PIXL samples in the Bellegrade abrasion differ. Also, many of the +plots had a few points with very low K2O which seems like a major +outlier.

4.5 Conclusions and Future Work

@@ -2288,7 +2298,12 @@

4.5 Conclusions and Future Work

For example, oxide presence doesn’t necessarily indicate life, but it could indicate biological or chemical life processes. For example, CaO can indicate the presence of old biological material like shells or -fossils. -Add more about future work, not sure what else to include

+fossils. For future work, I would like to see why certain abrasions +differ in their PIXL core sample composition. Is this based on the +research done by scientists in selecting specific abrasions and trying +to obtain differing samples for abrasions in certain areas? Or is this +by chance? Or is it simply showing more rock variety or weathering the +certain abrasions?

@@ -2297,17 +2312,26 @@

5.0 Finding 3: Analyzing Cation Combinations using LIBS and PIXL

Using the LIBS and PIXL combined data set, we created a ternary plot to show the distribution of LIBS samples sorted by what PIXL abrasion they are closest to (based on a chosen distance variable). Much of the -data preprocessing is similar to Finding 1 which we will repeat here. -However, the goal here is to analyze how different groups of LIBS -samples (colored by matching PIXL abrasion) differ by cation -composition.

+data preprocessing is similar to Finding 1 which we will repeat here. It +will involve using a distance function to correlate LIBS targets with +PIXL samples, matching the data based on the closest PIXL sample, and +plotting the LIBS data (colored by corresponding PIXL abrasion) and the +PIXL abrasions on a ternary plot. The goal here is to analyze how +different groups of LIBS samples (colored by matching PIXL abrasion) +differ by cation composition. Do igneous vs. sedimentary rock play a +roll in composition tendencies and show a pattern? By looking at the +composition of the soil in certain locations, we can compare the +differences in the PIXL abrasion and relating LIBS samples for a certain +area by combining the LIBS and PIXL data sets. In order to accomplish +this, we will use a distance function to filter within 7 meters of +distance between a PIXL sample and LIBS target (this is the maximum +distance of accuracy based on NASA’s information on LIBS spectroscopy +machinery).

5.1 Data, Code, and Resources

-

Here is a list data sets, codes, that are used in your work. Along -with brief description and URL where they are located.

    -
  1. peterc-finalProjectF24.Rmd (with knit pdf and html) is this -notebook. https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment07_DraftFinalProjectNotebook/peterc_finalProjectF24_roughdraft.Rmd

  2. +
  3. peterc_finalProjectF24.Rmd (with knit pdf and html) is this +notebook. https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.Rmd

  4. supercam_libs_moc_loc.Rds which is the original LIBS data given to our research group. https://github.rpi.edu/DataINCITE/DAR-Mars-F24/blob/main/Data/supercam_libs_moc_loc.Rds

@@ -2340,7 +2364,7 @@

5.1 Data, Code, and Resources

weighted compositions.

- +
# Map the PIXL/LIBS column to color and use target_name to differentiate lines
 ggplot(pixllibs_long, aes(x = Compound, y = Percentage, color = as.factor(libsorpixl), group = target)) +
   geom_line() +
@@ -2353,9 +2377,12 @@ 

5.1 Data, Code, and Resources

x = "Chemical Compound", y = "Weight Percentage", color = "Measurement Type", - linetype = "Earth Quartiles") + + linetype = "Quartiles", + caption = "The chemical composition of a PIXL abrasion and the corresponding LIBS targets \n within specified distance of respective abrasion.") + scale_color_manual(values = c("0" = "blue", "1" = "red"), labels = c("PIXL", "LIBS")) + - theme_minimal()
+ annotate("text", x = 5, y = .50, label = "1st Quartile", color = "black", hjust = 0) + + annotate("text", x = 5, y = 2, label = "Median", color = "black", hjust = 0) + + annotate("text", x = 5, y = 10, label = "3rd Quartile", color = "black", hjust = 0)
Warning in scale_y_continuous(trans = "log10") :
@@ -2363,12 +2390,323 @@ 

5.1 Data, Code, and Resources

Warning in scale_y_continuous(trans = "log10") : log-10 transformation introduced infinite values.
- -

+ +

+ +
  theme_minimal()+
+     # Center the caption on the left side
+  theme(
+    plot.caption = element_text(hjust = 0)  # Aligns caption to the left
+  )
+ + +
List of 196
+ $ line                            :List of 6
+  ..$ colour       : chr "black"
+  ..$ linewidth    : num 0.545
+  ..$ linetype     : num 1
+  ..$ lineend      : chr "butt"
+  ..$ arrow        : logi FALSE
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_line" "element"
+ $ rect                            :List of 5
+  ..$ fill         : chr "white"
+  ..$ colour       : chr "black"
+  ..$ linewidth    : num 0.545
+  ..$ linetype     : num 1
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_rect" "element"
+ $ text                            :List of 11
+  ..$ family       : chr ""
+  ..$ face         : chr "plain"
+  ..$ colour       : chr "black"
+  ..$ size         : num 12
+  ..$ hjust        : num 0.5
+  ..$ vjust        : num 0.5
+  ..$ angle        : num 0
+  ..$ lineheight   : num 0.9
+  ..$ margin       : 'margin' num [1:4] 0points 0points 0points 0points
+  .. ..- attr(*, "unit")= int 8
+  ..$ debug        : logi FALSE
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ title                           : NULL
+ $ aspect.ratio                    : NULL
+ $ axis.title                      : NULL
+ $ axis.title.x                    :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : NULL
+  ..$ hjust        : NULL
+  ..$ vjust        : num 1
+  ..$ angle        : NULL
+  ..$ lineheight   : NULL
+  ..$ margin       : 'margin' num [1:4] 3points 0points 0points 0points
+  .. ..- attr(*, "unit")= int 8
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ axis.title.x.top                :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : NULL
+  ..$ hjust        : NULL
+  ..$ vjust        : num 0
+  ..$ angle        : NULL
+  ..$ lineheight   : NULL
+  ..$ margin       : 'margin' num [1:4] 0points 0points 3points 0points
+  .. ..- attr(*, "unit")= int 8
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ axis.title.x.bottom             : NULL
+ $ axis.title.y                    :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : NULL
+  ..$ hjust        : NULL
+  ..$ vjust        : num 1
+  ..$ angle        : num 90
+  ..$ lineheight   : NULL
+  ..$ margin       : 'margin' num [1:4] 0points 3points 0points 0points
+  .. ..- attr(*, "unit")= int 8
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ axis.title.y.left               : NULL
+ $ axis.title.y.right              :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : NULL
+  ..$ hjust        : NULL
+  ..$ vjust        : num 1
+  ..$ angle        : num -90
+  ..$ lineheight   : NULL
+  ..$ margin       : 'margin' num [1:4] 0points 0points 0points 3points
+  .. ..- attr(*, "unit")= int 8
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ axis.text                       :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : chr "grey30"
+  ..$ size         : 'rel' num 0.8
+  ..$ hjust        : NULL
+  ..$ vjust        : NULL
+  ..$ angle        : NULL
+  ..$ lineheight   : NULL
+  ..$ margin       : NULL
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ axis.text.x                     :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : NULL
+  ..$ hjust        : NULL
+  ..$ vjust        : num 1
+  ..$ angle        : NULL
+  ..$ lineheight   : NULL
+  ..$ margin       : 'margin' num [1:4] 2.4points 0points 0points 0points
+  .. ..- attr(*, "unit")= int 8
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ axis.text.x.top                 :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : NULL
+  ..$ hjust        : NULL
+  ..$ vjust        : num 0
+  ..$ angle        : NULL
+  ..$ lineheight   : NULL
+  ..$ margin       : 'margin' num [1:4] 0points 0points 2.4points 0points
+  .. ..- attr(*, "unit")= int 8
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ axis.text.x.bottom              : NULL
+ $ axis.text.y                     :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : NULL
+  ..$ hjust        : num 1
+  ..$ vjust        : NULL
+  ..$ angle        : NULL
+  ..$ lineheight   : NULL
+  ..$ margin       : 'margin' num [1:4] 0points 2.4points 0points 0points
+  .. ..- attr(*, "unit")= int 8
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ axis.text.y.left                : NULL
+ $ axis.text.y.right               :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : NULL
+  ..$ hjust        : num 0
+  ..$ vjust        : NULL
+  ..$ angle        : NULL
+  ..$ lineheight   : NULL
+  ..$ margin       : 'margin' num [1:4] 0points 0points 0points 2.4points
+  .. ..- attr(*, "unit")= int 8
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ axis.text.theta                 : NULL
+ $ axis.text.r                     :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : NULL
+  ..$ hjust        : num 0.5
+  ..$ vjust        : NULL
+  ..$ angle        : NULL
+  ..$ lineheight   : NULL
+  ..$ margin       : 'margin' num [1:4] 0points 2.4points 0points 2.4points
+  .. ..- attr(*, "unit")= int 8
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ axis.ticks                      : list()
+  ..- attr(*, "class")= chr [1:2] "element_blank" "element"
+ $ axis.ticks.x                    : NULL
+ $ axis.ticks.x.top                : NULL
+ $ axis.ticks.x.bottom             : NULL
+ $ axis.ticks.y                    : NULL
+ $ axis.ticks.y.left               : NULL
+ $ axis.ticks.y.right              : NULL
+ $ axis.ticks.theta                : NULL
+ $ axis.ticks.r                    : NULL
+ $ axis.minor.ticks.x.top          : NULL
+ $ axis.minor.ticks.x.bottom       : NULL
+ $ axis.minor.ticks.y.left         : NULL
+ $ axis.minor.ticks.y.right        : NULL
+ $ axis.minor.ticks.theta          : NULL
+ $ axis.minor.ticks.r              : NULL
+ $ axis.ticks.length               : 'simpleUnit' num 3points
+  ..- attr(*, "unit")= int 8
+ $ axis.ticks.length.x             : NULL
+ $ axis.ticks.length.x.top         : NULL
+ $ axis.ticks.length.x.bottom      : NULL
+ $ axis.ticks.length.y             : NULL
+ $ axis.ticks.length.y.left        : NULL
+ $ axis.ticks.length.y.right       : NULL
+ $ axis.ticks.length.theta         : NULL
+ $ axis.ticks.length.r             : NULL
+ $ axis.minor.ticks.length         : 'rel' num 0.75
+ $ axis.minor.ticks.length.x       : NULL
+ $ axis.minor.ticks.length.x.top   : NULL
+ $ axis.minor.ticks.length.x.bottom: NULL
+ $ axis.minor.ticks.length.y       : NULL
+ $ axis.minor.ticks.length.y.left  : NULL
+ $ axis.minor.ticks.length.y.right : NULL
+ $ axis.minor.ticks.length.theta   : NULL
+ $ axis.minor.ticks.length.r       : NULL
+ $ axis.line                       : list()
+  ..- attr(*, "class")= chr [1:2] "element_blank" "element"
+ $ axis.line.x                     : NULL
+ $ axis.line.x.top                 : NULL
+ $ axis.line.x.bottom              : NULL
+ $ axis.line.y                     : NULL
+ $ axis.line.y.left                : NULL
+ $ axis.line.y.right               : NULL
+ $ axis.line.theta                 : NULL
+ $ axis.line.r                     : NULL
+ $ legend.background               : list()
+  ..- attr(*, "class")= chr [1:2] "element_blank" "element"
+ $ legend.margin                   : 'margin' num [1:4] 6points 6points 6points 6points
+  ..- attr(*, "unit")= int 8
+ $ legend.spacing                  : 'simpleUnit' num 12points
+  ..- attr(*, "unit")= int 8
+ $ legend.spacing.x                : NULL
+ $ legend.spacing.y                : NULL
+ $ legend.key                      : list()
+  ..- attr(*, "class")= chr [1:2] "element_blank" "element"
+ $ legend.key.size                 : 'simpleUnit' num 1.2lines
+  ..- attr(*, "unit")= int 3
+ $ legend.key.height               : NULL
+ $ legend.key.width                : NULL
+ $ legend.key.spacing              : 'simpleUnit' num 6points
+  ..- attr(*, "unit")= int 8
+ $ legend.key.spacing.x            : NULL
+ $ legend.key.spacing.y            : NULL
+ $ legend.frame                    : NULL
+ $ legend.ticks                    : NULL
+ $ legend.ticks.length             : 'rel' num 0.2
+ $ legend.axis.line                : NULL
+ $ legend.text                     :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : 'rel' num 0.8
+  ..$ hjust        : NULL
+  ..$ vjust        : NULL
+  ..$ angle        : NULL
+  ..$ lineheight   : NULL
+  ..$ margin       : NULL
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ legend.text.position            : NULL
+ $ legend.title                    :List of 11
+  ..$ family       : NULL
+  ..$ face         : NULL
+  ..$ colour       : NULL
+  ..$ size         : NULL
+  ..$ hjust        : num 0
+  ..$ vjust        : NULL
+  ..$ angle        : NULL
+  ..$ lineheight   : NULL
+  ..$ margin       : NULL
+  ..$ debug        : NULL
+  ..$ inherit.blank: logi TRUE
+  ..- attr(*, "class")= chr [1:2] "element_text" "element"
+ $ legend.title.position           : NULL
+ $ legend.position                 : chr "right"
+ $ legend.position.inside          : NULL
+ $ legend.direction                : NULL
+ $ legend.byrow                    : NULL
+ $ legend.justification            : chr "center"
+ $ legend.justification.top        : NULL
+ $ legend.justification.bottom     : NULL
+ $ legend.justification.left       : NULL
+ $ legend.justification.right      : NULL
+ $ legend.justification.inside     : NULL
+ $ legend.location                 : NULL
+ $ legend.box                      : NULL
+ $ legend.box.just                 : NULL
+ $ legend.box.margin               : 'margin' num [1:4] 0cm 0cm 0cm 0cm
+  ..- attr(*, "unit")= int 1
+ $ legend.box.background           : list()
+  ..- attr(*, "class")= chr [1:2] "element_blank" "element"
+ $ legend.box.spacing              : 'simpleUnit' num 12points
+  ..- attr(*, "unit")= int 8
+  [list output truncated]
+ - attr(*, "class")= chr [1:2] "theme" "gg"
+ - attr(*, "complete")= logi TRUE
+ - attr(*, "validate")= logi TRUE
+ -

Load in PIXL data

+

Next, we will load in the PIXL data that is in StudentData as the +pixl_sol_coordinates data frame includes the latitude, longitude, and +sol of each PIXL sample. We only include the metadata as this is all +that is necessary for the distance function (the sample name and +coordinates of the sample) as well as only one PIXL sample from each +abrasion. As each abrasion has 2 PIXL samples taken, they have the same +latitude and longitude and therefore it is unnecessary to use both. We +also remove the atmospheric sample.

@@ -2425,7 +2763,7 @@

5.1 Data, Code, and Resources

Below is another initializer for the PIXL abrasion data. This sets -the variables for each PIXL abrasion.

+the variables for each PIXL abrasion name.

@@ -2439,7 +2777,9 @@

5.1 Data, Code, and Resources

respective PIXL abrasion by mutating and adding an abrasion column that has the abrasion name closest to each LIBS target. We also add a column, LIBS or PIXL, which denotes if the row of data is from the PIXL and LIBS -data sets. We also set up the libs.tern matrix which will

+data sets. We also set up the libs.tern matrix which will format the +data properly for the ternary plot. This groups the cation compositions +given by Dr. Rogers to set up the ternary diagram axes.

@@ -2484,22 +2824,26 @@

5.1 Data, Code, and Resources

5.2 Contribution

-

This work was also a combination of me and Margo. The data set +

This work was also a combination of Margo and I. The data set creation was both of us in our brainstorming as this utilizes the data -set we created of latitude and longitude for PIXL. - Add more here - -Very similar to other two sections add in later, Margo and I worked on -most of this together

+set we created of latitude and longitude for PIXL. The setting up of +this plot was also collaborative between Margo and myself, we worked +together to debug and set up how to best format the data for this +ternary plot.

5.3 Methods Description

-
    -
  • Started with filtering original data to get rid of SCCT values
  • -
  • then set up ternary data frame by mutating by cation -compositions
  • -
  • then mutated to make the PIXL abrasions the key, so the LIBS targets -are colored by the closest PIXL abrasion, creating a form of -clusters.
  • -
+

For this ternary representation, we took the time to remove the SCCT +(earth reference data) from the LIBS data, remove the atmospheric sample +from the PIXL data, use a distance function to match PIXL abrasions to +corresponding LIBS targets within 7 meters of the respective abrasion +(or whatever the specified distance) and set up a ternary data frame +with cation combinations. Then, the data frame is mutated to make the +PIXL abrasions as the key (color LIBS targets by related PIXL abrasion) +and plotted on the ternary diagram. We also plot the PIXL samples sorted +by igneous or sedimentary as stated by the PIXL data set. This can help +show the mineral evolution from igneous to sedimentary and which PIXL +abrasions correlate to this.

5.4 Result and Discussion

@@ -2566,42 +2910,141 @@

5.4 Result and Discussion

5.5 Conclusions and Future Work

-

Based on this ternary plot, we can see Alfalfa and Belegrade are -higher in Si+Al and Uganik Island is an outlier. As this was the last -piece of the PIXL data in the data set and it was missing a pair since -every other abrasion was made up of two samples, it is included in here -but until the data set is updated there is not enough context to explain -why it is so vastly different. I would assume it is due to how the robot -is traveling and the location of the UganikIsland abrasion is very -different than the other 7 abrasions. - Future work, would include more -data to gain broader context

+

Based on this ternary plot, we can see Alfalfa and Bellegrade are +higher in Si+Al and Uganik Island is an outlier. We can also see the +rock evolution from igneous (black circles) to sedimentary (black +triangles) as we move from higher Si+Al (over 80 %) to low in Si+Al and +high in Fe+Mg. This conclusion was commented on by Andrew Steele of the +Carnegie Institute of Science. As this was the last piece of the PIXL +data in the data set and it was missing a pair since every other +abrasion was made up of two samples, it is included in here but until +the data set is updated there is not enough context to explain why it is +so vastly different. I would assume it is due to how the robot is +traveling and the location of the Uganik Island abrasion is very +different than the other 7 abrasions. Future work could include diving +deeper into the evolution process of rocks (igneous abrasions Alfalfa +and Dourbes to sedimentary abrasions Thornton Gap).

Bibliography

-

Provide a listing of references and other sources.

    -
  • Analyst’s Notebook
  • -
  • Not sure what else is relevant, most of what I used was similar to -Analyst’s Notebook
  • +
  • “Mars Rock Samples - NASA Science.” NASA, +science.nasa.gov/mission/mars-2020- +perseverance/mars-rock-samples/.
  • +
  • “Analyst Notebook”, https://an.rsl.wustl.edu/m20/AN/account/login.aspx.

Appendix

-

Include here whatever you think is relevant to support the main -content of your notebook. For example, you may have only include example -figures above in your main text but include additional ones here. Or you -may have done a more extensive investigation, and want to put more -results here to document your work in the semester. Be sure to divide -appendix into appropriate sections and make the contents clear to the -reader using approaches discussed above. Should I add more -examples here of soil composition plots of different abrasions? I also -could add heat map analysis to this notebook as a finding but wasn’t -sure if it was really relevant.

+

Here, I will display some of the earlier soil composition plots for +different PIXL abrasions.

+ + + + + + + + + + + + + + + + + + + + + + + + +
# Map the PIXL/LIBS column to color and use target_name to differentiate lines
+suppressWarnings(ggplot(pixllibs_long, aes(x = Compound, y = Percentage, color = as.factor(libsorpixl), group = target)) +
+  geom_line() +
+  geom_point() +
+  scale_y_continuous(trans='log10') +
+  # Add Earth quartile lines using earthquartiles_long
+  geom_line(data = earthquartiles_long, aes(x = Compound, y = Percentage, linetype = Quartiles, group = Quartiles), 
+            color = "black", linetype = "dotted") +
+  labs(title = paste("Soil Composition for PIXL",abrasion_name,"and LIBS within", meters, "meters", sep = " "),
+       x = "Chemical Compound",
+       y = "Weight Percentage",
+       color = "Measurement Type",
+       linetype = "Quartiles",
+       caption = "The chemical composition of a PIXL abrasion and the corresponding LIBS targets \n within specified distance of respective abrasion.") +
+  scale_color_manual(values = c("0" = "blue", "1" = "red"), labels = c("PIXL", "LIBS")) +
+  annotate("text", x = 5, y = .50, label = "1st Quartile", color = "black", hjust = 0) +
+  annotate("text", x = 5, y = 2, label = "Median", color = "black", hjust = 0) +
+  annotate("text", x = 5, y = 10, label = "3rd Quartile", color = "black", hjust = 0)+
+  theme_minimal()+
+     # Center the caption on the left side
+  theme(
+    plot.caption = element_text(hjust = 0)  # Aligns caption to the left
+  ))
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
# Map the PIXL/LIBS column to color and use target_name to differentiate lines
+suppressWarnings(ggplot(pixllibs_long, aes(x = Compound, y = Percentage, color = as.factor(libsorpixl), group = target)) +
+  geom_line() +
+  geom_point() +
+  scale_y_continuous(trans='log10') +
+  # Add Earth quartile lines using earthquartiles_long
+  geom_line(data = earthquartiles_long, aes(x = Compound, y = Percentage, linetype = Quartiles, group = Quartiles), 
+            color = "black", linetype = "dotted") +
+  labs(title = paste("Soil Composition for PIXL",abrasion_name,"and LIBS within", meters, "meters", sep = " "),
+       x = "Chemical Compound",
+       y = "Weight Percentage",
+       color = "Measurement Type",
+       linetype = "Quartiles",
+       caption = "The chemical composition of a PIXL abrasion and the corresponding LIBS targets \n within specified distance of respective abrasion.") +
+  scale_color_manual(values = c("0" = "blue", "1" = "red"), labels = c("PIXL", "LIBS")) +
+  annotate("text", x = 5, y = .50, label = "1st Quartile", color = "black", hjust = 0) +
+  annotate("text", x = 5, y = 2, label = "Median", color = "black", hjust = 0) +
+  annotate("text", x = 5, y = 10, label = "3rd Quartile", color = "black", hjust = 0)+
+  theme_minimal()+
+     # Center the caption on the left side
+  theme(
+    plot.caption = element_text(hjust = 0)  # Aligns caption to the left
+  ))
+
+ +
-
LS0tCnRpdGxlOiAiRGF0YSBBbmFseXRpY3MgUmVzZWFyY2ggSW5kaXZpZHVhbCBGaW5hbCBQcm9qZWN0IFJlcG9ydCAtIE1hcnMiCmF1dGhvcjogIkNoYXJsb3R0ZSBQZXRlcnNvbiIKZGF0ZTogIkZhbGwgMjAyNCIKb3V0cHV0OgogIHBkZl9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6ICczJwogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogMwogICAgdG9jX2Zsb2F0OiB5ZXMKICAgIG51bWJlcl9zZWN0aW9uczogeWVzCiAgICB0aGVtZTogdW5pdGVkCi0tLQoKCiMgREFSIFByb2plY3QgYW5kIEdyb3VwIE1lbWJlcnMKCiogUHJvamVjdCBuYW1lOiBNYXJzCiogR2l0SHViIElEOiBkYXItcGV0ZXJjCiogUHJvamVjdCB0ZWFtIG1lbWJlcnM6IERhbnRlIE13YXRpYm8sIERvw7FhIFJvYmVydHMsIERhdmlkIFdhbGN5emssIFh1YW50aW5nIFdhbmcsIEFzaHRvbiBDb21wdG9uLCBNYXJnbyBWYW5Fc3NlbHN0eW4sIE5pY29sYXMgTW9yYXdza2ksIENKIE1hcmlubywgQWFkaSBMYWhpcmkgCgojIDAuMCBQcmVsaW1pbmFyaWVzLgoKVGhpcyByZXBvcnQgaXMgZ2VuZXJhdGVkIGZyb20gYW4gUiBNYXJrZG93biBmaWxlIHRoYXQgaW5jbHVkZXMgYWxsIHRoZSBSIGNvZGUgbmVjZXNzYXJ5IHRvIHByb2R1Y2UgdGhlIHJlc3VsdHMgZGVzY3JpYmVkIGFuZCBlbWJlZGRlZCBpbiB0aGUgcmVwb3J0LiAgQ29kZSBibG9ja3MgY2FuIGJlIHN1cHByZXNzZWQgZnJvbSBvdXRwdXQgZm9yIHJlYWRhYmlsaXR5IHVzaW5nIHRoZSBjb21tYW5kIGNvZGUgYHtSLCAgZWNobz1zaG93fWAgaW4gdGhlIGNvZGUgYmxvY2sgaGVhZGVyLiBJZiBgc2hvdyA8LSBGQUxTRWAgdGhlIGNvZGUgYmxvY2sgd2lsbCBiZSBzdXBwcmVzc2VkOyBpZiBgc2hvdyA8LSBUUlVFYCB0aGVuIHRoZSBjb2RlIHdpbGwgYmUgc2hvdy4gCmBgYHtyfQojIFNldCB0byBUUlVFIHRvIGV4cGFuZCBSIGNvZGUgYmxvY2tzOyBzZXQgdG8gRkFMU0UgdG8gY29sbGFwc2UgUiBjb2RlIGJsb2NrcyAKc2hvdyA8LSBUUlVFCmBgYAoKPCEtLSBFeHBhbmQgdGhpcyBsaXN0IGFzIG5lY2Vzc2FyeSBmb3IgeW91ciBub3RlYm9vayAtLT4KRXhlY3V0aW5nIHRoaXMgUiBub3RlYm9vayByZXF1aXJlcyBzb21lIHN1YnNldCBvZiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOgoKKiBgZ2dwbG90MmAKKiBgdGlkeXZlcnNlYAoqIGBwYW5kb2NgCiogYHJtYXJrZG93bmAKKiBgc3RyaW5ncmAKKiBgZ2diaXBsb3RgCiogYGtuaXRyYAoqIGBycGFydGAKKiBgcnBhcnQucGxvdGAKKiBgY2FyZXRgCiogYGdncmVwZWxgCiogYGdndGVybmAKCgpUaGVzZSB3aWxsIGJlIGluc3RhbGxlZCBhbmQgbG9hZGVkIGFzIG5lY2Vzc2FyeSAoY29kZSBzdXBwcmVzc2VkKS4gCgo8IS0tIFRoZSBgaW5jbHVkZT1GQUxTRWAgb3B0aW9uIHByZXZlbnRzIHlvdXIgY29kZSBmcm9tIGJlaW5nIHNob3duIGF0IGFsbCAtLT4KYGBge3IsIGluY2x1ZGU9RkFMU0V9CiMgVGhpcyBjb2RlIHdpbGwgaW5zdGFsbCByZXF1aXJlZCBwYWNrYWdlcyBpZiB0aGV5IGFyZSBub3QgYWxyZWFkeSBpbnN0YWxsZWQKIyBBTFdBWVMgSU5TVEFMTCBZT1VSIFBBQ0tBR0VTIExJS0UgVEhJUyEKaWYgKCFyZXF1aXJlKCJnZ3Bsb3QyIikpIHsKICAgaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpCiAgIGxpYnJhcnkoZ2dwbG90MikKfQppZiAoIXJlcXVpcmUoInRpZHl2ZXJzZSIpKSB7CiAgIGluc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpCiAgIGxpYnJhcnkodGlkeXZlcnNlKQp9CgppZiAoIXJlcXVpcmUoInBhbmRvYyIpKSB7CiAgaW5zdGFsbC5wYWNrYWdlcygicGFuZG9jIikKICBsaWJyYXJ5KHBhbmRvYykKfQoKIyBSZXF1aXJlZCBwYWNrYWdlcyBmb3IgTTIwIExJQlMgYW5hbHlzaXMKaWYgKCFyZXF1aXJlKCJybWFya2Rvd24iKSkgewogIGluc3RhbGwucGFja2FnZXMoInJtYXJrZG93biIpCiAgbGlicmFyeShybWFya2Rvd24pCn0KCmlmICghcmVxdWlyZSgic3RyaW5nciIpKSB7CiAgaW5zdGFsbC5wYWNrYWdlcygic3RyaW5nciIpCiAgbGlicmFyeShzdHJpbmdyKQp9CgppZiAoIXJlcXVpcmUoImdnYmlwbG90IikpIHsKICBpbnN0YWxsLnBhY2thZ2VzKCJnZ2JpcGxvdCIpCiAgbGlicmFyeShnZ2JpcGxvdCkKfQoKaWYgKCFyZXF1aXJlKCJrbml0ciIpKSB7CiAgaW5zdGFsbC5wYWNrYWdlcygia25pdHIiKQogIGxpYnJhcnkoa25pdHIpCn0KCmlmICghcmVxdWlyZSgicnBhcnQiKSkgewogIGluc3RhbGwucGFja2FnZXMoInJwYXJ0IikKICBsaWJyYXJ5KHJwYXJ0KQp9CgppZiAoIXJlcXVpcmUoInJwYXJ0LnBsb3QiKSkgewogIGluc3RhbGwucGFja2FnZXMoInJwYXJ0LnBsb3QiKQogIGxpYnJhcnkocnBhcnQpCn0KCmlmICghcmVxdWlyZSgiY2FyZXQiKSkgewogIGluc3RhbGwucGFja2FnZXMoImNhcmV0IikKICBsaWJyYXJ5KGNhcmV0KQp9CiAgCmlmICghcmVxdWlyZSgiZ2dyZXBlbCIpKSB7CiAgaW5zdGFsbC5wYWNrYWdlcygiZ2dyZXBlbCIpCiAgbGlicmFyeShnZ3JlcGVsKQp9CgppZiAoIXJlcXVpcmUoImdlb3NwaGVyZSIpKSB7CiAgaW5zdGFsbC5wYWNrYWdlcygiZ2Vvc3BoZXJlIikKICBsaWJyYXJ5KGdncmVwZWwpCn0KCmlmICghcmVxdWlyZSgiZ2d0ZXJuIikpIHsKICBpbnN0YWxsLnBhY2thZ2VzKCJnZ3Rlcm4iKQogIGxpYnJhcnkoZ2dyZXBlbCkKfQoKYGBgCgojIDEuMCBQcm9qZWN0IEludHJvZHVjdGlvbgoKVGhlIE1hcnMgUHJvamVjdCBpcyBmb2N1c2VkIG9uIGRhdGEgZnJvbSB0aGUgMjAyMCBNYXJzIFBlcnNldmVyYW5jZSBSb3Zlci4gVGhlIGdvYWwgb2YgdGhlIG1pc3Npb24gaXMgdG8gbG9vayBmb3IgbWljcm9iaWFsIGFuY2llbnQgbGlmZSBvciBmb3JtcyBvZiB3YXRlciBvbiBNYXJzICh0aGluZ3MgdGhhdCBjb3VsZCBzdWdnZXN0IGxpZmUpLiBQZXJzZXZlcmFuY2UgdXNlcyBtdWx0aXBsZSBpbnN0cnVtZW50cywgaW5jbHVkaW5nIFBJWEwgKFBsYW5ldGFyeSBJbnN0cnVtZW50IGZvciBYLVJheSBMaXRob2NoZW1pc3RyeSksIFNIRVJMT0MgKFNjYW5uaW5nIEhhYml0YWJsZSBFbnZpcm9ubWVudHMgd2l0aCBSYW1hbiBhbmQgTHVtaW5lc2NlbmNlIGZvciBPcmdhbmljcyBhbmQgQ2hlbWljYWxzKSBhbmQgU1VQRVJDQU0uIFNVUEVSQ0FNIGhhcyBtdWx0aXBsZSBpbnN0cnVtZW50cyB0aGF0IG1lYXN1cmUgc3BlY3Ryb3Njb3B5IHRvIG1lYXN1cmUgcHJvcGVydGllcyBvZiBtYXRlcmlhbHMgb24gTWFycywgaW5jbHVkaW5nIExJQlMgKExhc2VyLWluZHVjZWQgYnJlYWtkb3duIHNwZWN0cm9zY29weSkuIFRoaXMgbm90ZWJvb2sgd2lsbCBwcmltYXJpbHkgZm9jdXMgb24gdGhlIGRhdGEgd2UgaGF2ZSBiZWVuIGdpdmVuIG9mIFBJWEwgYW5kIExJQlMuICAKCiMgMi4wIE9yZ2FuaXphdGlvbiBvZiBSZXBvcnQKClRoaXMgcmVwb3J0IGlzIG9yZ2FuaXplIGFzIGZvbGxvd3M6IAoKKiBTZWN0aW9uIDMuMC4gIEZpbmRpbmcgMTogTElCUyBhbmQgUElYTCBNYXRjaGluZyAtIFdlIHdlcmUgYWJsZSB0byBjb21iaW5lIHRoZSBMSUJTIGFuZCBQSVhMIGRhdGEgc2V0cyBieSBwaWNraW5nIGEgbWF4aW11bSBkaXN0YW5jZSB2YXJpYWJsZSBmcm9tIGEgUElYTCBhYnJhc2lvbiBhbmQgbWF0Y2hpbmcgTElCUyBzYW1wbGVzIHRoYXQgd2VyZSB3aXRoaW4gdGhlIHNldCBkaXN0YW5jZSBvZiBhIFBJWEwgYWJyYXNpb24uICAKCiogU2VjdGlvbiA0LjA6IEZpbmRpbmcgMjogU29pbCBDb21wb3NpdGlvbiBBbmFseXNpcyAtIFVzaW5nIHRoZSBMSUJTIGFuZCBQSVhMIGNvbWJpbmVkIGRhdGEgc2V0LCBJIGNyZWF0ZWQgYSBwbG90IG9mIHRoZSBjb21wb3NpdGlvbiBwZXJjZW50YWdlcyBvZiBjaGVtaWNhbCBjb21wb3VuZHMgc3VjaCBhcyBTaTAyLCBLMjAsIGV0Yy4gdXNpbmcgbG9nIHNjYWxpbmcgdG8gY29tcGFyZSB0aGUgY29tcG9zaXRpb25zIG9mIGEgUElYTCBhYnJhc2lvbiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgTElCUyBzYW1wbGUgY29tcG9zaXRpb25zIChiYXNlZCBvbiB0aGUgTElCUyBzYW1wbGVzIGZvciB4IGRpc3RhbmNlIGF3YXkgZnJvbSBhIFBJWEwgYWJyYXNpb24pLgoKKiBTZWN0aW9uIDUuMCBGaW5kaW5nIDM6IEFuYWx5emluZyBDYXRpb24gQ29tYmluYXRpb25zIHVzaW5nIExJQlMgYW5kIFBJWEwgbWF0Y2hlZCBkYXRhOiBVc2luZyB0aGUgTElCUyBhbmQgUElYTCBjb21iaW5lZCBkYXRhIHNldCwgd2UgY3JlYXRlZCBhIHRlcm5hcnkgcGxvdCB0byBzaG93IHRoZSBkaXN0cmlidXRpb24gb2YgTElCUyBzYW1wbGVzIHNvcnRlZCBieSB3aGF0IFBJWEwgYWJyYXNpb24gdGhleSBhcmUgY2xvc2VzdCB0byAoYmFzZWQgb24gYSBjaG9zZW4gZGlzdGFuY2UgdmFyaWFibGUpLgoKKiBTZWN0aW9uIDYuMCBPdmVyYWxsIGNvbmNsdXNpb25zIGFuZCBzdWdnZXN0aW9ucyAKCiogU2VjdGlvbiA3LjAgQXBwZW5kaXggVGhpcyBzZWN0aW9uIGRlc2NyaWJlIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCB3b3JrcyB0aGF0IG1heSBiZSBoZWxwZnVsIGluIHRoZSBmdXR1cmUgd29yazogKmxpc3Qgc3ViamVjdHMqLiAgCgoKIyAzLjAgRmluZGluZyAxOiBQSVhMIGFuZCBMSUJTIE1hdGNoaW5nCgpfR2l2ZSBhIGhpZ2hsZXZlbCBvdmVydmlldyBvZiB0aGUgbWFqb3IgZmluZGluZy4gV2hhdCBxdWVzdGlvbnMgd2VyZSB5b3VyIHRyeWluZyB0byBhZGRyZXNzLCB3aGF0IGFwcHJvYWNoZXMgZGlkIHlvdSBlbXBsb3ksIGFuZCB3aGF0IGhhcHBlbmVkP18KCkZpcnN0bHksIHdlIHdpbGwgYmUgdGFraW5nIGEgbG9vayBhdCBob3cgUElYTCBhbmQgTElCUyBjb3JyZXNwb25kLiBPdXIgZ3JvdXAgZm91bmQgdmVyeSBlYXJseSBpbiBvdXIgcmVzZWFyY2ggdGhhdCB0aGVyZSB3YXNuJ3QgYSBmZWF0dXJlIGFtb25nIHRoZW0gdGhhdCBjYW4gYmUgdXNlZCB0byBtYXRjaCB0aGUgZGF0YSBzZXRzLiBGb3IgZXhhbXBsZSwgdGhlIGNvbHVtbnMgb2YgUElYTCBhcmUgb3JnYW5pemVkIGJ5IGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgYXMgd2VsbCBhcyBzYW1wbGUgbnVtYmVyICgxLTE2KSwgc2FtcGxlIG5hbWUsIGFuZCBhYnJhc2lvbiBuYW1lLiBVbmZvcnR1bmF0ZWx5LCBMSUJTIHdhc24ndCBzb3J0ZWQgdGhlIHNhbWUgd2F5LiBMSUJTIHdhcyBvcmdhbml6ZWQgYnkgdGhlIHNvbCB0aGF0IHRoZSBzYW1wbGUgd2FzIHRha2VuIGF0LiBMSUJTIGlzIGJyb2tlbiB1cCBpbnRvIG1hbnkgZGlmZmVyZW50IHR5cGVzIG9mIHNhbXBsZXMgYXMgd2VsbCwgaW5jbHVkaW5nIHRoZSBmYWN0IGl0IGNhcnJpZXMgYXJvdW5kIGVhcnRoIHJlZmVyZW5jZSBkYXRhIHRvIGJlIHVzZWQgaW4gY29tcGFyaW5nIHdpdGggZGlmZmVyZW50IHNhbXBsZSBzaXRlcy4gVGhhdCBiZWluZyBzYWlkLCBpbiBvcmRlciB0byBtYXRjaCBQSVhMIHRhcmdldHMgdG8gY29ycmVzcG9uZGluZyBMSUJTIHNhbXBsZXMsIE1hcmdvIGFuZCBJIGNyZWF0ZWQgYSBuZXcgZGF0YSBzZXQgdGhhdCBhZGRlZCBhbm90aGVyIG1ldGFkYXRhIGZlYXR1cmUgdG8gUElYTCAobGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBjb29yZGluYXRlcykgd2hpY2ggd2Ugb2J0YWluZWQgZnJvbSB0aGUgQW5hbHlzdCdzIE5vdGVib29rLiBPbmNlIHRoaXMgd2FzIGFkZGVkIGluLCB3ZSByZWFsaXplZCB0aGF0IHRoZSBsb25naXR1ZGUgYW5kIGxhdGl0dWRlIGRpZG4ndCByZWFsbHkgbWF0Y2guIFNvIE1hcmdvIGNyZWF0ZWQgYSBkaXN0YW5jZSBmdW5jdGlvbiB0byBtYXRjaCBMSUJTIHNhbXBsZXMgdG8gUElYTCB0YXJnZXRzIGJhc2VkIG9uIHdoYXRldmVyIGRpc3RhbmNlIGEgcGVyc29uIHNwZWNpZmllcy4gT3JpZ2luYWxseSwgd2Ugc2V0IGl0IHRvIGJlIHJvdW5kZWQgdG8gdGhyZWUgdGhvdXNhbmR0aHMgYW5kIG1hdGNoIGJhc2VkIG9uIHRoYXQuCgpUaGlzIGhlbHBlZCBhbnN3ZXIgdGhlIHF1ZXN0aW9uIG9mIGhvdyBjYW4gd2UgY29ycmVsYXRlIHRoZSBMSUJTIGFuZCBQSVhMIGRhdGEgc2V0cyB0byBiZSBhYmxlIHRvIHBsb3QgdGhlbSBvbiB0aGUgc2FtZSBheGlzIG9mIHdoYXRldmVyIHBsb3QgaXMgdHJ5aW5nIHRvIGJlIGNyZWF0ZWQuIEkgd2FzIGN1cmlvdXMgdG8gc2VlIGhvdyBjbG9zZSBQSVhMIHRhcmdldHMgd2VyZSB0byBMSUJTIHNhbXBsZSBzaXRlcyBhcyB3ZWxsIGFzIGhvdyBtYW55IExJQlMgc2FtcGxlcyB3b3VsZCBiZSBhc3NvY2lhdGVkIHdpdGggYSBQSVhMIHRhcmdldCBwZXJoYXBzIHdpdGggYSByYWRpdXMgb2YgNyBvciAxMCBtZXRlcnMuCgojIyAzLjEgRGF0YSwgQ29kZSwgYW5kIFJlc291cmNlcwoKSGVyZSBpcyBhIGxpc3QgZGF0YSBzZXRzLCBjb2RlcywgdGhhdCBhcmUgdXNlZCBpbiB5b3VyIHdvcmsuIEFsb25nIHdpdGggYnJpZWYgZGVzY3JpcHRpb24gYW5kIFVSTCB3aGVyZSB0aGV5IGFyZSBsb2NhdGVkLgoKMS4gcGV0ZXJjLWZpbmFsUHJvamVjdEYyNC5SbWQgKHdpdGgga25pdCBwZGYgYW5kIGh0bWwpIGlzIHRoaXMgbm90ZWJvb2suCltodHRwczovL2dpdGh1Yi5ycGkuZWR1L0RhdGFJTkNJVEUvREFSLU1hcnMtRjI0L2Jsb2IvbWFpbi9TdHVkZW50Tm90ZWJvb2tzL0Fzc2lnbm1lbnQwN19EcmFmdEZpbmFsUHJvamVjdE5vdGVib29rL3BldGVyY19maW5hbFByb2plY3RGMjRfcm91Z2hkcmFmdC5SbWRdKGh0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL1N0dWRlbnROb3RlYm9va3MvQXNzaWdubWVudDA3X0RyYWZ0RmluYWxQcm9qZWN0Tm90ZWJvb2svcGV0ZXJjX2ZpbmFsUHJvamVjdEYyNF9yb3VnaGRyYWZ0LlJtZCkKCjIuIHYxX2xpYnNfdG9fc2FtcGxlLlJkcyBpcyB0aGUgY29tYmluZWQgZGF0YSBzZXQgb2YgUElYTCBhbmQgTElCUyB0aGF0IGluY2x1ZGVzIHRoZSBkaXN0YW5jZSBmcm9tIGEgUElYTCBhYnJhc2lvbiB0byBhIExJQlMgc2FtcGxlLiAgCltodHRwczovL2dpdGh1Yi5ycGkuZWR1L0RhdGFJTkNJVEUvREFSLU1hcnMtRjI0L2Jsb2IvbWFpbi9TdHVkZW50RGF0YS92MV9saWJzX3RvX3NhbXBsZS5SZHNdKGh0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL1N0dWRlbnREYXRhL3YxX2xpYnNfdG9fc2FtcGxlLlJkcykuIAoKRmlyc3RseSwgd2Ugc2V0IHRoZSBudW1iZXIgb2YgbWV0ZXJzIGRpc3RhbmNlIHRocmVzaG9sZCBiZXR3ZWVuIGEgUElYTCBhYnJhc2lvbiBhbmQgTElCUyBzYW1wbGUuIFdpdGhpbiB0aGUgdjFfbGlic190b19zYW1wbGUuUmRzLCB3aGljaCBNYXJnbyBhbmQgSSBjb2xsYWJvcmF0ZWQgb24gdGhlcmUgaXMgYSBkaXN0YW5jZSB2YXJpYWJsZSB0aGF0IGlzIHNldCB2aWEgYSBmdW5jdGlvbiB0aGF0IE1hcmdvIGNyZWF0ZWQgdG8gbWVhc3VyZSB0aGUgZGlzdGFuY2UgYmV0d2VlbiBhIFBJWEwgYWJyYXNpb24gYW5kIExJQlMgc2FtcGxlIHVzaW5nIHRoZWlyIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgY29vcmRpbmF0ZXMuIApgYGB7cn0KbWV0ZXJzIDwtIDcKYGBgCgpUbyBwcmVwYXJlIHRoZSBkYXRhLCB3ZSB3aWxsIGxvYWQgaW4gdGhlIHYxX2xpYnNfdG9fc2FtcGxlLlJkcywgZ3JvdXAgYnkgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBvZiBMSUJTLCBhbmQgZmlsdGVyIG91dCBldmVyeSBMSUJTIHNhbXBsZSB0aGF0IGhhcyBhIGxhcmdlciBkaXN0YW5jZSBmcm9tIGl0cyBjb3JyZXNwb25kaW5nIFBJWEwgYWJyYXNpb24gdGhhbiBzcGVjaWZpZWQgaW4gdGhlIGNob3NlbiBkaXN0YW5jZSAobWV0ZXIpIHZhbHVlLiBJbiBvcmRlciB0byBtYWtlIGEgc2NhdHRlciBwbG90IG9mIHRoZSBMSUJTIGFuZCBQSVhMIHBvaW50cywgd2Ugd2lsbCBjcmVhdGUgYSBuZXcgZGF0YSBmcmFtZSBvZiBlYWNoIHVuaXF1ZSBQSVhMIGFicmFzaW9uIGFuZCBpdHMgY29vcmRpbmF0ZXMuIFRoYXQgaXMgdGhlIHVuaXF1ZV9waXhsIGRhdGEgZnJhbWUgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIHBsb3QgdGhlIFBJWEwgYWJyYXNpb24gY29vcmRpbmF0ZXMuCgpgYGB7ciB9CmxpYnNfdG9fc2FtcGxlIDwtIHJlYWRSRFMoIn4vREFSLU1hcnMtRjI0L1N0dWRlbnREYXRhL3YxX2xpYnNfdG9fc2FtcGxlLlJkcyIpCiNtYWtlIGEgZmlsdGVyZWQgZGF0YSBmcmFtZSB0aGF0IHBpY2tzIHRoZSBtYXggcG9pbnQgb3V0IG9mIGFsbCBsaWJzIHNhbXBsZXMgYXQgYSBjZXJ0YWluIHRhcmdldCAKIyBmb3Igc2ltcGxpY2l0eQpkZl9maWx0ZXJlZCA8LSBsaWJzX3RvX3NhbXBsZSAlPiUKICBncm91cF9ieShMYXQubGlicywgTG9uLmxpYnMpICU+JQogIGZpbHRlcihQb2ludC5saWJzID09IG1heChQb2ludC5saWJzKSkgJT4lCiAgdW5ncm91cCgpCmRmX2Rpc3RhbmNlX2ZpbHRlciA8LSBkZl9maWx0ZXJlZFtkZl9maWx0ZXJlZCREaXN0YW5jZSA8PSBtZXRlcnMsXQoKI21ha2UgYSBkYXRhIGZyYW1lIHdpdGggdGhlIHVuaXF1ZSBwaXhsIGNvb3JkaW5hdGVzIHNpbmNlIHRoZXkgYXJlIGluIHBhaXJzIG9mIGlkZW50aWNhbCBsYXQvbG9uCnVuaXF1ZV9waXhsIDwtIGRmX2ZpbHRlcmVkICU+JQogIHNlbGVjdChMYXQucGl4bCwgTG9uLnBpeGwsIEFicmFzaW9uLnBpeGwpICU+JSBkaXN0aW5jdCgpCmBgYAoKCiMjIDMuMiBDb250cmlidXRpb24KClRoZSBsb2dpc3RpY3Mgb2YgZmlsdGVyaW5nIHRoZSBvcmlnaW5hbCBkYXRhIHNldCBpcyBteSB3b3JrLiBQcmV2aW91c2x5LCBJIGhhZCB0byBkbyBhIGxvdCBtb3JlIGZpbHRlcmluZyBpbiBvcmRlciB0byBjaG9vc2UgdGhlIGRpc3RhbmNlIGFuZCBnZXQgdW5pcXVlIExJQlMgcG9pbnRzIGluIG9yZGVyIHRvIG5vdCBwdXQgdG9vIG1hbnkgcG9pbnRzIG9uIHRoZSBzY2F0dGVycGxvdC4gTWFyZ28gYW5kIEkgd29ya2VkIHRvZ2V0aGVyIHRvIGNyZWF0ZSB0aGUgZGF0YSBzZXQgdGhhdCBJIHVzZSBpbiB0aGlzIHNlY3Rpb24gKHYxX2xpYnNfdG9fc2FtcGxlLlJkcykgYnkgZGVjaWRpbmcgaG93IHRvIG1hdGNoIHVwIExJQlMgdG8gY2VydGFpbiBQSVhMIGFicmFzaW9ucy4gTWFyZ28gY3JlYXRlZCB0aGUgZGlzdGFuY2UgZnVuY3Rpb24gdG8gZmluZCB0aGUgZGlzdGFuY2UgYmV0d2VlbiBQSVhMIGFicmFzaW9ucyBhbmQgTElCUyBzYW1wbGVzIGFuZCBhZGRlZCB0aGF0IGNvbHVtbiB0byB0aGUgZGF0YSBzZXQuIFRoZW4sIERvbmEgZml4ZWQgYWxsIHRoZSBuYW1pbmcgY29udmVudGlvbnMgaW4gdGhlIGRhdGEgc2V0IGluIG9yZGVyIHRvIGhhdmUgY29uc2lzdGVuY3kgYW5kIG1ha2UgaXQgZWFzeSB0byB0ZWxsIHdoaWNoIHZhcmlhYmxlIHdhcyBvcmlnaW5hbGx5IGZyb20gZWFjaCBkYXRhIHNldCAoZXguIE5hbWUucGl4bCwgVGFyZ2V0LmxpYnMpLiBJIHRoZW4gdXNlZCB0aGUgZGF0YSB0byBjcmVhdGUgcGxvdHMgYW5kIGFuYWx5emUuIEJlbG93IGlzIGEgc2NhdHRlcnBsb3Qgc2hvd2Nhc2luZyB0aGUgZGlzdHJpYnV0aW9uIG9mIFBJWEwgYWJyYXNpb25zIGFuZCBjb3JyZXNwb25kaW5nIExJQlMgc2FtcGxlcyBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIG1heCBkaXN0YW5jZSBiZXR3ZWVuIHRoZW0uIAoKCiMjIDMuMyBNZXRob2RzIERlc2NyaXB0aW9uIAoKSSBjaG9zZSB0byB1c2UgZ2dwbG90IHRvIGRpc3BsYXkgdGhlIExJQlMgYW5kIFBJWEwgZGF0YSBmb3IgZWFzaWVyIGFuYWx5c2lzIG9mIHNlZWluZyBob3cgbWFueSBMSUJTIHNhbXBsZXMgYWxpZ24gd2l0aCBkaWZmZXJlbnQgUElYTCBhYnJhc2lvbnMuIEl0IHdhcyB2ZXJ5IGludGVyZXN0aW5nIHRvIGNoYW5nZSBhcm91bmQgdGhlIG1heCBkaXN0YW5jZSBhbmQgc2VlIHdoaWNoIGFsaWduZWQgd2l0aCB3aGljaCBhYnJhc2lvbi4gSW4gdGVybXMgb2YgZXhlY3V0aW9uLCBpdCB0b29rIG1lIGEgYml0IG9mIHRpbWUgdG8gb3JnYW5pemUgYWxsIG9mIHRoZSB0aG91Z2h0cyBNYXJnbyBhbmQgSSBoYWQgb24gaG93IHRvIGNyZWF0ZSBhbmQgbWFuYWdlIHRoaXMgZGF0YSBzZXQuIE9yaWdpbmFsbHksIHdlIGhhZCByb3VuZGVkIHRoZSBkaXN0YW5jZXMgdG8gdGhlIG5lYXJlc3QgdGhvdXNhbmR0aCB0byBtYXRjaCB0aGVtLCBhbmQgdGhlbiB3ZXJlIHBsb3R0aW5nIHRoYXQgd2F5LiBIb3dldmVyLCB0aGF0IGxlZnQgYSBsb3Qgb2Ygcm9vbSBmb3IgZXJyb3IgYW5kIHdhc24ndCBhcyBhY2N1cmF0ZS4gQ3JlYXRpbmcgYSBkaXN0YW5jZSBmdW5jdGlvbiBhbGxvd3MgZm9yIHRoZSBzY2llbnRpc3Qgb3IgcGVyc29uIHVzaW5nIHRoZSBNYXJzIE1pc3Npb24gTWluZGVyIEFwcCB0byBjaG9vc2Ugd2hhdGV2ZXIgZGlzdGFuY2UgdGhleSB3b3VsZCBsaWtlIGFuZCBhbGxvd3MgZm9yIG11Y2ggbW9yZSBmdW5jdGlvbmFsaXR5LiBNb2RpZnlpbmcgdGhlIGRhdGEgc2V0IG1vcmUgZW5kZWQgdXAgYmVpbmcgbW9yZSBlZmZpY2llbnQgdGhhbiBhZGRpbmcgc21hbGwgZWRpdHMgYXMgSSB3YXMgbWFraW5nIG15IHBsb3RzIHdoaWNoIHdhcyBvcmlnaW5hbGx5IG1ha2luZyBtZSBjcmF6eSAoYXMgaW4gY2hhbmdpbmcgdmFyaWFibGUgdHlwZXMgaWYgdGhleSB3ZXJlbid0IHdoYXQgdGhleSB3ZXJlIHN1cHBvc2VkIHRvIGJlKS4gSW4gdGhlIGVuZCwgSSBsZWFybmVkIGEgbG90IGFib3V0IGRhdGEgb3JnYW5pemF0aW9uIGFuZCB0aGF0IGNvbnNpc3RlbmN5IGFuZCBzdGF5aW5nIG9yZ2FuaXplZCBpcyBrZXkgYW5kIHNhdmVzIGEgbG90IG9mIHRpbWUgbGF0ZXIgb24uCgoKIyMgMy40IFJlc3VsdCBhbmQgRGlzY3Vzc2lvbiAKClRvIGNyZWF0ZSBhIHBsb3Qgb2YgdGhlIExJQlMgYW5kIFBJWEwgZGF0YSBvcmdhbml6ZWQgYnkgd2hhdCBMSUJTIHNhbXBsZXMgYWxpZ24gd2l0aCB3aGF0IGFicmFzaW9ucywgZmlyc3QgcGxvdHRlZCB0aGUgTElCUyBzYW1wbGVzIGNvbG9yZWQgYnkgd2hhdCBQSVhMIGFicmFzaW9uIHRoZXkgd2VyZSBjbG9zZXN0IHRvLCBhbmQgdGhlbiBwbG90dGVkIHRoIFBJWEwgYWJyYXNpb25zIGFzIHJlZCBzdGFycyBvbiB0aGUgcGxvdCB0byBzaG93IHdoZXJlIHRoZSBQSVhMIGFicmFzaW9ucyB3ZXJlIHJlbGF0aXZlIHRvIHRoZSBMSUJTIHNhbXBsZXMuCgpgYGB7ciB9CiNwbG90IG9mIGxpYnMgYW5kIHBpeGwgZGF0YSBieSBsYXQvbG9uCmdncGxvdChkYXRhID0gZGZfZGlzdGFuY2VfZmlsdGVyKSArCiAgZ2VvbV9wb2ludChtYXBwaW5nID0gYWVzKHggPSBMb24ubGlicywgeSA9IExhdC5saWJzLCBjb2xvciA9IEFicmFzaW9uLnBpeGwpKSArICAgICAgICAgICAgICAgICAjIENvbG9yIGJ5IGFicmFzaW9uCiAgZ2VvbV9wb2ludChtYXBwaW5nID0gYWVzKHggPSBMb24ucGl4bCwgeSA9IExhdC5waXhsKSwgZGF0YSA9IHVuaXF1ZV9waXhsLCBjb2xvciA9ICJyZWQiLCBzaGFwZSA9IDMsIHNpemUgPSAzKSArICMgRml4ZWQgY29sb3IgZm9yIHVuaXF1ZV9waXhsIHBvaW50cwogIGdlb21fdGV4dF9yZXBlbChtYXBwaW5nID0gYWVzKHggPSBMb24ucGl4bCwgeSA9IExhdC5waXhsLCBsYWJlbCA9IEFicmFzaW9uLnBpeGwpLCBkYXRhID0gdW5pcXVlX3BpeGwsCiAgICAgICAgICAgICAgICAgIHZqdXN0ID0gMiwgY29sb3IgPSAicmVkIikgKwogIGxhYnModGl0bGUgPSBwYXN0ZSgiTElCUyBTYW1wbGVzIGFuZCBQSVhMIEFicmFzaW9ucyB3aXRoaW4iLCBtZXRlcnMsICJtZXRlcnMiKSwKICAgICAgIHggPSAiTG9uZ2l0dWRlIiwKICAgICAgIHkgPSAiTGF0aXR1ZGUiLAogICAgICAgY29sb3IgPSAiUElYTCBBYnJhc2lvbiIsCiAgICAgICBjYXB0aW9uID0gIkRhdGEgY29sbGVjdGVkIHVzaW5nIExJQlMgYW5kIFBJWEwgaW5zdHJ1bWVudHMgb24gUGVyc2VydmVyYW5jZSByb3Zlci5cbiBTaG93cyBQSVhMIGFicmFzaW9ucyBwbG90dGVkIGFzIHJlZCBzdGFycyxcbiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgTElCUyBzYW1wbGVzIGNvbG9yZWQgYnkgdGhlaXIgY2xvc2VzdCBQSVhMIGFicmFzaW9uLiIpKyAgICAgICAgICAjIExhYmVsIGZvciB0aGUgY29sb3IgbGVnZW5kIAogIyBDZW50ZXIgdGhlIGNhcHRpb24gb24gdGhlIGxlZnQgc2lkZQogIHRoZW1lKAogICAgcGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMCkgICMgQWxpZ25zIGNhcHRpb24gdG8gdGhlIGxlZnQKICApCgojYWRkIGxlZ2VuZCBmb3IgUElYTCBpZGsgd2h5IGl0J3Mgbm90IHdvcmtpbmcKYGBgCldoZW4gbG9va2luZyBhdCB0aGlzIHBsb3QsIHRoZSBkYXRhIGZyYW1lIG9mIHRoZSBmaWx0ZXJlZCBMSUJTIGRhdGEgKGRmX2Rpc3RhbmNlX2ZpbHRlcikgYmFzZWQgb24gZGlzdGFuY2VzIHRvIGEgUElYTCBhYnJhc2lvbiBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNyBtZXRlcnMgZmluZHMgMyBMSUJTIHNhbXBsZXMgY29ycmVzcG9uZGluZyB0byBBbGZhbGZhLCAyIGNvcnJlc3BvbmRpbmcgdG8gQmVsbGVncmFkZSwgMyBjb3JyZXNwb25kaW5nIHRvIERvdXJiZXMsIDcgY29ycmVzcG9uZGluZyB0byBOb3ZhcnVwdGEsIDQgY29ycmVzcG9uZGluZyB0byBRdWFydGllciwgYW5kIDkgY29ycmVzcG9uZGluZyB0byBUaG9ybnRvbiBHYXAuIAoKIyMgMy41IENvbmNsdXNpb25zLCBMaW1pdGF0aW9ucywgYW5kIEZ1dHVyZSBXb3JrLgoKSSBiZWxpZXZlIG15IGZpbmRpbmdzIG1ha2UgaXQgdmVyeSBlYXN5IGZvciByZXNlYXJjaGVycyBhbmQgc2NpZW50aXN0cyB0byBoYXZlIGEgdmlzdWFsaXphdGlvbiBvZiBQSVhMIGFuZCBMSUJTIHNhbXBsZXMgdGhhdCB0aGV5IHdhbnQgdG8gc2VlIGJhc2VkIG9uIHdoYXQgbWF4IGRpc3RhbmNlIHRoZXkgYXJlIGZvY3VzaW5nIG9uIHdoZW4gZXhhbWluaW5nIFBJWEwgYW5kIExJQlMgdG9nZXRoZXIuIEZvciBmdXR1cmUgd29yaywgSSB0aGluayBhcyBtb3JlIGNvb3JkaW5hdGVzIGFuZCBkYXRhIGlzIGFkZGVkIHRvIHRoZSBMSUJTIGFuZCBQSVhMIGRhdGEgc2V0cyBhcyB0aGV5IGJlY29tZSBhdmFpbGFibGUgZnJvbSBOQVNBIHRoaXMgd2lsbCBjb250aW51ZSB0byBiZSBidWlsdCB1cG9uIGFuZCBhbHRob3VnaCBpdCBpc24ndCBzdXBlciBjb21wbGljYXRlZCBvZiBhIHBsb3QsIGl0IHByb3ZpZGVzIGEgdmVyeSBuZWNlc3NhcnkgY29udGV4dCB0byB2aXN1YWxpemUgUElYTCBhbmQgTElCUy4gSSBkaWRuJ3QgZmluZCBtYW55IGxpbWl0YXRpb25zIGluIHRoaXMgcGxvdCBhcyBpdCBiYXNpY2FsbHkgaXMgb25seSBwcm92aWRpbmcgYW4gZWFzeSB2aXN1YWwgb2YgdGhlIFBJWEwgYW5kIExJQlMgZGF0YSB0b2dldGhlci4KCiMgNC4wIEZpbmRpbmcgMjogU29pbCBDb21wb3NpdGlvbiBBbmFseXNpcwpfR2l2ZSBhIGhpZ2hsZXZlbCBvdmVydmlldyBvZiB0aGUgbWFqb3IgZmluZGluZy4gV2hhdCBxdWVzdGlvbnMgd2VyZSB5b3VyIHRyeWluZyB0byBhZGRyZXNzLCB3aGF0IGFwcHJvYWNoZXMgZGlkIHlvdSBlbXBsb3ksIGFuZCB3aGF0IGhhcHBlbmVkP18KClVzaW5nIHRoZSBMSUJTIGFuZCBQSVhMIGNvbWJpbmVkIGRhdGEgc2V0LCBJIGNyZWF0ZWQgYSBwbG90IG9mIHRoZSBjb21wb3NpdGlvbiBwZXJjZW50YWdlcyBvZiBjaGVtaWNhbCBjb21wb3VuZHMgc3VjaCBhcyBTaTAyLCBLMjAsIGV0Yy4gdXNpbmcgbG9nIHNjYWxpbmcgdG8gY29tcGFyZSB0aGUgY29tcG9zaXRpb25zIG9mIGEgUElYTCBhYnJhc2lvbiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgTElCUyBzYW1wbGUgY29tcG9zaXRpb25zIChiYXNlZCBvbiB0aGUgTElCUyBzYW1wbGVzIGZvciB4IGRpc3RhbmNlIGF3YXkgZnJvbSBhIFBJWEwgYWJyYXNpb24pLiBUaGUgcXVlc3Rpb24gSSB3YXMgdHJ5aW5nIHRvIGFuc3dlciB3YXMgaG93IGRvZXMgdGhlIExJQlMgZGF0YSBvZiBhIGNlcnRhaW4gYXJlYSBjb21wYXJlIHRvIHRoZSBQSVhMIGRhdGEgb2YgdGhhdCBhcmVhPyBCeSBsb29raW5nIGF0IHRoZSBjb21wb3NpdGlvbiBvZiB0aGUgc29pbCBpbiBjZXJ0YWluIGxvY2F0aW9ucywgd2UgY2FuIGNvbXBhcmUgdGhlIGRpZmZlcmVuY2VzIGluIHRoZSBQSVhMIGFicmFzaW9uIGFuZCByZWxhdGluZyBMSUJTIHNhbXBsZXMgZm9yIGEgY2VydGFpbiBhcmVhIHV0aWxpemluZyB0aGUgc2FtZSBkYXRhIHNldCAodjFfbGlic190b19zYW1wbGUuUm1kKS4gSW4gb3JkZXIgdG8gYWNjb21wbGlzaCB0aGlzLCAKCgojIyA0LjEgRGF0YSwgQ29kZSwgYW5kIFJlc291cmNlcwpIZXJlIGlzIGEgbGlzdCBkYXRhIHNldHMsIGNvZGVzLCB0aGF0IGFyZSB1c2VkIGluIHlvdXIgd29yay4gQWxvbmcgd2l0aCBicmllZiBkZXNjcmlwdGlvbiBhbmQgVVJMIHdoZXJlIHRoZXkgYXJlIGxvY2F0ZWQuCgoxLiBwZXRlcmNfZmluYWxQcm9qZWN0RjI0LlJtZCAod2l0aCBrbml0IHBkZiBhbmQgaHRtbCkgaXMgdGhpcyBub3RlYm9vay4KW2h0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL1N0dWRlbnROb3RlYm9va3MvQXNzaWdubWVudDA3X0RyYWZ0RmluYWxQcm9qZWN0Tm90ZWJvb2svcGV0ZXJjX2ZpbmFsUHJvamVjdEYyNF9yb3VnaGRyYWZ0LlJtZF0oaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vU3R1ZGVudE5vdGVib29rcy9Bc3NpZ25tZW50MDdfRHJhZnRGaW5hbFByb2plY3ROb3RlYm9vay9wZXRlcmNfZmluYWxQcm9qZWN0RjI0X3JvdWdoZHJhZnQuUm1kKQoKMi4gcGV0ZXJjX2Fzc2lnbm1lbnQ1LlJtZCAod2l0aCBrbml0IHBkZiBhbmQgaHRtbCkgd2hpY2ggaXMgbXkgcHJldmlvdXMgbm90ZWJvb2suCltodHRwczovL2dpdGh1Yi5ycGkuZWR1L0RhdGFJTkNJVEUvREFSLU1hcnMtRjI0L3RyZWUvbWFpbi9TdHVkZW50Tm90ZWJvb2tzL0Fzc2lnbm1lbnQwNS9wZXRlcmNfYXNzaWdubWVudDA1LlJtZF0oaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC90cmVlL21haW4vU3R1ZGVudE5vdGVib29rcy9Bc3NpZ25tZW50MDUvcGV0ZXJjX2Fzc2lnbm1lbnQwNS5SbWRdKQoKMy4gc3VwZXJjYW1fbGlic19tb2NfbG9jLlJkcyB3aGljaCBpcyB0aGUgb3JpZ2luYWwgTElCUyBkYXRhIGdpdmVuIHRvIG91ciByZXNlYXJjaCBncm91cC4KW2h0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL0RhdGEvc3VwZXJjYW1fbGlic19tb2NfbG9jLlJkc10oaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vRGF0YS9zdXBlcmNhbV9saWJzX21vY19sb2MuUmRzKQoKNC4gcGl4bF9zb2xfY29vcmRpbmF0ZXMuUmRzLCB3aGljaCBpcyB0aGUgZGF0YSBzZXQgY29udGFpbmluZyB0aGUgUElYTCBkYXRhLCBzb2wsIGFuZCBjb29yZGluYXRlcy4KW2h0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL1N0dWRlbnREYXRhL3BpeGxfc29sX2Nvb3JkaW5hdGVzLlJkc10oaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vU3R1ZGVudERhdGEvcGl4bF9zb2xfY29vcmRpbmF0ZXMuUmRzKQoKNC4gTElCU190cmFpbmluZ19zZXRfcXVhcnRpbGVzLlJkcyBpcyB0aGUgZGF0YSB3aXRoIGVhcnRoIHF1YXJ0aWxlIHJlZmVyZW5jZSBkYXRhLgpbaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vRGF0YS9MSUJTX3RyYWluaW5nX3NldF9xdWFydGlsZXMuUmRzXShodHRwczovL2dpdGh1Yi5ycGkuZWR1L0RhdGFJTkNJVEUvREFSLU1hcnMtRjI0L2Jsb2IvbWFpbi9EYXRhL0xJQlNfdHJhaW5pbmdfc2V0X3F1YXJ0aWxlcy5SZHMpLiAKClRvIHByZXBhcmUgdGhlIGRhdGEsIEkgc3RhcnQgYnkgbG9hZGluZyBpbiB0aGUgTElCUyBkYXRhLiBUaGVuLCB3ZSBkcm9wIHRoZSBzdGFuZGFyZCBkZXZpYXRpb24gY29sdW1ucyBhbmQgc3VtIG9mIHBlcmNlbnRhZ2UgY29sdW1ucyBsZWF2aW5nIHVzIHdpdGgganVzdCB0aGUgd2VpZ2h0ZWQgY29tcG9zaXRpb24gaW4gdGVybXMgb2YgbnVtZXJpY2FsIGRhdGEuIFdlIGFsc28gcmVtb3ZlIHRoZSBzY2N0IHZhbHVlcywgYXMgdGhvc2UgdmFsdWVzIGFyZSB0aGUgb25lcyB0aGF0IGFyZSBlYXJ0aCByZWZlcmVuY2Ugc2FtcGxlcyB0aGF0IFBlcnNlcnZlcmFuY2UgY2FycmllcyB3aXRoIGl0LiBUaGVyZWZvcmUsIHRoZXkgd2lsbCBub3QgYmUgdmVyeSByZWxldmFudCB3aGVuIHBsb3R0aW5nIHRoZSBMSUJTIGRhdGEgYXMgd2UgYXJlIGZvY3VzZWQgb24gdGhlIE1hcnMgc29pbCBjb21wb3NpdGlvbnMuCgpgYGB7cn0KI0VhcnRoIHF1YXJ0aWxlcwplYXJ0aHF1YXJ0aWxlcy5kZjwtcmVhZFJEUygiL2FjYWRlbWljcy9NQVRQLTQ5MTAtRjI0L0RBUi1NYXJzLUYyNC9EYXRhL0xJQlNfdHJhaW5pbmdfc2V0X3F1YXJ0aWxlcy5SZHMiKQojTG9hZCBpbiBMSUJTIGRhdGEKbGlicy5kZiA8LSByZWFkUkRTKCIvYWNhZGVtaWNzL01BVFAtNDkxMC1GMjQvREFSLU1hcnMtRjI0L0RhdGEvc3VwZXJjYW1fbGlic19tb2NfbG9jLlJkcyIpCiNEcm9wIHRoZSBzdGFuZGFyZCBkZXZpYXRpb24gZmVhdHVyZXMsIHRoZSBzdW0gb2YgdGhlIHBlcmNlbnRhZ2VzLCAKI3RoZSBkaXN0YW5jZSwgYW5kIHRoZSB0b3RhbCBmcmVxdWVuY2llcwpsaWJzLmRmIDwtIGxpYnMuZGYgJT4lIAogIHNlbGVjdCghKGMoZGlzdGFuY2VfbW0sVG90LkVtLixTaU8yX3N0ZGV2LFRpTzJfc3RkZXYsQWwyTzNfc3RkZXYsRmVPVF9zdGRldiwKICAgICAgICAgICAgIE1nT19zdGRldixOYTJPX3N0ZGV2LENhT19zdGRldixLMk9fc3RkZXYsVG90YWwpKSkKIyBDb252ZXJ0IHRoZSBwb2ludHMgdG8gbnVtZXJpYwpsaWJzLmRmJHBvaW50IDwtIGFzLm51bWVyaWMobGlicy5kZiRwb2ludCkKbGlicy5kZlssNjoxM10gPC0gc2FwcGx5KGxpYnMuZGZbLDY6MTNdLGFzLm51bWVyaWMpCiNyZW1vdmUgdGhlIHNjY3QvcmVmZXJlbmNlIHNhbXBsZXMKbGlicy5kZjwtbGlicy5kZiU+JQogIGZpbHRlcighKGdyZXBsKCJzY2N0IiwgdGFyZ2V0KSkpCiNhZGQgYSBjb2x1bW4gdG8gaW5kaWNhdGUgdGhlIG5lYXJlc3QgcGl4bApsaWJzLmRmPC1jYmluZChuZWFyZXN0cGl4bD0wLGxpYnMuZGYpCiNtYWtlIGEgZGF0YWZyYW1lIG9mIGp1c3QgdGhlIExJQlMgTGF0L0xvbmcgYW5kIHRhcmdldCBuYW1lIGFuZCByZW1vdmUgZHVwbGljYXRlcwpsaWJzdGFyZ2V0cy5kZjwtbGlicy5kZlssYygxLDMsNCw1KV0KbGlic3RhcmdldHMuZGY8LWRpc3RpbmN0KGxpYnN0YXJnZXRzLmRmKQpgYGAKClNldCBtZXRlcnMgYW5kIGNob3NlbiBhYnJhc2lvbiB0byBhY3QgYXMgYSBzbGlkZXIgaW4gdGhlIDJkIGFwcC4KYGBge3J9CiNDaG9vc2UgbWF4IGRpc3RhbmNlIHZhcmlhYmxlIGJldHdlZW4gUElYTCBhbmQgTElCUyBkYXRhCm1ldGVycyA9IDcKI0Nob29zZSBQSVhMIGFicmFzaW9uIHlvdSB3YW50IHRvIGxvb2sgYXQKYWJyYXNpb25fbmFtZSA9ICJBbGZhbGZhIgpgYGAKCk5leHQsIHdlIGxvYWQgaW4gdGhlIFBJWEwgZGF0YS4gV2UgcmVtb3ZlIHRoZSBhdG1vc3BoZXJpYyBzYW1wbGUgYW5kIG9ubHkgc2VsZWN0IG9uZSBQSVhMIHNhbXBsZSBvZiBlYWNoIGFicmFzaW9uLgpgYGB7ciwgZGF0YTAyfQojcmVhZCBpbiBwaXhsIGRhdGEgd2l0aCBsYXQvbG9uZwpwaXhsLmRmPC1yZWFkUkRTKCIvYWNhZGVtaWNzL01BVFAtNDkxMC1GMjQvREFSLU1hcnMtRjI0L1N0dWRlbnREYXRhL3BpeGxfc29sX2Nvb3JkaW5hdGVzLlJkcyIpCiNpbmNsdWRlIG9ubHkgcGl4bCBtZXRhZGF0YQpwaXhsLmRmPC1waXhsLmRmICU+JQogIHNlbGVjdChjKDEsMiwxOSwyMCwyMikpCiNjb252ZXJ0IExhdC9Mb25nIHRvIG51bWVyaWMKcGl4bC5kZiRMYXQgPC0gYXMubnVtZXJpYyhwaXhsLmRmJExhdCkKcGl4bC5kZiRMb25nIDwtIGFzLm51bWVyaWMocGl4bC5kZiRMb25nKQojcmVtb3ZlIHJvd3Mgc28gd2Ugb25seSBoYXZlIG9uZSBzYW1wbGUgcGVyIGFicmFzaW9uIGFuZCByZW1vdmUgYXRtb3NwaGVyaWMgc2FtcGxlCnBpeGwuZGY8LXBpeGwuZGZbYygyLDQsNiw4LDEwLDEyLDE0LDE2KSxdCmBgYAoKTmV4dCwgd2Ugd2lsbCBpbml0aWFsaXplIGEgZGlzdGFuY2UgdmFyaWFibGUgKHRvIGluZGljYXRlIGRpc3RhbmNlIGJldHdlZW4gUElYTCBhYnJhc2lvbiBhbmQgTElCUyB0YXJnZXQpIGFuZCBhbHNvIGluaXRpYWxpemUgZWFjaCBQSVhMIGFicmFzaW9uLCB3aGljaCB3aWxsIGJlIHVzZWQgdG8gbWFyayB3aGljaCBQSVhMIGFicmFzaW9uIHRoZSBMSUJTIHNhbXBsZSBpcyBjbG9zZXN0IHRvIGJ5IHVzaW5nIGEgZmFjdG9yIG9mIDAgb3IgMS4gCmBgYHtyfQpsaWJzdGFyZ2V0cy5kZjwtY2JpbmQobGlic3RhcmdldHMuZGYsIkRpc3RhbmNlIj0wLCJCZWxsZWdyYWRlIj0wLCJEb3VyYmVzIj0wLCJRdWFydGllciI9MCwiQWxmYWxmYSI9MCwiVGhvcm50b25HYXAiPTAsIkJlcnJ5IEhvbGxvdyI9MCwiTm92YXJ1cHRhIj0wLCJVZ2FuaWsgSXNsYW5kIj0wKQpgYGAKClRoZSBkaXN0YW5jZSBmdW5jdGlvbiBiZWxvdyB3aWxsIGNhbGN1bGF0ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIExJQlMgdGFyZ2V0IGFuZCBhbGwgdGhlIFBJWEwgYWJyYXNpb25zLCBhbmQgcGljayB0aGUgc21hbGxlc3QgZGlzdGFuY2UgdG8gcGljayB0aGUgY2xvc2VzdCBQSVhMIGFicmFzaW9uIHRvIHRoYXQgTElCUyB0YXJnZXQuCmBgYHtyfQpmb3IoaSBpbiAxOm5yb3cobGlic3RhcmdldHMuZGYpKSB7CiAgICBsaWJzdGFyZ2V0cy5kZltpLGMoNjoxMyldPC1jKGRpc3RIYXZlcnNpbmUocGl4bC5kZlsxLGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZlsyLGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZlszLGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZls0LGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZls1LGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZls2LGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZls3LGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZls4LGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSkpCiAgICAKICAgIGxpYnN0YXJnZXRzLmRmW2ksMV08LXdoaWNoLm1pbihsaWJzdGFyZ2V0cy5kZltpLGMoNjoxMyldKQogICAgbGlic3RhcmdldHMuZGZbaSw1XTwtbWluKGxpYnN0YXJnZXRzLmRmW2ksYyg2OjEzKV0pCn0KbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw8LWFzLmZhY3RvcihsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bCkKbGV2ZWxzKGxpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsKTwtKGMoIkJlbGxlZ3JhZGUiLCJEb3VyYmVzIiwiUXVhcnRpZXIiLCJBbGZhbGZhIiwiVGhvcm50b25HYXAiLCJCZXJyeSBIb2xsb3ciLCJOb3ZhcnVwdGEiLCJVZ2FuaWsgSXNsYW5kIikpCmBgYAoKQmVsb3cgaXMgYW5vdGhlciBpbml0aWFsaXplciBmb3IgdGhlIFBJWEwgYWJyYXNpb24gZGF0YS4gVGhpcyBzZXRzIHRoZSB2YXJpYWJsZXMgZm9yIGVhY2ggUElYTCBhYnJhc2lvbi4KYGBge3J9CkJlbGxlZ3JhZGU8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iQmVsbGVncmFkZSIsXSR0YXJnZXQKRG91cmJlczwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJEb3VyYmVzIixdJHRhcmdldApRdWFydGllcjwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJRdWFydGllciIsXSR0YXJnZXQKQWxmYWxmYTwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJBbGZhbGZhIixdJHRhcmdldApUaG9ybnRvbkdhcDwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJUaG9ybnRvbkdhcCIsXSR0YXJnZXQKQmVycnlIb2xsb3c8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iQmVycnkgSG9sbG93IixdJHRhcmdldApOb3ZhcnVwdGE8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iTm92YXJ1cHRhIixdJHRhcmdldApVZ2FuaWtJc2xhbmQ8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iVWdhbmlrIElzbGFuZCIsXSR0YXJnZXQKYGBgCgpOZXh0LCB3ZSBmaWx0ZXIgb3V0IHRoZSBMSUJTIHRhcmdldHMgdGhhdCBhcmUgbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIGRpc3RhbmNlIHZhcmlhYmxlLiBUaGVuLCB3ZSBtZXJnZSB0aGUgTElCUyBkYXRhIHdpdGggdGhlIHJlc3BlY3RpdmUgUElYTCBhYnJhc2lvbiBieSBtdXRhdGluZyBhbmQgYWRkaW5nIGFuIGFicmFzaW9uIGNvbHVtbiB0aGF0IGhhcyB0aGUgYWJyYXNpb24gbmFtZSBjbG9zZXN0IHRvIGVhY2ggTElCUyB0YXJnZXQuIFdlIGFsc28gYWRkIGEgY29sdW1uLCBMSUJTIG9yIFBJWEwsIHdoaWNoIGRlbm90ZXMgaWYgdGhlIHJvdyBvZiBkYXRhIGlzIGZyb20gdGhlIFBJWEwgYW5kIExJQlMgZGF0YSBzZXRzLgpgYGB7cn0KaW5jbHVkZWQubGliczwtKGxpYnN0YXJnZXRzLmRmJT4lCiAgZmlsdGVyKERpc3RhbmNlPG1ldGVycykpJHRhcmdldApsaWJzLm1hdHJpeCA8LWxpYnMuZGYgJT4lCiAgZmlsdGVyKHRhcmdldCAlaW4lIGluY2x1ZGVkLmxpYnMpCmxpYnMubWF0cml4IDwtIGxpYnMubWF0cml4WyxjKDUsNzoxNCldCmxpYnMubWF0cml4PC1saWJzLm1hdHJpeFssYygxOjIsNDo5LDMpXQpsaWJzLm1hdHJpeDwtY2JpbmQoIkFicmFzaW9uIj0wLGxpYnMubWF0cml4KQpsaWJzLm1hdHJpeDwtbGlicy5tYXRyaXglPiUKICBtdXRhdGUoQWJyYXNpb24gPSBpZmVsc2UodGFyZ2V0JWluJUFsZmFsZmEsIkFsZmFsZmEiLCAKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgQmVsbGVncmFkZSwgIkJlbGVncmFkZSIsCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIEJlcnJ5SG9sbG93LCAiQmVycnkgSG9sbG93IiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgRG91cmJlcywgIkRvdXJiZXMiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBOb3ZhcnVwdGEsICJOb3ZhcnVwdGEiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBRdWFydGllciwgIlF1YXJ0aWVyIiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgVGhvcm50b25HYXAsICJUaG9ybnRvbkdhcCIsCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIFVnYW5pa0lzbGFuZCwgIlVnYW5payBJc2xhbmQiLEFicmFzaW9uKSkpKSkpKSkpCmxpYnMubWF0cml4PC1jYmluZChsaWJzb3JwaXhsPTEsbGlicy5tYXRyaXgpCmBgYAoKTmV4dCwgd2Ugd2lsbCByZWFkIGluIHRoZSBQSVhMIGRhdGEuIFdlIHdpbGwgcmVtb3ZlIHRoZSBhdG1vc3BoZXJpYyBzYW1wbGUgKGZpcnN0IHNhbXBsZSkgYW5kIG9ubHkgY2hvb3NlIG9uZSBvZiBlYWNoIFBJWEwgc2FtcGxlIGluIGFzIGVhY2ggYWJyYXNpb24gaGFzIHR3byBzYW1wbGVzIChvbmx5IG9uZSB3aWxsIGJlIG5lY2Vzc2FyeSBmb3IgdGhlIHBsb3QpLgoKYGBge3IsIGRhdGEwM30KI3JlYWQgaW4gcGl4bCBkYXRhIHdpdGggbGF0L2xvbmcKcGl4bC5kZjwtcmVhZFJEUygiL2FjYWRlbWljcy9NQVRQLTQ5MTAtRjI0L0RBUi1NYXJzLUYyNC9TdHVkZW50RGF0YS9waXhsX3NvbF9jb29yZGluYXRlcy5SZHMiKQpwaXhsLmRmPC1waXhsLmRmICU+JQogIHNlbGVjdChjKDU6OCwxMjoxNCwxNywxOSwxOCwyMikpCiNyZW9yZGVyIHBpeGwgY29sdW1ucyBzbyB0aGF0IGl0IG1hdGNoZXMgbGlicyBkYXRhIG9yZ2FuaXphdGlvbgpwaXhsLmRmPC1waXhsLmRmWyxjKDExLDEwLDQsMyw4LDIsNiwxLDUsNyldCiNyZW1vdmUgYXRtb3NwaGVyaWMgc2FtcGxlCnBpeGwuZGY8LXBpeGwuZGZbMjoxNixdCnBpeGwuZGY8LWNiaW5kKGxpYnNvcnBpeGw9MCxwaXhsLmRmKQpgYGAKCkZpbmFsbHksIHdlIG1lcmdlIHRoZSBMSUJTIGFuZCBQSVhMIGRhdGEgc2V0cyB3ZSBoYXZlIG1vZGlmaWVkIHRodXMgZmFyIGZvciBhIGNvbWJpbmVkIExJQlMgYW5kIFBJWEwgZGF0YSBmcmFtZSBzdWl0YWJsZSBmb3IgYSBzb2lsIGNvbXBvc2l0aW9uIGxpbmUgcGxvdC4KYGBge3J9CmNvbG5hbWVzKHBpeGwuZGYpPC1jb2xuYW1lcyhsaWJzLm1hdHJpeCkKcGl4bGxpYnMuZGY8LXJiaW5kKHBpeGwuZGYsbGlicy5tYXRyaXgpCmBgYAoKIyMgNC4yIENvbnRyaWJ1dGlvbgoKU29tZSBvZiB0aGUgZGF0YSBtYW5pcHVsYXRpbmcgd29yayB3YXMgTWFyZ28ncywgc3VjaCBhcyB0aGUgZGlzdGFuY2UgZnVuY3Rpb24uIEluIHRlcm1zIG9mIHBpdm90aW5nIHRoZSBkYXRhIGZyYW1lIGFuZCB0aGUgb3RoZXIgc3RlcHMgb2YgdGhlIHByZXByb2Nlc3NpbmcgaXMgbXkgb3duIHdvcmsuIFRoZSBtYW5pcHVsYXRpbmcgYmVsb3cgdG8gcGxvdCB0aGUgbGluZSBzb2lsIGNvbXBvc2l0aW9uIHBsb3RzIGlzIG15IG93bi4KCiMjIDQuMyBNZXRob2RzIERlc2NyaXB0aW9uIAoKV2hlbiBkZWNpZGluZyBob3cgdG8gYXBwcm9hY2ggdGhlIGNvbmNlcHQgb2YgYnVpbGRpbmcgc29pbCBjb21wb3NpdGlvbiBwbG90cyBvZiBlYWNoIFBJWEwgYWJyYXNpb24gYW5kIHRoZSBjb3JyZXNwb25kaW5nIExJQlMgdGFyZ2V0cyB3aXRoaW4gYSBjZXJ0YWluIGRpc3RhbmNlIG1heGltdW0sIEkgZGVjaWRlZCB0aGUgYmVzdCB3YXkgd2FzIHRvIHN0YXJ0IHdpdGggdGhlIG9yaWdpbmFsIGRhdGEgc2V0cyBhbmQgbW9kaWZ5IHRoZW0gYXMgbmVlZGVkLiBGb3IgdGhlIGFjdHVhbCBwbG90LCB0aGUgYmVzdCB3YXkgdG8gZm9ybWF0IHRoZSBkYXRhIGNvcnJlY3RseSBpcyB0byBwaXZvdCBpdCwgYXMgSSBuZWVkIHRoZSB4IGF4aXMgdG8gYmUgdGhlIGNvbHVtbiBuYW1lcyBpbiB0aGUgY3VycmVudCBkYXRhIGZyYW1lIHdlIGhhdmUgKFNpTzIgYW5kIG90aGVyIGNvbXBvc2l0aW9ucykgYW5kIHRoZSB5IGF4aXMgdG8gYmUgdGhlIHdlaWdodGVkIGNvbXBvc2l0aW9uIHZhbHVlcy4gV2UgYWxzbyBuZWVkIGFuIGluZGljYXRvciBvZiBpZiB0aGUgZGF0YSBpcyBmcm9tIFBJWEwgb3IgTElCUywgd2hpY2ggYWxzbyBpcyBoZWxwZnVsIGZvciBidWlsZGluZyB0aGUgbGluZSBwbG90cy4gCgpVc2VycyB3aWxsIGhhdmUgdG8gc2V0IHRoZSBkaXN0YW5jZSB2YXJpYWJsZSBpbiBvcmRlciB0byBjaG9vc2UgdGhlIG1heCBkaXN0YW5jZSBiZXR3ZWVuIFBJWEwgYWJyYXNpb25zIGFuZCBMSUJTIHRhcmdldHMuIFRoaXMgY2FuIHZhc3RseSBjaGFuZ2UgdGhlIG51bWJlciBvZiBsaW5lcyBvbiB0aGUgcGxvdHMgd2hpY2ggY2FuIGhlbHAgcHJldmVudCBvdmVyY3Jvd2RlZCBwbG90cy4gVXNlcnMgYWxzbyBjYW4gc2V0IGEgdmFyaWFibGUgdG8gY2hvb3NlIGEgc3BlY2lmaWMgUElYTCBhYnJhc2lvbiBhbmQgY29ycmVzcG9uZGluZyBMSUJTIHRhcmdldHMsIHdoaWNoIGlzIGVhc2llciB0byBpbnRlcnByZXQgYXMgcGxvdHRpbmcgYWxsIG9mIHRoZSBMSUJTIGFuZCBQSVhMIGNvbXBvc2l0aW9uIGluZm9ybWF0aW9uIG9uIGxpbmUgcGxvdHMgbGVhZHMgdG8gdmVyeSBjb25kZW5zZWQgZ3JhcGhzIHRoYXQgYXJlIGhhcmQgdG8gcmVhZC4KCiMjIDQuNCBSZXN1bHQgYW5kIERpc2N1c3Npb24gCgpGaXJzdCwgd2Ugd2lsbCB0dXJuIHRoZSBlYXJ0aCBxdWFydGlsZSBpbmZvcm1hdGlvbiBpbnRvIGEgbG9uZyBkYXRhIGZyYW1lIChtZWFuaW5nIHBpdm90aW5nIHRoZSBjb2x1bW5zIGludG8gdGhlIHZhbHVlcykuIApgYGB7cn0KIyBFYXJ0aCBxdWFydGlsZXMKZWFydGhxdWFydGlsZXNfbG9uZyA8LSBlYXJ0aHF1YXJ0aWxlcy5kZiAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IHN0YXJ0c193aXRoKCJTaU8yIik6bGFzdF9jb2woKSwgbmFtZXNfdG8gPSAiQ29tcG91bmQiLCB2YWx1ZXNfdG8gPSAiUGVyY2VudGFnZSIpCgplYXJ0aHF1YXJ0aWxlc19sb25nIDwtIGVhcnRocXVhcnRpbGVzX2xvbmcgJT4lIHJlbmFtZShRdWFydGlsZXMgPSBgVHJhaW5pbmcgc2V0IFF1YXJ0aWxlc2ApCmBgYAoKVGhlbiwgdGhlIGRhdGEgd2lsbCBiZSBmaWx0ZXJlZCB0byBvbmx5IGluY2x1ZGUgdGhlIGRhdGEgZnJvbSBhIHNwZWNpZmljIFBJWEwgYWJyYXNpb24gY2hvc2VuIGJ5IHRoZSB1c2VyLiBUaGUgZGF0YSBpcyBwaXZvdGVkIGludG8gYSBsb25nIGZvcm1hdCwgYW5kIHRoZSBjb2x1bW5zIGFyZSByZW9yZGVyZWQgdG8gbWltaWMgc2ltaWxhciBwbG90cyBmcm9tIE5BU0EgcGFwZXJzLgpgYGB7cn0KIyBGaWx0ZXIgZm9yIHRoZSBzcGVjaWZpYyBhYnJhc2lvbiBzYW1wbGUsIGUuZy4sICJBbGZhbGZhIgpwaXhsbGlic19maWx0ZXJlZCA8LSBwaXhsbGlicy5kZiAlPiUKICBmaWx0ZXIoQWJyYXNpb24gPT0gYWJyYXNpb25fbmFtZSkKCiMgUGl2b3QgdGhlIGRhdGEgdG8gbG9uZ2VyIGZvcm1hdCBmb3IgZ2dwbG90CnBpeGxsaWJzX2xvbmcgPC0gcGl4bGxpYnNfZmlsdGVyZWQgJT4lCiAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBzdGFydHNfd2l0aCgiU2lPMiIpOmxhc3RfY29sKCksIG5hbWVzX3RvID0gIkNvbXBvdW5kIiwgdmFsdWVzX3RvID0gIlBlcmNlbnRhZ2UiKQoKZGVzaXJlZF9vcmRlciA8LSBjKCJTaU8yIiwgIkFsMk8zIiwgIkZlT1QiLCAiTWdPIiwgIkNhTyIsICJOYTJPIiwgIksyTyIsICJUaU8yIikgICMgU3BlY2lmeSB5b3VyIGN1c3RvbSBvcmRlciBoZXJlCnBpeGxsaWJzX2xvbmckQ29tcG91bmQgPC0gZmFjdG9yKHBpeGxsaWJzX2xvbmckQ29tcG91bmQsIGxldmVscyA9IGRlc2lyZWRfb3JkZXIpCmBgYAoKRm9yIHRoZSBwbG90LCB3ZSB1c2UgZ2dwbG90IHRvIHBsb3QgdGhlIHBpeGxsaWJzX2xvbmcgZGF0YSBmcmFtZSB3ZSBjcmVhdGVkLiBUaGUgcGxvdCBpcyBjb2xvcmVkIGJ5IGlmIHRoZSBsaW5lIGlzIGEgUElYTCBhYnJhc2lvbidzIGNvbXBvc2l0aW9uIG9yIGEgTElCUyB0YXJnZXQncyBjb21wb3NpdGlvbi4gV2UgYWxzbyBhZGQgYSBsYXllciB3aXRoIHRoZSBlYXJ0aCBxdWFydGlsZSBpbmZvcm1hdGlvbiwgd2hpY2ggaXMgdGhlIGRvdHRlZCBsaW5lcy4KYGBge3J9CiMgTWFwIHRoZSBQSVhML0xJQlMgY29sdW1uIHRvIGNvbG9yIGFuZCB1c2UgdGFyZ2V0X25hbWUgdG8gZGlmZmVyZW50aWF0ZSBsaW5lcwpnZ3Bsb3QocGl4bGxpYnNfbG9uZywgYWVzKHggPSBDb21wb3VuZCwgeSA9IFBlcmNlbnRhZ2UsIGNvbG9yID0gYXMuZmFjdG9yKGxpYnNvcnBpeGwpLCBncm91cCA9IHRhcmdldCkpICsKICBnZW9tX2xpbmUoKSArCiAgZ2VvbV9wb2ludCgpICsKICBzY2FsZV95X2NvbnRpbnVvdXModHJhbnM9J2xvZzEwJykgKwogICMgQWRkIEVhcnRoIHF1YXJ0aWxlIGxpbmVzIHVzaW5nIGVhcnRocXVhcnRpbGVzX2xvbmcKICBnZW9tX2xpbmUoZGF0YSA9IGVhcnRocXVhcnRpbGVzX2xvbmcsIGFlcyh4ID0gQ29tcG91bmQsIHkgPSBQZXJjZW50YWdlLCBsaW5ldHlwZSA9IFF1YXJ0aWxlcywgZ3JvdXAgPSBRdWFydGlsZXMpLCAKICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBsaW5ldHlwZSA9ICJkb3R0ZWQiKSArCiAgbGFicyh0aXRsZSA9IHBhc3RlKCJTb2lsIENvbXBvc2l0aW9uIGZvciBQSVhMIixhYnJhc2lvbl9uYW1lLCJhbmQgTElCUyB3aXRoaW4iLCBtZXRlcnMsICJtZXRlcnMiLCBzZXAgPSAiICIpLAogICAgICAgeCA9ICJDaGVtaWNhbCBDb21wb3VuZCIsCiAgICAgICB5ID0gIldlaWdodCBQZXJjZW50YWdlIiwKICAgICAgIGNvbG9yID0gIk1lYXN1cmVtZW50IFR5cGUiLAogICAgICAgbGluZXR5cGUgPSAiRWFydGggUXVhcnRpbGVzIikgKwogIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCIwIiA9ICJibHVlIiwgIjEiID0gInJlZCIpLCBsYWJlbHMgPSBjKCJQSVhMIiwgIkxJQlMiKSkgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKSSBzdGlsbCBwbGFuIHRvIHVwZGF0ZSBhbmQgdHJ5IHVzaW5nIHRoZSBnZ3Bsb3RsYXkgZmVhdHVyZSB0byBpbmNvcnBvcmF0ZSBhbGwgdGhlIGFicmFzaW9ucyBhbmQgZGF0YSBvbnRvIG9uZSBncmlkIG9mIGxpbmUgcGxvdHMuIEkgYWxzbyBhbSBnb2luZyB0byBhZGQgcGxvdHMgd2hlcmUgdGhlIG1lYW4gaXMgdGFrZW4gb2YgYWxsIHRoZSBMSUJTIHRhcmdldHMgdGhhdCBjb3JyZXNwb25kIHRvIGEgUElYTCBhYnJhc2lvbiBzbyB0aGUgcGxvdCB3aWxsIG9ubHkgaGF2ZSBvbmUgTElCUyBsaW5lIGFuZCBvbmUgUElYTCBsaW5lIChhbG9uZyB3aXRoIHRoZSByZWZlcmVuY2VzKSwgdGhpcyBpcyBhbGwganVzdCBmb3IgdGhlIGRyYWZ0LiBJIGFsc28gbmVlZCB0byBvbmx5IGFkZCBjZXJ0YWluIHF1YXJ0aWxlIGluZm9ybWF0aW9uIGFuZCBsYWJlbCB0aGVtLCB0aGlzIGlzIGp1c3QgYSBwbGFjZWhvbGRlciBvZiB0aGUgcHJldmlvdXMgcGxvdC4gQWxzbyBtYXliZSB3aWxsIGFkZCBpbiBTQ0NUIHZhbHVlcyBhcyByZWZlcmVuY2VzLCBub3Qgc3VyZSBpZiB0aGV5IGFyZSBzdXBlciByZWxldmFudCBvciBob3cgdG8gc29ydCB0aGVtLgoKIyMgNC41IENvbmNsdXNpb25zIGFuZCBGdXR1cmUgV29yawpUaGlzIGZpbmRpbmcgY2FuIGJlIHVzZWQgYnkgZ2VvbG9naXN0cyB0byBhbmFseXplIHdoYXQgZGlmZmVyZW50IHNvaWwgY29tcG9zaXRpb25zIGFyb3VuZCBkaWZmZXJlbnQgUElYTCBhYnJhc2lvbnMgY2FuIG1lYW4gZm9yIGxpZmUgb24gTWFycy4gRm9yIGV4YW1wbGUsIG94aWRlIHByZXNlbmNlIGRvZXNuJ3QgbmVjZXNzYXJpbHkgaW5kaWNhdGUgbGlmZSwgYnV0IGl0IGNvdWxkIGluZGljYXRlIGJpb2xvZ2ljYWwgb3IgY2hlbWljYWwgbGlmZSBwcm9jZXNzZXMuIEZvciBleGFtcGxlLCBDYU8gY2FuIGluZGljYXRlIHRoZSBwcmVzZW5jZSBvZiBvbGQgYmlvbG9naWNhbCBtYXRlcmlhbCBsaWtlIHNoZWxscyBvciBmb3NzaWxzLgotQWRkIG1vcmUgYWJvdXQgZnV0dXJlIHdvcmssIG5vdCBzdXJlIHdoYXQgZWxzZSB0byBpbmNsdWRlCgojIDUuMCBGaW5kaW5nIDM6IEFuYWx5emluZyBDYXRpb24gQ29tYmluYXRpb25zIHVzaW5nIExJQlMgYW5kIFBJWEwgbWF0Y2hlZCBkYXRhClVzaW5nIHRoZSBMSUJTIGFuZCBQSVhMIGNvbWJpbmVkIGRhdGEgc2V0LCB3ZSBjcmVhdGVkIGEgdGVybmFyeSBwbG90IHRvIHNob3cgdGhlIGRpc3RyaWJ1dGlvbiBvZiBMSUJTIHNhbXBsZXMgc29ydGVkIGJ5IHdoYXQgUElYTCBhYnJhc2lvbiB0aGV5IGFyZSBjbG9zZXN0IHRvIChiYXNlZCBvbiBhIGNob3NlbiBkaXN0YW5jZSB2YXJpYWJsZSkuIE11Y2ggb2YgdGhlIGRhdGEgcHJlcHJvY2Vzc2luZyBpcyBzaW1pbGFyIHRvIEZpbmRpbmcgMSB3aGljaCB3ZSB3aWxsIHJlcGVhdCBoZXJlLiBIb3dldmVyLCB0aGUgZ29hbCBoZXJlIGlzIHRvIGFuYWx5emUgaG93IGRpZmZlcmVudCBncm91cHMgb2YgTElCUyBzYW1wbGVzIChjb2xvcmVkIGJ5IG1hdGNoaW5nIFBJWEwgYWJyYXNpb24pIGRpZmZlciBieSBjYXRpb24gY29tcG9zaXRpb24uCgojIyA1LjEgRGF0YSwgQ29kZSwgYW5kIFJlc291cmNlcwpIZXJlIGlzIGEgbGlzdCBkYXRhIHNldHMsIGNvZGVzLCB0aGF0IGFyZSB1c2VkIGluIHlvdXIgd29yay4gQWxvbmcgd2l0aCBicmllZiBkZXNjcmlwdGlvbiBhbmQgVVJMIHdoZXJlIHRoZXkgYXJlIGxvY2F0ZWQuCgoxLiBwZXRlcmMtZmluYWxQcm9qZWN0RjI0LlJtZCAod2l0aCBrbml0IHBkZiBhbmQgaHRtbCkgaXMgdGhpcyBub3RlYm9vay4KW2h0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL1N0dWRlbnROb3RlYm9va3MvQXNzaWdubWVudDA3X0RyYWZ0RmluYWxQcm9qZWN0Tm90ZWJvb2svcGV0ZXJjX2ZpbmFsUHJvamVjdEYyNF9yb3VnaGRyYWZ0LlJtZF0oaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vU3R1ZGVudE5vdGVib29rcy9Bc3NpZ25tZW50MDdfRHJhZnRGaW5hbFByb2plY3ROb3RlYm9vay9wZXRlcmNfZmluYWxQcm9qZWN0RjI0X3JvdWdoZHJhZnQuUm1kKQoKMi4gc3VwZXJjYW1fbGlic19tb2NfbG9jLlJkcyB3aGljaCBpcyB0aGUgb3JpZ2luYWwgTElCUyBkYXRhIGdpdmVuIHRvIG91ciByZXNlYXJjaCBncm91cC4KW2h0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL0RhdGEvc3VwZXJjYW1fbGlic19tb2NfbG9jLlJkc10oaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vRGF0YS9zdXBlcmNhbV9saWJzX21vY19sb2MuUmRzKQoKCkZpcnN0LCB3ZSBzZXQgYSBkaXN0YW5jZSB2YXJpYWJsZSB3aGljaCBjYW4gYmUgdXNlZCBhcyBhIHNsaWRlciBiYXIgaW4gdGhlIGFwcC4gQ2hhbmdpbmcgdGhpcyB2YXJpYWJsZSBzZXRzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGJldHdlZW4gYSBQSVhMIHRhcmdldCBhbmQgTElCUyBzYW1wbGUgZm9yIHRoZW0gdG8gYmUgY2xhc3NpZmllZCB0b2dldGhlci4KYGBge3J9CiNzZXQgZGlzdGFuY2UgdmFyaWFibGUgd2hpY2ggY2FuIGJlIHVzZWQgYXMgYSB0b2dnbGUgdG9vbApkaXN0YW5jZT03CmBgYAoKVG8gcHJlcGFyZSB0aGUgZGF0YSwgSSBzdGFydCBieSBsb2FkaW5nIGluIHRoZSBMSUJTIGRhdGEuIFRoZW4sIHdlIGRyb3AgdGhlIHN0YW5kYXJkIGRldmlhdGlvbiBjb2x1bW5zIGFuZCBzdW0gb2YgcGVyY2VudGFnZSBjb2x1bW5zIGxlYXZpbmcgdXMgd2l0aCBqdXN0IHRoZSB3ZWlnaHRlZCBjb21wb3NpdGlvbiBpbiB0ZXJtcyBvZiBudW1lcmljYWwgZGF0YS4gV2UgYWxzbyByZW1vdmUgdGhlIHNjY3QgdmFsdWVzLCBhcyB0aG9zZSB2YWx1ZXMgYXJlIHRoZSBvbmVzIHRoYXQgYXJlIGVhcnRoIHJlZmVyZW5jZSBzYW1wbGVzIHRoYXQgUGVyc2VydmVyYW5jZSBjYXJyaWVzIHdpdGggaXQuIFRoZXJlZm9yZSwgdGhleSB3aWxsIG5vdCBiZSB2ZXJ5IHJlbGV2YW50IHdoZW4gcGxvdHRpbmcgdGhlIExJQlMgZGF0YSBhcyB3ZSBhcmUgZm9jdXNlZCBvbiB0aGUgY2F0aW9uIGNvbWJpbmF0aW9ucyBhbmQgdGhlcmVmb3JlIG9ubHkgbmVlZCB0aGUgd2VpZ2h0ZWQgY29tcG9zaXRpb25zLgpgYGB7cn0KI0xvYWQgaW4gTElCUyBkYXRhCmxpYnMuZGYgPC0gcmVhZFJEUygiL2FjYWRlbWljcy9NQVRQLTQ5MTAtRjI0L0RBUi1NYXJzLUYyNC9EYXRhL3N1cGVyY2FtX2xpYnNfbW9jX2xvYy5SZHMiKQojRHJvcCB0aGUgc3RhbmRhcmQgZGV2aWF0aW9uIGZlYXR1cmVzLCB0aGUgc3VtIG9mIHRoZSBwZXJjZW50YWdlcywgCiN0aGUgZGlzdGFuY2UsIGFuZCB0aGUgdG90YWwgZnJlcXVlbmNpZXMKbGlicy5kZiA8LSBsaWJzLmRmICU+JSAKICBzZWxlY3QoIShjKGRpc3RhbmNlX21tLFRvdC5FbS4sU2lPMl9zdGRldixUaU8yX3N0ZGV2LEFsMk8zX3N0ZGV2LEZlT1Rfc3RkZXYsCiAgICAgICAgICAgICBNZ09fc3RkZXYsTmEyT19zdGRldixDYU9fc3RkZXYsSzJPX3N0ZGV2LFRvdGFsKSkpCiMgQ29udmVydCB0aGUgcG9pbnRzIHRvIG51bWVyaWMKbGlicy5kZiRwb2ludCA8LSBhcy5udW1lcmljKGxpYnMuZGYkcG9pbnQpCmxpYnMuZGZbLDY6MTNdIDwtIHNhcHBseShsaWJzLmRmWyw2OjEzXSxhcy5udW1lcmljKQojcmVtb3ZlIHRoZSBzY2N0L3JlZmVyZW5jZSBzYW1wbGVzCmxpYnMuZGY8LWxpYnMuZGYlPiUKICBmaWx0ZXIoIShncmVwbCgic2NjdCIsIHRhcmdldCkpKQojYWRkIGEgY29sdW1uIHRvIGluZGljYXRlIHRoZSBuZWFyZXN0IHBpeGwKbGlicy5kZjwtY2JpbmQobmVhcmVzdHBpeGw9MCxsaWJzLmRmKQojbWFrZSBhIGRhdGFmcmFtZSBvZiBqdXN0IHRoZSBMSUJTIExhdC9Mb25nIGFuZCB0YXJnZXQgbmFtZSBhbmQgcmVtb3ZlIGR1cGxpY2F0ZXMKbGlic3RhcmdldHMuZGY8LWxpYnMuZGZbLGMoMSwzLDQsNSldCmxpYnN0YXJnZXRzLmRmPC1kaXN0aW5jdChsaWJzdGFyZ2V0cy5kZikKYGBgCgpMb2FkIGluIFBJWEwgZGF0YQpgYGB7cn0KI3JlYWQgaW4gcGl4bCBkYXRhIHdpdGggbGF0L2xvbmcKcGl4bC5kZjwtcmVhZFJEUygiL2FjYWRlbWljcy9NQVRQLTQ5MTAtRjI0L0RBUi1NYXJzLUYyNC9TdHVkZW50RGF0YS9waXhsX3NvbF9jb29yZGluYXRlcy5SZHMiKQojaW5jbHVkZSBvbmx5IHBpeGwgbWV0YWRhdGEKcGl4bC5kZjwtcGl4bC5kZiAlPiUKICBzZWxlY3QoYygxLDIsMTksMjAsMjIpKQojY29udmVydCBMYXQvTG9uZyB0byBudW1lcmljCnBpeGwuZGYkTGF0IDwtIGFzLm51bWVyaWMocGl4bC5kZiRMYXQpCnBpeGwuZGYkTG9uZyA8LSBhcy5udW1lcmljKHBpeGwuZGYkTG9uZykKI3JlbW92ZSByb3dzIHNvIHdlIG9ubHkgaGF2ZSBvbmUgc2FtcGxlIHBlciBhYnJhc2lvbiBhbmQgcmVtb3ZlIGF0bW9zcGhlcmljIHNhbXBsZQpwaXhsLmRmPC1waXhsLmRmW2MoMiw0LDYsOCwxMCwxMiwxNCwxNiksXQpgYGAKCk5leHQsIHdlIHdpbGwgaW5pdGlhbGl6ZSBhIGRpc3RhbmNlIHZhcmlhYmxlICh0byBpbmRpY2F0ZSBkaXN0YW5jZSBiZXR3ZWVuIFBJWEwgYWJyYXNpb24gYW5kIExJQlMgdGFyZ2V0KSBhbmQgYWxzbyBpbml0aWFsaXplIGVhY2ggUElYTCBhYnJhc2lvbiwgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIG1hcmsgd2hpY2ggUElYTCBhYnJhc2lvbiB0aGUgTElCUyBzYW1wbGUgaXMgY2xvc2VzdCB0byBieSB1c2luZyBhIGZhY3RvciBvZiAwIG9yIDEuIApgYGB7cn0KI0xJQlMgdGFyZ2V0IGRhdGEgZnJhbWUgd2l0aCBkaXN0YW5jZSB2YXJpYWJsZSBhcyB3ZWxsCmxpYnN0YXJnZXRzLmRmPC1jYmluZChsaWJzdGFyZ2V0cy5kZiwiRGlzdGFuY2UiPTAsIkJlbGxlZ3JhZGUiPTAsIkRvdXJiZXMiPTAsIlF1YXJ0aWVyIj0wLCJBbGZhbGZhIj0wLCJUaG9ybnRvbkdhcCI9MCwiQmVycnlIb2xsb3ciPTAsIk5vdmFydXB0YSI9MCwiVWdhbmlrSXNsYW5kIj0wKQpgYGAKClRoZSBkaXN0YW5jZSBmdW5jdGlvbiBiZWxvdyB3aWxsIGNhbGN1bGF0ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIExJQlMgdGFyZ2V0IGFuZCBhbGwgdGhlIFBJWEwgYWJyYXNpb25zLCBhbmQgcGljayB0aGUgc21hbGxlc3QgZGlzdGFuY2UgdG8gcGljayB0aGUgY2xvc2VzdCBQSVhMIGFicmFzaW9uIHRvIHRoYXQgTElCUyB0YXJnZXQuCmBgYHtyfQojRGlzdGFuY2UgZnVuY3Rpb24KZm9yKGkgaW4gMTpucm93KGxpYnN0YXJnZXRzLmRmKSkgewogICAgbGlic3RhcmdldHMuZGZbaSxjKDY6MTMpXTwtYyhkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMSxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMixjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMyxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNCxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNSxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNixjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNyxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbOCxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpKQogICAgCiAgICBsaWJzdGFyZ2V0cy5kZltpLDFdPC13aGljaC5taW4obGlic3RhcmdldHMuZGZbaSxjKDY6MTMpXSkKICAgIGxpYnN0YXJnZXRzLmRmW2ksNV08LW1pbihsaWJzdGFyZ2V0cy5kZltpLGMoNjoxMyldKQp9CmxpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPC1hcy5mYWN0b3IobGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGwpCmxldmVscyhsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bCk8LShjKCJCZWxsZWdyYWRlIiwiRG91cmJlcyIsIlF1YXJ0aWVyIiwiQWxmYWxmYSIsIlRob3JudG9uR2FwIiwiQmVycnlIb2xsb3ciLCJOb3ZhcnVwdGEiLCJVZ2FuaWtJc2xhbmQiKSkKYGBgCgpCZWxvdyBpcyBhbm90aGVyIGluaXRpYWxpemVyIGZvciB0aGUgUElYTCBhYnJhc2lvbiBkYXRhLiBUaGlzIHNldHMgdGhlIHZhcmlhYmxlcyBmb3IgZWFjaCBQSVhMIGFicmFzaW9uLgpgYGB7cn0KI1NldHMgZWFjaCBuZWFyZXN0IFBJWEwgdmFyaWFibGUgZm9yIGZ1dHVyZSB1c2UgaW4gZGVjaWRpbmcgd2hpY2ggdGFyZ2V0IGlzIGNsb3Nlc3QgdG8gYSBMSUJTIHNhbXBsZQpCZWxsZWdyYWRlPC1saWJzdGFyZ2V0cy5kZltsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bD09IkJlbGxlZ3JhZGUiLF0kdGFyZ2V0CkRvdXJiZXM8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iRG91cmJlcyIsXSR0YXJnZXQKUXVhcnRpZXI8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iUXVhcnRpZXIiLF0kdGFyZ2V0CkFsZmFsZmE8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iQWxmYWxmYSIsXSR0YXJnZXQKVGhvcm50b25HYXA8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iVGhvcm50b25HYXAiLF0kdGFyZ2V0CkJlcnJ5SG9sbG93PC1saWJzdGFyZ2V0cy5kZltsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bD09IkJlcnJ5SG9sbG93IixdJHRhcmdldApOb3ZhcnVwdGE8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iTm92YXJ1cHRhIixdJHRhcmdldApVZ2FuaWtJc2xhbmQ8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iVWdhbmlrSXNsYW5kIixdJHRhcmdldApgYGAKCk5leHQsIHdlIGZpbHRlciBvdXQgdGhlIExJQlMgdGFyZ2V0cyB0aGF0IGFyZSBub3Qgd2l0aGluIHRoZSBzcGVjaWZpZWQgZGlzdGFuY2UgdmFyaWFibGUuIFRoZW4sIHdlIG1lcmdlIHRoZSBMSUJTIGRhdGEgd2l0aCB0aGUgcmVzcGVjdGl2ZSBQSVhMIGFicmFzaW9uIGJ5IG11dGF0aW5nIGFuZCBhZGRpbmcgYW4gYWJyYXNpb24gY29sdW1uIHRoYXQgaGFzIHRoZSBhYnJhc2lvbiBuYW1lIGNsb3Nlc3QgdG8gZWFjaCBMSUJTIHRhcmdldC4gV2UgYWxzbyBhZGQgYSBjb2x1bW4sIExJQlMgb3IgUElYTCwgd2hpY2ggZGVub3RlcyBpZiB0aGUgcm93IG9mIGRhdGEgaXMgZnJvbSB0aGUgUElYTCBhbmQgTElCUyBkYXRhIHNldHMuIFdlIGFsc28gc2V0IHVwIHRoZSBsaWJzLnRlcm4gbWF0cml4IHdoaWNoIHdpbGwgCmBgYHtyfQppbmNsdWRlZC5saWJzPC0obGlic3RhcmdldHMuZGYlPiUKICBmaWx0ZXIoRGlzdGFuY2U8bWV0ZXJzKSkkdGFyZ2V0CmxpYnMubWF0cml4IDwtbGlicy5kZiAlPiUKICBmaWx0ZXIodGFyZ2V0ICVpbiUgaW5jbHVkZWQubGlicykKI3NldCBMSUJTIG1hdHJpeCBhbmQgdGVybmFyeSBwbG90IGJ5IGFkZGluZyBpbiBjYXRpb24gY29tcG9uZW50cyBhbmQgbXV0YXRpbmcKbGlicy5tYXRyaXggPC0gbGlicy5tYXRyaXhbLGMoNSw3OjE0KV0KbGlicy50ZXJuIDwtIGFzLmRhdGEuZnJhbWUobGlicy5tYXRyaXgpICU+JQogIG11dGF0ZSh4PShTaU8yK0FsMk8zKS8xMDAseT0oRmVPVCtNZ08pLzEwMCx6PShDYU8rTmEyTytLMk8pLzEwMCkgJT4lCiAgc2VsZWN0KC1jKFNpTzIsQWwyTzMsRmVPVCxNZ08sQ2FPLE5hMk8sSzJPLFRpTzIpKQpsaWJzLnRlcm48LWNiaW5kKCJBYnJhc2lvbiI9MCxsaWJzLnRlcm4pCiNTZXQgd2hhdCBhYnJhc2lvbiBnb2VzIHdpdGggdGhlIHJlc3BlY3RpdmUgTElCUyBzYW1wbGUgaXQgbWF0Y2hlcyB3aXRoCmxpYnMudGVybjwtbGlicy50ZXJuJT4lCiAgbXV0YXRlKEFicmFzaW9uID0gaWZlbHNlKHRhcmdldCVpbiVBbGZhbGZhLCJBbGZhbGZhIiwgCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIEJlbGxlZ3JhZGUsICJCZWxlZ3JhZGUiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBCZXJyeUhvbGxvdywgIkJlcnJ5SG9sbG93IiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgRG91cmJlcywgIkRvdXJiZXMiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBOb3ZhcnVwdGEsICJOb3ZhcnVwdGEiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBRdWFydGllciwgIlF1YXJ0aWVyIiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgVGhvcm50b25HYXAsICJUaG9ybnRvbkdhcCIsCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIFVnYW5pa0lzbGFuZCwgIlVnYW5pa0lzbGFuZCIsQWJyYXNpb24pKSkpKSkpKSkKI3N1bW1hcnkgb2YgTElCUyBkYXRhIGluY2x1ZGluZyBkaXN0YW5jZSBwYXJhbWV0ZXIsIG51bWJlciBvZiBMSUJTIHRhcmdldHMsIGFuZCBudW1iZXIgb2YgTElCUyBwb2ludHMKa2FibGVkZjwtcmJpbmQoIkRpc3RhbmNlIChtKSI9bWV0ZXJzLCJUYXJnZXRzIj1sZW5ndGgoaW5jbHVkZWQubGlicyksIlBvaW50cyI9bnJvdyhsaWJzLnRlcm4pKQprYWJsZShrYWJsZWRmLCBjYXB0aW9uID0iTElCUyAjIG9mIFRhcmdldHMgYW5kIFBvaW50cyB3aXRoaW4gU3BlY2lmaWVkIERpc3RhbmNlIikKYGBgCk5leHQsIHdlIHdpbGwgc2V0IHVwIGEgdGVybmFyeSBkYXRhIGZyYW1lIGZvciB0aGUgUElYTCBkYXRhIHRvIGFkZCBzb21lIHJlZmVyZW5jZSBwb2ludHMgb24gdG9wIG9mIHRoZSBMSUJTIGRhdGEuIFRoaXMgc2hvdWxkIHByb3ZpZGUgbW9yZSBpbnNpZ2h0IGludG8gaG93IHRoZSBjb21wb3NpdGlvbiBvZiBQSVhMIGFuZCBMSUJTIHNhbXBsZXMgcmVsYXRlIGJ5IHRoZWlyIGNhdGlvbiBjb21iaW5hdGlvbnMKCmBgYHtyfQojIFBJWEwgZGF0YSBhZGRlZApwaXhsLmRmIDwtIHJlYWRSRFMoIi9hY2FkZW1pY3MvTUFUUC00OTEwLUYyNC9EQVItTWFycy1GMjQvRGF0YS9zYW1wbGVzX3BpeGxfd2lkZS5SZHMiKQpwaXhsLmRmW3NhcHBseShwaXhsLmRmLCBpcy5jaGFyYWN0ZXIpXSA8LSBsYXBwbHkocGl4bC5kZltzYXBwbHkocGl4bC5kZiwgaXMuY2hhcmFjdGVyKV0sCmFzLmZhY3RvcikKcGl4bC5kZiA8LSBwaXhsLmRmWzI6MTYsXSAjRXhjbHVkaW5nIGZpcnN0LCBhdG1vc3BoZXJpYyBzYW1wbGUKI1BJWEwgZGF0YSwgd2l0aCBpZGVudGljYWxseSByZWZsZWN0ZWQgY29tcG9zaXRpb25zCm5ld19waXhsX3RyaW0gPC0gcGl4bC5kZiAlPiUKZHBseXI6OnNlbGVjdChjKCJOYTIwIiwiTWdvIiwiQWwyMDMiLCJTaTAyIiwgIksyMCIsIkNhbyIsIkZlTy1UIiwgY2FtcGFpZ24sIHR5cGUpKSAlPiUKcmVuYW1lKCJOYTJPIj0iTmEyMCIsIk1nTyI9Ik1nbyIsIkFsMk8zIj0iQWwyMDMiLCJTaU8yIj0iU2kwMiIsIksyTyI9IksyMCIsCiJDYU8iPSJDYW8iLCJGZU9UIj0iRmVPLVQiKQojdGFrZSB0aGUgc3VtcyBvZiB0aGUgc3BlY2lmaWMgZWxlbWVudHMsIGFuZCByZW5hbWUgdHlwZSBjb2x1bW4KcGl4bF90ZXJuYXJ5IDwtIG5ld19waXhsX3RyaW0gJT4lCm11dGF0ZSh4PShTaU8yK0FsMk8zKS8xMDAseT0oRmVPVCtNZ08pLzEwMCx6PShDYU8rTmEyTytLMk8pLzEwMCwgUElYTF9Sb2NrX1R5cGUgPSB0eXBlKSAlPiUKc2VsZWN0KC1jKFNpTzIsQWwyTzMsRmVPVCxNZ08sQ2FPLE5hMk8sSzJPKSkgJT4lCmRyb3BfbmEoKQojVGhpcyBpcyBmb3IgdGhlIGxhYmVscyBvbiB0aGUgVGVybmFyeSBQbG90IGJlbG93CnBpeGxfdGVybmFyeSA8LSBjYmluZChwaXhsX3Rlcm5hcnksIFNhbXBsZV9kaXNwbGF5PQpjKCIyIiwiMyIsIjQsNiw3IiwiNSw4LDkiLCIiLCIiLCIiLCIiLAoiMTAsMTEiLCIiLCIxMiwxMyIsIiIsIjE0LDE1IiwiIiwiMTYiKSkKYGBgCgoKCiMjIDUuMiBDb250cmlidXRpb24KClRoaXMgd29yayB3YXMgYWxzbyBhIGNvbWJpbmF0aW9uIG9mIG1lIGFuZCBNYXJnby4gVGhlIGRhdGEgc2V0IGNyZWF0aW9uIHdhcyBib3RoIG9mIHVzIGluIG91ciBicmFpbnN0b3JtaW5nIGFzIHRoaXMgdXRpbGl6ZXMgdGhlIGRhdGEgc2V0IHdlIGNyZWF0ZWQgb2YgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBmb3IgUElYTC4KLSBBZGQgbW9yZSBoZXJlCi0gVmVyeSBzaW1pbGFyIHRvIG90aGVyIHR3byBzZWN0aW9ucyBhZGQgaW4gbGF0ZXIsIE1hcmdvIGFuZCBJIHdvcmtlZCBvbiBtb3N0IG9mIHRoaXMgdG9nZXRoZXIKCiMjIDUuMyBNZXRob2RzIERlc2NyaXB0aW9uIAoKLSBTdGFydGVkIHdpdGggZmlsdGVyaW5nIG9yaWdpbmFsIGRhdGEgdG8gZ2V0IHJpZCBvZiBTQ0NUIHZhbHVlcwotIHRoZW4gc2V0IHVwIHRlcm5hcnkgZGF0YSBmcmFtZSBieSBtdXRhdGluZyBieSBjYXRpb24gY29tcG9zaXRpb25zCi0gdGhlbiBtdXRhdGVkIHRvIG1ha2UgdGhlIFBJWEwgYWJyYXNpb25zIHRoZSBrZXksIHNvIHRoZSBMSUJTIHRhcmdldHMgYXJlIGNvbG9yZWQgYnkgdGhlIGNsb3Nlc3QgUElYTCBhYnJhc2lvbiwgY3JlYXRpbmcgYSBmb3JtIG9mIGNsdXN0ZXJzLgoKIyMgNS40IFJlc3VsdCBhbmQgRGlzY3Vzc2lvbiAKVXNpbmcgYWxsIG9mIHRoZSBtYW5pcHVsYXRpb24gZG9uZSBmb3IgdGhlIGNyZWF0aW9uIG9mIHRoZSB0ZXJuYXJ5IHBsb3QsIHdlIHRoZW4gcGxvdCB1c2luZyB0aGUgZ2d0ZXJuIGNvbW1hbmQuIFdlIHdpbGwgY29sb3IgYnkgYWJyYXNpb24gdG8gc2VlIHRoZSBkaXN0cmlidXRpb24gb2YgY29tcG9zaXRpb24gYmV0d2VlbiBkaWZmZXJlbnQgYWJyYXNpb25zLiBUaGlzIHNob3VsZCBoZWxwIHVzIGJlIGFibGUgdG8gZHJhdyBkaWZmZXJlbnQgY29uY2x1c2lvbnMgYWJvdXQgaG93IGFicmFzaW9ucyByZWxhdGUgb3IgZG9uJ3QgcmVsYXRlLiBUaGUgbWF4IGRpc3RhbmNlIGJldHdlZW4gdGhlIFBJWEwgdGFyZ2V0IGFuZCBMSUJTIHNhbXBsZSBjYW4gYmUgbW9kaWZpZWQgaG93ZXZlciBkZXNpcmVkLgpgYGB7cn0KZ2d0ZXJuKGxpYnMudGVybiwgZ2d0ZXJuOjphZXMoeD14LHk9eSx6PXopKSArCiAgZ2VvbV9wb2ludChkYXRhPWxpYnMudGVybixhZXMoY29sb3I9QWJyYXNpb24sYWxwaGE9MC41KSkgKyAKICB0aGVtZV9yZ2J3KCkgKyAKICBsYWJzKHRpdGxlPXBhc3RlKCJNYXJzIExJQlMgRGF0YSBXaXRoaW4iLGRpc3RhbmNlLCJtZXRlcnMgb2YgUElYTCIsc2VwPSIgIiksCiAgICAgICB4PSJTaStBbCIsCiAgICAgICB5PSJGZStNZyIsCiAgICAgICB6PSJDYStOYStLIiwKICAgICAgIGNhcHRpb24gPSAiTElCUyBzYW1wbGVzIHRoYXQgYXJlIHdpdGhpbiA3IG1ldGVycyBvZiBhIFBJWEwgYWJyYXNpb24uIFxuRWFjaCBMSUJTIHNhbXBsZSBpcyBjb2xvcmVkIGJ5IHdoYXQgUElYTCBhYnJhc2lvbiBpdCBtYXRjaGVzIHdpdGguIikrCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJyaWdodCIsCiAgICBwbG90LmNhcHRpb24gPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwKSAgIyBBbGlnbnMgY2FwdGlvbiB0byB0aGUgbGVmdAogICkgKyAKICBndWlkZXMoYWxwaGE9Im5vbmUiKSsKICBzdXBwcmVzc1dhcm5pbmdzKGdlb21fcG9pbnQoCiAgICBkYXRhPXBpeGxfdGVybmFyeSwgZ2d0ZXJuOjphZXMoY2x1c3Rlcj1QSVhMX1JvY2tfVHlwZSwgc2hhcGU9UElYTF9Sb2NrX1R5cGUpLCBzaXplID0gMikpICsKI0FkZCBsYWJlbHMgdG8gUElYTCBkYXRhIGNvcnJlc3BvbmRpbmcgdG8gc2FtcGxlIG51bWJlcgogIHN1cHByZXNzV2FybmluZ3MoZ2VvbV90ZXh0KGRhdGE9cGl4bF90ZXJuYXJ5LCBnZ3Rlcm46OmFlcyh4PXgsIHk9eSwgej16LCBsYWJlbD1TYW1wbGVfZGlzcGxheSwgY2x1c3Rlcj1QSVhMX1JvY2tfVHlwZSwgICMgSG9yaXpvbnRhbCBhZGp1c3QgdG8gYXZvaWQgb3ZlcmxhcAogICAgaGp1c3QgPSBpZmVsc2UoeCA+IDAuNDMsIDEsIC0wLjEpLAogICAgdmp1c3QgPSBpZmVsc2UoeCA9PSAwLjM2NjgsIDEuMywKICAgICAgICBpZmVsc2UoeCA9PSAwLjM3NSwgMSwgaWZlbHNlKHggPiAwLjQzLCAxLjUsIC0wLjMpKSksCiAgICBmb250ZmFjZT0iYm9sZCIpLAogICAgc2l6ZT0yLjcpKQpgYGAKCiMjIDUuNSBDb25jbHVzaW9ucyBhbmQgRnV0dXJlIFdvcmsKQmFzZWQgb24gdGhpcyB0ZXJuYXJ5IHBsb3QsIHdlIGNhbiBzZWUgQWxmYWxmYSBhbmQgQmVsZWdyYWRlIGFyZSBoaWdoZXIgaW4gU2krQWwgYW5kIFVnYW5payBJc2xhbmQgaXMgYW4gb3V0bGllci4gQXMgdGhpcyB3YXMgdGhlIGxhc3QgcGllY2Ugb2YgdGhlIFBJWEwgZGF0YSBpbiB0aGUgZGF0YSBzZXQgYW5kIGl0IHdhcyBtaXNzaW5nIGEgcGFpciBzaW5jZSBldmVyeSBvdGhlciBhYnJhc2lvbiB3YXMgbWFkZSB1cCBvZiB0d28gc2FtcGxlcywgaXQgaXMgaW5jbHVkZWQgaW4gaGVyZSBidXQgdW50aWwgdGhlIGRhdGEgc2V0IGlzIHVwZGF0ZWQgdGhlcmUgaXMgbm90IGVub3VnaCBjb250ZXh0IHRvIGV4cGxhaW4gd2h5IGl0IGlzIHNvIHZhc3RseSBkaWZmZXJlbnQuIEkgd291bGQgYXNzdW1lIGl0IGlzIGR1ZSB0byBob3cgdGhlIHJvYm90IGlzIHRyYXZlbGluZyBhbmQgdGhlIGxvY2F0aW9uIG9mIHRoZSBVZ2FuaWtJc2xhbmQgYWJyYXNpb24gaXMgdmVyeSBkaWZmZXJlbnQgdGhhbiB0aGUgb3RoZXIgNyBhYnJhc2lvbnMuCi0gRnV0dXJlIHdvcmssIHdvdWxkIGluY2x1ZGUgbW9yZSBkYXRhIHRvIGdhaW4gYnJvYWRlciBjb250ZXh0CgojIEJpYmxpb2dyYXBoeQpQcm92aWRlIGEgbGlzdGluZyBvZiByZWZlcmVuY2VzIGFuZCBvdGhlciBzb3VyY2VzLgoKKiBBbmFseXN0J3MgTm90ZWJvb2sKKiBOb3Qgc3VyZSB3aGF0IGVsc2UgaXMgcmVsZXZhbnQsIG1vc3Qgb2Ygd2hhdCBJIHVzZWQgd2FzIHNpbWlsYXIgdG8gQW5hbHlzdCdzIE5vdGVib29rCgojIEFwcGVuZGl4CgoqSW5jbHVkZSBoZXJlIHdoYXRldmVyIHlvdSB0aGluayBpcyByZWxldmFudCB0byBzdXBwb3J0IHRoZSBtYWluIGNvbnRlbnQgb2YgeW91ciBub3RlYm9vay4gRm9yIGV4YW1wbGUsIHlvdSBtYXkgaGF2ZSBvbmx5IGluY2x1ZGUgZXhhbXBsZSBmaWd1cmVzIGFib3ZlIGluIHlvdXIgbWFpbiB0ZXh0IGJ1dCBpbmNsdWRlIGFkZGl0aW9uYWwgb25lcyBoZXJlLiBPciB5b3UgbWF5IGhhdmUgZG9uZSBhIG1vcmUgZXh0ZW5zaXZlIGludmVzdGlnYXRpb24sIGFuZCB3YW50IHRvIHB1dCBtb3JlIHJlc3VsdHMgaGVyZSB0byBkb2N1bWVudCB5b3VyIHdvcmsgaW4gdGhlIHNlbWVzdGVyLiBCZSBzdXJlIHRvIGRpdmlkZSBhcHBlbmRpeCBpbnRvIGFwcHJvcHJpYXRlIHNlY3Rpb25zIGFuZCBtYWtlIHRoZSBjb250ZW50cyBjbGVhciB0byB0aGUgcmVhZGVyIHVzaW5nIGFwcHJvYWNoZXMgZGlzY3Vzc2VkIGFib3ZlLiAqIApTaG91bGQgSSBhZGQgbW9yZSBleGFtcGxlcyBoZXJlIG9mIHNvaWwgY29tcG9zaXRpb24gcGxvdHMgb2YgZGlmZmVyZW50IGFicmFzaW9ucz8gSSBhbHNvIGNvdWxkIGFkZCBoZWF0IG1hcCBhbmFseXNpcyB0byB0aGlzIG5vdGVib29rIGFzIGEgZmluZGluZyBidXQgd2Fzbid0IHN1cmUgaWYgaXQgd2FzIHJlYWxseSByZWxldmFudC4KCg==
+
LS0tCnRpdGxlOiAiRGF0YSBBbmFseXRpY3MgUmVzZWFyY2ggSW5kaXZpZHVhbCBGaW5hbCBQcm9qZWN0IFJlcG9ydCAtIE1hcnMiCmF1dGhvcjogIkNoYXJsb3R0ZSBQZXRlcnNvbiIKZGF0ZTogIkZhbGwgMjAyNCIKb3V0cHV0OgogIHBkZl9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6ICczJwogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogMwogICAgdG9jX2Zsb2F0OiB5ZXMKICAgIG51bWJlcl9zZWN0aW9uczogeWVzCiAgICB0aGVtZTogdW5pdGVkCi0tLQoKCiMgREFSIFByb2plY3QgYW5kIEdyb3VwIE1lbWJlcnMKCiogUHJvamVjdCBuYW1lOiBNYXJzCiogR2l0SHViIElEOiBkYXItcGV0ZXJjCiogUHJvamVjdCB0ZWFtIG1lbWJlcnM6IERhbnRlIE13YXRpYm8sIERvw7FhIFJvYmVydHMsIERhdmlkIFdhbGN5emssIFh1YW50aW5nIFdhbmcsIEFzaHRvbiBDb21wdG9uLCBNYXJnbyBWYW5Fc3NlbHN0eW4sIE5pY29sYXMgTW9yYXdza2ksIENKIE1hcmlubywgQWFkaSBMYWhpcmkgCgojIDAuMCBQcmVsaW1pbmFyaWVzLgoKYGBge3J9CiMgU2V0IHRvIFRSVUUgdG8gZXhwYW5kIFIgY29kZSBibG9ja3M7IHNldCB0byBGQUxTRSB0byBjb2xsYXBzZSBSIGNvZGUgYmxvY2tzIApzaG93IDwtIFRSVUUKYGBgCgpFeGVjdXRpbmcgdGhpcyBSIG5vdGVib29rIHJlcXVpcmVzIHNvbWUgc3Vic2V0IG9mIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6CgoqIGBnZ3Bsb3QyYAoqIGB0aWR5dmVyc2VgCiogYHBhbmRvY2AKKiBgcm1hcmtkb3duYAoqIGBzdHJpbmdyYAoqIGBnZ2JpcGxvdGAKKiBga25pdHJgCiogYHJwYXJ0YAoqIGBycGFydC5wbG90YAoqIGBjYXJldGAKKiBgZ2dyZXBlbGAKKiBgZ2d0ZXJuYAoqIGBnZW9zcGhlcmVgCgoKVGhlc2Ugd2lsbCBiZSBpbnN0YWxsZWQgYW5kIGxvYWRlZCBhcyBuZWNlc3NhcnkgKGNvZGUgc3VwcHJlc3NlZCkuIAoKPCEtLSBUaGUgYGluY2x1ZGU9RkFMU0VgIG9wdGlvbiBwcmV2ZW50cyB5b3VyIGNvZGUgZnJvbSBiZWluZyBzaG93biBhdCBhbGwgLS0+CmBgYHtyLCBpbmNsdWRlPUZBTFNFfQojIFRoaXMgY29kZSB3aWxsIGluc3RhbGwgcmVxdWlyZWQgcGFja2FnZXMgaWYgdGhleSBhcmUgbm90IGFscmVhZHkgaW5zdGFsbGVkCiMgQUxXQVlTIElOU1RBTEwgWU9VUiBQQUNLQUdFUyBMSUtFIFRISVMhCmlmICghcmVxdWlyZSgiZ2dwbG90MiIpKSB7CiAgIGluc3RhbGwucGFja2FnZXMoImdncGxvdDIiKQogICBsaWJyYXJ5KGdncGxvdDIpCn0KaWYgKCFyZXF1aXJlKCJ0aWR5dmVyc2UiKSkgewogICBpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiKQogICBsaWJyYXJ5KHRpZHl2ZXJzZSkKfQoKaWYgKCFyZXF1aXJlKCJwYW5kb2MiKSkgewogIGluc3RhbGwucGFja2FnZXMoInBhbmRvYyIpCiAgbGlicmFyeShwYW5kb2MpCn0KCiMgUmVxdWlyZWQgcGFja2FnZXMgZm9yIE0yMCBMSUJTIGFuYWx5c2lzCmlmICghcmVxdWlyZSgicm1hcmtkb3duIikpIHsKICBpbnN0YWxsLnBhY2thZ2VzKCJybWFya2Rvd24iKQogIGxpYnJhcnkocm1hcmtkb3duKQp9CgppZiAoIXJlcXVpcmUoInN0cmluZ3IiKSkgewogIGluc3RhbGwucGFja2FnZXMoInN0cmluZ3IiKQogIGxpYnJhcnkoc3RyaW5ncikKfQoKaWYgKCFyZXF1aXJlKCJnZ2JpcGxvdCIpKSB7CiAgaW5zdGFsbC5wYWNrYWdlcygiZ2diaXBsb3QiKQogIGxpYnJhcnkoZ2diaXBsb3QpCn0KCmlmICghcmVxdWlyZSgia25pdHIiKSkgewogIGluc3RhbGwucGFja2FnZXMoImtuaXRyIikKICBsaWJyYXJ5KGtuaXRyKQp9CgppZiAoIXJlcXVpcmUoInJwYXJ0IikpIHsKICBpbnN0YWxsLnBhY2thZ2VzKCJycGFydCIpCiAgbGlicmFyeShycGFydCkKfQoKaWYgKCFyZXF1aXJlKCJycGFydC5wbG90IikpIHsKICBpbnN0YWxsLnBhY2thZ2VzKCJycGFydC5wbG90IikKICBsaWJyYXJ5KHJwYXJ0KQp9CgppZiAoIXJlcXVpcmUoImNhcmV0IikpIHsKICBpbnN0YWxsLnBhY2thZ2VzKCJjYXJldCIpCiAgbGlicmFyeShjYXJldCkKfQogIAppZiAoIXJlcXVpcmUoImdncmVwZWwiKSkgewogIGluc3RhbGwucGFja2FnZXMoImdncmVwZWwiKQogIGxpYnJhcnkoZ2dyZXBlbCkKfQoKaWYgKCFyZXF1aXJlKCJnZW9zcGhlcmUiKSkgewogIGluc3RhbGwucGFja2FnZXMoImdlb3NwaGVyZSIpCiAgbGlicmFyeShnZ3JlcGVsKQp9CgppZiAoIXJlcXVpcmUoImdndGVybiIpKSB7CiAgaW5zdGFsbC5wYWNrYWdlcygiZ2d0ZXJuIikKICBsaWJyYXJ5KGdncmVwZWwpCn0KCmlmICghcmVxdWlyZSgiZ2Vvc3BoZXJlIikpIHsKICBpbnN0YWxsLnBhY2thZ2VzKCJnZW9zcGhlcmUiKQogIGxpYnJhcnkoZ2Vvc3BoZXJlKQp9CmBgYAoKIyAxLjAgUHJvamVjdCBJbnRyb2R1Y3Rpb24KClRoZSBNYXJzIFByb2plY3QgaXMgZm9jdXNlZCBvbiBkYXRhIGZyb20gdGhlIDIwMjAgTWFycyBQZXJzZXZlcmFuY2UgUm92ZXIuIFRoZSBnb2FsIG9mIHRoZSBtaXNzaW9uIGlzIHRvIGxvb2sgZm9yIG1pY3JvYmlhbCBhbmNpZW50IGxpZmUgb3IgZm9ybXMgb2Ygd2F0ZXIgb24gTWFycyAodGhpbmdzIHRoYXQgY291bGQgc3VnZ2VzdCBsaWZlKS4gUGVyc2V2ZXJhbmNlIHVzZXMgbXVsdGlwbGUgaW5zdHJ1bWVudHMsIGluY2x1ZGluZyBQSVhMIChQbGFuZXRhcnkgSW5zdHJ1bWVudCBmb3IgWC1SYXkgTGl0aG9jaGVtaXN0cnkpLCBTSEVSTE9DIChTY2FubmluZyBIYWJpdGFibGUgRW52aXJvbm1lbnRzIHdpdGggUmFtYW4gYW5kIEx1bWluZXNjZW5jZSBmb3IgT3JnYW5pY3MgYW5kIENoZW1pY2FscykgYW5kIFNVUEVSQ0FNLiBTVVBFUkNBTSBoYXMgbXVsdGlwbGUgaW5zdHJ1bWVudHMgdGhhdCBtZWFzdXJlIHNwZWN0cm9zY29weSB0byBtZWFzdXJlIHByb3BlcnRpZXMgb2YgbWF0ZXJpYWxzIG9uIE1hcnMsIGluY2x1ZGluZyBMSUJTIChMYXNlci1pbmR1Y2VkIGJyZWFrZG93biBzcGVjdHJvc2NvcHkpLiBUaGlzIG5vdGVib29rIHdpbGwgcHJpbWFyaWx5IGZvY3VzIG9uIHRoZSBkYXRhIHdlIGhhdmUgYmVlbiBnaXZlbiBvZiBQSVhMIGFuZCBMSUJTLiAgCgojIDIuMCBPcmdhbml6YXRpb24gb2YgUmVwb3J0CgpUaGlzIHJlcG9ydCBpcyBvcmdhbml6ZSBhcyBmb2xsb3dzOiAKCiogU2VjdGlvbiAzLjAuICBGaW5kaW5nIDE6IExJQlMgYW5kIFBJWEwgTWF0Y2hpbmcgLSBXZSB3ZXJlIGFibGUgdG8gY29tYmluZSB0aGUgTElCUyBhbmQgUElYTCBkYXRhIHNldHMgYnkgcGlja2luZyBhIG1heGltdW0gZGlzdGFuY2UgdmFyaWFibGUgZnJvbSBhIFBJWEwgYWJyYXNpb24gYW5kIG1hdGNoaW5nIExJQlMgc2FtcGxlcyB0aGF0IHdlcmUgd2l0aGluIHRoZSBzZXQgZGlzdGFuY2Ugb2YgYSBQSVhMIGFicmFzaW9uLiAgCgoqIFNlY3Rpb24gNC4wOiBGaW5kaW5nIDI6IFNvaWwgQ29tcG9zaXRpb24gQW5hbHlzaXMgLSBVc2luZyB0aGUgTElCUyBhbmQgUElYTCBjb21iaW5lZCBkYXRhIHNldCwgSSBjcmVhdGVkIGEgcGxvdCBvZiB0aGUgY29tcG9zaXRpb24gcGVyY2VudGFnZXMgb2YgY2hlbWljYWwgY29tcG91bmRzIHN1Y2ggYXMgU2kwMiwgSzIwLCBldGMuIHVzaW5nIGxvZyBzY2FsaW5nIHRvIGNvbXBhcmUgdGhlIGNvbXBvc2l0aW9ucyBvZiBhIFBJWEwgYWJyYXNpb24gYW5kIHRoZSBjb3JyZXNwb25kaW5nIExJQlMgc2FtcGxlIGNvbXBvc2l0aW9ucyAoYmFzZWQgb24gdGhlIExJQlMgc2FtcGxlcyBmb3IgeCBkaXN0YW5jZSBhd2F5IGZyb20gYSBQSVhMIGFicmFzaW9uKS4KCiogU2VjdGlvbiA1LjAgRmluZGluZyAzOiBBbmFseXppbmcgQ2F0aW9uIENvbWJpbmF0aW9ucyB1c2luZyBMSUJTIGFuZCBQSVhMIG1hdGNoZWQgZGF0YTogVXNpbmcgdGhlIExJQlMgYW5kIFBJWEwgY29tYmluZWQgZGF0YSBzZXQsIHdlIGNyZWF0ZWQgYSB0ZXJuYXJ5IHBsb3QgdG8gc2hvdyB0aGUgZGlzdHJpYnV0aW9uIG9mIExJQlMgc2FtcGxlcyBzb3J0ZWQgYnkgd2hhdCBQSVhMIGFicmFzaW9uIHRoZXkgYXJlIGNsb3Nlc3QgdG8gKGJhc2VkIG9uIGEgY2hvc2VuIGRpc3RhbmNlIHZhcmlhYmxlKS4KCiogU2VjdGlvbiA2LjAgT3ZlcmFsbCBjb25jbHVzaW9ucyBhbmQgc3VnZ2VzdGlvbnMgCgoqIFNlY3Rpb24gNy4wIEFwcGVuZGl4IFRoaXMgc2VjdGlvbiBkZXNjcmliZSB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgd29ya3MgdGhhdCBtYXkgYmUgaGVscGZ1bCBpbiB0aGUgZnV0dXJlIHdvcms6IEFkZGl0aW9uYWwgU29pbCBDb21wb3NpdGlvbiBQbG90cyBvZiBMSUJTIGFuZCBQSVhMCgoKIyAzLjAgRmluZGluZyAxOiBQSVhMIGFuZCBMSUJTIE1hdGNoaW5nCgpGaXJzdGx5LCB3ZSB3aWxsIGJlIHRha2luZyBhIGxvb2sgYXQgaG93IFBJWEwgYW5kIExJQlMgY29ycmVzcG9uZC4gT3VyIGdyb3VwIGZvdW5kIHZlcnkgZWFybHkgaW4gb3VyIHJlc2VhcmNoIHRoYXQgdGhlcmUgd2Fzbid0IGEgZmVhdHVyZSBhbW9uZyB0aGVtIHRoYXQgY2FuIGJlIHVzZWQgdG8gbWF0Y2ggdGhlIGRhdGEgc2V0cy4gRm9yIGV4YW1wbGUsIHRoZSBjb2x1bW5zIG9mIFBJWEwgYXJlIG9yZ2FuaXplZCBieSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIGFzIHdlbGwgYXMgc2FtcGxlIG51bWJlciAoMS0xNiksIHNhbXBsZSBuYW1lLCBhbmQgYWJyYXNpb24gbmFtZS4gVW5mb3J0dW5hdGVseSwgTElCUyB3YXNuJ3Qgc29ydGVkIHRoZSBzYW1lIHdheS4gTElCUyB3YXMgb3JnYW5pemVkIGJ5IHRoZSBzb2wgdGhhdCB0aGUgc2FtcGxlIHdhcyB0YWtlbiBhdC4gTElCUyBpcyBicm9rZW4gdXAgaW50byBtYW55IGRpZmZlcmVudCB0eXBlcyBvZiBzYW1wbGVzIGFzIHdlbGwsIGluY2x1ZGluZyB0aGUgZmFjdCBpdCBjYXJyaWVzIGFyb3VuZCBlYXJ0aCByZWZlcmVuY2UgZGF0YSB0byBiZSB1c2VkIGluIGNvbXBhcmluZyB3aXRoIGRpZmZlcmVudCBzYW1wbGUgc2l0ZXMuIFRoYXQgYmVpbmcgc2FpZCwgaW4gb3JkZXIgdG8gbWF0Y2ggUElYTCB0YXJnZXRzIHRvIGNvcnJlc3BvbmRpbmcgTElCUyBzYW1wbGVzLCBNYXJnbyBhbmQgSSBjcmVhdGVkIGEgbmV3IGRhdGEgc2V0IHRoYXQgYWRkZWQgYW5vdGhlciBtZXRhZGF0YSBmZWF0dXJlIHRvIFBJWEwgKGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgY29vcmRpbmF0ZXMpIHdoaWNoIHdlIG9idGFpbmVkIGZyb20gdGhlIEFuYWx5c3QncyBOb3RlYm9vay4gT25jZSB0aGlzIHdhcyBhZGRlZCBpbiwgd2UgcmVhbGl6ZWQgdGhhdCB0aGUgbG9uZ2l0dWRlIGFuZCBsYXRpdHVkZSBkaWRuJ3QgcmVhbGx5IG1hdGNoLiBTbyBNYXJnbyBjcmVhdGVkIGEgZGlzdGFuY2UgZnVuY3Rpb24gdG8gbWF0Y2ggTElCUyBzYW1wbGVzIHRvIFBJWEwgdGFyZ2V0cyBiYXNlZCBvbiB3aGF0ZXZlciBkaXN0YW5jZSBhIHBlcnNvbiBzcGVjaWZpZXMuIE9yaWdpbmFsbHksIHdlIHNldCBpdCB0byBiZSByb3VuZGVkIHRvIHRocmVlIHRob3VzYW5kdGhzIGFuZCBtYXRjaCBiYXNlZCBvbiB0aGF0LgoKVGhpcyBoZWxwZWQgYW5zd2VyIHRoZSBxdWVzdGlvbiBvZiBob3cgY2FuIHdlIGNvcnJlbGF0ZSB0aGUgTElCUyBhbmQgUElYTCBkYXRhIHNldHMgdG8gYmUgYWJsZSB0byBwbG90IHRoZW0gb24gdGhlIHNhbWUgYXhpcyBvZiB3aGF0ZXZlciBwbG90IGlzIHRyeWluZyB0byBiZSBjcmVhdGVkLiBJIHdhcyBjdXJpb3VzIHRvIHNlZSBob3cgY2xvc2UgUElYTCB0YXJnZXRzIHdlcmUgdG8gTElCUyBzYW1wbGUgc2l0ZXMgYXMgd2VsbCBhcyBob3cgbWFueSBMSUJTIHNhbXBsZXMgd291bGQgYmUgYXNzb2NpYXRlZCB3aXRoIGEgUElYTCB0YXJnZXQgcGVyaGFwcyB3aXRoIGEgcmFkaXVzIG9mIDcgb3IgMTAgbWV0ZXJzLgoKIyMgMy4xIERhdGEsIENvZGUsIGFuZCBSZXNvdXJjZXMKCjEuIHBldGVyY19maW5hbFByb2plY3RGMjQuUm1kICh3aXRoIGtuaXQgcGRmIGFuZCBodG1sKSBpcyB0aGlzIG5vdGVib29rLgpbaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vU3R1ZGVudE5vdGVib29rcy9Bc3NpZ25tZW50MDhfRmluYWxQcm9qZWN0Tm90ZWJvb2svcGV0ZXJjX2ZpbmFsUHJvamVjdEYyNC5SbWRdKGh0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL1N0dWRlbnROb3RlYm9va3MvQXNzaWdubWVudDA3X0RyYWZ0RmluYWxQcm9qZWN0Tm90ZWJvb2svcGV0ZXJjX2ZpbmFsUHJvamVjdEYyNF9yb3VnaGRyYWZ0LlJtZCkKCgoyLiB2MV9saWJzX3RvX3NhbXBsZS5SZHMgaXMgdGhlIGNvbWJpbmVkIGRhdGEgc2V0IG9mIFBJWEwgYW5kIExJQlMgdGhhdCBpbmNsdWRlcyB0aGUgZGlzdGFuY2UgZnJvbSBhIFBJWEwgYWJyYXNpb24gdG8gYSBMSUJTIHNhbXBsZS4gIApbaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vU3R1ZGVudERhdGEvdjFfbGlic190b19zYW1wbGUuUmRzXShodHRwczovL2dpdGh1Yi5ycGkuZWR1L0RhdGFJTkNJVEUvREFSLU1hcnMtRjI0L2Jsb2IvbWFpbi9TdHVkZW50RGF0YS92MV9saWJzX3RvX3NhbXBsZS5SZHMpLiAKCkZpcnN0bHksIHdlIHNldCB0aGUgbnVtYmVyIG9mIG1ldGVycyBkaXN0YW5jZSB0aHJlc2hvbGQgYmV0d2VlbiBhIFBJWEwgYWJyYXNpb24gYW5kIExJQlMgc2FtcGxlLiBXaXRoaW4gdGhlIHYxX2xpYnNfdG9fc2FtcGxlLlJkcywgd2hpY2ggTWFyZ28gYW5kIEkgY29sbGFib3JhdGVkIG9uIHRoZXJlIGlzIGEgZGlzdGFuY2UgdmFyaWFibGUgdGhhdCBpcyBzZXQgdmlhIGEgZnVuY3Rpb24gdGhhdCBNYXJnbyBjcmVhdGVkIHRvIG1lYXN1cmUgdGhlIGRpc3RhbmNlIGJldHdlZW4gYSBQSVhMIGFicmFzaW9uIGFuZCBMSUJTIHNhbXBsZSB1c2luZyB0aGVpciBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIGNvb3JkaW5hdGVzLiA3IG1ldGVycyBpcyB0aGUgYmVzdCBtZXRyaWMgYmVjYXVzZSB0aGF0IGlzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIHRoZSBMSUJTIGluc3RydW1lbnQgY2FuIGFjY3VyYXRlbHkgY29sbGVjdCBkYXRhIGZyb20uCmBgYHtyfQptZXRlcnMgPC0gNwpgYGAKClRvIHByZXBhcmUgdGhlIGRhdGEsIHdlIHdpbGwgbG9hZCBpbiB0aGUgdjFfbGlic190b19zYW1wbGUuUmRzLCBncm91cCBieSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIG9mIExJQlMsIGFuZCBmaWx0ZXIgb3V0IGV2ZXJ5IExJQlMgc2FtcGxlIHRoYXQgaGFzIGEgbGFyZ2VyIGRpc3RhbmNlIGZyb20gaXRzIGNvcnJlc3BvbmRpbmcgUElYTCBhYnJhc2lvbiB0aGFuIHNwZWNpZmllZCBpbiB0aGUgY2hvc2VuIGRpc3RhbmNlIChtZXRlcikgdmFsdWUuIEluIG9yZGVyIHRvIG1ha2UgYSBzY2F0dGVyIHBsb3Qgb2YgdGhlIExJQlMgYW5kIFBJWEwgcG9pbnRzLCB3ZSB3aWxsIGNyZWF0ZSBhIG5ldyBkYXRhIGZyYW1lIG9mIGVhY2ggdW5pcXVlIFBJWEwgYWJyYXNpb24gYW5kIGl0cyBjb29yZGluYXRlcy4gVGhhdCBpcyB0aGUgdW5pcXVlX3BpeGwgZGF0YSBmcmFtZSB3aGljaCB3aWxsIGJlIHVzZWQgdG8gcGxvdCB0aGUgUElYTCBhYnJhc2lvbiBjb29yZGluYXRlcy4KCmBgYHtyIH0KbGlic190b19zYW1wbGUgPC0gcmVhZFJEUygifi9EQVItTWFycy1GMjQvU3R1ZGVudERhdGEvdjFfbGlic190b19zYW1wbGUuUmRzIikKI21ha2UgYSBmaWx0ZXJlZCBkYXRhIGZyYW1lIHRoYXQgcGlja3MgdGhlIG1heCBwb2ludCBvdXQgb2YgYWxsIGxpYnMgc2FtcGxlcyBhdCBhIGNlcnRhaW4gdGFyZ2V0IAojIGZvciBzaW1wbGljaXR5CmRmX2ZpbHRlcmVkIDwtIGxpYnNfdG9fc2FtcGxlICU+JQogIGdyb3VwX2J5KExhdC5saWJzLCBMb24ubGlicykgJT4lCiAgZmlsdGVyKFBvaW50LmxpYnMgPT0gbWF4KFBvaW50LmxpYnMpKSAlPiUKICB1bmdyb3VwKCkKZGZfZGlzdGFuY2VfZmlsdGVyIDwtIGRmX2ZpbHRlcmVkW2RmX2ZpbHRlcmVkJERpc3RhbmNlIDw9IG1ldGVycyxdCgojbWFrZSBhIGRhdGEgZnJhbWUgd2l0aCB0aGUgdW5pcXVlIHBpeGwgY29vcmRpbmF0ZXMgc2luY2UgdGhleSBhcmUgaW4gcGFpcnMgb2YgaWRlbnRpY2FsIGxhdC9sb24KdW5pcXVlX3BpeGwgPC0gZGZfZmlsdGVyZWQgJT4lCiAgc2VsZWN0KExhdC5waXhsLCBMb24ucGl4bCwgQWJyYXNpb24ucGl4bCkgJT4lIGRpc3RpbmN0KCkKYGBgCgoKIyMgMy4yIENvbnRyaWJ1dGlvbgoKVGhlIGxvZ2lzdGljcyBvZiBmaWx0ZXJpbmcgdGhlIG9yaWdpbmFsIGRhdGEgc2V0IGlzIG15IHdvcmsuIFByZXZpb3VzbHksIEkgaGFkIHRvIGRvIGEgbG90IG1vcmUgZmlsdGVyaW5nIGluIG9yZGVyIHRvIGNob29zZSB0aGUgZGlzdGFuY2UgYW5kIGdldCB1bmlxdWUgTElCUyBwb2ludHMgaW4gb3JkZXIgdG8gbm90IHB1dCB0b28gbWFueSBwb2ludHMgb24gdGhlIHNjYXR0ZXJwbG90LiBNYXJnbyBhbmQgSSB3b3JrZWQgdG9nZXRoZXIgdG8gY3JlYXRlIHRoZSBkYXRhIHNldCB0aGF0IEkgdXNlIGluIHRoaXMgc2VjdGlvbiAodjFfbGlic190b19zYW1wbGUuUmRzKSBieSBkZWNpZGluZyBob3cgdG8gbWF0Y2ggdXAgTElCUyB0byBjZXJ0YWluIFBJWEwgYWJyYXNpb25zLiBNYXJnbyBjcmVhdGVkIHRoZSBkaXN0YW5jZSBmdW5jdGlvbiB0byBmaW5kIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIFBJWEwgYWJyYXNpb25zIGFuZCBMSUJTIHNhbXBsZXMgYW5kIGFkZGVkIHRoYXQgY29sdW1uIHRvIHRoZSBkYXRhIHNldC4gVGhlbiwgRG9uYSBmaXhlZCBhbGwgdGhlIG5hbWluZyBjb252ZW50aW9ucyBpbiB0aGUgZGF0YSBzZXQgaW4gb3JkZXIgdG8gaGF2ZSBjb25zaXN0ZW5jeSBhbmQgbWFrZSBpdCBlYXN5IHRvIHRlbGwgd2hpY2ggdmFyaWFibGUgd2FzIG9yaWdpbmFsbHkgZnJvbSBlYWNoIGRhdGEgc2V0IChleC4gTmFtZS5waXhsLCBUYXJnZXQubGlicykuIEkgdGhlbiB1c2VkIHRoZSBkYXRhIHRvIGNyZWF0ZSBwbG90cyBhbmQgYW5hbHl6ZS4gQmVsb3cgaXMgYSBzY2F0dGVycGxvdCBzaG93Y2FzaW5nIHRoZSBkaXN0cmlidXRpb24gb2YgUElYTCBhYnJhc2lvbnMgYW5kIGNvcnJlc3BvbmRpbmcgTElCUyBzYW1wbGVzIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgbWF4IGRpc3RhbmNlIGJldHdlZW4gdGhlbS4gCgoKIyMgMy4zIE1ldGhvZHMgRGVzY3JpcHRpb24gCgpJIGNob3NlIHRvIHVzZSBnZ3Bsb3QgdG8gZGlzcGxheSB0aGUgTElCUyBhbmQgUElYTCBkYXRhIGZvciBlYXNpZXIgYW5hbHlzaXMgb2Ygc2VlaW5nIGhvdyBtYW55IExJQlMgc2FtcGxlcyBhbGlnbiB3aXRoIGRpZmZlcmVudCBQSVhMIGFicmFzaW9ucy4gSXQgd2FzIHZlcnkgaW50ZXJlc3RpbmcgdG8gY2hhbmdlIGFyb3VuZCB0aGUgbWF4IGRpc3RhbmNlIGFuZCBzZWUgd2hpY2ggYWxpZ25lZCB3aXRoIHdoaWNoIGFicmFzaW9uLiBJbiB0ZXJtcyBvZiBleGVjdXRpb24sIGl0IHRvb2sgbWUgYSBiaXQgb2YgdGltZSB0byBvcmdhbml6ZSBhbGwgb2YgdGhlIHRob3VnaHRzIE1hcmdvIGFuZCBJIGhhZCBvbiBob3cgdG8gY3JlYXRlIGFuZCBtYW5hZ2UgdGhpcyBkYXRhIHNldC4gT3JpZ2luYWxseSwgd2UgaGFkIHJvdW5kZWQgdGhlIGRpc3RhbmNlcyB0byB0aGUgbmVhcmVzdCB0aG91c2FuZHRoIHRvIG1hdGNoIHRoZW0sIGFuZCB0aGVuIHdlcmUgcGxvdHRpbmcgdGhhdCB3YXkuIEhvd2V2ZXIsIHRoYXQgbGVmdCBhIGxvdCBvZiByb29tIGZvciBlcnJvciBhbmQgd2Fzbid0IGFzIGFjY3VyYXRlLiBDcmVhdGluZyBhIGRpc3RhbmNlIGZ1bmN0aW9uIGFsbG93cyBmb3IgdGhlIHNjaWVudGlzdCBvciBwZXJzb24gdXNpbmcgdGhlIE1hcnMgTWlzc2lvbiBNaW5kZXIgQXBwIHRvIGNob29zZSB3aGF0ZXZlciBkaXN0YW5jZSB0aGV5IHdvdWxkIGxpa2UgYW5kIGFsbG93cyBmb3IgbXVjaCBtb3JlIGZ1bmN0aW9uYWxpdHkuIE1vZGlmeWluZyB0aGUgZGF0YSBzZXQgbW9yZSBlbmRlZCB1cCBiZWluZyBtb3JlIGVmZmljaWVudCB0aGFuIGFkZGluZyBzbWFsbCBlZGl0cyBhcyBJIHdhcyBtYWtpbmcgbXkgcGxvdHMgd2hpY2ggd2FzIG9yaWdpbmFsbHkgbWFraW5nIG1lIGNyYXp5IChhcyBpbiBjaGFuZ2luZyB2YXJpYWJsZSB0eXBlcyBpZiB0aGV5IHdlcmVuJ3Qgd2hhdCB0aGV5IHdlcmUgc3VwcG9zZWQgdG8gYmUpLiBJbiB0aGUgZW5kLCBJIGxlYXJuZWQgYSBsb3QgYWJvdXQgZGF0YSBvcmdhbml6YXRpb24gYW5kIHRoYXQgY29uc2lzdGVuY3kgYW5kIHN0YXlpbmcgb3JnYW5pemVkIGlzIGtleSBhbmQgc2F2ZXMgYSBsb3Qgb2YgdGltZSBsYXRlciBvbi4KCgojIyAzLjQgUmVzdWx0IGFuZCBEaXNjdXNzaW9uIAoKVG8gY3JlYXRlIGEgcGxvdCBvZiB0aGUgTElCUyBhbmQgUElYTCBkYXRhIG9yZ2FuaXplZCBieSB3aGF0IExJQlMgc2FtcGxlcyBhbGlnbiB3aXRoIHdoYXQgYWJyYXNpb25zLCBmaXJzdCBwbG90dGVkIHRoZSBMSUJTIHNhbXBsZXMgY29sb3JlZCBieSB3aGF0IFBJWEwgYWJyYXNpb24gdGhleSB3ZXJlIGNsb3Nlc3QgdG8sIGFuZCB0aGVuIHBsb3R0ZWQgdGggUElYTCBhYnJhc2lvbnMgYXMgcmVkIHN0YXJzIG9uIHRoZSBwbG90IHRvIHNob3cgd2hlcmUgdGhlIFBJWEwgYWJyYXNpb25zIHdlcmUgcmVsYXRpdmUgdG8gdGhlIExJQlMgc2FtcGxlcy4KCmBgYHtyIH0KI3Bsb3Qgb2YgbGlicyBhbmQgcGl4bCBkYXRhIGJ5IGxhdC9sb24KZ2dwbG90KGRhdGEgPSBkZl9kaXN0YW5jZV9maWx0ZXIpICsKICBnZW9tX3BvaW50KG1hcHBpbmcgPSBhZXMoeCA9IExvbi5saWJzLCB5ID0gTGF0LmxpYnMsIGNvbG9yID0gQWJyYXNpb24ucGl4bCkpICsgICAgICAgICAgICAgICAgICMgQ29sb3IgYnkgYWJyYXNpb24KICBnZW9tX3BvaW50KG1hcHBpbmcgPSBhZXMoeCA9IExvbi5waXhsLCB5ID0gTGF0LnBpeGwpLCBkYXRhID0gdW5pcXVlX3BpeGwsIGNvbG9yID0gInJlZCIsIHNoYXBlID0gMywgc2l6ZSA9IDMpICsgIyBGaXhlZCBjb2xvciBmb3IgdW5pcXVlX3BpeGwgcG9pbnRzCiAgZ2VvbV90ZXh0X3JlcGVsKG1hcHBpbmcgPSBhZXMoeCA9IExvbi5waXhsLCB5ID0gTGF0LnBpeGwsIGxhYmVsID0gQWJyYXNpb24ucGl4bCksIGRhdGEgPSB1bmlxdWVfcGl4bCwKICAgICAgICAgICAgICAgICAgdmp1c3QgPSAyLCBjb2xvciA9ICJyZWQiKSArCiAgbGFicyh0aXRsZSA9IHBhc3RlKCJMSUJTIFNhbXBsZXMgYW5kIFBJWEwgQWJyYXNpb25zIHdpdGhpbiIsIG1ldGVycywgIm1ldGVycyIpLAogICAgICAgeCA9ICJMb25naXR1ZGUiLAogICAgICAgeSA9ICJMYXRpdHVkZSIsCiAgICAgICBjb2xvciA9ICJQSVhMIEFicmFzaW9uIiwKICAgICAgIGNhcHRpb24gPSAiRGF0YSBjb2xsZWN0ZWQgdXNpbmcgTElCUyBhbmQgUElYTCBpbnN0cnVtZW50cyBvbiBQZXJzZXJ2ZXJhbmNlIHJvdmVyLlxuIFNob3dzIFBJWEwgYWJyYXNpb25zIHBsb3R0ZWQgYXMgcmVkIHN0YXJzLFxuIGFuZCB0aGUgY29ycmVzcG9uZGluZyBMSUJTIHNhbXBsZXMgY29sb3JlZCBieSB0aGVpciBjbG9zZXN0IFBJWEwgYWJyYXNpb24uIikrICAgICAgICAgICMgTGFiZWwgZm9yIHRoZSBjb2xvciBsZWdlbmQgCiAjIENlbnRlciB0aGUgY2FwdGlvbiBvbiB0aGUgbGVmdCBzaWRlCiAgdGhlbWUoCiAgICBwbG90LmNhcHRpb24gPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwKSAgIyBBbGlnbnMgY2FwdGlvbiB0byB0aGUgbGVmdAogICkKYGBgCldoZW4gbG9va2luZyBhdCB0aGlzIHBsb3QsIHRoZSBkYXRhIGZyYW1lIG9mIHRoZSBmaWx0ZXJlZCBMSUJTIGRhdGEgKGRmX2Rpc3RhbmNlX2ZpbHRlcikgYmFzZWQgb24gZGlzdGFuY2VzIHRvIGEgUElYTCBhYnJhc2lvbiBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNyBtZXRlcnMgZmluZHMgMyBMSUJTIHNhbXBsZXMgY29ycmVzcG9uZGluZyB0byBBbGZhbGZhLCAyIGNvcnJlc3BvbmRpbmcgdG8gQmVsbGVncmFkZSwgMyBjb3JyZXNwb25kaW5nIHRvIERvdXJiZXMsIDcgY29ycmVzcG9uZGluZyB0byBOb3ZhcnVwdGEsIDQgY29ycmVzcG9uZGluZyB0byBRdWFydGllciwgYW5kIDkgY29ycmVzcG9uZGluZyB0byBUaG9ybnRvbiBHYXAuIAoKIyMgMy41IENvbmNsdXNpb25zLCBMaW1pdGF0aW9ucywgYW5kIEZ1dHVyZSBXb3JrLgoKSSBiZWxpZXZlIG15IGZpbmRpbmdzIG1ha2UgaXQgdmVyeSBlYXN5IGZvciByZXNlYXJjaGVycyBhbmQgc2NpZW50aXN0cyB0byBoYXZlIGEgdmlzdWFsaXphdGlvbiBvZiBQSVhMIGFuZCBMSUJTIHNhbXBsZXMgdGhhdCB0aGV5IHdhbnQgdG8gc2VlIGJhc2VkIG9uIHdoYXQgbWF4IGRpc3RhbmNlIHRoZXkgYXJlIGZvY3VzaW5nIG9uIHdoZW4gZXhhbWluaW5nIFBJWEwgYW5kIExJQlMgdG9nZXRoZXIuIEZvciBmdXR1cmUgd29yaywgSSB0aGluayBhcyBtb3JlIGNvb3JkaW5hdGVzIGFuZCBkYXRhIGlzIGFkZGVkIHRvIHRoZSBMSUJTIGFuZCBQSVhMIGRhdGEgc2V0cyBhcyB0aGV5IGJlY29tZSBhdmFpbGFibGUgZnJvbSBOQVNBIHRoaXMgd2lsbCBjb250aW51ZSB0byBiZSBidWlsdCB1cG9uIGFuZCBhbHRob3VnaCBpdCBpc24ndCBzdXBlciBjb21wbGljYXRlZCBvZiBhIHBsb3QsIGl0IHByb3ZpZGVzIGEgdmVyeSBuZWNlc3NhcnkgY29udGV4dCB0byB2aXN1YWxpemUgUElYTCBhbmQgTElCUy4gSSBkaWRuJ3QgZmluZCBtYW55IGxpbWl0YXRpb25zIGluIHRoaXMgcGxvdCBhcyBpdCBiYXNpY2FsbHkgaXMgb25seSBwcm92aWRpbmcgYW4gZWFzeSB2aXN1YWwgb2YgdGhlIFBJWEwgYW5kIExJQlMgZGF0YSB0b2dldGhlci4KCiMgNC4wIEZpbmRpbmcgMjogU29pbCBDb21wb3NpdGlvbiBBbmFseXNpcwoKVXNpbmcgdGhlIExJQlMgYW5kIFBJWEwgY29tYmluZWQgZGF0YSBzZXQsIEkgY3JlYXRlZCBhIHBsb3Qgb2YgdGhlIGNvbXBvc2l0aW9uIHBlcmNlbnRhZ2VzIG9mIGNoZW1pY2FsIGNvbXBvdW5kcyBzdWNoIGFzIFNpMDIsIEsyMCwgZXRjLiB1c2luZyBsb2cgc2NhbGluZyB0byBjb21wYXJlIHRoZSBjb21wb3NpdGlvbnMgb2YgYSBQSVhMIGFicmFzaW9uIGFuZCB0aGUgY29ycmVzcG9uZGluZyBMSUJTIHNhbXBsZSBjb21wb3NpdGlvbnMgKGJhc2VkIG9uIHRoZSBMSUJTIHNhbXBsZXMgZm9yIHggZGlzdGFuY2UgYXdheSBmcm9tIGEgUElYTCBhYnJhc2lvbikuIFRoZSBxdWVzdGlvbiBJIHdhcyB0cnlpbmcgdG8gYW5zd2VyIHdhcyBob3cgZG9lcyB0aGUgTElCUyBkYXRhIG9mIGEgY2VydGFpbiBhcmVhIGNvbXBhcmUgdG8gdGhlIFBJWEwgZGF0YSBvZiB0aGF0IGFyZWE/IEFyZSB0aGVyZSBtYW55IGRpZmZlcmVuY2VzIGJldHdlZW4gbG9jYXRpb25zIChtZWFuaW5nIHdoaWNoIGFicmFzaW9ucyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBMSUJTIHRhcmdldHMgYXJlIGRpZmZlcmVudCBhbmQgaW4gd2hhdCB3YXlzLCBkbyBpZ25lb3VzIHZzLiBzZWRpbWVudGFyeSBzaG93IGEgcGF0dGVybj8pLiBJbiBvcmRlciB0byBhY2NvbXBsaXNoIHRoaXMsIHdlIHdpbGwgdXNlIGEgZGlzdGFuY2UgZnVuY3Rpb24gdG8gZmlsdGVyIHdpdGhpbiA3IG1ldGVycyBvZiBkaXN0YW5jZSBiZXR3ZWVuIGEgUElYTCBzYW1wbGUgYW5kIExJQlMgdGFyZ2V0ICh0aGlzIGlzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIG9mIGFjY3VyYWN5IGJhc2VkIG9uIE5BU0EncyBpbmZvcm1hdGlvbiBvbiBMSUJTIHNwZWN0cm9zY29weSBtYWNoaW5lcnkpLiBUaGVuLCB0aGUgZGF0YSBmb3IgZWFydGggcXVhcnRpbGUgcmVmZXJlbmNlcyAoZmlyc3QgYW5kIHRoaXJkIHF1YXJ0aWxlcyBhbmQgbWVkaWFuKSwgUElYTCBhYnJhc2lvbiBjaGVtaWNhbCBjb21wb3NpdGlvbiwgYW5kIGNvcnJlc3BvbmRpbmcgTElCUyB0YXJnZXQgY2hlbWljYWwgY29tcG9zaXRpb25zIHdpbGwgYmUgcGxvdHRlZCBiYXNlZCBvbiB0aGUgY2hvc2VuIFBJWEwgYWJyYXNpb24gKG9ubHkgb25lIGFicmFzaW9uIGlzIHBsb3R0ZWQgYXQgYSB0aW1lKS4gCgojIyA0LjEgRGF0YSwgQ29kZSwgYW5kIFJlc291cmNlcwoKMS4gcGV0ZXJjX2ZpbmFsUHJvamVjdEYyNC5SbWQgKHdpdGgga25pdCBwZGYgYW5kIGh0bWwpIGlzIHRoaXMgbm90ZWJvb2suCltodHRwczovL2dpdGh1Yi5ycGkuZWR1L0RhdGFJTkNJVEUvREFSLU1hcnMtRjI0L2Jsb2IvbWFpbi9TdHVkZW50Tm90ZWJvb2tzL0Fzc2lnbm1lbnQwOF9GaW5hbFByb2plY3ROb3RlYm9vay9wZXRlcmNfZmluYWxQcm9qZWN0RjI0LlJtZF0oaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vU3R1ZGVudE5vdGVib29rcy9Bc3NpZ25tZW50MDdfRHJhZnRGaW5hbFByb2plY3ROb3RlYm9vay9wZXRlcmNfZmluYWxQcm9qZWN0RjI0X3JvdWdoZHJhZnQuUm1kKQoKMi4gcGV0ZXJjX2Fzc2lnbm1lbnQ1LlJtZCAod2l0aCBrbml0IHBkZiBhbmQgaHRtbCkgd2hpY2ggaXMgbXkgcHJldmlvdXMgbm90ZWJvb2suCltodHRwczovL2dpdGh1Yi5ycGkuZWR1L0RhdGFJTkNJVEUvREFSLU1hcnMtRjI0L3RyZWUvbWFpbi9TdHVkZW50Tm90ZWJvb2tzL0Fzc2lnbm1lbnQwNS9wZXRlcmNfYXNzaWdubWVudDA1LlJtZF0oaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC90cmVlL21haW4vU3R1ZGVudE5vdGVib29rcy9Bc3NpZ25tZW50MDUvcGV0ZXJjX2Fzc2lnbm1lbnQwNS5SbWRdKQoKMy4gc3VwZXJjYW1fbGlic19tb2NfbG9jLlJkcyB3aGljaCBpcyB0aGUgb3JpZ2luYWwgTElCUyBkYXRhIGdpdmVuIHRvIG91ciByZXNlYXJjaCBncm91cC4KW2h0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL0RhdGEvc3VwZXJjYW1fbGlic19tb2NfbG9jLlJkc10oaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vRGF0YS9zdXBlcmNhbV9saWJzX21vY19sb2MuUmRzKQoKNC4gcGl4bF9zb2xfY29vcmRpbmF0ZXMuUmRzLCB3aGljaCBpcyB0aGUgZGF0YSBzZXQgY29udGFpbmluZyB0aGUgUElYTCBkYXRhLCBzb2wsIGFuZCBjb29yZGluYXRlcy4KW2h0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL1N0dWRlbnREYXRhL3BpeGxfc29sX2Nvb3JkaW5hdGVzLlJkc10oaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vU3R1ZGVudERhdGEvcGl4bF9zb2xfY29vcmRpbmF0ZXMuUmRzKQoKNC4gTElCU190cmFpbmluZ19zZXRfcXVhcnRpbGVzLlJkcyBpcyB0aGUgZGF0YSB3aXRoIGVhcnRoIHF1YXJ0aWxlIHJlZmVyZW5jZSBkYXRhLgpbaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vRGF0YS9MSUJTX3RyYWluaW5nX3NldF9xdWFydGlsZXMuUmRzXShodHRwczovL2dpdGh1Yi5ycGkuZWR1L0RhdGFJTkNJVEUvREFSLU1hcnMtRjI0L2Jsb2IvbWFpbi9EYXRhL0xJQlNfdHJhaW5pbmdfc2V0X3F1YXJ0aWxlcy5SZHMpLiAKClRvIHByZXBhcmUgdGhlIGRhdGEsIEkgc3RhcnQgYnkgbG9hZGluZyBpbiB0aGUgTElCUyBkYXRhLiBUaGVuLCB3ZSBkcm9wIHRoZSBzdGFuZGFyZCBkZXZpYXRpb24gY29sdW1ucyBhbmQgc3VtIG9mIHBlcmNlbnRhZ2UgY29sdW1ucyBsZWF2aW5nIHVzIHdpdGgganVzdCB0aGUgd2VpZ2h0ZWQgY29tcG9zaXRpb24gaW4gdGVybXMgb2YgbnVtZXJpY2FsIGRhdGEuIFdlIGFsc28gcmVtb3ZlIHRoZSBzY2N0IHZhbHVlcywgYXMgdGhvc2UgdmFsdWVzIGFyZSB0aGUgb25lcyB0aGF0IGFyZSBlYXJ0aCByZWZlcmVuY2Ugc2FtcGxlcyB0aGF0IFBlcnNldmVyYW5jZSBjYXJyaWVzIHdpdGggaXQuIFRoZXJlZm9yZSwgdGhleSB3aWxsIG5vdCBiZSB2ZXJ5IHJlbGV2YW50IHdoZW4gcGxvdHRpbmcgdGhlIExJQlMgZGF0YSBhcyB3ZSBhcmUgZm9jdXNlZCBvbiB0aGUgTWFycyBzb2lsIGNvbXBvc2l0aW9ucy4KCmBgYHtyfQojRWFydGggcXVhcnRpbGVzCmVhcnRocXVhcnRpbGVzLmRmPC1yZWFkUkRTKCIvYWNhZGVtaWNzL01BVFAtNDkxMC1GMjQvREFSLU1hcnMtRjI0L0RhdGEvTElCU190cmFpbmluZ19zZXRfcXVhcnRpbGVzLlJkcyIpCiNMb2FkIGluIExJQlMgZGF0YQpsaWJzLmRmIDwtIHJlYWRSRFMoIi9hY2FkZW1pY3MvTUFUUC00OTEwLUYyNC9EQVItTWFycy1GMjQvRGF0YS9zdXBlcmNhbV9saWJzX21vY19sb2MuUmRzIikKI0Ryb3AgdGhlIHN0YW5kYXJkIGRldmlhdGlvbiBmZWF0dXJlcywgdGhlIHN1bSBvZiB0aGUgcGVyY2VudGFnZXMsIAojdGhlIGRpc3RhbmNlLCBhbmQgdGhlIHRvdGFsIGZyZXF1ZW5jaWVzCmxpYnMuZGYgPC0gbGlicy5kZiAlPiUgCiAgc2VsZWN0KCEoYyhkaXN0YW5jZV9tbSxUb3QuRW0uLFNpTzJfc3RkZXYsVGlPMl9zdGRldixBbDJPM19zdGRldixGZU9UX3N0ZGV2LAogICAgICAgICAgICAgTWdPX3N0ZGV2LE5hMk9fc3RkZXYsQ2FPX3N0ZGV2LEsyT19zdGRldixUb3RhbCkpKQojIENvbnZlcnQgdGhlIHBvaW50cyB0byBudW1lcmljCmxpYnMuZGYkcG9pbnQgPC0gYXMubnVtZXJpYyhsaWJzLmRmJHBvaW50KQpsaWJzLmRmWyw2OjEzXSA8LSBzYXBwbHkobGlicy5kZlssNjoxM10sYXMubnVtZXJpYykKI3JlbW92ZSB0aGUgc2NjdC9yZWZlcmVuY2Ugc2FtcGxlcwpsaWJzLmRmPC1saWJzLmRmJT4lCiAgZmlsdGVyKCEoZ3JlcGwoInNjY3QiLCB0YXJnZXQpKSkKI2FkZCBhIGNvbHVtbiB0byBpbmRpY2F0ZSB0aGUgbmVhcmVzdCBwaXhsCmxpYnMuZGY8LWNiaW5kKG5lYXJlc3RwaXhsPTAsbGlicy5kZikKI21ha2UgYSBkYXRhZnJhbWUgb2YganVzdCB0aGUgTElCUyBMYXQvTG9uZyBhbmQgdGFyZ2V0IG5hbWUgYW5kIHJlbW92ZSBkdXBsaWNhdGVzCmxpYnN0YXJnZXRzLmRmPC1saWJzLmRmWyxjKDEsMyw0LDUpXQpsaWJzdGFyZ2V0cy5kZjwtZGlzdGluY3QobGlic3RhcmdldHMuZGYpCmBgYAoKU2V0IG1ldGVycyBhbmQgY2hvc2VuIGFicmFzaW9uIHRvIGFjdCBhcyBhIHNsaWRlciBpbiB0aGUgMmQgYXBwLgpgYGB7cn0KI0Nob29zZSBtYXggZGlzdGFuY2UgdmFyaWFibGUgYmV0d2VlbiBQSVhMIGFuZCBMSUJTIGRhdGEKbWV0ZXJzID0gNwojQ2hvb3NlIFBJWEwgYWJyYXNpb24geW91IHdhbnQgdG8gbG9vayBhdAphYnJhc2lvbl9uYW1lID0gIlRob3JudG9uR2FwIgpgYGAKCk5leHQsIHdlIGxvYWQgaW4gdGhlIFBJWEwgZGF0YS4gV2UgcmVtb3ZlIHRoZSBhdG1vc3BoZXJpYyBzYW1wbGUgYW5kIG9ubHkgc2VsZWN0IG9uZSBQSVhMIHNhbXBsZSBvZiBlYWNoIGFicmFzaW9uLgpgYGB7ciwgZGF0YTAyfQojcmVhZCBpbiBwaXhsIGRhdGEgd2l0aCBsYXQvbG9uZwpwaXhsLmRmPC1yZWFkUkRTKCIvYWNhZGVtaWNzL01BVFAtNDkxMC1GMjQvREFSLU1hcnMtRjI0L1N0dWRlbnREYXRhL3BpeGxfc29sX2Nvb3JkaW5hdGVzLlJkcyIpCiNpbmNsdWRlIG9ubHkgcGl4bCBtZXRhZGF0YQpwaXhsLmRmPC1waXhsLmRmICU+JQogIHNlbGVjdChjKDEsMiwxOSwyMCwyMikpCiNjb252ZXJ0IExhdC9Mb25nIHRvIG51bWVyaWMKcGl4bC5kZiRMYXQgPC0gYXMubnVtZXJpYyhwaXhsLmRmJExhdCkKcGl4bC5kZiRMb25nIDwtIGFzLm51bWVyaWMocGl4bC5kZiRMb25nKQojcmVtb3ZlIHJvd3Mgc28gd2Ugb25seSBoYXZlIG9uZSBzYW1wbGUgcGVyIGFicmFzaW9uIGFuZCByZW1vdmUgYXRtb3NwaGVyaWMgc2FtcGxlCnBpeGwuZGY8LXBpeGwuZGZbYygyLDQsNiw4LDEwLDEyLDE0LDE2KSxdCmBgYAoKTmV4dCwgd2Ugd2lsbCBpbml0aWFsaXplIGEgZGlzdGFuY2UgdmFyaWFibGUgKHRvIGluZGljYXRlIGRpc3RhbmNlIGJldHdlZW4gUElYTCBhYnJhc2lvbiBhbmQgTElCUyB0YXJnZXQpIGFuZCBhbHNvIGluaXRpYWxpemUgZWFjaCBQSVhMIGFicmFzaW9uLCB3aGljaCB3aWxsIGJlIHVzZWQgdG8gbWFyayB3aGljaCBQSVhMIGFicmFzaW9uIHRoZSBMSUJTIHNhbXBsZSBpcyBjbG9zZXN0IHRvIGJ5IHVzaW5nIGEgZmFjdG9yIG9mIDAgb3IgMS4gCmBgYHtyfQpsaWJzdGFyZ2V0cy5kZjwtY2JpbmQobGlic3RhcmdldHMuZGYsIkRpc3RhbmNlIj0wLCJCZWxsZWdyYWRlIj0wLCJEb3VyYmVzIj0wLCJRdWFydGllciI9MCwiQWxmYWxmYSI9MCwiVGhvcm50b25HYXAiPTAsIkJlcnJ5IEhvbGxvdyI9MCwiTm92YXJ1cHRhIj0wLCJVZ2FuaWsgSXNsYW5kIj0wKQpgYGAKClRoZSBkaXN0YW5jZSBmdW5jdGlvbiBiZWxvdyB3aWxsIGNhbGN1bGF0ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIExJQlMgdGFyZ2V0IGFuZCBhbGwgdGhlIFBJWEwgYWJyYXNpb25zLCBhbmQgcGljayB0aGUgc21hbGxlc3QgZGlzdGFuY2UgdG8gcGljayB0aGUgY2xvc2VzdCBQSVhMIGFicmFzaW9uIHRvIHRoYXQgTElCUyB0YXJnZXQuCmBgYHtyfQpmb3IoaSBpbiAxOm5yb3cobGlic3RhcmdldHMuZGYpKSB7CiAgICBsaWJzdGFyZ2V0cy5kZltpLGMoNjoxMyldPC1jKGRpc3RIYXZlcnNpbmUocGl4bC5kZlsxLGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZlsyLGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZlszLGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZls0LGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZls1LGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZls2LGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZls3LGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RIYXZlcnNpbmUocGl4bC5kZls4LGMoMSwyKV0sbGlic3RhcmdldHMuZGZbaSxjKDIsMyldLHI9MzM5MzE2OSkpCiAgICAKICAgIGxpYnN0YXJnZXRzLmRmW2ksMV08LXdoaWNoLm1pbihsaWJzdGFyZ2V0cy5kZltpLGMoNjoxMyldKQogICAgbGlic3RhcmdldHMuZGZbaSw1XTwtbWluKGxpYnN0YXJnZXRzLmRmW2ksYyg2OjEzKV0pCn0KbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw8LWFzLmZhY3RvcihsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bCkKbGV2ZWxzKGxpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsKTwtKGMoIkJlbGxlZ3JhZGUiLCJEb3VyYmVzIiwiUXVhcnRpZXIiLCJBbGZhbGZhIiwiVGhvcm50b25HYXAiLCJCZXJyeSBIb2xsb3ciLCJOb3ZhcnVwdGEiLCJVZ2FuaWsgSXNsYW5kIikpCmBgYAoKQmVsb3cgaXMgYW5vdGhlciBpbml0aWFsaXplciBmb3IgdGhlIFBJWEwgYWJyYXNpb24gZGF0YS4gVGhpcyBzZXRzIHRoZSB2YXJpYWJsZXMgZm9yIGVhY2ggUElYTCBhYnJhc2lvbi4KYGBge3J9CkJlbGxlZ3JhZGU8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iQmVsbGVncmFkZSIsXSR0YXJnZXQKRG91cmJlczwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJEb3VyYmVzIixdJHRhcmdldApRdWFydGllcjwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJRdWFydGllciIsXSR0YXJnZXQKQWxmYWxmYTwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJBbGZhbGZhIixdJHRhcmdldApUaG9ybnRvbkdhcDwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJUaG9ybnRvbkdhcCIsXSR0YXJnZXQKQmVycnlIb2xsb3c8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iQmVycnkgSG9sbG93IixdJHRhcmdldApOb3ZhcnVwdGE8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iTm92YXJ1cHRhIixdJHRhcmdldApVZ2FuaWtJc2xhbmQ8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iVWdhbmlrIElzbGFuZCIsXSR0YXJnZXQKYGBgCgpOZXh0LCB3ZSBmaWx0ZXIgb3V0IHRoZSBMSUJTIHRhcmdldHMgdGhhdCBhcmUgbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIGRpc3RhbmNlIHZhcmlhYmxlLiBUaGVuLCB3ZSBtZXJnZSB0aGUgTElCUyBkYXRhIHdpdGggdGhlIHJlc3BlY3RpdmUgUElYTCBhYnJhc2lvbiBieSBtdXRhdGluZyBhbmQgYWRkaW5nIGFuIGFicmFzaW9uIGNvbHVtbiB0aGF0IGhhcyB0aGUgYWJyYXNpb24gbmFtZSBjbG9zZXN0IHRvIGVhY2ggTElCUyB0YXJnZXQuIFdlIGFsc28gYWRkIGEgY29sdW1uLCBMSUJTIG9yIFBJWEwsIHdoaWNoIGRlbm90ZXMgaWYgdGhlIHJvdyBvZiBkYXRhIGlzIGZyb20gdGhlIFBJWEwgYW5kIExJQlMgZGF0YSBzZXRzLgpgYGB7cn0KaW5jbHVkZWQubGliczwtKGxpYnN0YXJnZXRzLmRmJT4lCiAgZmlsdGVyKERpc3RhbmNlPG1ldGVycykpJHRhcmdldApsaWJzLm1hdHJpeCA8LWxpYnMuZGYgJT4lCiAgZmlsdGVyKHRhcmdldCAlaW4lIGluY2x1ZGVkLmxpYnMpCmxpYnMubWF0cml4IDwtIGxpYnMubWF0cml4WyxjKDUsNzoxNCldCmxpYnMubWF0cml4PC1saWJzLm1hdHJpeFssYygxOjIsNDo5LDMpXQpsaWJzLm1hdHJpeDwtY2JpbmQoIkFicmFzaW9uIj0wLGxpYnMubWF0cml4KQpsaWJzLm1hdHJpeDwtbGlicy5tYXRyaXglPiUKICBtdXRhdGUoQWJyYXNpb24gPSBpZmVsc2UodGFyZ2V0JWluJUFsZmFsZmEsIkFsZmFsZmEiLCAKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgQmVsbGVncmFkZSwgIkJlbGxlZ3JhZGUiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBCZXJyeUhvbGxvdywgIkJlcnJ5IEhvbGxvdyIsCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIERvdXJiZXMsICJEb3VyYmVzIiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgTm92YXJ1cHRhLCAiTm92YXJ1cHRhIiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgUXVhcnRpZXIsICJRdWFydGllciIsCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIFRob3JudG9uR2FwLCAiVGhvcm50b25HYXAiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBVZ2FuaWtJc2xhbmQsICJVZ2FuaWsgSXNsYW5kIixBYnJhc2lvbikpKSkpKSkpKQpsaWJzLm1hdHJpeDwtY2JpbmQobGlic29ycGl4bD0xLGxpYnMubWF0cml4KQpgYGAKCk5leHQsIHdlIHdpbGwgcmVhZCBpbiB0aGUgUElYTCBkYXRhLiBXZSB3aWxsIHJlbW92ZSB0aGUgYXRtb3NwaGVyaWMgc2FtcGxlIChmaXJzdCBzYW1wbGUpIGFuZCBvbmx5IGNob29zZSBvbmUgb2YgZWFjaCBQSVhMIHNhbXBsZSBpbiBhcyBlYWNoIGFicmFzaW9uIGhhcyB0d28gc2FtcGxlcyAob25seSBvbmUgd2lsbCBiZSBuZWNlc3NhcnkgZm9yIHRoZSBwbG90KS4KCmBgYHtyLCBkYXRhMDN9CiNyZWFkIGluIHBpeGwgZGF0YSB3aXRoIGxhdC9sb25nCnBpeGwuZGY8LXJlYWRSRFMoIi9hY2FkZW1pY3MvTUFUUC00OTEwLUYyNC9EQVItTWFycy1GMjQvU3R1ZGVudERhdGEvcGl4bF9zb2xfY29vcmRpbmF0ZXMuUmRzIikKcGl4bC5kZjwtcGl4bC5kZiAlPiUKICBzZWxlY3QoYyg1OjgsMTI6MTQsMTcsMTksMTgsMjIpKQojcmVvcmRlciBwaXhsIGNvbHVtbnMgc28gdGhhdCBpdCBtYXRjaGVzIGxpYnMgZGF0YSBvcmdhbml6YXRpb24KcGl4bC5kZjwtcGl4bC5kZlssYygxMSwxMCw0LDMsOCwyLDYsMSw1LDcpXQojcmVtb3ZlIGF0bW9zcGhlcmljIHNhbXBsZQpwaXhsLmRmPC1waXhsLmRmWzI6MTYsXQpwaXhsLmRmPC1jYmluZChsaWJzb3JwaXhsPTAscGl4bC5kZikKYGBgCgpGaW5hbGx5LCB3ZSBtZXJnZSB0aGUgTElCUyBhbmQgUElYTCBkYXRhIHNldHMgd2UgaGF2ZSBtb2RpZmllZCB0aHVzIGZhciBmb3IgYSBjb21iaW5lZCBMSUJTIGFuZCBQSVhMIGRhdGEgZnJhbWUgc3VpdGFibGUgZm9yIGEgc29pbCBjb21wb3NpdGlvbiBsaW5lIHBsb3QuCmBgYHtyfQpjb2xuYW1lcyhwaXhsLmRmKTwtY29sbmFtZXMobGlicy5tYXRyaXgpCnBpeGxsaWJzLmRmPC1yYmluZChwaXhsLmRmLGxpYnMubWF0cml4KQpgYGAKCiMjIDQuMiBDb250cmlidXRpb24KClNvbWUgb2YgdGhlIGRhdGEgbWFuaXB1bGF0aW5nIHdvcmsgd2FzIE1hcmdvJ3MsIHN1Y2ggYXMgdGhlIGRpc3RhbmNlIGZ1bmN0aW9uLiBJbiB0ZXJtcyBvZiBwaXZvdGluZyB0aGUgZGF0YSBmcmFtZSBhbmQgdGhlIG90aGVyIHN0ZXBzIG9mIHRoZSBwcmVwcm9jZXNzaW5nIGlzIG15IG93biB3b3JrLiBUaGUgbWFuaXB1bGF0aW5nIGFuZCBzZXR1cCBvZiBkYXRhIGJlbG93IHRvIHBsb3QgdGhlIGxpbmUgc29pbCBjb21wb3NpdGlvbiBwbG90cyBpcyBteSBvd24uIE1hcmdvIGFuZCBJIHdvcmtlZCB0b2dldGhlciB0byBjcmVhdGUgdGhlIGRhdGEgc2V0cyB1c2VkLiBJbiBvdXIgcHJlc2VudGF0aW9uLCBEYXZpZCB3YXMgYWJsZSB0byBjcmVhdGUgYSBmYWNpZCBncmlkIHRvIGNvbXBsaW1lbnQgbXkgc2luZ2xlIGFicmFzaW9uIGFuYWx5c2lzIHdoaWNoIHNob3dlZCB0aGUgYXZlcmFnZSBMSUJTIHRhcmdldCBjaGVtaWNhbCBjb21wb3NpdGlvbiBhbmQgY29ycmVzcG9uZGluZyBQSVhMIGFicmFzaW9uIGNvbXBvc2l0aW9uLiBUaGlzIHdhcyBkb25lIGluIFJTaGlueSBhbmQgaW1wbGVtZW50ZWQgaW4gdGhlIGFwcCwgc28gSSBmZWx0IHRoYXQgcmVkb2luZyB0aGUgc2FtZSBwbG90IHdvdWxkbid0IGJlIG5lY2Vzc2FyeS4gSSBmb2N1c2VkIG9uIHBsb3R0aW5nIG9uZSBzcGVjaWZpYyBhYnJhc2lvbiB0byBwcm92aWRlIG1vcmUgaW4gZGVwdGggYW5hbHlzaXMgb2Ygb25lIGFicmFzaW9uIGFuZCB0aGUgc3Vycm91bmRpbmcgYXJlYSBzaW5jZSBEYXZpZCB3YXMgYWJsZSB0byBwcm92aWRlIG1vcmUgY29udGV4dCBhbmQgcGxvdCB0aGUgUElYTCBhYnJhc2lvbnMgYWxsIGF0IG9uY2UuCgojIyA0LjMgTWV0aG9kcyBEZXNjcmlwdGlvbiAKCldoZW4gZGVjaWRpbmcgaG93IHRvIGFwcHJvYWNoIHRoZSBjb25jZXB0IG9mIGJ1aWxkaW5nIHNvaWwgY29tcG9zaXRpb24gcGxvdHMgb2YgZWFjaCBQSVhMIGFicmFzaW9uIGFuZCB0aGUgY29ycmVzcG9uZGluZyBMSUJTIHRhcmdldHMgd2l0aGluIGEgY2VydGFpbiBkaXN0YW5jZSBtYXhpbXVtLCBJIGRlY2lkZWQgdGhlIGJlc3Qgd2F5IHdhcyB0byBzdGFydCB3aXRoIHRoZSBvcmlnaW5hbCBkYXRhIHNldHMgYW5kIG1vZGlmeSB0aGVtIGFzIG5lZWRlZC4gRm9yIHRoZSBhY3R1YWwgcGxvdCwgdGhlIGJlc3Qgd2F5IHRvIGZvcm1hdCB0aGUgZGF0YSBjb3JyZWN0bHkgaXMgdG8gcGl2b3QgaXQsIGFzIEkgbmVlZCB0aGUgeCBheGlzIHRvIGJlIHRoZSBjb2x1bW4gbmFtZXMgaW4gdGhlIGN1cnJlbnQgZGF0YSBmcmFtZSB3ZSBoYXZlIChTaU8yIGFuZCBvdGhlciBjb21wb3NpdGlvbnMpIGFuZCB0aGUgeSBheGlzIHRvIGJlIHRoZSB3ZWlnaHRlZCBjb21wb3NpdGlvbiB2YWx1ZXMuIFdlIGFsc28gbmVlZCBhbiBpbmRpY2F0b3Igb2YgaWYgdGhlIGRhdGEgaXMgZnJvbSBQSVhMIG9yIExJQlMsIHdoaWNoIGFsc28gaXMgaGVscGZ1bCBmb3IgYnVpbGRpbmcgdGhlIGxpbmUgcGxvdHMuIAoKVXNlcnMgd2lsbCBoYXZlIHRvIHNldCB0aGUgZGlzdGFuY2UgdmFyaWFibGUgaW4gb3JkZXIgdG8gY2hvb3NlIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGJldHdlZW4gUElYTCBhYnJhc2lvbnMgYW5kIExJQlMgdGFyZ2V0cy4gVGhpcyBjYW4gdmFzdGx5IGNoYW5nZSB0aGUgbnVtYmVyIG9mIGxpbmVzIG9uIHRoZSBwbG90cyB3aGljaCBjYW4gaGVscCBwcmV2ZW50IG92ZXJjcm93ZGVkIHBsb3RzLiBVc2VycyBhbHNvIGNhbiBzZXQgYSB2YXJpYWJsZSB0byBjaG9vc2UgYSBzcGVjaWZpYyBQSVhMIGFicmFzaW9uIGFuZCBjb3JyZXNwb25kaW5nIExJQlMgdGFyZ2V0cywgd2hpY2ggaXMgZWFzaWVyIHRvIGludGVycHJldCBhcyBwbG90dGluZyBhbGwgb2YgdGhlIExJQlMgYW5kIFBJWEwgY29tcG9zaXRpb24gaW5mb3JtYXRpb24gb24gbGluZSBwbG90cyBsZWFkcyB0byB2ZXJ5IGNvbmRlbnNlZCBncmFwaHMgdGhhdCBhcmUgaGFyZCB0byByZWFkLgoKIyMgNC40IFJlc3VsdCBhbmQgRGlzY3Vzc2lvbiAKCkZpcnN0LCB3ZSB3aWxsIHR1cm4gdGhlIGVhcnRoIHF1YXJ0aWxlIGluZm9ybWF0aW9uIGludG8gYSBsb25nIGRhdGEgZnJhbWUgKG1lYW5pbmcgcGl2b3RpbmcgdGhlIGNvbHVtbnMgaW50byB0aGUgdmFsdWVzKSBhbmQgb25seSBzZWxlY3QgdGhlIGZpcnN0IGFuZCB0aGlyZCBxdWFydGlsZSByb3dzLiAKYGBge3J9CiMgRWFydGggcXVhcnRpbGVzCmZpbHRlcmVkX3Jvd3MgPC0gZWFydGhxdWFydGlsZXMuZGYgJT4lCiAgZmlsdGVyKGBUcmFpbmluZyBzZXQgUXVhcnRpbGVzYCAlaW4lIGMoIjFzdCIsICIzcmQiLCAiTWVkIikpCmVhcnRocXVhcnRpbGVzX2xvbmcgPC0gZmlsdGVyZWRfcm93cyAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IHN0YXJ0c193aXRoKCJTaU8yIik6bGFzdF9jb2woKSwgbmFtZXNfdG8gPSAiQ29tcG91bmQiLCB2YWx1ZXNfdG8gPSAiUGVyY2VudGFnZSIpCgplYXJ0aHF1YXJ0aWxlc19sb25nIDwtIGVhcnRocXVhcnRpbGVzX2xvbmcgJT4lIHJlbmFtZShRdWFydGlsZXMgPSBgVHJhaW5pbmcgc2V0IFF1YXJ0aWxlc2ApCmBgYAoKVGhlbiwgdGhlIGRhdGEgd2lsbCBiZSBmaWx0ZXJlZCB0byBvbmx5IGluY2x1ZGUgdGhlIGRhdGEgZnJvbSBhIHNwZWNpZmljIFBJWEwgYWJyYXNpb24gY2hvc2VuIGJ5IHRoZSB1c2VyLiBUaGUgZGF0YSBpcyBwaXZvdGVkIGludG8gYSBsb25nIGZvcm1hdCwgYW5kIHRoZSBjb2x1bW5zIGFyZSByZW9yZGVyZWQgdG8gbWltaWMgc2ltaWxhciBwbG90cyBmcm9tIE5BU0EgcGFwZXJzLgpgYGB7cn0KIyBGaWx0ZXIgZm9yIHRoZSBzcGVjaWZpYyBhYnJhc2lvbiBzYW1wbGUsIGUuZy4sICJBbGZhbGZhIgpwaXhsbGlic19maWx0ZXJlZCA8LSBwaXhsbGlicy5kZiAlPiUKICBmaWx0ZXIoQWJyYXNpb24gPT0gYWJyYXNpb25fbmFtZSkKCiMgUGl2b3QgdGhlIGRhdGEgdG8gbG9uZ2VyIGZvcm1hdCBmb3IgZ2dwbG90CnBpeGxsaWJzX2xvbmcgPC0gcGl4bGxpYnNfZmlsdGVyZWQgJT4lCiAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBzdGFydHNfd2l0aCgiU2lPMiIpOmxhc3RfY29sKCksIG5hbWVzX3RvID0gIkNvbXBvdW5kIiwgdmFsdWVzX3RvID0gIlBlcmNlbnRhZ2UiKQoKZGVzaXJlZF9vcmRlciA8LSBjKCJTaU8yIiwgIkFsMk8zIiwgIkZlT1QiLCAiTWdPIiwgIkNhTyIsICJOYTJPIiwgIksyTyIsICJUaU8yIikgICMgU3BlY2lmeSB5b3VyIGN1c3RvbSBvcmRlciBoZXJlCnBpeGxsaWJzX2xvbmckQ29tcG91bmQgPC0gZmFjdG9yKHBpeGxsaWJzX2xvbmckQ29tcG91bmQsIGxldmVscyA9IGRlc2lyZWRfb3JkZXIpCmBgYAoKRm9yIHRoZSBwbG90LCB3ZSB1c2UgZ2dwbG90IHRvIHBsb3QgdGhlIHBpeGxsaWJzX2xvbmcgZGF0YSBmcmFtZSB3ZSBjcmVhdGVkLiBUaGUgcGxvdCBpcyBjb2xvcmVkIGJ5IGlmIHRoZSBsaW5lIGlzIGEgUElYTCBhYnJhc2lvbidzIGNvbXBvc2l0aW9uIG9yIGEgTElCUyB0YXJnZXQncyBjb21wb3NpdGlvbi4gV2UgYWxzbyBhZGQgYSBsYXllciB3aXRoIHRoZSBlYXJ0aCBxdWFydGlsZSBpbmZvcm1hdGlvbiwgd2hpY2ggaXMgdGhlIGRvdHRlZCBsaW5lcy4gVGhlIHdlaWdodCBwZXJjZW50YWdlcyBvbiB0aGUgeSBheGlzIGFyZSBsb2cgc2NhbGVkIGFzIGl0IG1ha2VzIHRoZSBwbG90IG1vcmUgcmVhZGFibGUsIGJ1dCB0aGlzIGNhbiBiZSBlZGl0ZWQgKHdpbGwgYmUgYWRkZWQgYXMgYSB0b2dnbGUgaW4gdGhlIGFwcCkuCmBgYHtyfQojIE1hcCB0aGUgUElYTC9MSUJTIGNvbHVtbiB0byBjb2xvciBhbmQgdXNlIHRhcmdldF9uYW1lIHRvIGRpZmZlcmVudGlhdGUgbGluZXMKc3VwcHJlc3NXYXJuaW5ncyhnZ3Bsb3QocGl4bGxpYnNfbG9uZywgYWVzKHggPSBDb21wb3VuZCwgeSA9IFBlcmNlbnRhZ2UsIGNvbG9yID0gYXMuZmFjdG9yKGxpYnNvcnBpeGwpLCBncm91cCA9IHRhcmdldCkpICsKICBnZW9tX2xpbmUoKSArCiAgZ2VvbV9wb2ludCgpICsKICBzY2FsZV95X2NvbnRpbnVvdXModHJhbnM9J2xvZzEwJykgKwogICMgQWRkIEVhcnRoIHF1YXJ0aWxlIGxpbmVzIHVzaW5nIGVhcnRocXVhcnRpbGVzX2xvbmcKICBnZW9tX2xpbmUoZGF0YSA9IGVhcnRocXVhcnRpbGVzX2xvbmcsIGFlcyh4ID0gQ29tcG91bmQsIHkgPSBQZXJjZW50YWdlLCBsaW5ldHlwZSA9IFF1YXJ0aWxlcywgZ3JvdXAgPSBRdWFydGlsZXMpLCAKICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBsaW5ldHlwZSA9ICJkb3R0ZWQiKSArCiAgbGFicyh0aXRsZSA9IHBhc3RlKCJTb2lsIENvbXBvc2l0aW9uIGZvciBQSVhMIixhYnJhc2lvbl9uYW1lLCJhbmQgTElCUyB3aXRoaW4iLCBtZXRlcnMsICJtZXRlcnMiLCBzZXAgPSAiICIpLAogICAgICAgeCA9ICJDaGVtaWNhbCBDb21wb3VuZCIsCiAgICAgICB5ID0gIldlaWdodCBQZXJjZW50YWdlIiwKICAgICAgIGNvbG9yID0gIk1lYXN1cmVtZW50IFR5cGUiLAogICAgICAgbGluZXR5cGUgPSAiUXVhcnRpbGVzIiwKICAgICAgIGNhcHRpb24gPSAiVGhlIGNoZW1pY2FsIGNvbXBvc2l0aW9uIG9mIGEgUElYTCBhYnJhc2lvbiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgTElCUyB0YXJnZXRzIFxuIHdpdGhpbiBzcGVjaWZpZWQgZGlzdGFuY2Ugb2YgcmVzcGVjdGl2ZSBhYnJhc2lvbi4iKSArCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoIjAiID0gImJsdWUiLCAiMSIgPSAicmVkIiksIGxhYmVscyA9IGMoIlBJWEwiLCAiTElCUyIpKSArCiAgYW5ub3RhdGUoInRleHQiLCB4ID0gNSwgeSA9IC41MCwgbGFiZWwgPSAiMXN0IFF1YXJ0aWxlIiwgY29sb3IgPSAiYmxhY2siLCBoanVzdCA9IDApICsKICBhbm5vdGF0ZSgidGV4dCIsIHggPSA1LCB5ID0gMiwgbGFiZWwgPSAiTWVkaWFuIiwgY29sb3IgPSAiYmxhY2siLCBoanVzdCA9IDApICsKICBhbm5vdGF0ZSgidGV4dCIsIHggPSA1LCB5ID0gMTAsIGxhYmVsID0gIjNyZCBRdWFydGlsZSIsIGNvbG9yID0gImJsYWNrIiwgaGp1c3QgPSAwKSsKICB0aGVtZV9taW5pbWFsKCkrCiAgICAgIyBDZW50ZXIgdGhlIGNhcHRpb24gb24gdGhlIGxlZnQgc2lkZQogIHRoZW1lKAogICAgcGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMCkgICMgQWxpZ25zIGNhcHRpb24gdG8gdGhlIGxlZnQKICApKQoKYGBgClRvIHNhdmUgc3BhY2UgaW4gdGhpcyBub3RlYm9vaywgSSBkaWQgbm90IHBsb3QgZWFjaCBhYnJhc2lvbiAoYmFzZWQgb24gY2hvc2VuIGFicmFzaW9uIHZhcmlhYmxlIG5hbWUpLiBJbiBjb21wYXJpbmcgZWFjaCBQSVhMIGFicmFzaW9uIGFuZCB0aGUgY29ycmVzcG9uZGluZyBMSUJTIHRhcmdldHMsIEkgZm91bmQgdGhhdCB0aGUgUElYTCBhYnJhc2lvbnMgY29ycmVzcG9uZGluZyB0byBpZ25lb3VzIGhhZCB2ZXJ5IHNpbWlsYXIgcGxvdHMsIHdoaWxlIHRoZSBQSVhMIGFicmFzaW9ucyBjb3JyZXNwb25kaW5nIHRvIHNlZGltZW50YXJ5IGhhZCB2ZXJ5IHNpbWlsYXIgcGxvdHMuIFRoZSBpZ25lb3VzL3NlZGltZW50YXJ5IGluZGljYXRvciBpcyBzaG93biBpbiB0aGUgUElYTCBkYXRhLiBBbiBpbnRlcmVzdGluZyB0aGluZyB0byBub3RlIGlzIHRoYXQgZm9yIHNvbWUgYWJyYXNpb25zLCBsaWtlIEFsZmFsZmEgYW5kIFRob3JudG9uR2FwLCB0aGUgY2hlbWljYWwgY29tcG9zaXRpb25zIG9mIGJvdGggUElYTCBzYW1wbGVzIGluIHRoZSBhYnJhc2lvbiBhcmUgdGhlIHNhbWUuIEZvciBvdGhlciBhYnJhc2lvbnMsIGxpa2UgQmVsbGVncmFkZSwgdGhlIGNoZW1pY2FsIGNvbXBvc2l0aW9ucyBvZiB0aGUgUElYTCBzYW1wbGVzIGluIHRoZSBCZWxsZWdyYWRlIGFicmFzaW9uIGRpZmZlci4gQWxzbywgbWFueSBvZiB0aGUgcGxvdHMgaGFkIGEgZmV3IHBvaW50cyB3aXRoIHZlcnkgbG93IEsyTyB3aGljaCBzZWVtcyBsaWtlIGEgbWFqb3Igb3V0bGllci4KCiMjIDQuNSBDb25jbHVzaW9ucyBhbmQgRnV0dXJlIFdvcmsKVGhpcyBmaW5kaW5nIGNhbiBiZSB1c2VkIGJ5IGdlb2xvZ2lzdHMgdG8gYW5hbHl6ZSB3aGF0IGRpZmZlcmVudCBzb2lsIGNvbXBvc2l0aW9ucyBhcm91bmQgZGlmZmVyZW50IFBJWEwgYWJyYXNpb25zIGNhbiBtZWFuIGZvciBsaWZlIG9uIE1hcnMuIEZvciBleGFtcGxlLCBveGlkZSBwcmVzZW5jZSBkb2Vzbid0IG5lY2Vzc2FyaWx5IGluZGljYXRlIGxpZmUsIGJ1dCBpdCBjb3VsZCBpbmRpY2F0ZSBiaW9sb2dpY2FsIG9yIGNoZW1pY2FsIGxpZmUgcHJvY2Vzc2VzLiBGb3IgZXhhbXBsZSwgQ2FPIGNhbiBpbmRpY2F0ZSB0aGUgcHJlc2VuY2Ugb2Ygb2xkIGJpb2xvZ2ljYWwgbWF0ZXJpYWwgbGlrZSBzaGVsbHMgb3IgZm9zc2lscy4gRm9yIGZ1dHVyZSB3b3JrLCBJIHdvdWxkIGxpa2UgdG8gc2VlIHdoeSBjZXJ0YWluIGFicmFzaW9ucyBkaWZmZXIgaW4gdGhlaXIgUElYTCBjb3JlIHNhbXBsZSBjb21wb3NpdGlvbi4gSXMgdGhpcyBiYXNlZCBvbiB0aGUgcmVzZWFyY2ggZG9uZSBieSBzY2llbnRpc3RzIGluIHNlbGVjdGluZyBzcGVjaWZpYyBhYnJhc2lvbnMgYW5kIHRyeWluZyB0byBvYnRhaW4gZGlmZmVyaW5nIHNhbXBsZXMgZm9yIGFicmFzaW9ucyBpbiBjZXJ0YWluIGFyZWFzPyBPciBpcyB0aGlzIGJ5IGNoYW5jZT8gT3IgaXMgaXQgc2ltcGx5IHNob3dpbmcgbW9yZSByb2NrIHZhcmlldHkgb3Igd2VhdGhlcmluZyB0aGUgY2VydGFpbiBhYnJhc2lvbnM/CgojIDUuMCBGaW5kaW5nIDM6IEFuYWx5emluZyBDYXRpb24gQ29tYmluYXRpb25zIHVzaW5nIExJQlMgYW5kIFBJWEwgbWF0Y2hlZCBkYXRhClVzaW5nIHRoZSBMSUJTIGFuZCBQSVhMIGNvbWJpbmVkIGRhdGEgc2V0LCB3ZSBjcmVhdGVkIGEgdGVybmFyeSBwbG90IHRvIHNob3cgdGhlIGRpc3RyaWJ1dGlvbiBvZiBMSUJTIHNhbXBsZXMgc29ydGVkIGJ5IHdoYXQgUElYTCBhYnJhc2lvbiB0aGV5IGFyZSBjbG9zZXN0IHRvIChiYXNlZCBvbiBhIGNob3NlbiBkaXN0YW5jZSB2YXJpYWJsZSkuIE11Y2ggb2YgdGhlIGRhdGEgcHJlcHJvY2Vzc2luZyBpcyBzaW1pbGFyIHRvIEZpbmRpbmcgMSB3aGljaCB3ZSB3aWxsIHJlcGVhdCBoZXJlLiBJdCB3aWxsIGludm9sdmUgdXNpbmcgYSBkaXN0YW5jZSBmdW5jdGlvbiB0byBjb3JyZWxhdGUgTElCUyB0YXJnZXRzIHdpdGggUElYTCBzYW1wbGVzLCBtYXRjaGluZyB0aGUgZGF0YSBiYXNlZCBvbiB0aGUgY2xvc2VzdCBQSVhMIHNhbXBsZSwgYW5kIHBsb3R0aW5nIHRoZSBMSUJTIGRhdGEgKGNvbG9yZWQgYnkgY29ycmVzcG9uZGluZyBQSVhMIGFicmFzaW9uKSBhbmQgdGhlIFBJWEwgYWJyYXNpb25zIG9uIGEgdGVybmFyeSBwbG90LiBUaGUgZ29hbCBoZXJlIGlzIHRvIGFuYWx5emUgaG93IGRpZmZlcmVudCBncm91cHMgb2YgTElCUyBzYW1wbGVzIChjb2xvcmVkIGJ5IG1hdGNoaW5nIFBJWEwgYWJyYXNpb24pIGRpZmZlciBieSBjYXRpb24gY29tcG9zaXRpb24uIERvIGlnbmVvdXMgdnMuIHNlZGltZW50YXJ5IHJvY2sgcGxheSBhIHJvbGwgaW4gY29tcG9zaXRpb24gdGVuZGVuY2llcyBhbmQgc2hvdyBhIHBhdHRlcm4/IEJ5IGxvb2tpbmcgYXQgdGhlIGNvbXBvc2l0aW9uIG9mIHRoZSBzb2lsIGluIGNlcnRhaW4gbG9jYXRpb25zLCB3ZSBjYW4gY29tcGFyZSB0aGUgZGlmZmVyZW5jZXMgaW4gdGhlIFBJWEwgYWJyYXNpb24gYW5kIHJlbGF0aW5nIExJQlMgc2FtcGxlcyBmb3IgYSBjZXJ0YWluIGFyZWEgYnkgY29tYmluaW5nIHRoZSBMSUJTIGFuZCBQSVhMIGRhdGEgc2V0cy4gSW4gb3JkZXIgdG8gYWNjb21wbGlzaCB0aGlzLCB3ZSB3aWxsIHVzZSBhIGRpc3RhbmNlIGZ1bmN0aW9uIHRvIGZpbHRlciB3aXRoaW4gNyBtZXRlcnMgb2YgZGlzdGFuY2UgYmV0d2VlbiBhIFBJWEwgc2FtcGxlIGFuZCBMSUJTIHRhcmdldCAodGhpcyBpcyB0aGUgbWF4aW11bSBkaXN0YW5jZSBvZiBhY2N1cmFjeSBiYXNlZCBvbiBOQVNBJ3MgaW5mb3JtYXRpb24gb24gTElCUyBzcGVjdHJvc2NvcHkgbWFjaGluZXJ5KS4KCiMjIDUuMSBEYXRhLCBDb2RlLCBhbmQgUmVzb3VyY2VzCjEuIHBldGVyY19maW5hbFByb2plY3RGMjQuUm1kICh3aXRoIGtuaXQgcGRmIGFuZCBodG1sKSBpcyB0aGlzIG5vdGVib29rLgpbaHR0cHM6Ly9naXRodWIucnBpLmVkdS9EYXRhSU5DSVRFL0RBUi1NYXJzLUYyNC9ibG9iL21haW4vU3R1ZGVudE5vdGVib29rcy9Bc3NpZ25tZW50MDhfRmluYWxQcm9qZWN0Tm90ZWJvb2svcGV0ZXJjX2ZpbmFsUHJvamVjdEYyNC5SbWRdKGh0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL1N0dWRlbnROb3RlYm9va3MvQXNzaWdubWVudDA3X0RyYWZ0RmluYWxQcm9qZWN0Tm90ZWJvb2svcGV0ZXJjX2ZpbmFsUHJvamVjdEYyNF9yb3VnaGRyYWZ0LlJtZCkKCjIuIHN1cGVyY2FtX2xpYnNfbW9jX2xvYy5SZHMgd2hpY2ggaXMgdGhlIG9yaWdpbmFsIExJQlMgZGF0YSBnaXZlbiB0byBvdXIgcmVzZWFyY2ggZ3JvdXAuCltodHRwczovL2dpdGh1Yi5ycGkuZWR1L0RhdGFJTkNJVEUvREFSLU1hcnMtRjI0L2Jsb2IvbWFpbi9EYXRhL3N1cGVyY2FtX2xpYnNfbW9jX2xvYy5SZHNdKGh0dHBzOi8vZ2l0aHViLnJwaS5lZHUvRGF0YUlOQ0lURS9EQVItTWFycy1GMjQvYmxvYi9tYWluL0RhdGEvc3VwZXJjYW1fbGlic19tb2NfbG9jLlJkcykKCgpGaXJzdCwgd2Ugc2V0IGEgZGlzdGFuY2UgdmFyaWFibGUgd2hpY2ggY2FuIGJlIHVzZWQgYXMgYSBzbGlkZXIgYmFyIGluIHRoZSBhcHAuIENoYW5naW5nIHRoaXMgdmFyaWFibGUgc2V0cyB0aGUgbWF4aW11bSBkaXN0YW5jZSBiZXR3ZWVuIGEgUElYTCB0YXJnZXQgYW5kIExJQlMgc2FtcGxlIGZvciB0aGVtIHRvIGJlIGNsYXNzaWZpZWQgdG9nZXRoZXIuCmBgYHtyfQojc2V0IGRpc3RhbmNlIHZhcmlhYmxlIHdoaWNoIGNhbiBiZSB1c2VkIGFzIGEgdG9nZ2xlIHRvb2wKZGlzdGFuY2U9NwpgYGAKClRvIHByZXBhcmUgdGhlIGRhdGEsIEkgc3RhcnQgYnkgbG9hZGluZyBpbiB0aGUgTElCUyBkYXRhLiBUaGVuLCB3ZSBkcm9wIHRoZSBzdGFuZGFyZCBkZXZpYXRpb24gY29sdW1ucyBhbmQgc3VtIG9mIHBlcmNlbnRhZ2UgY29sdW1ucyBsZWF2aW5nIHVzIHdpdGgganVzdCB0aGUgd2VpZ2h0ZWQgY29tcG9zaXRpb24gaW4gdGVybXMgb2YgbnVtZXJpY2FsIGRhdGEuIFdlIGFsc28gcmVtb3ZlIHRoZSBzY2N0IHZhbHVlcywgYXMgdGhvc2UgdmFsdWVzIGFyZSB0aGUgb25lcyB0aGF0IGFyZSBlYXJ0aCByZWZlcmVuY2Ugc2FtcGxlcyB0aGF0IFBlcnNlcnZlcmFuY2UgY2FycmllcyB3aXRoIGl0LiBUaGVyZWZvcmUsIHRoZXkgd2lsbCBub3QgYmUgdmVyeSByZWxldmFudCB3aGVuIHBsb3R0aW5nIHRoZSBMSUJTIGRhdGEgYXMgd2UgYXJlIGZvY3VzZWQgb24gdGhlIGNhdGlvbiBjb21iaW5hdGlvbnMgYW5kIHRoZXJlZm9yZSBvbmx5IG5lZWQgdGhlIHdlaWdodGVkIGNvbXBvc2l0aW9ucy4KYGBge3J9CiNMb2FkIGluIExJQlMgZGF0YQpsaWJzLmRmIDwtIHJlYWRSRFMoIi9hY2FkZW1pY3MvTUFUUC00OTEwLUYyNC9EQVItTWFycy1GMjQvRGF0YS9zdXBlcmNhbV9saWJzX21vY19sb2MuUmRzIikKI0Ryb3AgdGhlIHN0YW5kYXJkIGRldmlhdGlvbiBmZWF0dXJlcywgdGhlIHN1bSBvZiB0aGUgcGVyY2VudGFnZXMsIAojdGhlIGRpc3RhbmNlLCBhbmQgdGhlIHRvdGFsIGZyZXF1ZW5jaWVzCmxpYnMuZGYgPC0gbGlicy5kZiAlPiUgCiAgc2VsZWN0KCEoYyhkaXN0YW5jZV9tbSxUb3QuRW0uLFNpTzJfc3RkZXYsVGlPMl9zdGRldixBbDJPM19zdGRldixGZU9UX3N0ZGV2LAogICAgICAgICAgICAgTWdPX3N0ZGV2LE5hMk9fc3RkZXYsQ2FPX3N0ZGV2LEsyT19zdGRldixUb3RhbCkpKQojIENvbnZlcnQgdGhlIHBvaW50cyB0byBudW1lcmljCmxpYnMuZGYkcG9pbnQgPC0gYXMubnVtZXJpYyhsaWJzLmRmJHBvaW50KQpsaWJzLmRmWyw2OjEzXSA8LSBzYXBwbHkobGlicy5kZlssNjoxM10sYXMubnVtZXJpYykKI3JlbW92ZSB0aGUgc2NjdC9yZWZlcmVuY2Ugc2FtcGxlcwpsaWJzLmRmPC1saWJzLmRmJT4lCiAgZmlsdGVyKCEoZ3JlcGwoInNjY3QiLCB0YXJnZXQpKSkKI2FkZCBhIGNvbHVtbiB0byBpbmRpY2F0ZSB0aGUgbmVhcmVzdCBwaXhsCmxpYnMuZGY8LWNiaW5kKG5lYXJlc3RwaXhsPTAsbGlicy5kZikKI21ha2UgYSBkYXRhZnJhbWUgb2YganVzdCB0aGUgTElCUyBMYXQvTG9uZyBhbmQgdGFyZ2V0IG5hbWUgYW5kIHJlbW92ZSBkdXBsaWNhdGVzCmxpYnN0YXJnZXRzLmRmPC1saWJzLmRmWyxjKDEsMyw0LDUpXQpsaWJzdGFyZ2V0cy5kZjwtZGlzdGluY3QobGlic3RhcmdldHMuZGYpCmBgYAoKTmV4dCwgd2Ugd2lsbCBsb2FkIGluIHRoZSBQSVhMIGRhdGEgdGhhdCBpcyBpbiBTdHVkZW50RGF0YSBhcyB0aGUgcGl4bF9zb2xfY29vcmRpbmF0ZXMgZGF0YSBmcmFtZSBpbmNsdWRlcyB0aGUgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYW5kIHNvbCBvZiBlYWNoIFBJWEwgc2FtcGxlLiBXZSBvbmx5IGluY2x1ZGUgdGhlIG1ldGFkYXRhIGFzIHRoaXMgaXMgYWxsIHRoYXQgaXMgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdGFuY2UgZnVuY3Rpb24gKHRoZSBzYW1wbGUgbmFtZSBhbmQgY29vcmRpbmF0ZXMgb2YgdGhlIHNhbXBsZSkgYXMgd2VsbCBhcyBvbmx5IG9uZSBQSVhMIHNhbXBsZSBmcm9tIGVhY2ggYWJyYXNpb24uIEFzIGVhY2ggYWJyYXNpb24gaGFzIDIgUElYTCBzYW1wbGVzIHRha2VuLCB0aGV5IGhhdmUgdGhlIHNhbWUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBhbmQgdGhlcmVmb3JlIGl0IGlzIHVubmVjZXNzYXJ5IHRvIHVzZSBib3RoLiBXZSBhbHNvIHJlbW92ZSB0aGUgYXRtb3NwaGVyaWMgc2FtcGxlLgpgYGB7cn0KI3JlYWQgaW4gcGl4bCBkYXRhIHdpdGggbGF0L2xvbmcKcGl4bC5kZjwtcmVhZFJEUygiL2FjYWRlbWljcy9NQVRQLTQ5MTAtRjI0L0RBUi1NYXJzLUYyNC9TdHVkZW50RGF0YS9waXhsX3NvbF9jb29yZGluYXRlcy5SZHMiKQojaW5jbHVkZSBvbmx5IHBpeGwgbWV0YWRhdGEKcGl4bC5kZjwtcGl4bC5kZiAlPiUKICBzZWxlY3QoYygxLDIsMTksMjAsMjIpKQojY29udmVydCBMYXQvTG9uZyB0byBudW1lcmljCnBpeGwuZGYkTGF0IDwtIGFzLm51bWVyaWMocGl4bC5kZiRMYXQpCnBpeGwuZGYkTG9uZyA8LSBhcy5udW1lcmljKHBpeGwuZGYkTG9uZykKI3JlbW92ZSByb3dzIHNvIHdlIG9ubHkgaGF2ZSBvbmUgc2FtcGxlIHBlciBhYnJhc2lvbiBhbmQgcmVtb3ZlIGF0bW9zcGhlcmljIHNhbXBsZQpwaXhsLmRmPC1waXhsLmRmW2MoMiw0LDYsOCwxMCwxMiwxNCwxNiksXQpgYGAKCk5leHQsIHdlIHdpbGwgaW5pdGlhbGl6ZSBhIGRpc3RhbmNlIHZhcmlhYmxlICh0byBpbmRpY2F0ZSBkaXN0YW5jZSBiZXR3ZWVuIFBJWEwgYWJyYXNpb24gYW5kIExJQlMgdGFyZ2V0KSBhbmQgYWxzbyBpbml0aWFsaXplIGVhY2ggUElYTCBhYnJhc2lvbiwgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIG1hcmsgd2hpY2ggUElYTCBhYnJhc2lvbiB0aGUgTElCUyBzYW1wbGUgaXMgY2xvc2VzdCB0byBieSB1c2luZyBhIGZhY3RvciBvZiAwIG9yIDEuIApgYGB7cn0KI0xJQlMgdGFyZ2V0IGRhdGEgZnJhbWUgd2l0aCBkaXN0YW5jZSB2YXJpYWJsZSBhcyB3ZWxsCmxpYnN0YXJnZXRzLmRmPC1jYmluZChsaWJzdGFyZ2V0cy5kZiwiRGlzdGFuY2UiPTAsIkJlbGxlZ3JhZGUiPTAsIkRvdXJiZXMiPTAsIlF1YXJ0aWVyIj0wLCJBbGZhbGZhIj0wLCJUaG9ybnRvbkdhcCI9MCwiQmVycnlIb2xsb3ciPTAsIk5vdmFydXB0YSI9MCwiVWdhbmlrSXNsYW5kIj0wKQpgYGAKClRoZSBkaXN0YW5jZSBmdW5jdGlvbiBiZWxvdyB3aWxsIGNhbGN1bGF0ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIExJQlMgdGFyZ2V0IGFuZCBhbGwgdGhlIFBJWEwgYWJyYXNpb25zLCBhbmQgcGljayB0aGUgc21hbGxlc3QgZGlzdGFuY2UgdG8gcGljayB0aGUgY2xvc2VzdCBQSVhMIGFicmFzaW9uIHRvIHRoYXQgTElCUyB0YXJnZXQuCmBgYHtyfQojRGlzdGFuY2UgZnVuY3Rpb24KZm9yKGkgaW4gMTpucm93KGxpYnN0YXJnZXRzLmRmKSkgewogICAgbGlic3RhcmdldHMuZGZbaSxjKDY6MTMpXTwtYyhkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMSxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMixjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMyxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNCxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNSxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNixjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNyxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbOCxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpKQogICAgCiAgICBsaWJzdGFyZ2V0cy5kZltpLDFdPC13aGljaC5taW4obGlic3RhcmdldHMuZGZbaSxjKDY6MTMpXSkKICAgIGxpYnN0YXJnZXRzLmRmW2ksNV08LW1pbihsaWJzdGFyZ2V0cy5kZltpLGMoNjoxMyldKQp9CmxpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPC1hcy5mYWN0b3IobGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGwpCmxldmVscyhsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bCk8LShjKCJCZWxsZWdyYWRlIiwiRG91cmJlcyIsIlF1YXJ0aWVyIiwiQWxmYWxmYSIsIlRob3JudG9uR2FwIiwiQmVycnlIb2xsb3ciLCJOb3ZhcnVwdGEiLCJVZ2FuaWtJc2xhbmQiKSkKYGBgCgpCZWxvdyBpcyBhbm90aGVyIGluaXRpYWxpemVyIGZvciB0aGUgUElYTCBhYnJhc2lvbiBkYXRhLiBUaGlzIHNldHMgdGhlIHZhcmlhYmxlcyBmb3IgZWFjaCBQSVhMIGFicmFzaW9uIG5hbWUuCmBgYHtyfQojU2V0cyBlYWNoIG5lYXJlc3QgUElYTCB2YXJpYWJsZSBmb3IgZnV0dXJlIHVzZSBpbiBkZWNpZGluZyB3aGljaCB0YXJnZXQgaXMgY2xvc2VzdCB0byBhIExJQlMgc2FtcGxlCkJlbGxlZ3JhZGU8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iQmVsbGVncmFkZSIsXSR0YXJnZXQKRG91cmJlczwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJEb3VyYmVzIixdJHRhcmdldApRdWFydGllcjwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJRdWFydGllciIsXSR0YXJnZXQKQWxmYWxmYTwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJBbGZhbGZhIixdJHRhcmdldApUaG9ybnRvbkdhcDwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJUaG9ybnRvbkdhcCIsXSR0YXJnZXQKQmVycnlIb2xsb3c8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iQmVycnlIb2xsb3ciLF0kdGFyZ2V0Ck5vdmFydXB0YTwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJOb3ZhcnVwdGEiLF0kdGFyZ2V0ClVnYW5pa0lzbGFuZDwtbGlic3RhcmdldHMuZGZbbGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGw9PSJVZ2FuaWtJc2xhbmQiLF0kdGFyZ2V0CmBgYAoKTmV4dCwgd2UgZmlsdGVyIG91dCB0aGUgTElCUyB0YXJnZXRzIHRoYXQgYXJlIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCBkaXN0YW5jZSB2YXJpYWJsZS4gVGhlbiwgd2UgbWVyZ2UgdGhlIExJQlMgZGF0YSB3aXRoIHRoZSByZXNwZWN0aXZlIFBJWEwgYWJyYXNpb24gYnkgbXV0YXRpbmcgYW5kIGFkZGluZyBhbiBhYnJhc2lvbiBjb2x1bW4gdGhhdCBoYXMgdGhlIGFicmFzaW9uIG5hbWUgY2xvc2VzdCB0byBlYWNoIExJQlMgdGFyZ2V0LiBXZSBhbHNvIGFkZCBhIGNvbHVtbiwgTElCUyBvciBQSVhMLCB3aGljaCBkZW5vdGVzIGlmIHRoZSByb3cgb2YgZGF0YSBpcyBmcm9tIHRoZSBQSVhMIGFuZCBMSUJTIGRhdGEgc2V0cy4gV2UgYWxzbyBzZXQgdXAgdGhlIGxpYnMudGVybiBtYXRyaXggd2hpY2ggd2lsbCBmb3JtYXQgdGhlIGRhdGEgcHJvcGVybHkgZm9yIHRoZSB0ZXJuYXJ5IHBsb3QuIFRoaXMgZ3JvdXBzIHRoZSBjYXRpb24gY29tcG9zaXRpb25zIGdpdmVuIGJ5IERyLiBSb2dlcnMgdG8gc2V0IHVwIHRoZSB0ZXJuYXJ5IGRpYWdyYW0gYXhlcy4KYGBge3J9CmluY2x1ZGVkLmxpYnM8LShsaWJzdGFyZ2V0cy5kZiU+JQogIGZpbHRlcihEaXN0YW5jZTxtZXRlcnMpKSR0YXJnZXQKbGlicy5tYXRyaXggPC1saWJzLmRmICU+JQogIGZpbHRlcih0YXJnZXQgJWluJSBpbmNsdWRlZC5saWJzKQojc2V0IExJQlMgbWF0cml4IGFuZCB0ZXJuYXJ5IHBsb3QgYnkgYWRkaW5nIGluIGNhdGlvbiBjb21wb25lbnRzIGFuZCBtdXRhdGluZwpsaWJzLm1hdHJpeCA8LSBsaWJzLm1hdHJpeFssYyg1LDc6MTQpXQpsaWJzLnRlcm4gPC0gYXMuZGF0YS5mcmFtZShsaWJzLm1hdHJpeCkgJT4lCiAgbXV0YXRlKHg9KFNpTzIrQWwyTzMpLzEwMCx5PShGZU9UK01nTykvMTAwLHo9KENhTytOYTJPK0syTykvMTAwKSAlPiUKICBzZWxlY3QoLWMoU2lPMixBbDJPMyxGZU9ULE1nTyxDYU8sTmEyTyxLMk8sVGlPMikpCmxpYnMudGVybjwtY2JpbmQoIkFicmFzaW9uIj0wLGxpYnMudGVybikKI1NldCB3aGF0IGFicmFzaW9uIGdvZXMgd2l0aCB0aGUgcmVzcGVjdGl2ZSBMSUJTIHNhbXBsZSBpdCBtYXRjaGVzIHdpdGgKbGlicy50ZXJuPC1saWJzLnRlcm4lPiUKICBtdXRhdGUoQWJyYXNpb24gPSBpZmVsc2UodGFyZ2V0JWluJUFsZmFsZmEsIkFsZmFsZmEiLCAKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgQmVsbGVncmFkZSwgIkJlbGxlZ3JhZGUiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBCZXJyeUhvbGxvdywgIkJlcnJ5SG9sbG93IiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgRG91cmJlcywgIkRvdXJiZXMiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBOb3ZhcnVwdGEsICJOb3ZhcnVwdGEiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBRdWFydGllciwgIlF1YXJ0aWVyIiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgVGhvcm50b25HYXAsICJUaG9ybnRvbkdhcCIsCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIFVnYW5pa0lzbGFuZCwgIlVnYW5pa0lzbGFuZCIsQWJyYXNpb24pKSkpKSkpKSkKI3N1bW1hcnkgb2YgTElCUyBkYXRhIGluY2x1ZGluZyBkaXN0YW5jZSBwYXJhbWV0ZXIsIG51bWJlciBvZiBMSUJTIHRhcmdldHMsIGFuZCBudW1iZXIgb2YgTElCUyBwb2ludHMKa2FibGVkZjwtcmJpbmQoIkRpc3RhbmNlIChtKSI9bWV0ZXJzLCJUYXJnZXRzIj1sZW5ndGgoaW5jbHVkZWQubGlicyksIlBvaW50cyI9bnJvdyhsaWJzLnRlcm4pKQprYWJsZShrYWJsZWRmLCBjYXB0aW9uID0iTElCUyAjIG9mIFRhcmdldHMgYW5kIFBvaW50cyB3aXRoaW4gU3BlY2lmaWVkIERpc3RhbmNlIikKYGBgCk5leHQsIHdlIHdpbGwgc2V0IHVwIGEgdGVybmFyeSBkYXRhIGZyYW1lIGZvciB0aGUgUElYTCBkYXRhIHRvIGFkZCBzb21lIHJlZmVyZW5jZSBwb2ludHMgb24gdG9wIG9mIHRoZSBMSUJTIGRhdGEuIFRoaXMgc2hvdWxkIHByb3ZpZGUgbW9yZSBpbnNpZ2h0IGludG8gaG93IHRoZSBjb21wb3NpdGlvbiBvZiBQSVhMIGFuZCBMSUJTIHNhbXBsZXMgcmVsYXRlIGJ5IHRoZWlyIGNhdGlvbiBjb21iaW5hdGlvbnMKCmBgYHtyfQojIFBJWEwgZGF0YSBhZGRlZApwaXhsLmRmIDwtIHJlYWRSRFMoIi9hY2FkZW1pY3MvTUFUUC00OTEwLUYyNC9EQVItTWFycy1GMjQvRGF0YS9zYW1wbGVzX3BpeGxfd2lkZS5SZHMiKQpwaXhsLmRmW3NhcHBseShwaXhsLmRmLCBpcy5jaGFyYWN0ZXIpXSA8LSBsYXBwbHkocGl4bC5kZltzYXBwbHkocGl4bC5kZiwgaXMuY2hhcmFjdGVyKV0sCmFzLmZhY3RvcikKcGl4bC5kZiA8LSBwaXhsLmRmWzI6MTYsXSAjRXhjbHVkaW5nIGZpcnN0LCBhdG1vc3BoZXJpYyBzYW1wbGUKI1BJWEwgZGF0YSwgd2l0aCBpZGVudGljYWxseSByZWZsZWN0ZWQgY29tcG9zaXRpb25zCm5ld19waXhsX3RyaW0gPC0gcGl4bC5kZiAlPiUKZHBseXI6OnNlbGVjdChjKCJOYTIwIiwiTWdvIiwiQWwyMDMiLCJTaTAyIiwgIksyMCIsIkNhbyIsIkZlTy1UIiwgY2FtcGFpZ24sIHR5cGUpKSAlPiUKcmVuYW1lKCJOYTJPIj0iTmEyMCIsIk1nTyI9Ik1nbyIsIkFsMk8zIj0iQWwyMDMiLCJTaU8yIj0iU2kwMiIsIksyTyI9IksyMCIsCiJDYU8iPSJDYW8iLCJGZU9UIj0iRmVPLVQiKQojdGFrZSB0aGUgc3VtcyBvZiB0aGUgc3BlY2lmaWMgZWxlbWVudHMsIGFuZCByZW5hbWUgdHlwZSBjb2x1bW4KcGl4bF90ZXJuYXJ5IDwtIG5ld19waXhsX3RyaW0gJT4lCm11dGF0ZSh4PShTaU8yK0FsMk8zKS8xMDAseT0oRmVPVCtNZ08pLzEwMCx6PShDYU8rTmEyTytLMk8pLzEwMCwgUElYTF9Sb2NrX1R5cGUgPSB0eXBlKSAlPiUKc2VsZWN0KC1jKFNpTzIsQWwyTzMsRmVPVCxNZ08sQ2FPLE5hMk8sSzJPKSkgJT4lCmRyb3BfbmEoKQojVGhpcyBpcyBmb3IgdGhlIGxhYmVscyBvbiB0aGUgVGVybmFyeSBQbG90IGJlbG93CnBpeGxfdGVybmFyeSA8LSBjYmluZChwaXhsX3Rlcm5hcnksIFNhbXBsZV9kaXNwbGF5PQpjKCIyIiwiMyIsIjQsNiw3IiwiNSw4LDkiLCIiLCIiLCIiLCIiLAoiMTAsMTEiLCIiLCIxMiwxMyIsIiIsIjE0LDE1IiwiIiwiMTYiKSkKYGBgCgoKCiMjIDUuMiBDb250cmlidXRpb24KClRoaXMgd29yayB3YXMgYWxzbyBhIGNvbWJpbmF0aW9uIG9mIE1hcmdvIGFuZCBJLiBUaGUgZGF0YSBzZXQgY3JlYXRpb24gd2FzIGJvdGggb2YgdXMgaW4gb3VyIGJyYWluc3Rvcm1pbmcgYXMgdGhpcyB1dGlsaXplcyB0aGUgZGF0YSBzZXQgd2UgY3JlYXRlZCBvZiBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIGZvciBQSVhMLiBUaGUgc2V0dGluZyB1cCBvZiB0aGlzIHBsb3Qgd2FzIGFsc28gY29sbGFib3JhdGl2ZSBiZXR3ZWVuIE1hcmdvIGFuZCBteXNlbGYsIHdlIHdvcmtlZCB0b2dldGhlciB0byBkZWJ1ZyBhbmQgc2V0IHVwIGhvdyB0byBiZXN0IGZvcm1hdCB0aGUgZGF0YSBmb3IgdGhpcyB0ZXJuYXJ5IHBsb3QuIAoKIyMgNS4zIE1ldGhvZHMgRGVzY3JpcHRpb24gCgpGb3IgdGhpcyB0ZXJuYXJ5IHJlcHJlc2VudGF0aW9uLCB3ZSB0b29rIHRoZSB0aW1lIHRvIHJlbW92ZSB0aGUgU0NDVCAoZWFydGggcmVmZXJlbmNlIGRhdGEpIGZyb20gdGhlIExJQlMgZGF0YSwgcmVtb3ZlIHRoZSBhdG1vc3BoZXJpYyBzYW1wbGUgZnJvbSB0aGUgUElYTCBkYXRhLCB1c2UgYSBkaXN0YW5jZSBmdW5jdGlvbiB0byBtYXRjaCBQSVhMIGFicmFzaW9ucyB0byBjb3JyZXNwb25kaW5nIExJQlMgdGFyZ2V0cyB3aXRoaW4gNyBtZXRlcnMgb2YgdGhlIHJlc3BlY3RpdmUgYWJyYXNpb24gKG9yIHdoYXRldmVyIHRoZSBzcGVjaWZpZWQgZGlzdGFuY2UpIGFuZCBzZXQgdXAgYSB0ZXJuYXJ5IGRhdGEgZnJhbWUgd2l0aCBjYXRpb24gY29tYmluYXRpb25zLiBUaGVuLCB0aGUgZGF0YSBmcmFtZSBpcyBtdXRhdGVkIHRvIG1ha2UgdGhlIFBJWEwgYWJyYXNpb25zIGFzIHRoZSBrZXkgKGNvbG9yIExJQlMgdGFyZ2V0cyBieSByZWxhdGVkIFBJWEwgYWJyYXNpb24pIGFuZCBwbG90dGVkIG9uIHRoZSB0ZXJuYXJ5IGRpYWdyYW0uIFdlIGFsc28gcGxvdCB0aGUgUElYTCBzYW1wbGVzIHNvcnRlZCBieSBpZ25lb3VzIG9yIHNlZGltZW50YXJ5IGFzIHN0YXRlZCBieSB0aGUgUElYTCBkYXRhIHNldC4gVGhpcyBjYW4gaGVscCBzaG93IHRoZSBtaW5lcmFsIGV2b2x1dGlvbiBmcm9tIGlnbmVvdXMgdG8gc2VkaW1lbnRhcnkgYW5kIHdoaWNoIFBJWEwgYWJyYXNpb25zIGNvcnJlbGF0ZSB0byB0aGlzLgoKIyMgNS40IFJlc3VsdCBhbmQgRGlzY3Vzc2lvbiAKVXNpbmcgYWxsIG9mIHRoZSBtYW5pcHVsYXRpb24gZG9uZSBmb3IgdGhlIGNyZWF0aW9uIG9mIHRoZSB0ZXJuYXJ5IHBsb3QsIHdlIHRoZW4gcGxvdCB1c2luZyB0aGUgZ2d0ZXJuIGNvbW1hbmQuIFdlIHdpbGwgY29sb3IgYnkgYWJyYXNpb24gdG8gc2VlIHRoZSBkaXN0cmlidXRpb24gb2YgY29tcG9zaXRpb24gYmV0d2VlbiBkaWZmZXJlbnQgYWJyYXNpb25zLiBUaGlzIHNob3VsZCBoZWxwIHVzIGJlIGFibGUgdG8gZHJhdyBkaWZmZXJlbnQgY29uY2x1c2lvbnMgYWJvdXQgaG93IGFicmFzaW9ucyByZWxhdGUgb3IgZG9uJ3QgcmVsYXRlLiBUaGUgbWF4IGRpc3RhbmNlIGJldHdlZW4gdGhlIFBJWEwgdGFyZ2V0IGFuZCBMSUJTIHNhbXBsZSBjYW4gYmUgbW9kaWZpZWQgaG93ZXZlciBkZXNpcmVkLgpgYGB7cn0KZ2d0ZXJuKGxpYnMudGVybiwgZ2d0ZXJuOjphZXMoeD14LHk9eSx6PXopKSArCiAgZ2VvbV9wb2ludChkYXRhPWxpYnMudGVybixhZXMoY29sb3I9QWJyYXNpb24sYWxwaGE9MC41KSkgKyAKICB0aGVtZV9yZ2J3KCkgKyAKICBsYWJzKHRpdGxlPXBhc3RlKCJNYXJzIExJQlMgRGF0YSBXaXRoaW4iLGRpc3RhbmNlLCJtZXRlcnMgb2YgUElYTCIsc2VwPSIgIiksCiAgICAgICB4PSJTaStBbCIsCiAgICAgICB5PSJGZStNZyIsCiAgICAgICB6PSJDYStOYStLIiwKICAgICAgIGNhcHRpb24gPSAiTElCUyBzYW1wbGVzIHRoYXQgYXJlIHdpdGhpbiA3IG1ldGVycyBvZiBhIFBJWEwgYWJyYXNpb24uIFxuRWFjaCBMSUJTIHNhbXBsZSBpcyBjb2xvcmVkIGJ5IHdoYXQgUElYTCBhYnJhc2lvbiBpdCBtYXRjaGVzIHdpdGguIikrCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJyaWdodCIsCiAgICBwbG90LmNhcHRpb24gPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwKSAgIyBBbGlnbnMgY2FwdGlvbiB0byB0aGUgbGVmdAogICkgKyAKICBndWlkZXMoYWxwaGE9Im5vbmUiKSsKICBzdXBwcmVzc1dhcm5pbmdzKGdlb21fcG9pbnQoCiAgICBkYXRhPXBpeGxfdGVybmFyeSwgZ2d0ZXJuOjphZXMoY2x1c3Rlcj1QSVhMX1JvY2tfVHlwZSwgc2hhcGU9UElYTF9Sb2NrX1R5cGUpLCBzaXplID0gMikpICsKI0FkZCBsYWJlbHMgdG8gUElYTCBkYXRhIGNvcnJlc3BvbmRpbmcgdG8gc2FtcGxlIG51bWJlcgogIHN1cHByZXNzV2FybmluZ3MoZ2VvbV90ZXh0KGRhdGE9cGl4bF90ZXJuYXJ5LCBnZ3Rlcm46OmFlcyh4PXgsIHk9eSwgej16LCBsYWJlbD1TYW1wbGVfZGlzcGxheSwgY2x1c3Rlcj1QSVhMX1JvY2tfVHlwZSwgICMgSG9yaXpvbnRhbCBhZGp1c3QgdG8gYXZvaWQgb3ZlcmxhcAogICAgaGp1c3QgPSBpZmVsc2UoeCA+IDAuNDMsIDEsIC0wLjEpLAogICAgdmp1c3QgPSBpZmVsc2UoeCA9PSAwLjM2NjgsIDEuMywKICAgICAgICBpZmVsc2UoeCA9PSAwLjM3NSwgMSwgaWZlbHNlKHggPiAwLjQzLCAxLjUsIC0wLjMpKSksCiAgICBmb250ZmFjZT0iYm9sZCIpLAogICAgc2l6ZT0yLjcpKQpgYGAKCgojIyA1LjUgQ29uY2x1c2lvbnMgYW5kIEZ1dHVyZSBXb3JrCkJhc2VkIG9uIHRoaXMgdGVybmFyeSBwbG90LCB3ZSBjYW4gc2VlIEFsZmFsZmEgYW5kIEJlbGxlZ3JhZGUgYXJlIGhpZ2hlciBpbiBTaStBbCBhbmQgVWdhbmlrIElzbGFuZCBpcyBhbiBvdXRsaWVyLiBXZSBjYW4gYWxzbyBzZWUgdGhlIHJvY2sgZXZvbHV0aW9uIGZyb20gaWduZW91cyAoYmxhY2sgY2lyY2xlcykgdG8gc2VkaW1lbnRhcnkgKGJsYWNrIHRyaWFuZ2xlcykgYXMgd2UgbW92ZSBmcm9tIGhpZ2hlciBTaStBbCAob3ZlciA4MCAlKSB0byBsb3cgaW4gU2krQWwgYW5kIGhpZ2ggaW4gRmUrTWcuIFRoaXMgY29uY2x1c2lvbiB3YXMgY29tbWVudGVkIG9uIGJ5IEFuZHJldyBTdGVlbGUgb2YgdGhlIENhcm5lZ2llIEluc3RpdHV0ZSBvZiBTY2llbmNlLiBBcyB0aGlzIHdhcyB0aGUgbGFzdCBwaWVjZSBvZiB0aGUgUElYTCBkYXRhIGluIHRoZSBkYXRhIHNldCBhbmQgaXQgd2FzIG1pc3NpbmcgYSBwYWlyIHNpbmNlIGV2ZXJ5IG90aGVyIGFicmFzaW9uIHdhcyBtYWRlIHVwIG9mIHR3byBzYW1wbGVzLCBpdCBpcyBpbmNsdWRlZCBpbiBoZXJlIGJ1dCB1bnRpbCB0aGUgZGF0YSBzZXQgaXMgdXBkYXRlZCB0aGVyZSBpcyBub3QgZW5vdWdoIGNvbnRleHQgdG8gZXhwbGFpbiB3aHkgaXQgaXMgc28gdmFzdGx5IGRpZmZlcmVudC4gSSB3b3VsZCBhc3N1bWUgaXQgaXMgZHVlIHRvIGhvdyB0aGUgcm9ib3QgaXMgdHJhdmVsaW5nIGFuZCB0aGUgbG9jYXRpb24gb2YgdGhlIFVnYW5payBJc2xhbmQgYWJyYXNpb24gaXMgdmVyeSBkaWZmZXJlbnQgdGhhbiB0aGUgb3RoZXIgNyBhYnJhc2lvbnMuIEZ1dHVyZSB3b3JrIGNvdWxkIGluY2x1ZGUgZGl2aW5nIGRlZXBlciBpbnRvIHRoZSBldm9sdXRpb24gcHJvY2VzcyBvZiByb2NrcyAoaWduZW91cyBhYnJhc2lvbnMgQWxmYWxmYSBhbmQgRG91cmJlcyB0byBzZWRpbWVudGFyeSBhYnJhc2lvbnMgVGhvcm50b24gR2FwKS4KCiMgQmlibGlvZ3JhcGh5CgoqIOKAnE1hcnMgUm9jayBTYW1wbGVzIC0gTkFTQSBTY2llbmNlLuKAnSBOQVNBLCBzY2llbmNlLm5hc2EuZ292L21pc3Npb24vbWFycy0yMDIwLQpwZXJzZXZlcmFuY2UvbWFycy1yb2NrLXNhbXBsZXMvLgoqIOKAnEFuYWx5c3QgTm90ZWJvb2vigJ0sIGh0dHBzOi8vYW4ucnNsLnd1c3RsLmVkdS9tMjAvQU4vYWNjb3VudC9sb2dpbi5hc3B4LiAKCiMgQXBwZW5kaXgKCkhlcmUsIEkgd2lsbCBkaXNwbGF5IHNvbWUgb2YgdGhlIGVhcmxpZXIgc29pbCBjb21wb3NpdGlvbiBwbG90cyBmb3IgZGlmZmVyZW50IFBJWEwgYWJyYXNpb25zLgoKYGBge3IsIGluY2x1ZGU9RkFMU0V9CiNFYXJ0aCBxdWFydGlsZXMKZWFydGhxdWFydGlsZXMuZGY8LXJlYWRSRFMoIi9hY2FkZW1pY3MvTUFUUC00OTEwLUYyNC9EQVItTWFycy1GMjQvRGF0YS9MSUJTX3RyYWluaW5nX3NldF9xdWFydGlsZXMuUmRzIikKI0xvYWQgaW4gTElCUyBkYXRhCmxpYnMuZGYgPC0gcmVhZFJEUygiL2FjYWRlbWljcy9NQVRQLTQ5MTAtRjI0L0RBUi1NYXJzLUYyNC9EYXRhL3N1cGVyY2FtX2xpYnNfbW9jX2xvYy5SZHMiKQojRHJvcCB0aGUgc3RhbmRhcmQgZGV2aWF0aW9uIGZlYXR1cmVzLCB0aGUgc3VtIG9mIHRoZSBwZXJjZW50YWdlcywgCiN0aGUgZGlzdGFuY2UsIGFuZCB0aGUgdG90YWwgZnJlcXVlbmNpZXMKbGlicy5kZiA8LSBsaWJzLmRmICU+JSAKICBzZWxlY3QoIShjKGRpc3RhbmNlX21tLFRvdC5FbS4sU2lPMl9zdGRldixUaU8yX3N0ZGV2LEFsMk8zX3N0ZGV2LEZlT1Rfc3RkZXYsCiAgICAgICAgICAgICBNZ09fc3RkZXYsTmEyT19zdGRldixDYU9fc3RkZXYsSzJPX3N0ZGV2LFRvdGFsKSkpCiMgQ29udmVydCB0aGUgcG9pbnRzIHRvIG51bWVyaWMKbGlicy5kZiRwb2ludCA8LSBhcy5udW1lcmljKGxpYnMuZGYkcG9pbnQpCmxpYnMuZGZbLDY6MTNdIDwtIHNhcHBseShsaWJzLmRmWyw2OjEzXSxhcy5udW1lcmljKQojcmVtb3ZlIHRoZSBzY2N0L3JlZmVyZW5jZSBzYW1wbGVzCmxpYnMuZGY8LWxpYnMuZGYlPiUKICBmaWx0ZXIoIShncmVwbCgic2NjdCIsIHRhcmdldCkpKQojYWRkIGEgY29sdW1uIHRvIGluZGljYXRlIHRoZSBuZWFyZXN0IHBpeGwKbGlicy5kZjwtY2JpbmQobmVhcmVzdHBpeGw9MCxsaWJzLmRmKQojbWFrZSBhIGRhdGFmcmFtZSBvZiBqdXN0IHRoZSBMSUJTIExhdC9Mb25nIGFuZCB0YXJnZXQgbmFtZSBhbmQgcmVtb3ZlIGR1cGxpY2F0ZXMKbGlic3RhcmdldHMuZGY8LWxpYnMuZGZbLGMoMSwzLDQsNSldCmxpYnN0YXJnZXRzLmRmPC1kaXN0aW5jdChsaWJzdGFyZ2V0cy5kZikKYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KI0Nob29zZSBtYXggZGlzdGFuY2UgdmFyaWFibGUgYmV0d2VlbiBQSVhMIGFuZCBMSUJTIGRhdGEKbWV0ZXJzID0gNwojQ2hvb3NlIFBJWEwgYWJyYXNpb24geW91IHdhbnQgdG8gbG9vayBhdAphYnJhc2lvbl9uYW1lID0gIkFsZmFsZmEiCmBgYAoKYGBge3IsIGluY2x1ZGU9RkFMU0V9CiNyZWFkIGluIHBpeGwgZGF0YSB3aXRoIGxhdC9sb25nCnBpeGwuZGY8LXJlYWRSRFMoIi9hY2FkZW1pY3MvTUFUUC00OTEwLUYyNC9EQVItTWFycy1GMjQvU3R1ZGVudERhdGEvcGl4bF9zb2xfY29vcmRpbmF0ZXMuUmRzIikKI2luY2x1ZGUgb25seSBwaXhsIG1ldGFkYXRhCnBpeGwuZGY8LXBpeGwuZGYgJT4lCiAgc2VsZWN0KGMoMSwyLDE5LDIwLDIyKSkKI2NvbnZlcnQgTGF0L0xvbmcgdG8gbnVtZXJpYwpwaXhsLmRmJExhdCA8LSBhcy5udW1lcmljKHBpeGwuZGYkTGF0KQpwaXhsLmRmJExvbmcgPC0gYXMubnVtZXJpYyhwaXhsLmRmJExvbmcpCiNyZW1vdmUgcm93cyBzbyB3ZSBvbmx5IGhhdmUgb25lIHNhbXBsZSBwZXIgYWJyYXNpb24gYW5kIHJlbW92ZSBhdG1vc3BoZXJpYyBzYW1wbGUKcGl4bC5kZjwtcGl4bC5kZltjKDIsNCw2LDgsMTAsMTIsMTQsMTYpLF0KYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KbGlic3RhcmdldHMuZGY8LWNiaW5kKGxpYnN0YXJnZXRzLmRmLCJEaXN0YW5jZSI9MCwiQmVsbGVncmFkZSI9MCwiRG91cmJlcyI9MCwiUXVhcnRpZXIiPTAsIkFsZmFsZmEiPTAsIlRob3JudG9uR2FwIj0wLCJCZXJyeSBIb2xsb3ciPTAsIk5vdmFydXB0YSI9MCwiVWdhbmlrIElzbGFuZCI9MCkKYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KZm9yKGkgaW4gMTpucm93KGxpYnN0YXJnZXRzLmRmKSkgewogICAgbGlic3RhcmdldHMuZGZbaSxjKDY6MTMpXTwtYyhkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMSxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMixjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMyxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNCxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNSxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNixjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNyxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbOCxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpKQogICAgCiAgICBsaWJzdGFyZ2V0cy5kZltpLDFdPC13aGljaC5taW4obGlic3RhcmdldHMuZGZbaSxjKDY6MTMpXSkKICAgIGxpYnN0YXJnZXRzLmRmW2ksNV08LW1pbihsaWJzdGFyZ2V0cy5kZltpLGMoNjoxMyldKQp9CmxpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPC1hcy5mYWN0b3IobGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGwpCmxldmVscyhsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bCk8LShjKCJCZWxsZWdyYWRlIiwiRG91cmJlcyIsIlF1YXJ0aWVyIiwiQWxmYWxmYSIsIlRob3JudG9uR2FwIiwiQmVycnkgSG9sbG93IiwiTm92YXJ1cHRhIiwiVWdhbmlrIElzbGFuZCIpKQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQpCZWxsZWdyYWRlPC1saWJzdGFyZ2V0cy5kZltsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bD09IkJlbGxlZ3JhZGUiLF0kdGFyZ2V0CkRvdXJiZXM8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iRG91cmJlcyIsXSR0YXJnZXQKUXVhcnRpZXI8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iUXVhcnRpZXIiLF0kdGFyZ2V0CkFsZmFsZmE8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iQWxmYWxmYSIsXSR0YXJnZXQKVGhvcm50b25HYXA8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iVGhvcm50b25HYXAiLF0kdGFyZ2V0CkJlcnJ5SG9sbG93PC1saWJzdGFyZ2V0cy5kZltsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bD09IkJlcnJ5IEhvbGxvdyIsXSR0YXJnZXQKTm92YXJ1cHRhPC1saWJzdGFyZ2V0cy5kZltsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bD09Ik5vdmFydXB0YSIsXSR0YXJnZXQKVWdhbmlrSXNsYW5kPC1saWJzdGFyZ2V0cy5kZltsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bD09IlVnYW5payBJc2xhbmQiLF0kdGFyZ2V0CmBgYAoKYGBge3IsIGluY2x1ZGU9RkFMU0V9CmluY2x1ZGVkLmxpYnM8LShsaWJzdGFyZ2V0cy5kZiU+JQogIGZpbHRlcihEaXN0YW5jZTxtZXRlcnMpKSR0YXJnZXQKbGlicy5tYXRyaXggPC1saWJzLmRmICU+JQogIGZpbHRlcih0YXJnZXQgJWluJSBpbmNsdWRlZC5saWJzKQpsaWJzLm1hdHJpeCA8LSBsaWJzLm1hdHJpeFssYyg1LDc6MTQpXQpsaWJzLm1hdHJpeDwtbGlicy5tYXRyaXhbLGMoMToyLDQ6OSwzKV0KbGlicy5tYXRyaXg8LWNiaW5kKCJBYnJhc2lvbiI9MCxsaWJzLm1hdHJpeCkKbGlicy5tYXRyaXg8LWxpYnMubWF0cml4JT4lCiAgbXV0YXRlKEFicmFzaW9uID0gaWZlbHNlKHRhcmdldCVpbiVBbGZhbGZhLCJBbGZhbGZhIiwgCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIEJlbGxlZ3JhZGUsICJCZWxsZWdyYWRlIiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgQmVycnlIb2xsb3csICJCZXJyeSBIb2xsb3ciLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBEb3VyYmVzLCAiRG91cmJlcyIsCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIE5vdmFydXB0YSwgIk5vdmFydXB0YSIsCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIFF1YXJ0aWVyLCAiUXVhcnRpZXIiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBUaG9ybnRvbkdhcCwgIlRob3JudG9uR2FwIiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgVWdhbmlrSXNsYW5kLCAiVWdhbmlrIElzbGFuZCIsQWJyYXNpb24pKSkpKSkpKSkKbGlicy5tYXRyaXg8LWNiaW5kKGxpYnNvcnBpeGw9MSxsaWJzLm1hdHJpeCkKYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KI3JlYWQgaW4gcGl4bCBkYXRhIHdpdGggbGF0L2xvbmcKcGl4bC5kZjwtcmVhZFJEUygiL2FjYWRlbWljcy9NQVRQLTQ5MTAtRjI0L0RBUi1NYXJzLUYyNC9TdHVkZW50RGF0YS9waXhsX3NvbF9jb29yZGluYXRlcy5SZHMiKQpwaXhsLmRmPC1waXhsLmRmICU+JQogIHNlbGVjdChjKDU6OCwxMjoxNCwxNywxOSwxOCwyMikpCiNyZW9yZGVyIHBpeGwgY29sdW1ucyBzbyB0aGF0IGl0IG1hdGNoZXMgbGlicyBkYXRhIG9yZ2FuaXphdGlvbgpwaXhsLmRmPC1waXhsLmRmWyxjKDExLDEwLDQsMyw4LDIsNiwxLDUsNyldCiNyZW1vdmUgYXRtb3NwaGVyaWMgc2FtcGxlCnBpeGwuZGY8LXBpeGwuZGZbMjoxNixdCnBpeGwuZGY8LWNiaW5kKGxpYnNvcnBpeGw9MCxwaXhsLmRmKQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQpjb2xuYW1lcyhwaXhsLmRmKTwtY29sbmFtZXMobGlicy5tYXRyaXgpCnBpeGxsaWJzLmRmPC1yYmluZChwaXhsLmRmLGxpYnMubWF0cml4KQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQojIEVhcnRoIHF1YXJ0aWxlcwpmaWx0ZXJlZF9yb3dzIDwtIGVhcnRocXVhcnRpbGVzLmRmICU+JQogIGZpbHRlcihgVHJhaW5pbmcgc2V0IFF1YXJ0aWxlc2AgJWluJSBjKCIxc3QiLCAiM3JkIiwgIk1lZCIpKQplYXJ0aHF1YXJ0aWxlc19sb25nIDwtIGZpbHRlcmVkX3Jvd3MgJT4lCiAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBzdGFydHNfd2l0aCgiU2lPMiIpOmxhc3RfY29sKCksIG5hbWVzX3RvID0gIkNvbXBvdW5kIiwgdmFsdWVzX3RvID0gIlBlcmNlbnRhZ2UiKQoKZWFydGhxdWFydGlsZXNfbG9uZyA8LSBlYXJ0aHF1YXJ0aWxlc19sb25nICU+JSByZW5hbWUoUXVhcnRpbGVzID0gYFRyYWluaW5nIHNldCBRdWFydGlsZXNgKQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQojIEZpbHRlciBmb3IgdGhlIHNwZWNpZmljIGFicmFzaW9uIHNhbXBsZSwgZS5nLiwgIkFsZmFsZmEiCnBpeGxsaWJzX2ZpbHRlcmVkIDwtIHBpeGxsaWJzLmRmICU+JQogIGZpbHRlcihBYnJhc2lvbiA9PSBhYnJhc2lvbl9uYW1lKQoKIyBQaXZvdCB0aGUgZGF0YSB0byBsb25nZXIgZm9ybWF0IGZvciBnZ3Bsb3QKcGl4bGxpYnNfbG9uZyA8LSBwaXhsbGlic19maWx0ZXJlZCAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IHN0YXJ0c193aXRoKCJTaU8yIik6bGFzdF9jb2woKSwgbmFtZXNfdG8gPSAiQ29tcG91bmQiLCB2YWx1ZXNfdG8gPSAiUGVyY2VudGFnZSIpCgpkZXNpcmVkX29yZGVyIDwtIGMoIlNpTzIiLCAiQWwyTzMiLCAiRmVPVCIsICJNZ08iLCAiQ2FPIiwgIk5hMk8iLCAiSzJPIiwgIlRpTzIiKSAgIyBTcGVjaWZ5IHlvdXIgY3VzdG9tIG9yZGVyIGhlcmUKcGl4bGxpYnNfbG9uZyRDb21wb3VuZCA8LSBmYWN0b3IocGl4bGxpYnNfbG9uZyRDb21wb3VuZCwgbGV2ZWxzID0gZGVzaXJlZF9vcmRlcikKYGBgCgpgYGB7ciwgaW5jbHVkZT1UUlVFfQojIE1hcCB0aGUgUElYTC9MSUJTIGNvbHVtbiB0byBjb2xvciBhbmQgdXNlIHRhcmdldF9uYW1lIHRvIGRpZmZlcmVudGlhdGUgbGluZXMKc3VwcHJlc3NXYXJuaW5ncyhnZ3Bsb3QocGl4bGxpYnNfbG9uZywgYWVzKHggPSBDb21wb3VuZCwgeSA9IFBlcmNlbnRhZ2UsIGNvbG9yID0gYXMuZmFjdG9yKGxpYnNvcnBpeGwpLCBncm91cCA9IHRhcmdldCkpICsKICBnZW9tX2xpbmUoKSArCiAgZ2VvbV9wb2ludCgpICsKICBzY2FsZV95X2NvbnRpbnVvdXModHJhbnM9J2xvZzEwJykgKwogICMgQWRkIEVhcnRoIHF1YXJ0aWxlIGxpbmVzIHVzaW5nIGVhcnRocXVhcnRpbGVzX2xvbmcKICBnZW9tX2xpbmUoZGF0YSA9IGVhcnRocXVhcnRpbGVzX2xvbmcsIGFlcyh4ID0gQ29tcG91bmQsIHkgPSBQZXJjZW50YWdlLCBsaW5ldHlwZSA9IFF1YXJ0aWxlcywgZ3JvdXAgPSBRdWFydGlsZXMpLCAKICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBsaW5ldHlwZSA9ICJkb3R0ZWQiKSArCiAgbGFicyh0aXRsZSA9IHBhc3RlKCJTb2lsIENvbXBvc2l0aW9uIGZvciBQSVhMIixhYnJhc2lvbl9uYW1lLCJhbmQgTElCUyB3aXRoaW4iLCBtZXRlcnMsICJtZXRlcnMiLCBzZXAgPSAiICIpLAogICAgICAgeCA9ICJDaGVtaWNhbCBDb21wb3VuZCIsCiAgICAgICB5ID0gIldlaWdodCBQZXJjZW50YWdlIiwKICAgICAgIGNvbG9yID0gIk1lYXN1cmVtZW50IFR5cGUiLAogICAgICAgbGluZXR5cGUgPSAiUXVhcnRpbGVzIiwKICAgICAgIGNhcHRpb24gPSAiVGhlIGNoZW1pY2FsIGNvbXBvc2l0aW9uIG9mIGEgUElYTCBhYnJhc2lvbiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgTElCUyB0YXJnZXRzIFxuIHdpdGhpbiBzcGVjaWZpZWQgZGlzdGFuY2Ugb2YgcmVzcGVjdGl2ZSBhYnJhc2lvbi4iKSArCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoIjAiID0gImJsdWUiLCAiMSIgPSAicmVkIiksIGxhYmVscyA9IGMoIlBJWEwiLCAiTElCUyIpKSArCiAgYW5ub3RhdGUoInRleHQiLCB4ID0gNSwgeSA9IC41MCwgbGFiZWwgPSAiMXN0IFF1YXJ0aWxlIiwgY29sb3IgPSAiYmxhY2siLCBoanVzdCA9IDApICsKICBhbm5vdGF0ZSgidGV4dCIsIHggPSA1LCB5ID0gMiwgbGFiZWwgPSAiTWVkaWFuIiwgY29sb3IgPSAiYmxhY2siLCBoanVzdCA9IDApICsKICBhbm5vdGF0ZSgidGV4dCIsIHggPSA1LCB5ID0gMTAsIGxhYmVsID0gIjNyZCBRdWFydGlsZSIsIGNvbG9yID0gImJsYWNrIiwgaGp1c3QgPSAwKSsKICB0aGVtZV9taW5pbWFsKCkrCiAgICAgIyBDZW50ZXIgdGhlIGNhcHRpb24gb24gdGhlIGxlZnQgc2lkZQogIHRoZW1lKAogICAgcGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMCkgICMgQWxpZ25zIGNhcHRpb24gdG8gdGhlIGxlZnQKICApKQoKYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KI0VhcnRoIHF1YXJ0aWxlcwplYXJ0aHF1YXJ0aWxlcy5kZjwtcmVhZFJEUygiL2FjYWRlbWljcy9NQVRQLTQ5MTAtRjI0L0RBUi1NYXJzLUYyNC9EYXRhL0xJQlNfdHJhaW5pbmdfc2V0X3F1YXJ0aWxlcy5SZHMiKQojTG9hZCBpbiBMSUJTIGRhdGEKbGlicy5kZiA8LSByZWFkUkRTKCIvYWNhZGVtaWNzL01BVFAtNDkxMC1GMjQvREFSLU1hcnMtRjI0L0RhdGEvc3VwZXJjYW1fbGlic19tb2NfbG9jLlJkcyIpCiNEcm9wIHRoZSBzdGFuZGFyZCBkZXZpYXRpb24gZmVhdHVyZXMsIHRoZSBzdW0gb2YgdGhlIHBlcmNlbnRhZ2VzLCAKI3RoZSBkaXN0YW5jZSwgYW5kIHRoZSB0b3RhbCBmcmVxdWVuY2llcwpsaWJzLmRmIDwtIGxpYnMuZGYgJT4lIAogIHNlbGVjdCghKGMoZGlzdGFuY2VfbW0sVG90LkVtLixTaU8yX3N0ZGV2LFRpTzJfc3RkZXYsQWwyTzNfc3RkZXYsRmVPVF9zdGRldiwKICAgICAgICAgICAgIE1nT19zdGRldixOYTJPX3N0ZGV2LENhT19zdGRldixLMk9fc3RkZXYsVG90YWwpKSkKIyBDb252ZXJ0IHRoZSBwb2ludHMgdG8gbnVtZXJpYwpsaWJzLmRmJHBvaW50IDwtIGFzLm51bWVyaWMobGlicy5kZiRwb2ludCkKbGlicy5kZlssNjoxM10gPC0gc2FwcGx5KGxpYnMuZGZbLDY6MTNdLGFzLm51bWVyaWMpCiNyZW1vdmUgdGhlIHNjY3QvcmVmZXJlbmNlIHNhbXBsZXMKbGlicy5kZjwtbGlicy5kZiU+JQogIGZpbHRlcighKGdyZXBsKCJzY2N0IiwgdGFyZ2V0KSkpCiNhZGQgYSBjb2x1bW4gdG8gaW5kaWNhdGUgdGhlIG5lYXJlc3QgcGl4bApsaWJzLmRmPC1jYmluZChuZWFyZXN0cGl4bD0wLGxpYnMuZGYpCiNtYWtlIGEgZGF0YWZyYW1lIG9mIGp1c3QgdGhlIExJQlMgTGF0L0xvbmcgYW5kIHRhcmdldCBuYW1lIGFuZCByZW1vdmUgZHVwbGljYXRlcwpsaWJzdGFyZ2V0cy5kZjwtbGlicy5kZlssYygxLDMsNCw1KV0KbGlic3RhcmdldHMuZGY8LWRpc3RpbmN0KGxpYnN0YXJnZXRzLmRmKQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQojQ2hvb3NlIG1heCBkaXN0YW5jZSB2YXJpYWJsZSBiZXR3ZWVuIFBJWEwgYW5kIExJQlMgZGF0YQptZXRlcnMgPSA3CiNDaG9vc2UgUElYTCBhYnJhc2lvbiB5b3Ugd2FudCB0byBsb29rIGF0CmFicmFzaW9uX25hbWUgPSAiUXVhcnRpZXIiCmBgYAoKYGBge3IsIGluY2x1ZGU9RkFMU0V9CiNyZWFkIGluIHBpeGwgZGF0YSB3aXRoIGxhdC9sb25nCnBpeGwuZGY8LXJlYWRSRFMoIi9hY2FkZW1pY3MvTUFUUC00OTEwLUYyNC9EQVItTWFycy1GMjQvU3R1ZGVudERhdGEvcGl4bF9zb2xfY29vcmRpbmF0ZXMuUmRzIikKI2luY2x1ZGUgb25seSBwaXhsIG1ldGFkYXRhCnBpeGwuZGY8LXBpeGwuZGYgJT4lCiAgc2VsZWN0KGMoMSwyLDE5LDIwLDIyKSkKI2NvbnZlcnQgTGF0L0xvbmcgdG8gbnVtZXJpYwpwaXhsLmRmJExhdCA8LSBhcy5udW1lcmljKHBpeGwuZGYkTGF0KQpwaXhsLmRmJExvbmcgPC0gYXMubnVtZXJpYyhwaXhsLmRmJExvbmcpCiNyZW1vdmUgcm93cyBzbyB3ZSBvbmx5IGhhdmUgb25lIHNhbXBsZSBwZXIgYWJyYXNpb24gYW5kIHJlbW92ZSBhdG1vc3BoZXJpYyBzYW1wbGUKcGl4bC5kZjwtcGl4bC5kZltjKDIsNCw2LDgsMTAsMTIsMTQsMTYpLF0KYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KbGlic3RhcmdldHMuZGY8LWNiaW5kKGxpYnN0YXJnZXRzLmRmLCJEaXN0YW5jZSI9MCwiQmVsbGVncmFkZSI9MCwiRG91cmJlcyI9MCwiUXVhcnRpZXIiPTAsIkFsZmFsZmEiPTAsIlRob3JudG9uR2FwIj0wLCJCZXJyeSBIb2xsb3ciPTAsIk5vdmFydXB0YSI9MCwiVWdhbmlrIElzbGFuZCI9MCkKYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KZm9yKGkgaW4gMTpucm93KGxpYnN0YXJnZXRzLmRmKSkgewogICAgbGlic3RhcmdldHMuZGZbaSxjKDY6MTMpXTwtYyhkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMSxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMixjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbMyxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNCxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNSxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNixjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbNyxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0SGF2ZXJzaW5lKHBpeGwuZGZbOCxjKDEsMildLGxpYnN0YXJnZXRzLmRmW2ksYygyLDMpXSxyPTMzOTMxNjkpKQogICAgCiAgICBsaWJzdGFyZ2V0cy5kZltpLDFdPC13aGljaC5taW4obGlic3RhcmdldHMuZGZbaSxjKDY6MTMpXSkKICAgIGxpYnN0YXJnZXRzLmRmW2ksNV08LW1pbihsaWJzdGFyZ2V0cy5kZltpLGMoNjoxMyldKQp9CmxpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPC1hcy5mYWN0b3IobGlic3RhcmdldHMuZGYkbmVhcmVzdHBpeGwpCmxldmVscyhsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bCk8LShjKCJCZWxsZWdyYWRlIiwiRG91cmJlcyIsIlF1YXJ0aWVyIiwiQWxmYWxmYSIsIlRob3JudG9uR2FwIiwiQmVycnkgSG9sbG93IiwiTm92YXJ1cHRhIiwiVWdhbmlrIElzbGFuZCIpKQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQpCZWxsZWdyYWRlPC1saWJzdGFyZ2V0cy5kZltsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bD09IkJlbGxlZ3JhZGUiLF0kdGFyZ2V0CkRvdXJiZXM8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iRG91cmJlcyIsXSR0YXJnZXQKUXVhcnRpZXI8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iUXVhcnRpZXIiLF0kdGFyZ2V0CkFsZmFsZmE8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iQWxmYWxmYSIsXSR0YXJnZXQKVGhvcm50b25HYXA8LWxpYnN0YXJnZXRzLmRmW2xpYnN0YXJnZXRzLmRmJG5lYXJlc3RwaXhsPT0iVGhvcm50b25HYXAiLF0kdGFyZ2V0CkJlcnJ5SG9sbG93PC1saWJzdGFyZ2V0cy5kZltsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bD09IkJlcnJ5IEhvbGxvdyIsXSR0YXJnZXQKTm92YXJ1cHRhPC1saWJzdGFyZ2V0cy5kZltsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bD09Ik5vdmFydXB0YSIsXSR0YXJnZXQKVWdhbmlrSXNsYW5kPC1saWJzdGFyZ2V0cy5kZltsaWJzdGFyZ2V0cy5kZiRuZWFyZXN0cGl4bD09IlVnYW5payBJc2xhbmQiLF0kdGFyZ2V0CmBgYAoKYGBge3IsIGluY2x1ZGU9RkFMU0V9CmluY2x1ZGVkLmxpYnM8LShsaWJzdGFyZ2V0cy5kZiU+JQogIGZpbHRlcihEaXN0YW5jZTxtZXRlcnMpKSR0YXJnZXQKbGlicy5tYXRyaXggPC1saWJzLmRmICU+JQogIGZpbHRlcih0YXJnZXQgJWluJSBpbmNsdWRlZC5saWJzKQpsaWJzLm1hdHJpeCA8LSBsaWJzLm1hdHJpeFssYyg1LDc6MTQpXQpsaWJzLm1hdHJpeDwtbGlicy5tYXRyaXhbLGMoMToyLDQ6OSwzKV0KbGlicy5tYXRyaXg8LWNiaW5kKCJBYnJhc2lvbiI9MCxsaWJzLm1hdHJpeCkKbGlicy5tYXRyaXg8LWxpYnMubWF0cml4JT4lCiAgbXV0YXRlKEFicmFzaW9uID0gaWZlbHNlKHRhcmdldCVpbiVBbGZhbGZhLCJBbGZhbGZhIiwgCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIEJlbGxlZ3JhZGUsICJCZWxsZWdyYWRlIiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgQmVycnlIb2xsb3csICJCZXJyeSBIb2xsb3ciLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBEb3VyYmVzLCAiRG91cmJlcyIsCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIE5vdmFydXB0YSwgIk5vdmFydXB0YSIsCiAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHRhcmdldCAlaW4lIFF1YXJ0aWVyLCAiUXVhcnRpZXIiLAogICAgICAgICAgICAgICAgICAgIGlmZWxzZSh0YXJnZXQgJWluJSBUaG9ybnRvbkdhcCwgIlRob3JudG9uR2FwIiwKICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFyZ2V0ICVpbiUgVWdhbmlrSXNsYW5kLCAiVWdhbmlrIElzbGFuZCIsQWJyYXNpb24pKSkpKSkpKSkKbGlicy5tYXRyaXg8LWNiaW5kKGxpYnNvcnBpeGw9MSxsaWJzLm1hdHJpeCkKYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KI3JlYWQgaW4gcGl4bCBkYXRhIHdpdGggbGF0L2xvbmcKcGl4bC5kZjwtcmVhZFJEUygiL2FjYWRlbWljcy9NQVRQLTQ5MTAtRjI0L0RBUi1NYXJzLUYyNC9TdHVkZW50RGF0YS9waXhsX3NvbF9jb29yZGluYXRlcy5SZHMiKQpwaXhsLmRmPC1waXhsLmRmICU+JQogIHNlbGVjdChjKDU6OCwxMjoxNCwxNywxOSwxOCwyMikpCiNyZW9yZGVyIHBpeGwgY29sdW1ucyBzbyB0aGF0IGl0IG1hdGNoZXMgbGlicyBkYXRhIG9yZ2FuaXphdGlvbgpwaXhsLmRmPC1waXhsLmRmWyxjKDExLDEwLDQsMyw4LDIsNiwxLDUsNyldCiNyZW1vdmUgYXRtb3NwaGVyaWMgc2FtcGxlCnBpeGwuZGY8LXBpeGwuZGZbMjoxNixdCnBpeGwuZGY8LWNiaW5kKGxpYnNvcnBpeGw9MCxwaXhsLmRmKQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQpjb2xuYW1lcyhwaXhsLmRmKTwtY29sbmFtZXMobGlicy5tYXRyaXgpCnBpeGxsaWJzLmRmPC1yYmluZChwaXhsLmRmLGxpYnMubWF0cml4KQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQojIEVhcnRoIHF1YXJ0aWxlcwpmaWx0ZXJlZF9yb3dzIDwtIGVhcnRocXVhcnRpbGVzLmRmICU+JQogIGZpbHRlcihgVHJhaW5pbmcgc2V0IFF1YXJ0aWxlc2AgJWluJSBjKCIxc3QiLCAiM3JkIiwgIk1lZCIpKQplYXJ0aHF1YXJ0aWxlc19sb25nIDwtIGZpbHRlcmVkX3Jvd3MgJT4lCiAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBzdGFydHNfd2l0aCgiU2lPMiIpOmxhc3RfY29sKCksIG5hbWVzX3RvID0gIkNvbXBvdW5kIiwgdmFsdWVzX3RvID0gIlBlcmNlbnRhZ2UiKQoKZWFydGhxdWFydGlsZXNfbG9uZyA8LSBlYXJ0aHF1YXJ0aWxlc19sb25nICU+JSByZW5hbWUoUXVhcnRpbGVzID0gYFRyYWluaW5nIHNldCBRdWFydGlsZXNgKQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQojIEZpbHRlciBmb3IgdGhlIHNwZWNpZmljIGFicmFzaW9uIHNhbXBsZSwgZS5nLiwgIkFsZmFsZmEiCnBpeGxsaWJzX2ZpbHRlcmVkIDwtIHBpeGxsaWJzLmRmICU+JQogIGZpbHRlcihBYnJhc2lvbiA9PSBhYnJhc2lvbl9uYW1lKQoKIyBQaXZvdCB0aGUgZGF0YSB0byBsb25nZXIgZm9ybWF0IGZvciBnZ3Bsb3QKcGl4bGxpYnNfbG9uZyA8LSBwaXhsbGlic19maWx0ZXJlZCAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IHN0YXJ0c193aXRoKCJTaU8yIik6bGFzdF9jb2woKSwgbmFtZXNfdG8gPSAiQ29tcG91bmQiLCB2YWx1ZXNfdG8gPSAiUGVyY2VudGFnZSIpCgpkZXNpcmVkX29yZGVyIDwtIGMoIlNpTzIiLCAiQWwyTzMiLCAiRmVPVCIsICJNZ08iLCAiQ2FPIiwgIk5hMk8iLCAiSzJPIiwgIlRpTzIiKSAgIyBTcGVjaWZ5IHlvdXIgY3VzdG9tIG9yZGVyIGhlcmUKcGl4bGxpYnNfbG9uZyRDb21wb3VuZCA8LSBmYWN0b3IocGl4bGxpYnNfbG9uZyRDb21wb3VuZCwgbGV2ZWxzID0gZGVzaXJlZF9vcmRlcikKYGBgCgpgYGB7ciwgaW5jbHVkZT1UUlVFfQojIE1hcCB0aGUgUElYTC9MSUJTIGNvbHVtbiB0byBjb2xvciBhbmQgdXNlIHRhcmdldF9uYW1lIHRvIGRpZmZlcmVudGlhdGUgbGluZXMKc3VwcHJlc3NXYXJuaW5ncyhnZ3Bsb3QocGl4bGxpYnNfbG9uZywgYWVzKHggPSBDb21wb3VuZCwgeSA9IFBlcmNlbnRhZ2UsIGNvbG9yID0gYXMuZmFjdG9yKGxpYnNvcnBpeGwpLCBncm91cCA9IHRhcmdldCkpICsKICBnZW9tX2xpbmUoKSArCiAgZ2VvbV9wb2ludCgpICsKICBzY2FsZV95X2NvbnRpbnVvdXModHJhbnM9J2xvZzEwJykgKwogICMgQWRkIEVhcnRoIHF1YXJ0aWxlIGxpbmVzIHVzaW5nIGVhcnRocXVhcnRpbGVzX2xvbmcKICBnZW9tX2xpbmUoZGF0YSA9IGVhcnRocXVhcnRpbGVzX2xvbmcsIGFlcyh4ID0gQ29tcG91bmQsIHkgPSBQZXJjZW50YWdlLCBsaW5ldHlwZSA9IFF1YXJ0aWxlcywgZ3JvdXAgPSBRdWFydGlsZXMpLCAKICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBsaW5ldHlwZSA9ICJkb3R0ZWQiKSArCiAgbGFicyh0aXRsZSA9IHBhc3RlKCJTb2lsIENvbXBvc2l0aW9uIGZvciBQSVhMIixhYnJhc2lvbl9uYW1lLCJhbmQgTElCUyB3aXRoaW4iLCBtZXRlcnMsICJtZXRlcnMiLCBzZXAgPSAiICIpLAogICAgICAgeCA9ICJDaGVtaWNhbCBDb21wb3VuZCIsCiAgICAgICB5ID0gIldlaWdodCBQZXJjZW50YWdlIiwKICAgICAgIGNvbG9yID0gIk1lYXN1cmVtZW50IFR5cGUiLAogICAgICAgbGluZXR5cGUgPSAiUXVhcnRpbGVzIiwKICAgICAgIGNhcHRpb24gPSAiVGhlIGNoZW1pY2FsIGNvbXBvc2l0aW9uIG9mIGEgUElYTCBhYnJhc2lvbiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgTElCUyB0YXJnZXRzIFxuIHdpdGhpbiBzcGVjaWZpZWQgZGlzdGFuY2Ugb2YgcmVzcGVjdGl2ZSBhYnJhc2lvbi4iKSArCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoIjAiID0gImJsdWUiLCAiMSIgPSAicmVkIiksIGxhYmVscyA9IGMoIlBJWEwiLCAiTElCUyIpKSArCiAgYW5ub3RhdGUoInRleHQiLCB4ID0gNSwgeSA9IC41MCwgbGFiZWwgPSAiMXN0IFF1YXJ0aWxlIiwgY29sb3IgPSAiYmxhY2siLCBoanVzdCA9IDApICsKICBhbm5vdGF0ZSgidGV4dCIsIHggPSA1LCB5ID0gMiwgbGFiZWwgPSAiTWVkaWFuIiwgY29sb3IgPSAiYmxhY2siLCBoanVzdCA9IDApICsKICBhbm5vdGF0ZSgidGV4dCIsIHggPSA1LCB5ID0gMTAsIGxhYmVsID0gIjNyZCBRdWFydGlsZSIsIGNvbG9yID0gImJsYWNrIiwgaGp1c3QgPSAwKSsKICB0aGVtZV9taW5pbWFsKCkrCiAgICAgIyBDZW50ZXIgdGhlIGNhcHRpb24gb24gdGhlIGxlZnQgc2lkZQogIHRoZW1lKAogICAgcGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMCkgICMgQWxpZ25zIGNhcHRpb24gdG8gdGhlIGxlZnQKICApKQoKYGBgCg==
diff --git a/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.pdf b/StudentNotebooks/Assignment08_FinalProjectNotebook/peterc_finalProjectF24.pdf index 52ddbac22321337c2be0884b46f0db4f245894da..f2231083c8f3cb6ef2a29e994b97aec28119c9a7 100644 GIT binary patch delta 163590 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 HC<*sJp-ne` delta 131275 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%0Djd#KtjvDiBptMy9w@Op}5oPk~ zgtcrFO*IrZST1hQU*|bw$B|uj$NC5l67_!?FW>!Om7qKYhCE-OmNbhp>o2*!WGJPi zR_&b)8+wUG5tsLT2%+G6!dlxxw@waqk2W*&E)eTboj4S}P~@>v1(QsU^!u_25kfDL9ZJFD3tfY}>PfC<=dI z0MWH=+qP}nwr$(CZQHhO+xA^=(j?XUiqp&t#OPOKdCD3s4Xo4&^U$=H=_q?<%M7>) z(X6{@y> zVve)-leJ(GuHj@fPW3k2FQI=uiZ@AY9cb*W&riP+tZ*>o0t@xDo$`2Dp~ysG@LT%k z+s~MY6A;>meC(|$Qp8gn;%vVU$I3h8#htdu=2xm)}}5A5JCUQ@jn&;Zu67bSm+1@XC{l~pmN zQCUfFIC!HFOj{^LX97xQR=;yCQf+%whLwTS;~0ZaaN!PN!bwob<#-31gsp^Q+wdDh zCwdb&m#h8v;sXWw0<|K66_o-M*{x8}S;shcHGGY~c-5^o2R`zJDP1La1J>1>#5sgz zn*}`0y_f1Ugs%}jnsf*fV4;+Tar(D?&YDh5^NZGTRC= zdCM83!Y+J!_E%8k(U-L-tpoh3VA0gUO;`;)w3ZnFFi%{}b<~t)E2YM3`C#@ywtelw z3i+^~vBwD&x{$h>OjNN4A$)$@J&Kz64rDswrQ? zs7c@$Vc6@y`rLm(&8W@&8u{U9mLDX{2op0+GI{vrA8Mn=G{V@+c>ql^MB

    FUNYV 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 NF+!7(i7ALf{}