diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..af94704ce --- /dev/null +++ b/.editorconfig @@ -0,0 +1,97 @@ +# Core EditorConfig Options # +root = true +# All files +[*] +indent_style = space +# Code files +[*.{cs,csx,vb,vbx}] +indent_size = 4 +insert_final_newline = false +charset = utf-8-bom +# .NET Coding Conventions # +[*.{cs,vb}] +# Organize usings +dotnet_sort_system_directives_first = true +# this. preferences +dotnet_style_qualification_for_field = false:silent +dotnet_style_qualification_for_property = false:silent +dotnet_style_qualification_for_method = false:silent +dotnet_style_qualification_for_event = false:silent +# Language keywords vs BCL types preferences +dotnet_style_predefined_type_for_locals_parameters_members = true:silent +dotnet_style_predefined_type_for_member_access = true:silent +# Parentheses preferences +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent +# Modifier preferences +dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent +dotnet_style_readonly_field = true:suggestion +# Expression-level preferences +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent +dotnet_style_prefer_inferred_tuple_names = true:suggestion +dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion +dotnet_style_prefer_auto_properties = true:silent +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent +# C# Coding Conventions # +[*.cs] +# var preferences +csharp_style_var_for_built_in_types = true:silent +csharp_style_var_when_type_is_apparent = true:silent +csharp_style_var_elsewhere = true:silent +# Expression-bodied members +csharp_style_expression_bodied_methods = false:silent +csharp_style_expression_bodied_constructors = false:silent +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_properties = true:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_accessors = true:silent +# Pattern matching preferences +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +# Null-checking preferences +csharp_style_throw_expression = true:suggestion +csharp_style_conditional_delegate_call = true:suggestion +# Modifier preferences +csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion +# Expression-level preferences +csharp_prefer_braces = true:silent +csharp_style_deconstructed_variable_declaration = true:suggestion +csharp_prefer_simple_default_expression = true:suggestion +csharp_style_pattern_local_over_anonymous_function = true:suggestion +csharp_style_inlined_variable_declaration = true:suggestion +# C# Formatting Rules # +# New line preferences +csharp_new_line_before_open_brace = false +csharp_new_line_before_else = false +csharp_new_line_before_catch = false +csharp_new_line_before_finally = false +csharp_new_line_before_members_in_object_initializers = false +csharp_new_line_before_members_in_anonymous_types = false +csharp_new_line_between_query_expression_clauses = false +# Indentation preferences +csharp_indent_case_contents = true +csharp_indent_switch_labels = true +csharp_indent_labels = flush_left +# Space preferences +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_around_binary_operators = before_and_after +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +# Wrapping preferences +csharp_preserve_single_line_statements = true +csharp_preserve_single_line_blocks = true diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 000000000..b2f79be90 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,41 @@ +name: Bug Report +description: Bug Report +title: "[Bug]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + Please check below before submitting new issue: + 1. Please check if there is an issue with the same content. + 2. Please update the app latest version. + 3. Please upload the log if the issue is related to log reading. + **Log location:** `%LOCALAPPDATA%Low\Mediatonic\FallGuys_client` + Saved to `Player.log` or `Player-prev.log`(previous session) of the directory. + Also, the time or line number helps us! + 4. Please upload the image if the error has showed. + 5. Please upload the `data.db` if the issue is related to database or saving datas. + - type: textarea + id: what-happened + attributes: + label: What happened? + description: Also tell us, what did you expect to happen? Please Upload files to this section. + placeholder: Tell us what you see! + value: "A bug happened!" + validations: + required: true + - type: dropdown + id: platform + attributes: + label: Platform + description: What platform are you playing? Please answer if the issue is related to Launch FallGuys or log reading. + options: + - Steam + - Epic Games + validations: + required: false + - type: markdown + attributes: + value: | + Thanks for your report! Check your title and texts. Push "Submit new issue" to finish! diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 000000000..4c735c348 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,25 @@ +name: Feature Request +description: Feature Request +title: "[Feature Request]: " +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this feature request✨ + Please check below before submitting new issue: + 1. Please check if there is an issue with the same content. + 2. Please update the app latest version. + - type: textarea + id: request + attributes: + label: What is your request? + description: Also tell us, what do you want us to add? Please Upload files to this section. + placeholder: Tell us what you want! + value: "Please add!" + validations: + required: true + - type: markdown + attributes: + value: | + Thanks for your request✨ Check your title and request. Push "Submit new issue" to finish! diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml new file mode 100644 index 000000000..1e70fe82f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.yml @@ -0,0 +1,26 @@ +name: Question +description: Question about this app +title: "[Question]: " +labels: ["question"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this question✨ + Please check below before submitting new issue: + 1. Please check if there is an issue with the same content. + 2. Please update the app latest version. + 3. Please check `README.md`. + - type: textarea + id: question + attributes: + label: What is your question? + description: Tell us, what is your question? You can upload files to this section. + placeholder: Tell us what you ask! + value: "What is this?" + validations: + required: true + - type: markdown + attributes: + value: | + Thanks for your question✨ Check your title and text. Push "Submit new issue" to finish! diff --git a/.github/workflows/build_workflow.yml b/.github/workflows/build_workflow.yml new file mode 100644 index 000000000..c33eacbe2 --- /dev/null +++ b/.github/workflows/build_workflow.yml @@ -0,0 +1,47 @@ +name: Build +run-name: Build +on: + push: + branches: [ dev ] + pull_request: + branches: [ dev ] +jobs: + build_manual_update: + name: Build FallGuysStatsManualUpdate.zip + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v1.3.1 + - name: Setup NuGet + uses: nuget/setup-nuget@v1.1.1 + - name: Restore Packages + run: nuget restore FallGuysStats.sln + - name: Build + run: msbuild /t:build /p:configuration=Release /p:platform="x64" + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: FallGuysStatsManualUpdate + path: bin/** + + build: + name: Build FallGuysStats.zip + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v1.3.1 + - name: Setup NuGet + uses: nuget/setup-nuget@v1.1.1 + - name: Restore Packages + run: nuget restore FallGuysStats.sln + - name: Build + run: msbuild /t:build /p:configuration=ReleaseUpdate /p:platform="x64" + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: FallGuysStats + path: bin/** diff --git a/.gitignore b/.gitignore index 4ce6fddec..fb3e96ea0 100644 --- a/.gitignore +++ b/.gitignore @@ -337,4 +337,15 @@ ASALocalRun/ .localhistory/ # BeatPulse healthcheck temp database -healthchecksdb \ No newline at end of file +healthchecksdb + +# binary files +FallGuysStats.zip +FallGuysStatsManualUpdate.zip +FallGuyStats.zip +FallGuyStatsManualUpdate.zip + +verify_list.txt +secret_key.txt +Entities/SecretKey.tt +Entities/SecretKey.cs diff --git a/Controls/Graph.cs b/Controls/Graph.cs new file mode 100644 index 000000000..294a196d3 --- /dev/null +++ b/Controls/Graph.cs @@ -0,0 +1,417 @@ +using System; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Drawing.Text; +using System.Windows.Forms; +namespace FallGuysStats { + public class Graph : PictureBox { + private DataTable dataSource; + [Browsable(false)] + public DataTable DataSource { + get { return this.dataSource; } + set { + int ccount = this.dataSource != null ? this.dataSource.Columns.Count : 0; + int ncount = value != null ? value.Columns.Count : 0; + this.dataSource = value; + if (this.dataSource != null) { + if (ccount != ncount) { + this.yColumns = new bool[this.dataSource.Columns.Count]; + bool found = false; + for (int i = this.dataSource.Columns.Count - 1; i >= 0; i--) { + this.yColumns[i] = i != XColumn && !found; + if (this.yColumns[i]) + found = true; + } + this.RefreshColors(); + } + } + this.Invalidate(); + } + } + [DefaultValue(0)] + public int XColumn { get; set; } + private bool[] yColumns; + [Browsable(false)] + public bool[] YColumns { get { return yColumns; } } + [DefaultValue(true)] + public bool DrawPoints { get; set; } + [DefaultValue(0)] + private int opacity; + public int Opacity { get { return opacity; } set { opacity = value; Invalidate(); } } + [DefaultValue(typeof(Color), "Transparent")] + private Color backColor; + public Color BackgroundColor { get { return backColor; } set { backColor = value; Invalidate(); } } + [Browsable(false)] + public new Image InitialImage { get; set; } + [Browsable(false)] + public new Image ErrorImage { get; set; } + [Browsable(false)] + public new Color BackColor { get { return base.BackColor; } set { base.BackColor = value; } } + + public Color GraphXBackLineColor; + public Color GraphYBackLineColor; + public Color GraphXColumnColor; + public Color GraphYColumnColor; + public Color GraphGuideLineColor; + public Color GraphSummaryBackColor; + public Color GraphSummaryTitleColor; + public Color GraphWinsColor; + public Color GraphFinalsColor; + public Color GraphShowsColor; + + private static Color[] Colors = { Color.Black, Color.Red, Color.Green, Color.Blue }; + private Brush[] brushes; + private Pen[] pens; + private int closeRowIndex, closeColumnIndex; + private Point lastMousePosition; + + public Graph() { + this.closeRowIndex = -1; + this.closeColumnIndex = -1; + this.opacity = 0; + this.backColor = Color.Transparent; + this.XColumn = 0; + this.DrawPoints = true; + } + public void SetDataColors(Color[] dataColors) { + Colors = dataColors; + this.RefreshColors(); + } + private void RefreshColors() { + if (this.dataSource == null) return; + + this.brushes = new Brush[this.dataSource.Columns.Count]; + this.pens = new Pen[this.dataSource.Columns.Count]; + foreach (DataColumn col in this.dataSource.Columns) { + this.brushes[col.Ordinal] = new SolidBrush(Colors[col.Ordinal]); + this.pens[col.Ordinal] = new Pen(this.brushes[col.Ordinal]); + } + } + protected override void OnMouseLeave(EventArgs e) { + base.OnMouseLeave(e); + this.closeRowIndex = -1; + this.closeColumnIndex = -1; + this.Invalidate(); + } + protected override void OnMouseMove(MouseEventArgs e) { + base.OnMouseMove(e); + + if (this.dataSource == null || this.dataSource.DefaultView.Count == 0) return; + + // int w = Width; int h = Height; + decimal xmax = decimal.MinValue; decimal xmin = decimal.MaxValue; decimal ymax = decimal.MinValue; decimal ymin = decimal.MaxValue; + Type yType = null; + Type xType = this.dataSource.Columns[XColumn].DataType; + bool visible = false; + //Determine min / max + foreach (DataRowView row in this.dataSource.DefaultView) { + decimal newx = GetValue(row[XColumn]); + if (newx > xmax) { xmax = newx; } + if (newx < xmin) { xmin = newx; } + foreach (DataColumn col in this.dataSource.Columns) { + if (!yColumns[col.Ordinal]) continue; + visible = true; + yType = col.DataType; + decimal newy = GetValue(row[col.Ordinal]); + if (newy > ymax) { ymax = newy; } + if (newy < ymin) { ymin = newy; } + } + } + + if (!visible) return; + + ymin = 0; + //Get bounds + int wmax = 0; int wmin = 0; int hmin = 0; int hmax = 0; + this.CalculateMinMax(xmin, xmax, xType, ymin, ymax, yType, ref wmin, ref wmax, ref hmin, ref hmax); + int mod = (int)ymax % 8; + ymax += mod == 0 ? 0 : 8 - mod; + //Get inital values + int closeInd = 0; + int close = int.MaxValue; + int closeIndY = 0; + int i = 0; + foreach (DataRowView row in this.dataSource.DefaultView) { + int x = NormalizeX(GetValue(row[XColumn]), xmin, xmax, wmin, wmax) - e.X; + int closeTemp = x * x; + foreach (DataColumn col in this.dataSource.Columns) { + if (!yColumns[col.Ordinal]) continue; + int y = NormalizeY(GetValue(row[col.Ordinal]), ymin, ymax, hmin, hmax) - e.Y; + y = closeTemp + y * y; + if (close > y) { + close = y; + closeIndY = col.Ordinal; + closeInd = i; + } + } + i++; + } + if (closeRowIndex != closeInd || closeColumnIndex != closeIndY) { + closeRowIndex = closeInd; + closeColumnIndex = closeIndY; + } + this.lastMousePosition = e.Location; + Invalidate(); + } + protected override void OnPaintBackground(PaintEventArgs e) { + base.OnPaintBackground(e); + Graphics g = e.Graphics; + + if (Parent != null) { + base.BackColor = Color.Transparent; + int index = Parent.Controls.GetChildIndex(this); + + for (int i = Parent.Controls.Count - 1; i > index; i--) { + Control c = Parent.Controls[i]; + if (c.Bounds.IntersectsWith(Bounds) && c.Visible) { + Bitmap bmp = new Bitmap(c.Width, c.Height, g); + c.DrawToBitmap(bmp, c.ClientRectangle); + + g.TranslateTransform(c.Left - Left, c.Top - Top); + g.DrawImageUnscaled(bmp, Point.Empty); + g.TranslateTransform(Left - c.Left, Top - c.Top); + bmp.Dispose(); + } + } + g.FillRectangle(new SolidBrush(Color.FromArgb(Opacity * 255 / 100, BackgroundColor)), this.ClientRectangle); + } else { + g.Clear(Color.Transparent); + g.FillRectangle(new SolidBrush(Color.FromArgb(Opacity * 255 / 100, BackgroundColor)), this.ClientRectangle); + } + } + protected override void OnPaint(PaintEventArgs e) { + base.OnPaint(e); + if (this.dataSource == null || this.dataSource.DefaultView.Count == 0) { + if (DesignMode) { + DataTable dt = new DataTable(); + dt.Columns.Add("X", typeof(int)); + dt.Columns.Add("Y", typeof(int)); + dt.Rows.Add(1, 1); + dt.Rows.Add(2, 8); + dt.Rows.Add(3, 5); + dt.Rows.Add(4, 3); + dt.Rows.Add(5, 10); + dt.Rows.Add(6, 8); + dt.Rows.Add(7, 3); + DataSource = dt; + } else { + return; + } + } + + int w = Width; int h = Height; + decimal xmax = decimal.MinValue; decimal xmin = decimal.MaxValue; decimal ymax = decimal.MinValue; decimal ymin = decimal.MaxValue; + Type yType = null; + Type xType = this.dataSource.Columns[XColumn].DataType; + bool visible = false; + //Determine min / max + foreach (DataRowView row in this.dataSource.DefaultView) { + decimal newx = GetValue(row[XColumn]); + if (newx > xmax) { xmax = newx; } + if (newx < xmin) { xmin = newx; } + foreach (DataColumn col in this.dataSource.Columns) { + if (!yColumns[col.Ordinal]) continue; + visible = true; + yType = col.DataType; + decimal newy = GetValue(row[col.Ordinal]); + if (newy > ymax) { ymax = newy; } + if (newy < ymin) { ymin = newy; } + } + } + if (!visible) { + ymax = 10; + } + ymin = 0; + + //Draw labels + int wmax = 0; int wmin = 0; int hmin = 0; int hmax = 0; + this.CalculateMinMax(xmin, xmax, xType, ymin, ymax, yType, ref wmin, ref wmax, ref hmin, ref hmax); + int mod = (int)ymax % 8; + ymax += mod == 0 ? 0 : 8 - mod; + float sz = this.Font.SizeInPoints; + Graphics g = e.Graphics; + g.InterpolationMode = InterpolationMode.HighQualityBilinear; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + decimal y8 = (ymax - ymin) / (decimal)8.0; decimal x8 = (xmax - xmin) / (decimal)8.0; + double h8 = (hmax - hmin) / 8.0; double w8 = (wmax - wmin) / 8.0; + Pen bp = new Pen(this.GraphYColumnColor, 1) { + DashStyle = DashStyle.Dash + }; + g.DrawLine(bp, wmin, 0, wmin, hmax); // Y Outer Line + bp.Color = this.GraphXColumnColor; + g.DrawLine(bp, wmin, hmax, w - 1, hmax); // X Outer Line + + //bp.Color = Color.FromArgb(30, 0, 0, 0); + for (int i = 0; i <= 8; i++) { + string xval = this.GetRepresentation(xType, x8 * i + xmin, xmax - xmin); + float xsz = TextRenderer.MeasureText(xval, this.Font).Width; + float tx = (float)(w8 * i + wmin); + g.DrawString(xval, this.Font, new SolidBrush(this.GraphXColumnColor), tx + 2 - xsz / (float)2.0, hmax + 2); // X Date String + if (i > 0) { bp.Color = this.GraphYBackLineColor; g.DrawLine(bp, tx, 0, tx, hmax - 1); } // Y Back Line + float ty = (float)(h - 3 * sz - h8 * i); + g.DrawString($"{(y8 * i + ymin):0}{Multilingual.GetWord("main_inning")}", this.Font, new SolidBrush(this.GraphYColumnColor), 2, ty); // Y Count String + if (i > 0) { bp.Color = this.GraphXBackLineColor; g.DrawLine(bp, wmin + 1, ty + sz, w - 1, ty + sz); } // X Back Line + } + g.SmoothingMode = SmoothingMode.HighQuality; + //Draw data + DataRowView init = this.dataSource.DefaultView[0]; + int x = NormalizeX(GetValue(init[XColumn]), xmin, xmax, wmin, wmax); + int[] y = new int[brushes.Length]; + foreach (DataColumn col in this.dataSource.Columns) { + if (!yColumns[col.Ordinal]) continue; + y[col.Ordinal] = NormalizeY(GetValue(init[col.Ordinal]), ymin, ymax, hmin, hmax); + if (DrawPoints) { this.FillRoundedRectangle(g, pens[col.Ordinal], brushes[col.Ordinal], x - 2, y[col.Ordinal] - 2, 4, 4, 4); } + } + + bool start = true; + foreach (DataRowView row in this.dataSource.DefaultView) { + if (start) { start = false; continue; } + int newx = NormalizeX(GetValue(row[XColumn]), xmin, xmax, wmin, wmax); + foreach (DataColumn col in this.dataSource.Columns) { + if (!yColumns[col.Ordinal]) continue; + int newy = NormalizeY(GetValue(row[col.Ordinal]), ymin, ymax, hmin, hmax); + if (DrawPoints) { this.FillRoundedRectangle(g, pens[col.Ordinal], brushes[col.Ordinal], newx - 2, newy - 2, 4, 4, 4); } + g.DrawLine(pens[col.Ordinal], x, y[col.Ordinal], newx, newy); + y[col.Ordinal] = newy; + } + x = newx; + } + + if (closeRowIndex >= 0) { + // Draw Guide Line + g.DrawLine(new Pen(this.GraphGuideLineColor, 0), this.lastMousePosition, new Point(NormalizeX(GetValue(this.dataSource.DefaultView[closeRowIndex][XColumn]), xmin, xmax, wmin, wmax), NormalizeY(GetValue(this.dataSource.DefaultView[closeRowIndex][closeColumnIndex]), ymin, ymax, hmin, hmax))); + string summaryTitle = GetRepresentation(xType, GetValue(this.dataSource.DefaultView[closeRowIndex][XColumn]), xmax - xmin); + string summaryWins = string.Empty; + string summaryFinals = string.Empty; + string summaryShows = string.Empty; + int sizeWidth = TextRenderer.MeasureText(summaryTitle, this.Font).Width; + int sizeHeight = TextRenderer.MeasureText(summaryTitle, this.Font).Height; + + // Shows + if (yColumns[3]) { + summaryShows += $"{Environment.NewLine}{this.dataSource.Columns[3].ColumnName} : {this.dataSource.DefaultView[closeRowIndex][3]}{Multilingual.GetWord("main_inning")}"; + if (sizeWidth < TextRenderer.MeasureText(summaryShows, this.Font).Width) { + sizeWidth = TextRenderer.MeasureText(summaryShows, this.Font).Width; + } + sizeHeight = TextRenderer.MeasureText(summaryShows, this.Font).Height; + } + // Finals + if (yColumns[2]) { + if (yColumns[3]) { + summaryFinals += Environment.NewLine; + } + summaryFinals += $"{Environment.NewLine}{this.dataSource.Columns[2].ColumnName} : {this.dataSource.DefaultView[closeRowIndex][2]}{Multilingual.GetWord("main_inning")}"; + if (sizeWidth < TextRenderer.MeasureText(summaryFinals, this.Font).Width) { + sizeWidth = TextRenderer.MeasureText(summaryFinals, this.Font).Width; + } + sizeHeight = TextRenderer.MeasureText(summaryFinals, this.Font).Height; + } + // Wins + if (yColumns[1]) { + if (yColumns[3]) { + summaryWins += Environment.NewLine; + } + if (yColumns[2]) { + summaryWins += Environment.NewLine; + } + summaryWins += $"{Environment.NewLine}{this.dataSource.Columns[1].ColumnName} : {this.dataSource.DefaultView[closeRowIndex][1]}{Multilingual.GetWord("main_inning")}"; + if (sizeWidth < TextRenderer.MeasureText(summaryWins, this.Font).Width) { + sizeWidth = TextRenderer.MeasureText(summaryWins, this.Font).Width; + } + sizeHeight = TextRenderer.MeasureText(summaryWins, this.Font).Height; + } + + int px = this.lastMousePosition.X + sizeWidth > w ? w - sizeWidth : this.lastMousePosition.X; + int py = this.lastMousePosition.Y - sizeHeight < 0 ? 0 : this.lastMousePosition.Y - sizeHeight; + + this.FillRoundedRectangle(g, new Pen(this.GraphGuideLineColor, 0), new SolidBrush(GraphSummaryBackColor), px - 6, py - 6, sizeWidth + 12, sizeHeight + 12, 10); + g.DrawString(summaryTitle, new Font(this.Font.FontFamily, this.Font.Size, FontStyle.Bold, GraphicsUnit.Pixel), new SolidBrush(this.GraphSummaryTitleColor), px, py); + if (yColumns[1]) g.DrawString(summaryWins, this.Font, new SolidBrush(this.GraphWinsColor), px, py); + if (yColumns[2]) g.DrawString(summaryFinals, this.Font, new SolidBrush(this.GraphFinalsColor), px, py); + if (yColumns[3]) g.DrawString(summaryShows, this.Font, new SolidBrush(this.GraphShowsColor), px, py); + } + e.Dispose(); + } + private void FillRoundedRectangle(Graphics g, Pen pen, Brush brush, int x, int y, int width, int height, int radius) { + Rectangle corner = new Rectangle(x, y, radius, radius); + GraphicsPath path = new GraphicsPath(); + path.AddArc(corner, 180, 90); + corner.X = x + width - radius; + path.AddArc(corner, 270, 90); + corner.Y = y + height - radius; + path.AddArc(corner, 0, 90); + corner.X = x; + path.AddArc(corner, 90, 90); + path.CloseFigure(); + g.FillPath(brush, path); + if(pen != null) { + g.DrawPath(pen, path); + } + } + private void CalculateMinMax(decimal xmin, decimal xmax, Type xType, decimal ymin, decimal ymax, Type yType, ref int wmin, ref int wmax, ref int hmin, ref int hmax) { + int ysz = TextRenderer.MeasureText(GetRepresentation(yType, ymin, ymax - ymin), this.Font).Width; + int ysz2 = TextRenderer.MeasureText(GetRepresentation(yType, ymax, ymax - ymin), this.Font).Width; + ysz = ysz > ysz2 ? ysz : ysz2; + ysz += TextRenderer.MeasureText("00", this.Font).Width; + int xsz = TextRenderer.MeasureText(GetRepresentation(xType, xmax, xmax - xmin), this.Font).Width; + int xsz2 = TextRenderer.MeasureText(GetRepresentation(xType, xmin, xmax - xmin), this.Font).Width / 2; + ysz = ysz > xsz2 ? ysz : xsz2; + float sz = this.Font.SizeInPoints; + //decimal xdiff = xmax - xmin; decimal ydiff = ymax - ymin; + wmax = Width - xsz / 2; + wmin = ysz; + hmin = (int)sz; + hmax = (int)(Height - 2 * sz); + } + private int NormalizeX(decimal x, decimal xmin, decimal xmax, int wmin, int wmax) { + double point = xmax - xmin == 0 ? 0 : (double)(x - xmin) / (double)(xmax - xmin); + return (int)((wmax - wmin) * point + wmin); + } + private int NormalizeY(decimal y, decimal ymin, decimal ymax, int hmin, int hmax) { + double point = ymax - ymin == 0 ? 0 : (double)(y - ymin) / (double)(ymax - ymin); + return (int)(hmax - (hmax - hmin) * point); + } + private decimal GetValue(object value) { + switch (value) { + case null: + return 0; + case DateTime time: + return time.Ticks; + case int i: + return i; + case long l: + return l; + case double d: + return new decimal(d); + case float f: + return new decimal(f); + case short s: + return s; + case byte b: + return b; + default: + return 0; + } + } + private string GetRepresentation(Type t, decimal value, decimal range) { + if (t == typeof(DateTime)) { + if (TimeSpan.FromTicks((long)range).Days > 0) { + return new DateTime((long)value).ToString(Multilingual.GetWord("level_date_format"), Utils.GetCultureInfo()); + } else { + return new DateTime((long)value).ToString("HH:mm"); + } + } else if (t == typeof(int)) { + return ((int)value).ToString(); + } else if (t == typeof(long)) { + return ((long)value).ToString(); + } else if (t == typeof(byte)) { + return ((byte)value).ToString(); + } else if (t == typeof(short)) { + return ((int)value).ToString(); + } + return value.ToString(); + } + } +} \ No newline at end of file diff --git a/Controls/Grid.cs b/Controls/Grid.cs new file mode 100644 index 000000000..9ed356102 --- /dev/null +++ b/Controls/Grid.cs @@ -0,0 +1,775 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Reflection; +using System.Text; +using System.Threading; +using System.Windows.Forms; +using MetroFramework; +using MetroFramework.Controls; + +namespace FallGuysStats { + public sealed class Grid : MetroGrid { + public ContextMenuStrip CMenu; + private IContainer components; + private SaveFileDialog _saveFile; + private ToolStripMenuItem ExportItemCsv, ExportItemHtml, ExportItemBbcode, ExportItemMd; + public ToolStripMenuItem DeleteShows, MoveShows, DeleteFinishTime, UpdateCreativeLevel; + public ToolStripSeparator MenuSeparator1, MenuSeparator2; + private bool IsEditOnEnter, readOnly; + private bool? allowUpdate, allowNew, allowDelete; + private readonly Dictionary Orders = new Dictionary(StringComparer.OrdinalIgnoreCase); + private readonly DWM_WINDOW_CORNER_PREFERENCE conerPreference = DWM_WINDOW_CORNER_PREFERENCE.DWMWCP_ROUNDSMALL; + private class CustomColorTable : ProfessionalColorTable { + public CustomColorTable() { UseSystemColors = false; } + public override Color MenuBorder { + get { return Stats.CurrentTheme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); } + } + public override Color ToolStripDropDownBackground { + get { return Stats.CurrentTheme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); } + } + public override Color MenuItemBorder { + get { return Color.DarkSeaGreen; } + } + public override Color MenuItemSelected { + get { return Color.LightGreen; } + } + //public override Color MenuItemSelectedGradientBegin { + // get { return Color.LawnGreen; } + //} + //public override Color MenuItemSelectedGradientEnd { + // get { return Color.MediumSeaGreen; } + //} + //public override Color MenuStripGradientBegin { + // get { return Color.AliceBlue; } + //} + //public override Color MenuStripGradientEnd { + // get { return Color.DodgerBlue; } + //} + } + + public void CMenu_MouseEnter(object sender, EventArgs e) { + if (sender is ToolStripMenuItem tsi) { + tsi.ForeColor = Color.Black; + if (tsi.Name.Equals("exportItemCSV")) { + tsi.Image = Properties.Resources.export; + } else if (tsi.Name.Equals("exportItemHTML")) { + tsi.Image = Properties.Resources.export; + } else if (tsi.Name.Equals("exportItemBBCODE")) { + tsi.Image = Properties.Resources.export; + } else if (tsi.Name.Equals("exportItemMD")) { + tsi.Image = Properties.Resources.export; + } else if (tsi.Name.Equals("moveShows")) { + tsi.Image = Properties.Resources.move; + } else if (tsi.Name.Equals("deleteShows")) { + tsi.Image = Properties.Resources.delete; + } + } + } + + public void CMenu_MouseLeave(object sender, EventArgs e) { + if (sender is ToolStripMenuItem tsi) { + tsi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + if (tsi.Name.Equals("exportItemCSV")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.export : Properties.Resources.export_gray; + } else if (tsi.Name.Equals("exportItemHTML")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.export : Properties.Resources.export_gray; + } else if (tsi.Name.Equals("exportItemBBCODE")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.export : Properties.Resources.export_gray; + } else if (tsi.Name.Equals("exportItemMD")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.export : Properties.Resources.export_gray; + } else if (tsi.Name.Equals("moveShows")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.move : Properties.Resources.move_gray; + } else if (tsi.Name.Equals("deleteShows")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.delete : Properties.Resources.delete_gray; + } + } + } + + public void CustomToolStripSeparator_Paint(Object sender, PaintEventArgs e) { + ToolStripSeparator separator = (ToolStripSeparator)sender; + e.Graphics.FillRectangle(new SolidBrush(this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17)), 0, 0, separator.Width, separator.Height); // CUSTOM_COLOR_BACKGROUND + e.Graphics.DrawLine(new Pen(this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray), 30, separator.Height / 2, separator.Width - 4, separator.Height / 2); // CUSTOM_COLOR_FOREGROUND + } + + public void SetContextMenuTheme() { + foreach (object item in this.CMenu.Items) { + if (item is ToolStripMenuItem tsi) { + tsi.BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + tsi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + tsi.MouseEnter += this.CMenu_MouseEnter; + tsi.MouseLeave += this.CMenu_MouseLeave; + if (tsi.Name.Equals("exportItemCSV")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.export : Properties.Resources.export_gray; + } else if (tsi.Name.Equals("exportItemHTML")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.export : Properties.Resources.export_gray; + } else if (tsi.Name.Equals("exportItemBBCODE")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.export : Properties.Resources.export_gray; + } else if (tsi.Name.Equals("exportItemMD")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.export : Properties.Resources.export_gray; + } else if (tsi.Name.Equals("moveShows")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.move : Properties.Resources.move_gray; + } else if (tsi.Name.Equals("deleteShows")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.delete : Properties.Resources.delete_gray; + } else if (tsi.Name.Equals("deleteFinishTime")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.delete : Properties.Resources.delete_gray; + } else if (tsi.Name.Equals("updateCreativeShows")) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.update : Properties.Resources.update_gray; + } + } else if (item is ToolStripSeparator tss) { + tss.Paint += this.CustomToolStripSeparator_Paint; + tss.BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + tss.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + } + } + + public Grid() { + this.SetContextMenu(); + Utils.DwmSetWindowAttribute(this.CMenu.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref conerPreference, sizeof(uint)); + this.CMenu.Renderer = new ToolStripProfessionalRenderer(new CustomColorTable()); + this.AllowUserToAddRows = false; + this.AllowUserToOrderColumns = false; + this.AllowUserToResizeRows = false; + this.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2; + this.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.BackgroundColor = Color.FromArgb(234, 242, 251); + this.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; + this.BorderStyle = BorderStyle.None; + this.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.RowHeadersWidth = 20; + this.ContextMenuStrip = this.CMenu; + this.readOnly = false; + this.EnableHeadersVisualStyles = false; + this.ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray; + this.ColumnHeadersDefaultCellStyle.ForeColor = Color.Black; + this.ColumnHeadersDefaultCellStyle.SelectionBackColor = Color.Cyan; + this.ColumnHeadersDefaultCellStyle.SelectionForeColor = Color.Black; + } + + public SortOrder GetSortOrder(string columnName) { + this.Orders.TryGetValue(columnName, out SortOrder sortOrder); + if (sortOrder == SortOrder.None) { + this.Columns[columnName].HeaderCell.SortGlyphDirection = SortOrder.Ascending; + this.Orders[columnName] = SortOrder.Ascending; + return SortOrder.Ascending; + } else if(sortOrder == SortOrder.Ascending){ + this.Columns[columnName].HeaderCell.SortGlyphDirection = SortOrder.Descending; + this.Orders[columnName] = SortOrder.Descending; + return SortOrder.Descending; + } else { + this.Columns[columnName].HeaderCell.SortGlyphDirection = SortOrder.None; + this.Orders[columnName] = SortOrder.None; + return SortOrder.None; + } + } + + public DataGridViewRow CloneWithValues(DataGridViewRow row) { + DataGridViewRow clonedRow = (DataGridViewRow)row.Clone(); + for (int i = 0; i < row.Cells.Count; i++) { + clonedRow.Cells[i].Value = row.Cells[i].Value; + clonedRow.Cells[i].Tag = row.Cells[i].EditedFormattedValue; + } + return clonedRow; + } + + protected override void OnDataSourceChanged(EventArgs e) { + this.Columns.Clear(); + this.IsEditOnEnter = this.EditMode == DataGridViewEditMode.EditOnEnter; + base.OnDataSourceChanged(e); + } + + protected override void OnPaint(PaintEventArgs e) { + if (this.DesignMode) { + Graphics g = e.Graphics; + g.Clear(BackgroundColor); + Pen bp = new Pen(Color.DarkGray, 1) { + DashStyle = System.Drawing.Drawing2D.DashStyle.Solid + }; + int i = 0; + g.DrawLine(bp, 0, 0, 0, Height); + g.DrawLine(bp, Width - 1, 0, Width - 1, Height); + int header = (int)ColumnHeadersDefaultCellStyle.Font.Size * 2 + 1; + g.FillRectangle(new SolidBrush(ColumnHeadersDefaultCellStyle.BackColor), 1, 1, Width - 2, header - 1); + TextRenderer.DrawText(g, "Header", ColumnHeadersDefaultCellStyle.Font, new Point(10, 2), ColumnHeadersDefaultCellStyle.ForeColor); + g.FillRectangle(new SolidBrush(DefaultCellStyle.BackColor), 1, header, Width - 2, Height - header - 1); + g.DrawLine(bp, 0, i, Width, i); + i += header; + int row = 1; + while (i < Height) { + g.DrawLine(bp, 0, i, Width, i); + TextRenderer.DrawText(g, "Row " + row++, DefaultCellStyle.Font, new Point(10, i + (RowTemplate.Height / 4)), DefaultCellStyle.ForeColor); + i += RowTemplate.Height; + } + g.DrawLine(bp, 0, Height - 1, Width, Height - 1); + bp.Dispose(); + } else { + base.OnPaint(e); + } + } + + protected override void OnCellClick(DataGridViewCellEventArgs e) { + base.OnCellClick(e); + if (!this.IsEditOnEnter) return; + if (e.ColumnIndex == -1) { + this.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2; + this.EndEdit(); + } else if (this.EditMode != DataGridViewEditMode.EditOnEnter) { + this.EditMode = DataGridViewEditMode.EditOnEnter; + this.BeginEdit(false); + } + } + + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), DefaultValue(false)] + public bool Disabled { + get { return this.readOnly; } + set { + this.readOnly = value; + if (this.readOnly) { + this.allowDelete = AllowUserToDeleteRows; + this.allowNew = AllowUserToAddRows; + this.allowUpdate = ReadOnly; + this.AllowUserToAddRows = false; + this.AllowUserToDeleteRows = false; + this.ReadOnly = true; + } else if (this.allowNew.HasValue) { + this.AllowUserToAddRows = this.allowNew.Value; + this.AllowUserToDeleteRows = this.allowDelete.Value; + this.ReadOnly = this.allowUpdate.Value; + } + } + } + + protected override void OnLeave(EventArgs e) { + if (this.IsEditOnEnter) { + this.EditMode = DataGridViewEditMode.EditOnEnter; + } + base.OnLeave(e); + } + + [DefaultValue(typeof(DataGridViewRowHeadersWidthSizeMode), "DisableResizing")] + public new DataGridViewRowHeadersWidthSizeMode RowHeadersWidthSizeMode { + get { return base.RowHeadersWidthSizeMode; } + set { base.RowHeadersWidthSizeMode = value; } + } + + [DefaultValue(20)] + public new int RowHeadersWidth { + get { return base.RowHeadersWidth; } + set { base.RowHeadersWidth = value; } + } + + [DefaultValue(DataGridViewAutoSizeColumnsMode.None)] + public new DataGridViewAutoSizeColumnsMode AutoSizeColumnsMode { + get { return base.AutoSizeColumnsMode; } + set { base.AutoSizeColumnsMode = value; } + } + + [DefaultValue(false)] + public new bool AllowUserToAddRows { + get { return base.AllowUserToAddRows; } + set { base.AllowUserToAddRows = value; } + } + + [DefaultValue(true)] + public new bool AllowUserToOrderColumns { + get { return base.AllowUserToOrderColumns; } + set { base.AllowUserToOrderColumns = value; } + } + + [DefaultValue(false)] + public new bool AllowUserToResizeRows { + get { return base.AllowUserToResizeRows; } + set { base.AllowUserToResizeRows = value; } + } + + [DefaultValue(DataGridViewEditMode.EditOnKeystrokeOrF2)] + public new DataGridViewEditMode EditMode { + get { return base.EditMode; } + set { base.EditMode = value; } + } + + [DefaultValue(typeof(Color), "234, 242, 251")] + public new Color BackgroundColor { + get { return base.BackgroundColor; } + set { base.BackgroundColor = value; } + } + + public override string ToString() { + return "Grid(" + Name + ") " + Text; + } + + public bool HasFocus(Control activeControl) { + while (activeControl != null) { + if (activeControl == this) { + return true; + } + activeControl = activeControl.Parent; + } + return false; + } + + private string EscapeQuotes(string value, char escapeCharacter = ',') { + if (!string.IsNullOrEmpty(value) && value.IndexOf(escapeCharacter) >= 0) { + return $"\"{value}\""; + } + return value; + } + + #region Export event handlers + private void exportItemCSV_Click(object sender, EventArgs e) { + this.ExportCsv(); + } + + private void exportItemHTML_Click(object sender, EventArgs e) { + this.ExportHtml(); + } + + private void exportItemBBCODE_Click(object sender, EventArgs e) { + this.ExportBbCode(); + } + + private void exportItemMD_Click(object sender, EventArgs e) { + this.ExportMarkdown(); + } + #endregion + + #region Export methods + public void ExportCsv() { + try { + this._saveFile.Title = Multilingual.GetWord("message_save_csv_file_caption"); + this._saveFile.Filter = "CSV files|*.csv"; + if (this.Name.Equals("gridRoundsSummryList")) { + this._saveFile.FileName = $"rounds_summary_list_{DateTime.Now:yyyy-MM-dd hh_mm_ss}"; + } else if (this.Name.Equals("gridShowsStats")) { + this._saveFile.FileName = $"shows_stats_list_{DateTime.Now:yyyy-MM-dd hh_mm_ss}"; + } else if (this.Name.Equals("gridRoundsStats")) { + this._saveFile.FileName = $"rounds_stats_list_{DateTime.Now:yyyy-MM-dd hh_mm_ss}"; + } else if (this.Name.Equals("gridFinalsStats")) { + this._saveFile.FileName = $"finals_stats_list_{DateTime.Now:yyyy-MM-dd hh_mm_ss}"; + } else if (this.Name.Equals("gridRoundStats")) { + this._saveFile.FileName = $"round_stats_list_{DateTime.Now:yyyy-MM-dd hh_mm_ss}"; + } + + if (this._saveFile.ShowDialog() == DialogResult.OK) { + Encoding enc = Encoding.GetEncoding("utf-8"); + using (FileStream fs = new FileStream(this._saveFile.FileName, FileMode.Create)) { + List columns = this.GetSortedColumns(); + + StringBuilder sb = new StringBuilder(); + foreach (DataGridViewColumn col in columns) { + string header = string.IsNullOrEmpty(col.HeaderText) ? col.ToolTipText : col.HeaderText; + sb.Append(EscapeQuotes(header)).Append(","); + } + if (sb.Length > 0) { sb.Length--; } + + sb.AppendLine(); + byte[] bytes = enc.GetBytes(sb.ToString()); + fs.Write(bytes, 0, bytes.Length); + + foreach (DataGridViewRow row in this.Rows) { + sb.Length = 0; + foreach (DataGridViewColumn col in columns) { + string formattedValue = row.Cells[col.Name].FormattedValue?.ToString(); + string tooltip = row.Cells[col.Name].ToolTipText; + + if (string.IsNullOrEmpty(tooltip) || row.Cells[col.Name].FormattedValueType == typeof(string)) { + sb.Append($"{EscapeQuotes(formattedValue)},"); + } else { + sb.Append($"{EscapeQuotes(tooltip)},"); + } + } + if (sb.Length > 0) { sb.Length--; } + + sb.AppendLine(); + bytes = enc.GetBytes(sb.ToString()); + fs.Write(bytes, 0, bytes.Length); + } + fs.Flush(); + fs.Close(); + } + + MessageBox.Show(this, $"{Multilingual.GetWord("message_save_csv")}{Environment.NewLine}({this._saveFile.FileName})", Multilingual.GetWord("message_save_csv_caption"), MessageBoxButtons.OK); + } + } catch (Exception ex) { + ControlErrors.HandleException(this, ex, false); + } + } + + public void ExportHtml() { + try { + List columns = this.GetSortedColumns(); + + StringBuilder sb = new StringBuilder(); + sb.Append(""); + foreach (DataGridViewColumn col in columns) { + string header = string.IsNullOrEmpty(col.HeaderText) ? col.ToolTipText : col.HeaderText; + sb.Append($""); + } + sb.AppendLine(""); + + foreach (DataGridViewRow row in this.Rows) { + sb.Append(""); + foreach (DataGridViewColumn col in columns) { + string formattedValue = row.Cells[col.Name].FormattedValue?.ToString(); + string tooltip = row.Cells[col.Name].ToolTipText; + + if (string.IsNullOrEmpty(tooltip) || row.Cells[col.Name].FormattedValueType == typeof(string)) { + sb.Append($""); + } else { + sb.Append($""); + } + } + sb.AppendLine(""); + } + sb.Append("
{header}
{formattedValue}{tooltip}
"); + Clipboard.SetText(sb.ToString(), TextDataFormat.Text); + + MessageBox.Show(this, Multilingual.GetWord("message_save_html"), Multilingual.GetWord("message_save_html_caption"), MessageBoxButtons.OK); + } catch (Exception ex) { + ControlErrors.HandleException(this, ex, false); + } + } + + public void ExportBbCode() { + try { + List columns = this.GetSortedColumns(); + + StringBuilder sb = new StringBuilder(); + sb.Append("[table][tr]"); + foreach (DataGridViewColumn col in columns) { + string header = string.IsNullOrEmpty(col.HeaderText) ? col.ToolTipText : col.HeaderText; + sb.Append($"[th]{header}[/th]"); + } + sb.Append("[/tr]"); + + foreach (DataGridViewRow row in this.Rows) { + sb.Append("[tr]"); + foreach (DataGridViewColumn col in columns) { + string formattedValue = row.Cells[col.Name].FormattedValue?.ToString(); + string tooltip = row.Cells[col.Name].ToolTipText; + + if (string.IsNullOrEmpty(tooltip) || row.Cells[col.Name].FormattedValueType == typeof(string)) { + sb.Append($"[td]{formattedValue}[/td]"); + } else { + sb.Append($"[td]{tooltip}[/td]"); + } + } + sb.Append("[/tr]"); + } + sb.Append("[/table]"); + Clipboard.SetText(sb.ToString(), TextDataFormat.Text); + + MessageBox.Show(this, Multilingual.GetWord("message_save_bbcode"), Multilingual.GetWord("message_save_bbcode_caption"), MessageBoxButtons.OK); + } catch (Exception ex) { + ControlErrors.HandleException(this, ex, false); + } + } + + public void ExportMarkdown() { + try { + List columns = this.GetSortedColumns(); + + StringBuilder sb = new StringBuilder(); + foreach (DataGridViewColumn col in columns) { + string header = string.IsNullOrEmpty(col.HeaderText) ? col.ToolTipText : col.HeaderText; + sb.Append($"|{header}"); + } + sb.AppendLine(); + foreach (DataGridViewColumn col in columns) { + sb.Append($"|---"); + } + sb.AppendLine(); + + foreach (DataGridViewRow row in this.Rows) { + foreach (DataGridViewColumn col in columns) { + string formattedValue = row.Cells[col.Name].FormattedValue?.ToString(); + string tooltip = row.Cells[col.Name].ToolTipText; + + if (string.IsNullOrEmpty(tooltip) || row.Cells[col.Name].FormattedValueType == typeof(string)) { + sb.Append($"|{formattedValue}"); + } else { + sb.Append($"|{tooltip}"); + } + } + sb.AppendLine(); + } + + Clipboard.SetText(sb.ToString(), TextDataFormat.Text); + + MessageBox.Show(this, Multilingual.GetWord("message_save_markdown"), Multilingual.GetWord("message_save_markdown_caption"), MessageBoxButtons.OK); + } catch (Exception ex) { + ControlErrors.HandleException(this, ex, false); + } + } + #endregion + + private List GetSortedColumns() { + List columns = new List(); + foreach (DataGridViewColumn col in this.Columns) { + if (!col.Visible || (string.IsNullOrEmpty(col.HeaderText) && string.IsNullOrEmpty(col.ToolTipText))) continue; + + columns.Add(col); + } + columns.Sort(delegate (DataGridViewColumn one, DataGridViewColumn two) { + return one.DisplayIndex.CompareTo(two.DisplayIndex); + }); + return columns; + } + + private void Grid_DataError(object sender, DataGridViewDataErrorEventArgs e) { + e.ThrowException = false; + } + + protected override bool ProcessDialogKey(Keys keyData) { + /*if (ProcessKeyStroke(keyData)) { + return true; + }*/ + + return base.ProcessDialogKey(keyData); + } + + protected override bool ProcessDataGridViewKey(KeyEventArgs e) { + /*if (ProcessKeyStroke(e.KeyData)) { + return true; + }*/ + + return base.ProcessDataGridViewKey(e); + } + + private bool ProcessKeyStroke(Keys keyData) { + if (keyData == Keys.Tab) { + int iCol = this.CurrentCell.ColumnIndex + 1; + while (iCol < Columns.Count) { + DataGridViewColumn col = Columns[iCol]; + if (!col.ReadOnly && col.Visible) { + break; + } + iCol++; + } + + if (iCol < Columns.Count) { + this.CurrentCell = Rows[this.CurrentCell.RowIndex].Cells[iCol]; + } else { + for (iCol = 0; iCol <= this.CurrentCell.ColumnIndex; iCol++) { + DataGridViewColumn col = Columns[iCol]; + if (!col.ReadOnly && col.Visible) { + break; + } + } + + if (iCol <= this.CurrentCell.ColumnIndex) { + if (this.CurrentCell.RowIndex + 1 < Rows.Count) { + this.CurrentCell = Rows[this.CurrentCell.RowIndex + 1].Cells[iCol]; + } else { + this.CurrentCell = Rows[0].Cells[iCol]; + } + } + } + return true; + } else if ((keyData & Keys.Shift) != 0 && (keyData & Keys.Tab) != 0) { + int iCol = this.CurrentCell.ColumnIndex - 1; + while (iCol >= 0) { + DataGridViewColumn col = Columns[iCol]; + if (!col.ReadOnly && col.Visible) { + break; + } + iCol--; + } + + if (iCol >= 0) { + this.CurrentCell = Rows[this.CurrentCell.RowIndex].Cells[iCol]; + } else { + for (iCol = Columns.Count - 1; iCol >= this.CurrentCell.ColumnIndex; iCol--) { + DataGridViewColumn col = Columns[iCol]; + if (!col.ReadOnly && col.Visible) { + break; + } + } + + if (iCol >= this.CurrentCell.ColumnIndex) { + if (this.CurrentCell.RowIndex - 1 >= 0) { + this.CurrentCell = Rows[this.CurrentCell.RowIndex - 1].Cells[iCol]; + } else { + this.CurrentCell = Rows[0].Cells[iCol]; + } + } + } + return true; + } + return false; + } + + public void Setup(string column, int index, int width = -1, string header = null, DataGridViewContentAlignment align = DataGridViewContentAlignment.MiddleCenter) { + if (this.Columns == null || this.Columns[column] == null) return; + + this.Columns[column].Visible = true; + this.Columns[column].DisplayIndex = index; + this.Columns[column].SortMode = DataGridViewColumnSortMode.Automatic; + this.Columns[column].DefaultCellStyle.Alignment = align; + if (width > 0) { + this.Columns[column].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + this.Columns[column].Width = width; + } else if (width == 0) { + this.Columns[column].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + } else if (width < 0) { + this.Columns[column].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + } + this.Columns[column].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; + if (header != null) { + this.Columns[column].HeaderText = header; + } + } + + public void DeallocContextMenu() { + this.ContextMenuStrip = null; + } + + private void SetContextMenu() { + this.components = new Container(); + //ComponentResourceManager resources = new ComponentResourceManager(typeof(Grid)); + this.CMenu = new ContextMenuStrip(this.components); + this.ExportItemCsv = new ToolStripMenuItem(); + this.ExportItemHtml = new ToolStripMenuItem(); + this.ExportItemBbcode = new ToolStripMenuItem(); + this.ExportItemMd = new ToolStripMenuItem(); + this._saveFile = new SaveFileDialog(); + this.CMenu.SuspendLayout(); + ((ISupportInitialize)(this)).BeginInit(); + this.SuspendLayout(); + // + // cMenu + // + this.CMenu.Items.AddRange(new ToolStripItem[] { this.ExportItemCsv, this.ExportItemHtml, this.ExportItemBbcode, this.ExportItemMd }); + this.CMenu.Name = "contextMenu"; + this.CMenu.Size = new Size(135, 48); + // + // exportItemCSV + // + this.ExportItemCsv.Name = "exportItemCSV"; + this.ExportItemCsv.Size = new Size(134, 22); + this.ExportItemCsv.Text = Multilingual.GetWord("main_export_csv"); + this.ExportItemCsv.ShowShortcutKeys = true; + this.ExportItemCsv.Image = Properties.Resources.export; + this.ExportItemCsv.ShortcutKeys = Keys.Control | Keys.S; + this.ExportItemCsv.Click += this.exportItemCSV_Click; + // + // exportItemHTML + // + this.ExportItemHtml.Name = "exportItemHTML"; + this.ExportItemHtml.Size = new Size(134, 22); + this.ExportItemHtml.Text = Multilingual.GetWord("main_export_html"); + this.ExportItemHtml.ShowShortcutKeys = true; + this.ExportItemHtml.Image = Properties.Resources.export; + this.ExportItemHtml.ShortcutKeys = Keys.Control | Keys.E; + this.ExportItemHtml.Click += this.exportItemHTML_Click; + // + // exportItemBBCODE + // + this.ExportItemBbcode.Name = "exportItemBBCODE"; + this.ExportItemBbcode.Size = new Size(134, 22); + this.ExportItemBbcode.Text = Multilingual.GetWord("main_export_bbcode"); + this.ExportItemBbcode.ShowShortcutKeys = true; + this.ExportItemBbcode.Image = Properties.Resources.export; + this.ExportItemBbcode.ShortcutKeys = Keys.Control | Keys.B; + this.ExportItemBbcode.Click += this.exportItemBBCODE_Click; + // + // exportItemMD + // + this.ExportItemMd.Name = "exportItemMD"; + this.ExportItemMd.Size = new Size(134, 22); + this.ExportItemMd.Text = Multilingual.GetWord("main_export_markdown"); + this.ExportItemMd.ShowShortcutKeys = true; + this.ExportItemMd.Image = Properties.Resources.export; + this.ExportItemMd.ShortcutKeys = Keys.Control | Keys.M; + this.ExportItemMd.Click += this.exportItemMD_Click; + // + // saveFile + // + this._saveFile.Filter = "CSV files|*.csv"; + this._saveFile.Title = "Save as CSV file"; + // + // Grid + // + this.DataError += this.Grid_DataError; + this.CMenu.ResumeLayout(false); + ((ISupportInitialize)(this)).EndInit(); + this.ResumeLayout(false); + } + + public static DataTable Convert(IEnumerable array, params string[] columns) { + object rec = null; + foreach (object o in array) { rec = o; break; } + DataTable dt = new DataTable(); + if (rec == null) { return dt; } + PropertyInfo[] properties = rec.GetType().GetProperties(); + dt.Columns.Add(".", rec.GetType()); + foreach (PropertyInfo pi in properties) { + Type type = pi.PropertyType; + if (pi.PropertyType.IsGenericType && pi.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>)) { + type = pi.PropertyType.GetGenericArguments()[0]; + } + bool addColumn = true; + if (columns != null && columns.Length > 0) { + bool found = false; + for (int i = columns.Length - 1; i >= 0; i--) { + if (pi.Name.Equals(columns[i], StringComparison.OrdinalIgnoreCase)) { + found = true; + break; + } + } + addColumn = found; + } + if (addColumn) { + dt.Columns.Add(pi.Name, type); + } + } + foreach (object o in array) { + DataRow dr = dt.NewRow(); + dr["."] = o; + foreach (PropertyInfo pi in properties) { + if (columns == null || columns.Length == 0 || dt.Columns.Contains(pi.Name)) { + dr[pi.Name] = pi.GetValue(o, null) ?? DBNull.Value; + } + } + dt.Rows.Add(dr); + } + return dt; + } + + public void ChangeContextMenuLanguage() { + this.ExportItemCsv.Text = Multilingual.GetWord("main_export_csv"); + this.ExportItemHtml.Text = Multilingual.GetWord("main_export_html"); + this.ExportItemBbcode.Text = Multilingual.GetWord("main_export_bbcode"); + this.ExportItemMd.Text = Multilingual.GetWord("main_export_markdown"); + } + } + + public static class ControlErrors { + public static event Action Error; + internal static Exception HandleException(object sender, Exception ex, bool rethrow = true) { + if (!ex.Data.Contains("Handled")) + ex.Data.Add("Handled", false); + if (!ex.Data.Contains("Thread")) + ex.Data.Add("Thread", Thread.CurrentThread.Name); + if (string.IsNullOrEmpty(ex.Message)) + ex.Data["Handled"] = true; + if (rethrow) + throw ex; + + if (!(bool)ex.Data["Handled"]) { + if (Error != null) { + Error(sender, ex); + } else { + MessageBox.Show(ex.Message); + } + ex.Data["Handled"] = true; + } + return ex; + } + } +} \ No newline at end of file diff --git a/Controls/ImageComboBox.cs b/Controls/ImageComboBox.cs new file mode 100644 index 000000000..f57639e7d --- /dev/null +++ b/Controls/ImageComboBox.cs @@ -0,0 +1,399 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Drawing.Text; +using System.Linq; +using System.Runtime.InteropServices; +using System.Windows.Forms; +using MetroFramework; + +namespace FallGuysStats { + public sealed class ImageComboBox : ComboBox { + private const int WM_PAINT = 0xF; + + protected override CreateParams CreateParams { + get { + CreateParams cp = base.CreateParams; + cp.ExStyle |= 0x00000020; + return cp; + } + } + + private MetroThemeStyle _theme = MetroThemeStyle.Light; + public MetroThemeStyle Theme { + get { return _theme; } + set { + if (_theme != value) { + _theme = value; + SetBlur(); + Invalidate(); + Update(); + } + } + } + + private string _name = String.Empty; + public string SelectedName { + get { return _name; } + set { + if (_name != value) { + _name = value; + } + } + } + + private Image _image; + public Image SelectedImage { + get { return _image; } + set { + if (_image != value) { + _image = value; + } + } + } + + private Color _borderColor = Color.Gray; + private Color BorderColor { + get { return _borderColor; } + set { + if (_borderColor != value) { + _borderColor = value; + Invalidate(); + Update(); + } + } + } + + private Color _buttonColor = Color.DarkGray; + private Color ButtonColor + { + get { return _buttonColor; } + set { + if (_buttonColor != value) { + _buttonColor = value; + Invalidate(); + Update(); + } + } + } + + protected override void WndProc(ref Message m) { + // if (m.Msg == WM_PAINT && DropDownStyle != ComboBoxStyle.Simple) { + if (m.Msg == WM_PAINT) { + Rectangle clientRect = ClientRectangle; + int dropDownButtonWidth = SystemInformation.HorizontalScrollBarArrowWidth; + Rectangle outerBorder = new Rectangle(clientRect.Location, new Size(clientRect.Width - 1, clientRect.Height - 1)); + Rectangle innerBorder = new Rectangle(outerBorder.X + 1, outerBorder.Y + 1, outerBorder.Width - dropDownButtonWidth - 2, outerBorder.Height - 2); + Rectangle innerInnerBorder = new Rectangle(innerBorder.X + 1, innerBorder.Y + 1, innerBorder.Width - 2, innerBorder.Height - 2); + Rectangle dropDownRect = new Rectangle(innerBorder.Right + 1, innerBorder.Y, dropDownButtonWidth, innerBorder.Height + 1); + if (RightToLeft == RightToLeft.Yes) { + innerBorder.X = clientRect.Width - innerBorder.Right; + innerInnerBorder.X = clientRect.Width - innerInnerBorder.Right; + dropDownRect.X = clientRect.Width - dropDownRect.Right; + dropDownRect.Width += 1; + } + Color innerBorderColor = Enabled ? BackColor : SystemColors.Control; + Color outerBorderColor = Enabled ? BorderColor : SystemColors.ControlDark; + Color buttonColor = Enabled ? ButtonColor : SystemColors.Control; + Point middle = new Point(dropDownRect.Left + dropDownRect.Width / 2, dropDownRect.Top + dropDownRect.Height / 2); + Point[] arrow = { + //new Point(middle.X - 3, middle.Y - 2), + //new Point(middle.X + 4, middle.Y - 2), + //new Point(middle.X, middle.Y + 2) + new Point(middle.X - 10, middle.Y - 2), + new Point(middle.X + 1, middle.Y - 2), + new Point(middle.X - 5, middle.Y + 4) + }; + PAINTSTRUCT ps = new PAINTSTRUCT(); + bool shoulEndPaint = false; + IntPtr dc; + if (m.WParam == IntPtr.Zero) { + dc = BeginPaint(Handle, ref ps); + m.WParam = dc; + shoulEndPaint = true; + } else { + dc = m.WParam; + } + IntPtr rgn = CreateRectRgn(innerInnerBorder.Left, innerInnerBorder.Top, innerInnerBorder.Right, innerInnerBorder.Bottom); + SelectClipRgn(dc, rgn); + DefWndProc(ref m); + DeleteObject(rgn); + rgn = CreateRectRgn(clientRect.Left, clientRect.Top, clientRect.Right, clientRect.Bottom); + SelectClipRgn(dc, rgn); + using (Graphics g = Graphics.FromHdc(dc)) { + //using (var b = new SolidBrush(buttonColor)) { + using (SolidBrush b = new SolidBrush(Color.Transparent)) { + g.FillRectangle(b, dropDownRect); + } + using (SolidBrush b = new SolidBrush(buttonColor)) { + g.FillPolygon(b, arrow); + } + //using (var p = new Pen(innerBorderColor)) { + using (Pen p = new Pen(Color.Transparent)) { + g.DrawRectangle(p, innerBorder); + g.DrawRectangle(p, innerInnerBorder); + } + using (Pen p = new Pen(outerBorderColor)) { + g.DrawRectangle(p, outerBorder); + } + } + if (shoulEndPaint) { EndPaint(Handle, ref ps); } + DeleteObject(rgn); + } else { + base.WndProc(ref m); + } + } + + [StructLayout(LayoutKind.Sequential)] + public struct RECT { + public int L, T, R, B; + } + + [StructLayout(LayoutKind.Sequential)] + public struct PAINTSTRUCT { + public IntPtr hdc; + public bool fErase; + public int rcPaint_left; + public int rcPaint_top; + public int rcPaint_right; + public int rcPaint_bottom; + public bool fRestore; + public bool fIncUpdate; + public int reserved1; + public int reserved2; + public int reserved3; + public int reserved4; + public int reserved5; + public int reserved6; + public int reserved7; + public int reserved8; + } + [DllImport("user32.dll")] + private static extern IntPtr BeginPaint(IntPtr hWnd, [In, Out] ref PAINTSTRUCT lpPaint); + + [DllImport("user32.dll")] + private static extern bool EndPaint(IntPtr hWnd, ref PAINTSTRUCT lpPaint); + + [DllImport("gdi32.dll")] + public static extern int SelectClipRgn(IntPtr hDC, IntPtr hRgn); + + [DllImport("user32.dll")] + public static extern int GetUpdateRgn(IntPtr hwnd, IntPtr hrgn, bool fErase); + public enum RegionFlags { + ERROR = 0, + NULLREGION = 1, + SIMPLEREGION = 2, + COMPLEXREGION = 3, + } + [DllImport("gdi32.dll")] + internal static extern bool DeleteObject(IntPtr hObject); + + [DllImport("gdi32.dll")] + private static extern IntPtr CreateRectRgn(int x1, int y1, int x2, int y2); + + #region Private Field + private const int COLOR_ITEM_MARGIN_WIDTH = 4; + private const int COLOR_ITEM_MARGIN_HEIGHT = 4; + private const int IMAGE_ITEM_MARGIN_WIDTH = 2; + private const int IMAGE_ITEM_MARGIN_HEIGHT = 2; + #endregion + + #region SetColorData(colorArray) + public void SetColorData(Color[] colorArray) { + this.DrawMode = DrawMode.OwnerDrawFixed; + this.Items.Clear(); + + foreach (Color color in colorArray) { + this.Items.Add(color); + } + + this.DrawItem += this.ColorComboBox_DrawItem; + } + #endregion + + #region SetImageData(imageArray) + public void SetImageData(Image[] imageArray) { + this.DrawMode = DrawMode.OwnerDrawVariable; + this.Items.Clear(); + + foreach (Image image in imageArray) { + this.Items.Add(image); + } + + this.MeasureItem += this.ImageComboBox_MeasureItem; + this.DrawItem += this.ImageComboBox_DrawItem; + } + #endregion + + #region SetImageItemData(imageItemArray) + public void SetImageItemData(List imageItemArray) { + this.DrawMode = DrawMode.OwnerDrawVariable; + this.Items.Clear(); + this.Items.AddRange(imageItemArray.ToArray()); + + this.MeasureItem += this.ImageItemComboBox_MeasureItem; + this.DrawItem += this.ImageItemComboBox_DrawItem; + + this.MouseEnter += ImageItemComboBox_MouseEnter; + this.MouseLeave += ImageItemComboBox_MouseLeave; + this.GotFocus += ImageItemComboBox_GotFocus; + this.LostFocus += ImageItemComboBox_LostFocus; + + this.SelectedIndexChanged += ImageItemComboBox_SelectedIndexChanged; + + this.SetBlur(); + } + #endregion + + #region SelectedImageItem(data, dataIndex) + public void SelectedImageItem(string data, int dataIndex = 0) { + int index = this.Items.Cast() + .Select((item, idx) => new { Item = item, Index = idx }) + .FirstOrDefault(x => x.Item.Data[dataIndex].Split(';').Any(d => d == data))?.Index ?? -1; + + if (index != -1) { + this.SelectedIndex = index; + } + } + #endregion + + #region ColorComboBox_DrawItem(sender, e) + private void ColorComboBox_DrawItem(object sender, DrawItemEventArgs e) { + if(e.Index < 0) return; + + e.DrawBackground(); + + int height = e.Bounds.Height - 2 * COLOR_ITEM_MARGIN_HEIGHT; + + Rectangle rectangle = new Rectangle + ( + e.Bounds.X + COLOR_ITEM_MARGIN_WIDTH, + e.Bounds.Y + COLOR_ITEM_MARGIN_HEIGHT, + height, + height + ); + + ComboBox comboBox = sender as ComboBox; + Color color = (Color)comboBox.Items[e.Index]; + + using(SolidBrush brush = new SolidBrush(color)) { + e.Graphics.FillRectangle(brush, rectangle); + } + + e.Graphics.DrawRectangle(Pens.Black, rectangle); + + using(Font font = new Font(comboBox.Font.FontFamily, comboBox.Font.Size * 0.75f, FontStyle.Bold)) { + using(StringFormat stringFormat = new StringFormat()) { + stringFormat.Alignment = StringAlignment.Near; + stringFormat.LineAlignment = StringAlignment.Center; + + int x = height + 2 * COLOR_ITEM_MARGIN_WIDTH; + int y = e.Bounds.Y + e.Bounds.Height / 2; + + e.Graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; + e.Graphics.DrawString(color.Name, font, Brushes.Black, x, y, stringFormat); + } + } + + e.DrawFocusRectangle(); + } + #endregion + + #region ImageComboBox_MeasureItem(sender, e) + private void ImageComboBox_MeasureItem(object sender, MeasureItemEventArgs e) { + if (e.Index < 0) return; + + ComboBox comboBox = sender as ComboBox; + Image image = (Image)comboBox.Items[e.Index]; + + e.ItemHeight = image.Height + 2 * IMAGE_ITEM_MARGIN_HEIGHT; + e.ItemWidth = image.Width + 2 * IMAGE_ITEM_MARGIN_WIDTH; + } + #endregion + + #region ImageComboBox_DrawItem(sender, e) + private void ImageComboBox_DrawItem(object sender, DrawItemEventArgs e) { + if (e.Index < 0) return; + + e.DrawBackground(); + ComboBox comboBox = sender as ComboBox; + Image image = (Image)comboBox.Items[e.Index]; + + float height = e.Bounds.Height - 2 * IMAGE_ITEM_MARGIN_HEIGHT; + float scale = height / image.Height; + float width = image.Width * scale; + + RectangleF rectangle = new RectangleF ( + e.Bounds.X + IMAGE_ITEM_MARGIN_WIDTH, + e.Bounds.Y + IMAGE_ITEM_MARGIN_HEIGHT, + width, + height + ); + + e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear; + e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + e.Graphics.DrawImage(image, rectangle); + e.DrawFocusRectangle(); + } + #endregion + + #region ImageItemComboBox_MeasureItem(sender, e) + private void ImageItemComboBox_MeasureItem(object sender, MeasureItemEventArgs e) { + if (e.Index < 0) return; + + ComboBox comboBox = sender as ComboBox; + ImageItem item = (ImageItem)comboBox.Items[e.Index]; + item.MeasureItem(e); + } + #endregion + + #region ImageItemComboBox_DrawItem(sender, e) + private void ImageItemComboBox_DrawItem(object sender, DrawItemEventArgs e) { + if (e.Index < 0) return; + + ComboBox comboBox = sender as ComboBox; + ImageItem item = (ImageItem)comboBox.Items[e.Index]; + item.DrawItem(e, this.ForeColor, this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17)); + } + + private void ImageItemComboBox_MouseEnter(object sender, EventArgs e) { + if (!this.Focused) this.SetFocus(); + } + + private void ImageItemComboBox_MouseLeave(object sender, EventArgs e) { + if (!this.Focused) this.SetBlur(); + } + + private void ImageItemComboBox_GotFocus(object sender, EventArgs e) { + this.SetFocus(); + } + + private void ImageItemComboBox_LostFocus(object sender, EventArgs e) { + this.SetBlur(); + } + + private void ImageItemComboBox_SelectedIndexChanged(object sender, EventArgs e) { + if (this.SelectedIndex == -1) return; + + this.SelectedName = ((ImageItem)((ImageComboBox)sender).SelectedItem).Text; + this.SelectedImage = ((ImageItem)((ImageComboBox)sender).SelectedItem).Image; + } + + private void SetFocus() { + this.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.FromArgb(204, 204, 204); + this.BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + this.BorderColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(17, 17, 17) : Color.FromArgb(204, 204, 204); + this.ButtonColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(17, 17, 17) : Color.FromArgb(170, 170, 170); + } + + private void SetBlur() { + this.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(153, 153, 153) : Color.DarkGray; + this.BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + this.BorderColor = Color.FromArgb(153, 153, 153); + this.ButtonColor = Color.FromArgb(153, 153, 153); + } + #endregion + } +} \ No newline at end of file diff --git a/Controls/RoundLabel.cs b/Controls/RoundLabel.cs new file mode 100644 index 000000000..dce47159e --- /dev/null +++ b/Controls/RoundLabel.cs @@ -0,0 +1,65 @@ +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; +namespace FallGuysStats { + public class RoundLabel : Label { + public int cornerRadius = 15; + public Color borderColor = Color.DarkGray; + public int borderWidth = 1; + public Color backColor = Color.LightGray; + + public bool isFillLeftTop = false; + public bool isFillRightTop = false; + public bool isFillLeftBottom = false; + public bool isFillRightBottom = false; + + public RoundLabel() { + this.DoubleBuffered = true; + } + + protected override void OnPaint(PaintEventArgs e) { + //base.OnPaint(e); + using(var graphicsPath = this.GetRoundRectangle(this.ClientRectangle)) { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + var brush = new SolidBrush(this.backColor); + var pen = new Pen(this.borderColor, this.borderWidth); + e.Graphics.FillPath(brush, graphicsPath); + e.Graphics.DrawPath(pen, graphicsPath); + + TextRenderer.DrawText(e.Graphics, this.Text, this.Font, this.ClientRectangle, this.ForeColor); + } + } + + private GraphicsPath GetRoundRectangle(Rectangle rectangle) { + GraphicsPath path = new GraphicsPath(); + if(this.isFillLeftTop) { + path.AddLine(rectangle.X, rectangle.Y + this.cornerRadius, rectangle.Left, rectangle.Top); + path.AddLine(rectangle.X, rectangle.Y, rectangle.Left + this.cornerRadius, rectangle.Top); + } else { + path.AddArc(rectangle.Left, rectangle.Top, this.cornerRadius, this.cornerRadius, 180, 90); + } + if(this.isFillRightTop) { + path.AddLine(rectangle.Right - this.cornerRadius, rectangle.Top, rectangle.Right, rectangle.Top); + path.AddLine(rectangle.Right, rectangle.Top, rectangle.Right, rectangle.Top + this.cornerRadius); + } else { + path.AddArc(rectangle.X + rectangle.Width - this.cornerRadius - this.borderWidth, rectangle.Y, this.cornerRadius, this.cornerRadius, 270, 90); + } + if(this.isFillRightBottom) { + path.AddLine(rectangle.Right, rectangle.Bottom - cornerRadius, rectangle.Right, rectangle.Bottom); + path.AddLine(rectangle.Right, rectangle.Bottom, rectangle.Right - this.cornerRadius, rectangle.Bottom); + } else { + path.AddArc(rectangle.X + rectangle.Width - this.cornerRadius - this.borderWidth, rectangle.Y + rectangle.Height - this.cornerRadius - this.borderWidth, this.cornerRadius, this.cornerRadius, 0, 90); + } + if(this.isFillLeftBottom) { + path.AddLine(rectangle.Left + this.cornerRadius, rectangle.Bottom, rectangle.Left, rectangle.Bottom); + path.AddLine(rectangle.Left, rectangle.Bottom, rectangle.Left, rectangle.Bottom - this.cornerRadius); + } else { + path.AddArc(rectangle.X, rectangle.Y + rectangle.Height - this.cornerRadius - this.borderWidth, this.cornerRadius, this.cornerRadius, 90, 90); + } + + path.CloseAllFigures(); + return path; + } + } +} \ No newline at end of file diff --git a/Controls/TimerAbsolute.cs b/Controls/TimerAbsolute.cs new file mode 100644 index 000000000..d557b0dd7 --- /dev/null +++ b/Controls/TimerAbsolute.cs @@ -0,0 +1,35 @@ +using System; +using System.Timers; + +namespace FallGuysStats { + public delegate void TimerCallbackDelegate(object sender, ElapsedEventArgs e); + public class TimerAbsolute : Timer { + private DateTime m_dueTime; + private readonly TimerCallbackDelegate callback; + + public TimerAbsolute(TimerCallbackDelegate cb) : base() { + this.callback = cb; + this.Elapsed += this.ElapsedAction; + this.AutoReset = true; + } + + protected new void Dispose() { + this.Elapsed -= this.ElapsedAction; + base.Dispose(); + } + + public void Start(double interval) { + this.m_dueTime = DateTime.Now.AddMilliseconds(interval); + // Timer tick is 1 second + this.Interval = 1000; + base.Start(); + } + + private void ElapsedAction(object sender, ElapsedEventArgs e) { + if (DateTime.Now >= m_dueTime) { + this.callback(sender, e); + base.Stop(); + } + } + } +} \ No newline at end of file diff --git a/Controls/TransparentLabel.cs b/Controls/TransparentLabel.cs new file mode 100644 index 000000000..d623cb472 --- /dev/null +++ b/Controls/TransparentLabel.cs @@ -0,0 +1,450 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Drawing.Text; +using System.Windows.Forms; +namespace FallGuysStats { + public class TransparentLabel : Label { + public TransparentLabel() { + this.DrawVisible = true; + this.TextRight = null; + this.Visible = false; + } + [DefaultValue(null)] + public string TextRight { get; set; } + [DefaultValue(true)] + public bool DrawVisible { get; set; } + public Image PlatformIcon { get; set; } + public int ImageX { get; set; } + public int ImageY { get; set; } + public int ImageWidth { get; set; } + public int ImageHeight { get; set; } + public Color LevelColor { get; set; } + public Color LevelTrueColor { get; set; } + public Color PingColor { get; set; } + public Image RoundIcon { get; set; } + public int TickProgress { get; set; } + public int OverlaySetting { get; set; } + + public void Draw(Graphics g) { + if (!this.DrawVisible) return; + + using (SolidBrush brBack = new SolidBrush(this.BackColor)) { + using (SolidBrush brFore = new SolidBrush(this.ForeColor)) { + g.SmoothingMode = SmoothingMode.HighQuality; + g.InterpolationMode = InterpolationMode.HighQualityBilinear; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + if (this.PlatformIcon != null) { + StringFormat stringFormat = new StringFormat { + Alignment = StringAlignment.Far, + LineAlignment = StringAlignment.Center + }; + g.DrawImage(this.PlatformIcon, this.ImageX, this.ImageY, this.ImageWidth == 0 ? this.PlatformIcon.Width : this.ImageWidth, this.ImageHeight == 0 ? this.PlatformIcon.Height : this.ImageHeight); + if (this.TextRight != null) { + g.DrawString(this.TextRight, new Font(this.Font.FontFamily, this.Font.Size * 0.77f, this.Font.Style, GraphicsUnit.Pixel), brFore, new RectangleF(this.ClientRectangle.X + 5, this.ClientRectangle.Y - 3, this.ClientRectangle.Width, this.ClientRectangle.Height), stringFormat); + } + } else { + StringFormat stringFormat = new StringFormat { + Alignment = StringAlignment.Near + }; + switch (this.TextAlign) { + case ContentAlignment.BottomLeft: + case ContentAlignment.BottomCenter: + case ContentAlignment.BottomRight: + stringFormat.LineAlignment = StringAlignment.Far; + break; + case ContentAlignment.MiddleLeft: + case ContentAlignment.MiddleCenter: + case ContentAlignment.MiddleRight: + stringFormat.LineAlignment = StringAlignment.Center; + break; + case ContentAlignment.TopLeft: + case ContentAlignment.TopCenter: + case ContentAlignment.TopRight: + stringFormat.LineAlignment = StringAlignment.Near; + break; + } + switch (this.TextAlign) { + case ContentAlignment.TopCenter: + case ContentAlignment.MiddleCenter: + case ContentAlignment.BottomCenter: + if (string.IsNullOrEmpty(this.TextRight)) { + stringFormat.Alignment = StringAlignment.Center; + } + break; + } + + if (!string.IsNullOrEmpty(this.Text)) { + this.DrawOutlineText(g, this.ClientRectangle, null, brFore, this.Font.FontFamily, this.Font.Style, this.Font.Size * this.GetFontSizeFactor(), this.Text, stringFormat); + if ((string.Equals(this.Name, "lblPlayers") && (this.OverlaySetting == 0 || this.OverlaySetting == 1 || this.OverlaySetting == 4 || this.OverlaySetting == 5)) || + (string.Equals(this.Name, "lblFastest") && this.OverlaySetting == 2) || + (string.Equals(this.Name, "lblFinals") && this.OverlaySetting == 3) || + (string.Equals(this.Name, "lblDuration") && this.OverlaySetting == 6)) { + if (this.TickProgress > 0) { + this.FillRoundedRectangleF(g, new Pen(Utils.GetComplementaryColor(Utils.GetColorBrightnessAdjustment(brFore.Color, this.TickProgress % 2 == 0 ? 1 : 0.95f), 95)), new SolidBrush(Utils.GetComplementaryColor(Utils.GetColorBrightnessAdjustment(brFore.Color, this.TickProgress % 2 == 0 ? 1 : 0.95f), 95)), this.ClientRectangle.X, this.ClientRectangle.Y, this.ClientRectangle.Width * this.TickProgress / 60f, this.ClientRectangle.Height * 2, 4f); + } + } + } + + if (this.Image != null) { + if (string.Equals(this.Name, "lblPingIcon")) { + this.FillRoundedRectangleF(g, null, new SolidBrush(this.PingColor), this.ImageX - 2, this.ImageY - 3, (this.ImageWidth == 0 ? this.Image.Width : this.ImageWidth) + 4, (this.ImageHeight == 0 ? this.Image.Height : this.ImageHeight) + 5, 6f); + } + g.DrawImage(this.Image, this.ImageX, this.ImageY, this.ImageWidth == 0 ? this.Image.Width : this.ImageWidth, this.ImageHeight == 0 ? this.Image.Height : this.ImageHeight); + } + + if (!string.IsNullOrEmpty(this.TextRight)) { + stringFormat.Alignment = StringAlignment.Far; + if (string.Equals(this.Name, "lblRound")) { + Font fontForLongText = this.GetFontForRoundName(this.TextRight); + if (!this.LevelColor.IsEmpty) { + float widthOfText = g.MeasureString(this.TextRight, fontForLongText).Width; + //float widthOfText = TextRenderer.MeasureText(this.TextRight, fontForLongText).Width; + RectangleF roundRect = this.FillRoundedRectangleF(g, new Pen(this.LevelColor), new SolidBrush(this.LevelColor), (this.ClientRectangle.Width - widthOfText), this.ClientRectangle.Y, widthOfText, 22f, 16f); + if (this.RoundIcon != null) { + this.FillRoundedRectangleF(g, new Pen(this.LevelTrueColor), new SolidBrush(this.LevelTrueColor), (roundRect.X - 7f) - this.ImageWidth, this.ClientRectangle.Y, this.ImageWidth + 2, 22f, 8f); + g.DrawImage(this.RoundIcon, (roundRect.X - 6f) - this.ImageWidth, this.ClientRectangle.Y, this.ImageWidth, this.ImageHeight); + } + brFore.Color = this.LevelColor.IsEmpty ? this.ForeColor : Color.White; + stringFormat.Alignment = StringAlignment.Near; + this.DrawOutlineText(g, new RectangleF(roundRect.X + 0.2f, ClientRectangle.Y, this.ClientRectangle.Width, this.ClientRectangle.Height), null, brFore, fontForLongText.FontFamily, fontForLongText.Style, fontForLongText.Size, this.TextRight, stringFormat); + } else { + brFore.Color = this.LevelColor.IsEmpty ? this.ForeColor : Color.White; + this.DrawOutlineText(g, this.ClientRectangle, null, brFore, fontForLongText.FontFamily, fontForLongText.Style, fontForLongText.Size, this.TextRight, stringFormat); + } + //g.DrawString(this.TextRight, this.GetFontForRoundName(this.TextRight), brFore, this.ClientRectangle, stringFormat); + } else if (string.Equals(this.Name, "lblPlayers")) { + if (this.TextRight.EndsWith(" ms", StringComparison.OrdinalIgnoreCase)) { + this.DrawOutlineText(g, this.ClientRectangle, new Pen(this.PingColor), new SolidBrush(this.PingColor), this.Font.FontFamily, this.Font.Style, this.Font.Size * this.GetFontSizeFactor(), this.TextRight, stringFormat); + this.DrawOutlineText(g, this.ClientRectangle, null, brFore, this.Font.FontFamily, FontStyle.Regular, this.Font.Size * this.GetFontSizeFactor(), this.TextRight, stringFormat); + } else { + this.DrawOutlineText(g, this.ClientRectangle, null, brFore, this.Font.FontFamily, this.Font.Style, this.Font.Size * this.GetFontSizeFactor(), this.TextRight, stringFormat); + } + } else { + this.DrawOutlineText(g, this.ClientRectangle, null, brFore, this.Font.FontFamily, this.Font.Style, this.Font.Size * this.GetFontSizeFactor(), this.TextRight, stringFormat); + //g.DrawString(this.TextRight, this.Font, brFore, this.ClientRectangle, stringFormat); + } + } + } + } + } + } + + private float GetFontSizeFactor() { + float factor; + Language lang = Stats.CurrentLanguage; + bool isLangGroup1 = lang == Language.English || lang == Language.French || lang == Language.Spanish; + bool isLangGroup2 = lang == Language.Korean || lang == Language.Japanese; + bool isLangGroup3 = lang == Language.SimplifiedChinese || lang == Language.TraditionalChinese; + + switch (this.Name) { + case "lblRound": + factor = isLangGroup1 ? (this.Text.Length > 21 ? 0.96f: 1f) : 1f; + break; + case "lblWins": + factor = isLangGroup1 ? (this.TextRight.Length > 15 ? (1f - (((this.TextRight.Length * 3.3f) - 65 + (this.Text.Length * 3.3f)) / 100f)) : (this.Text.Length > 21 ? 0.84f: 1f)) : + isLangGroup2 ? (this.TextRight.Length > 15 ? (1f - (((this.TextRight.Length * 3.3f) - 65 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : + isLangGroup3 ? (this.TextRight.Length > 15 ? (1f - (((this.TextRight.Length * 3.3f) - 65 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : 1f; + break; + case "lblFinals": + factor = isLangGroup1 ? (1f - (((this.TextRight.Length * 3.3f) - 72 + (this.Text.Length * 3.3f)) / 100f)) : + isLangGroup2 ? (this.TextRight.Length > 14 ? (1f - (((this.TextRight.Length * 3.3f) - 72 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : + isLangGroup3 ? (this.TextRight.Length > 14 ? (1f - (((this.TextRight.Length * 3.3f) - 72 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : 1f; + break; + case "lblStreak": + factor = isLangGroup1 ? (this.Text.Length > 0 && this.TextRight.Length > 8 ? (1f - (((this.TextRight.Length * 3.3f) - 70 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : + isLangGroup2 ? (this.Text.Length > 0 && this.TextRight.Length > 12 ? (1f - (((this.TextRight.Length * 3.3f) - 58 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : + isLangGroup3 ? (this.Text.Length > 0 && this.TextRight.Length > 10 ? (1f - (((this.TextRight.Length * 3.3f) - 58 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : 1f; + break; + case "lblQualifyChance": + factor = isLangGroup1 ? (this.TextRight.Length > 17 ? (1f - (((this.TextRight.Length * 3.3f) - 78 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : + isLangGroup2 ? (this.TextRight.Length > 17 ? (1f - (((this.TextRight.Length * 3.3f) - 68 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : + isLangGroup3 ? (this.TextRight.Length > 17 ? (1f - (((this.TextRight.Length * 3.3f) - 68 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : 1f; + break; + case "lblFastest": + factor = isLangGroup1 ? (this.TextRight.Length > 8 || this.Text.Length > 15 ? (1f - (((this.TextRight.Length * 3.3f) - 50 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : + isLangGroup2 ? (this.TextRight.Length > 8 ? (1f - (((this.TextRight.Length * 3.3f) - 49 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : + isLangGroup3 ? (this.TextRight.Length > 8 ? (1f - (((this.TextRight.Length * 3.3f) - 46 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : 1f; + break; + case "lblPlayers": + factor = isLangGroup1 ? (this.TextRight.Length > 7 ? (1f - (((this.TextRight.Length * 3.3f) - 63 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : + isLangGroup2 ? (this.TextRight.Length > 7 ? (1f - (((this.TextRight.Length * 3.3f) - 49 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : + isLangGroup3 ? (this.TextRight.Length > 7 ? (1f - (((this.TextRight.Length * 3.3f) - 46 + (this.Text.Length * 3.3f)) / 100f)) : 1f) : 1f; + break; + case "lblDuration": + factor = isLangGroup1 ? (this.Text.Length > 16 ? (1f - ((this.TextRight.Length - 42 + (this.Text.Length * 2.5f)) / 100f)) : (this.Text.Length >= 13 && this.TextRight.Length >= 8 ? 1f - (((this.TextRight.Length * 2.5f) - 43 + (this.Text.Length * 2.5f)) / 100f) : 1f)) : + isLangGroup2 ? (this.Text.Length > 14 ? (1f - ((this.TextRight.Length - 42 + (this.Text.Length * 2.5f)) / 100f)) : 1f) : + isLangGroup3 ? (this.Text.Length > 14 ? (1f - ((this.TextRight.Length - 42 + (this.Text.Length * 2.5f)) / 100f)) : 1f) : 1f; + break; + case "lblFinish": + factor = isLangGroup1 ? (this.Text.Length <= 8 ? (this.TextRight.Length > 13 ? 1f - (((this.TextRight.Length * 2.5f) - 28) / 100f) : 1f) : (1f - (((this.Text.Length * 2.5f) - 33) / 100f))) : + isLangGroup2 ? (this.Text.Length <= 4 ? (this.TextRight.Length > 15 ? 1f - ((this.TextRight.Length - 13) / 100f) : 1f) : (this.Text.Length > 10 ? 0.94f : 1f)) : + isLangGroup3 ? (this.Text.Length <= 4 ? (this.TextRight.Length > 15 ? 1f - ((this.TextRight.Length - 13) / 100f) : 1f) : 1f) : 1f; + break; + default: + factor = 1f; + break; + } + return factor > 1f ? 1f : factor; + } + + private Font GetFontForRoundName(string text) { + return new Font(this.Font.FontFamily, this.Font.Size * this.GetFontSizeFactorForRoundName(text), this.Font.Style, GraphicsUnit.Pixel); + } + + private float GetFontSizeFactorForRoundName(string text) { + float factor = 1f, + factorOffsetForSpace = 0, factorOffsetForEngUppercase = 0, factorOffsetForEngLowercase = 0, factorOffsetForKorCharacter = 0, + factorOffsetForJpnCharacter = 0, factorOffsetForChineseCharacter = 0, factorOffsetForNumeric = 0, factorOffsetForSignCharacter = 0; + + if (text.Length >= 9 && 30 >= text.Length) { + factor = 0.33f; + Language lang = Stats.CurrentLanguage; + bool isLangGroup1 = lang == Language.English || lang == Language.French || lang == Language.Spanish; + bool isLangGroup2 = lang == Language.Korean || lang == Language.Japanese; + bool isLangGroup3 = lang == Language.SimplifiedChinese || lang == Language.TraditionalChinese; + if (isLangGroup1 && string.Equals(this.Font.FontFamily.Name, Overlay.GetDefaultFontFamilies(Language.English).Name)) { + factorOffsetForSpace = this.LevelColor.IsEmpty ? (lang == 0 ? 0.05f : 0.045f) : 0.065f; + factorOffsetForEngUppercase = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0307f : 0.0278f) : 0.034f; + factorOffsetForEngLowercase = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0333f : 0.0302f) : 0.037f; + factorOffsetForKorCharacter = this.LevelColor.IsEmpty ? (lang == 0 ? 0.017f : 0.015f) : 0.0192f; + factorOffsetForJpnCharacter = this.LevelColor.IsEmpty ? (lang == 0 ? 0.017f : 0.015f) : 0.0192f; + factorOffsetForChineseCharacter = this.LevelColor.IsEmpty ? (lang == 0 ? 0.017f : 0.015f) : 0.0192f; + factorOffsetForSignCharacter = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0284f : 0.0257f) : 0.0315f; + factorOffsetForNumeric = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0312f : 0.0282f) : 0.0345f; + } else if (isLangGroup2 && string.Equals(this.Font.FontFamily.Name, Overlay.GetDefaultFontFamilies(Language.Korean).Name)) { + factorOffsetForSpace = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.067f : 0.055f) : 0.073f; + factorOffsetForEngUppercase = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.034f : 0.029f) : 0.034f; + factorOffsetForEngLowercase = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.043f : 0.0372f) : 0.0427f; + factorOffsetForKorCharacter = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.0237f : 0.02f) : 0.0245f; + factorOffsetForJpnCharacter = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.021f : 0.0175f) : 0.0217f; + factorOffsetForChineseCharacter = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.021f : 0.0175f) : 0.0217f; + factorOffsetForSignCharacter = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.0315f : 0.0267f) : 0.0315f; + factorOffsetForNumeric = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.046f : 0.0397f) : 0.046f; + } else if (isLangGroup3 && string.Equals(this.Font.FontFamily.Name, Overlay.GetDefaultFontFamilies(Language.SimplifiedChinese).Name)) { + factorOffsetForSpace = this.LevelColor.IsEmpty ? 0.08f : 0.065f; + factorOffsetForEngUppercase = this.LevelColor.IsEmpty ? 0.0366f : 0.0277f; + factorOffsetForEngLowercase = this.LevelColor.IsEmpty ? 0.0459f : 0.035f; + factorOffsetForKorCharacter = this.LevelColor.IsEmpty ? 0.0205f : 0.015f; + factorOffsetForJpnCharacter = this.LevelColor.IsEmpty ? 0.0235f : 0.0176f; + factorOffsetForChineseCharacter = this.LevelColor.IsEmpty ? 0.0235f : 0.0176f; + factorOffsetForSignCharacter = this.LevelColor.IsEmpty ? 0.0335f : 0.0252f; + factorOffsetForNumeric = this.LevelColor.IsEmpty ? 0.049f : 0.0375f; + } else { // Custom font + if (isLangGroup1) { + factorOffsetForSpace = this.LevelColor.IsEmpty ? (lang == 0 ? 0.06f : 0.053f) : 0.08f; + factorOffsetForEngUppercase = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0282f : 0.0247f) : 0.0305f; + factorOffsetForEngLowercase = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0382f : 0.0341f) : 0.0412f; + factorOffsetForKorCharacter = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0205f : 0.0178f) : 0.0225f; + factorOffsetForJpnCharacter = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0205f : 0.0178f) : 0.0225f; + factorOffsetForChineseCharacter = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0205f : 0.0178f) : 0.0225f; + factorOffsetForSignCharacter = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0265f : 0.0235f) : 0.0288f; + factorOffsetForNumeric = this.LevelColor.IsEmpty ? (lang == 0 ? 0.0375f : 0.0335f) : 0.0406f; + } else if (isLangGroup2) { + factorOffsetForSpace = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.065f : 0.055f) : 0.07f; + factorOffsetForEngUppercase = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.0308f : 0.027f) : 0.0305f; + factorOffsetForEngLowercase = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.0412f : 0.0367f) : 0.0407f; + factorOffsetForKorCharacter = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.0225f : 0.0195f) : 0.0228f; + factorOffsetForJpnCharacter = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.0225f : 0.0195f) : 0.0228f; + factorOffsetForChineseCharacter = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.0225f : 0.0195f) : 0.0228f; + factorOffsetForSignCharacter = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.0285f : 0.025f) : 0.0287f; + factorOffsetForNumeric = this.LevelColor.IsEmpty ? (lang == Language.Korean ? 0.0405f : 0.036f) : 0.04f; + } else if (isLangGroup3) { + factorOffsetForSpace = this.LevelColor.IsEmpty ? 0.075f : 0.06f; + factorOffsetForEngUppercase = this.LevelColor.IsEmpty ? 0.0345f : 0.0255f; + factorOffsetForEngLowercase = this.LevelColor.IsEmpty ? 0.046f : 0.0345f; + factorOffsetForKorCharacter = this.LevelColor.IsEmpty ? 0.0255f : 0.0188f; + factorOffsetForJpnCharacter = this.LevelColor.IsEmpty ? 0.0255f : 0.0188f; + factorOffsetForChineseCharacter = this.LevelColor.IsEmpty ? 0.0255f : 0.0188f; + factorOffsetForSignCharacter = this.LevelColor.IsEmpty ? 0.0323f : 0.0238f; + factorOffsetForNumeric = this.LevelColor.IsEmpty ? 0.0452f : 0.034f; + } + } + + factor += (this.GetCountSpace(text) * factorOffsetForSpace) + + (this.GetCountEngUppercase(text) * factorOffsetForEngUppercase) + (this.GetCountEngLowercase(text) * factorOffsetForEngLowercase) + + (this.GetCountRusUppercase(text) * factorOffsetForEngUppercase) + (this.GetCountRusLowercase(text) * factorOffsetForEngLowercase) + + (this.GetCountKorCharacter(text) * factorOffsetForKorCharacter) + + (this.GetCountJpnCharacter(text) * factorOffsetForJpnCharacter) + (this.GetCountChineseCharacter(text) * factorOffsetForChineseCharacter) + + (this.GetCountSignCharacter(text) * factorOffsetForSignCharacter) + (this.GetCountNumeric(text) * factorOffsetForNumeric); + + if (text.Length == 9) { + factor *= 2f; + } else if (text.Length == 10) { + factor *= 1.72f; + } else if (text.Length == 11) { + factor *= 1.52f; + } else if (text.Length == 12) { + factor *= 1.36f; + } else if (text.Length == 13) { + factor *= 1.23f; + } else if (text.Length == 14) { + factor *= 1.11f; + } else if (text.Length == 15) { + factor *= 1f; + } else if (text.Length == 16) { + factor *= 0.92f; + } else if (text.Length == 17) { + factor *= 0.86f; + } else if (text.Length == 18) { + factor *= 0.79f; + } else if (text.Length == 19) { + factor *= 0.73f; + } else if (text.Length == 20) { + factor *= 0.67f; + } else if (text.Length == 21) { + factor *= 0.62f; + } else if (text.Length == 22) { + factor *= 0.58f; + } else if (text.Length == 23) { + factor *= 0.54f; + } else if (text.Length == 24) { + factor *= 0.51f; + } else if (text.Length == 25) { + factor *= 0.48f; + } else if (text.Length == 26) { + factor *= 0.45f; + } else if (text.Length == 27) { + factor *= 0.42f; + } else if (text.Length == 28) { + factor *= 0.395f; + } else if (text.Length == 29) { + factor *= 0.375f; + } else if (text.Length == 30) { + factor *= 0.355f; + } + } + + return factor > 1f ? 1f : factor; + } + + private RectangleF FillRoundedRectangleF(Graphics g, Pen pen, Brush brush, float x, float y, float width, float height, float radius) { + using (GraphicsPath path = new GraphicsPath()) { + RectangleF rect = new RectangleF(x, y, radius, radius); + path.AddArc(rect, 180, 90); + rect.X = x + width - radius; + path.AddArc(rect, 270, 90); + rect.Y = y + height - radius; + path.AddArc(rect, 0, 90); + rect.X = x; + path.AddArc(rect, 90, 90); + path.CloseFigure(); + g.FillPath(brush, path); + if (pen != null) { g.DrawPath(pen, path); } + return rect; + } + } + + private void DrawOutlineText(Graphics g, RectangleF layoutRect, Pen outlinePen, Brush fillBrush, FontFamily fontFamily, FontStyle fontStyle, float fontSize, string text, StringFormat stringFormat) { + using (GraphicsPath path = new GraphicsPath()) { + path.AddString(text, fontFamily, (int)fontStyle, fontSize, layoutRect, stringFormat); + path.CloseFigure(); + g.FillPath(fillBrush, path); + if (outlinePen != null) g.DrawPath(outlinePen, path); + } + } + + private int GetCountKorCharacter(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0xAC00 <= ch && ch <= 0xD7A3) + || (0x3131 <= ch && ch <= 0x318E) + ) count++; + } + return count; + } + + private int GetCountJpnCharacter(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0x3040 <= ch && ch <= 0x309F) //Hiragana + || (0x30A0 <= ch && ch <= 0x30FF) //Katakana + //|| (0x3400 <= ch && ch <= 0x4DBF) //CJK Unified Ideographs Extension A (6592EA) + //|| (0x4E00 <= ch && ch <= 0x9FBF) //CJK Unified Ideographs (20928EA) + //|| (0xF900 <= ch && ch <= 0xFAFF) //CJK Compatibility Ideographs (512EA) + ) count++; + } + return count; + } + + private int GetCountChineseCharacter(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if (ch >= 0x4e00 && ch <= 0x9fff) count++; + } + return count; + } + + private int GetCountEngUppercase(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0x41 <= ch && ch <= 0x5A)) count++; + } + return count; + } + + private int GetCountEngLowercase(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0x61 <= ch && ch <= 0x7A)) count++; + } + return count; + } + + private int GetCountRusUppercase(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0x410 <= ch && ch <= 0x42F)) count++; + } + return count; + } + + private int GetCountRusLowercase(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0x430 <= ch && ch <= 0x44F)) count++; + } + return count; + } + + private int GetCountSpace(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if (0x20 == ch) count++; + } + return count; + } + + private int GetCountSignCharacter(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0x21 <= ch && ch <= 0x2F) + || (0x3A <= ch && ch <= 0x40) + || (0x5B <= ch && ch <= 0x60) + || (0x7B <= ch && ch <= 0x7E) + ) count++; + } + return count; + } + + private int GetCountNumeric(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if (0x30 <= ch && ch <= 0x39) count++; + } + return count; + } + } +} \ No newline at end of file diff --git a/DB_Versions.json b/DB_Versions.json new file mode 100644 index 000000000..5c964c480 --- /dev/null +++ b/DB_Versions.json @@ -0,0 +1 @@ +{"success":true,"db_list":[{"name":"LevelTimeLimit","version":19},{"name":"UpcomingShow","version":6}]} \ No newline at end of file diff --git a/Entities/ApiWebClient.cs b/Entities/ApiWebClient.cs new file mode 100644 index 000000000..8c0507292 --- /dev/null +++ b/Entities/ApiWebClient.cs @@ -0,0 +1,37 @@ +using System; +using System.Net; +using System.Net.Cache; +using System.Text; + +namespace FallGuysStats { + public class ApiWebClient : WebClient { + public bool UseWebProxy = true; + public ApiWebClient() { + this.Encoding = Encoding.UTF8; + this.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64;)"; + this.Headers["Accept-Encoding"] = "gzip, deflate"; + this.Headers["Accept-Language"] = "en-US"; + this.Headers["Accept"] = "application/json"; + } + + protected override WebRequest GetWebRequest(Uri address) { + HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address); + request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); + request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; + + if (this.UseWebProxy && Stats.UseWebProxy && Stats.SucceededTestProxy) { + WebProxy webproxy = new WebProxy($"{Stats.ProxyAddress}:{(!string.IsNullOrEmpty(Stats.ProxyPort) ? Stats.ProxyPort : "80")}", false) { + BypassProxyOnLocal = false + }; + + if (Stats.EnableProxyAuthentication && !string.IsNullOrEmpty(Stats.ProxyUsername) && !string.IsNullOrEmpty(Stats.ProxyPassword)) { + webproxy.Credentials = new NetworkCredential(Stats.ProxyUsername, Stats.ProxyPassword); + } + + request.Proxy = webproxy; + } + + return request; + } + } +} \ No newline at end of file diff --git a/Entities/FallalyticsCrownLog.cs b/Entities/FallalyticsCrownLog.cs new file mode 100644 index 000000000..09d2c5da4 --- /dev/null +++ b/Entities/FallalyticsCrownLog.cs @@ -0,0 +1,18 @@ +using System; +using LiteDB; + +namespace FallGuysStats { + public class FallalyticsCrownLog { + [BsonId(true)] + public int Id { get; set; } + public string SessionId { get; set; } + public string ShowId { get; set; } + public string RoundId { get; set; } + public DateTime End { get; set; } + public string CountryCode { get; set; } + public int OnlineServiceType { get; set; } + public string OnlineServiceId { get; set; } + public string OnlineServiceNickname { get; set; } + public bool IsTransferSuccess { get; set; } + } +} \ No newline at end of file diff --git a/Entities/FallalyticsPbLog.cs b/Entities/FallalyticsPbLog.cs new file mode 100644 index 000000000..0b3da2099 --- /dev/null +++ b/Entities/FallalyticsPbLog.cs @@ -0,0 +1,19 @@ +using System; +using LiteDB; + +namespace FallGuysStats { + public class FallalyticsPbLog { + [BsonId(true)] + public int PbId { get; set; } + public string SessionId { get; set; } + public string ShowId { get; set; } + public string RoundId { get; set; } + public double Record { get; set; } + public DateTime PbDate { get; set; } + public string CountryCode { get; set; } + public int OnlineServiceType { get; set; } + public string OnlineServiceId { get; set; } + public string OnlineServiceNickname { get; set; } + public bool IsTransferSuccess { get; set; } + } +} \ No newline at end of file diff --git a/Entities/FallalyticsReporter.cs b/Entities/FallalyticsReporter.cs new file mode 100644 index 000000000..2632636d7 --- /dev/null +++ b/Entities/FallalyticsReporter.cs @@ -0,0 +1,104 @@ +using System; +using System.Net.Http.Headers; +using System.Net.Http; +using System.Text; +using System.Text.Json; +using System.Threading.Tasks; + +namespace FallGuysStats { + internal class FallalyticsReporter { + private static readonly string ReportAPIEndpoint = "https://fallalytics.com/api/report"; + public static readonly string RegisterPbAPIEndpoint = "https://fallalytics.com/api/best-time"; + public static readonly string WeeklyCrownAPIEndpoint = "https://fallalytics.com/api/weekly-crown"; + private static readonly HttpClient HttpClient = new HttpClient(); + + public async Task WeeklyCrown(RoundInfo stat, bool isAnonymous) { + HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, WeeklyCrownAPIEndpoint); + request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + request.Content = new StringContent(this.RoundInfoToWeeklyCrownJsonString(stat, isAnonymous), Encoding.UTF8, "application/json"); + + try { + HttpResponseMessage response = await HttpClient.SendAsync(request); + if (response.IsSuccessStatusCode) { + return true; + } + + return false; + } catch (HttpRequestException) { + return false; + } + } + + public async Task RegisterPb(RoundInfo stat, double record, DateTime finish, bool isAnonymous) { + HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, RegisterPbAPIEndpoint); + request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + request.Content = new StringContent(this.RoundInfoToRegisterPbJsonString(stat, record, finish, isAnonymous), Encoding.UTF8, "application/json"); + + try { + HttpResponseMessage response = await HttpClient.SendAsync(request); + if (response.IsSuccessStatusCode) { + return true; + } + return false; + } catch (HttpRequestException) { + return false; + } + } + + public async Task Report(RoundInfo stat, string apiKey) { + HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, ReportAPIEndpoint); + request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey); + request.Content = new StringContent(this.RoundInfoToReportJsonString(stat), Encoding.UTF8, "application/json"); + try { + await HttpClient.SendAsync(request); + } catch (HttpRequestException e) { + Console.WriteLine($@"Error in FallalyticsReporter. Should not be a problem as it only affects the reporting. Error: {e.Message}"); + } + } + + private string RoundInfoToReportJsonString(RoundInfo stat) { + var payload = new { + round = stat.Name, + index = stat.Round, + show = stat.ShowNameId, + isfinal = stat.IsFinal, + session = stat.SessionId + }; + return JsonSerializer.Serialize(payload); + } + + private string RoundInfoToRegisterPbJsonString(RoundInfo stat, double record, DateTime finish, bool isAnonymous) { + var payload = new { + country = Stats.HostCountryCode, + onlineServiceType = $"{stat.OnlineServiceType}", + onlineServiceId = stat.OnlineServiceId, + onlineServiceNickname = stat.OnlineServiceNickname, + isAnonymous, + finish = $"{finish:o}", + record, + round = stat.Name, + show = stat.ShowNameId, + session = stat.SessionId + }; + return JsonSerializer.Serialize(payload); + } + + private string RoundInfoToWeeklyCrownJsonString(RoundInfo stat, bool isAnonymous) { + var payload = new { + country = Stats.HostCountryCode, + onlineServiceType = $"{stat.OnlineServiceType}", + onlineServiceId = stat.OnlineServiceId, + onlineServiceNickname = stat.OnlineServiceNickname, + isAnonymous, + round = stat.Name, + show = stat.ShowNameId, + session = stat.SessionId, + end = $"{stat.End:o}" + }; + return JsonSerializer.Serialize(payload); + } + } +} diff --git a/Entities/GameStateWatcher.cs b/Entities/GameStateWatcher.cs new file mode 100644 index 000000000..95c5978bb --- /dev/null +++ b/Entities/GameStateWatcher.cs @@ -0,0 +1,49 @@ +using System.Threading.Tasks; + +namespace FallGuysStats { + public class GameStateWatcher { + private const int CheckDelay = 2000; + + private Task task; + private bool running; + private bool stop; + + public void Start() { + if (this.running) return; + + this.stop = false; + this.task = new Task(this.CheckGameState); + this.task.Start(); + } + + public async Task Stop() { + this.stop = true; + while (this.running || this.task == null || this.task.Status == TaskStatus.Created) { + await Task.Delay(50); + } + await Task.Run(() => this.task?.Wait()); + } + + private async void CheckGameState() { + this.running = true; + while (!this.stop) { + if (!Stats.InShow) { + this.stop = true; + this.running = false; + return; + } + + if (Utils.IsProcessRunning("FallGuys_client_game")) { + Stats.IsGameRunning = true; + } else { + Stats.IsGameRunning = false; + Stats.IsClientHasBeenClosed = true; + this.stop = true; + this.running = false; + } + + await Task.Delay(CheckDelay); + } + } + } +} \ No newline at end of file diff --git a/Entities/ImageItem.cs b/Entities/ImageItem.cs new file mode 100644 index 000000000..5a5f1a7ff --- /dev/null +++ b/Entities/ImageItem.cs @@ -0,0 +1,121 @@ +using System; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Drawing.Text; +using System.Windows.Forms; + +namespace FallGuysStats { + public class ImageItem { + #region Public Field + public Image Image { get; set; } + public string[] Data { get; set; } + public string Text { get; set; } + public Font Font { get; set; } + public bool IsCustomized { get; set; } + + #endregion + + #region Private Field + private const int MARGIN_WIDTH = 2; + private const int MARGIN_HEIGHT = 2; + private int width; + private int height; + private bool sizeCalculated; + #endregion + + #region Public Constructor - ImageItem(image, text, font) + public ImageItem(Image image, string text, Font font, string[] dataArray = null, bool isCustomized = false) { + this.Image = image; + this.Data = dataArray; + this.Text = text; + this.Font = font; + this.IsCustomized = isCustomized; + } + #endregion + + #region Public Method - MeasureItem(e) + public void MeasureItem(MeasureItemEventArgs e) { + if (!this.sizeCalculated) { + this.sizeCalculated = true; + SizeF textSize = e.Graphics.MeasureString(this.Text, this.Font); + this.height = 2 * MARGIN_HEIGHT + (int)Math.Max(this.Image.Height, textSize.Height); + this.width = (int)(4 * MARGIN_WIDTH + this.Image.Width + textSize.Width); + } + e.ItemWidth = this.width; + e.ItemHeight = this.height; + } + #endregion + + #region Public Method - DrawItem(e) + public void DrawItem(DrawItemEventArgs e, Color foreColor, Color backColor) { + // e.DrawBackground(); + + bool isComboBoxEdit = (e.State & DrawItemState.ComboBoxEdit) == DrawItemState.ComboBoxEdit; + bool isSelected = (e.State & DrawItemState.Selected) == DrawItemState.Selected; + + Brush backgroundBrush = (isSelected && !isComboBoxEdit) ? new SolidBrush(Color.FromArgb(0, 174, 219)) : new SolidBrush(backColor); + + e.Graphics.FillRectangle(backgroundBrush, e.Bounds); + + float height = e.Bounds.Height - 2 * MARGIN_HEIGHT; + float scale = height / this.Image.Height; + float width = this.Image.Width * scale; + + RectangleF rectangle = new RectangleF + ( + e.Bounds.X + MARGIN_WIDTH, + e.Bounds.Y + MARGIN_HEIGHT, + width, + height + ); + e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear; + e.Graphics.DrawImage(this.Image, rectangle); + + width = e.Bounds.Width - rectangle.Right - (3 * MARGIN_WIDTH); + + rectangle = new RectangleF + ( + rectangle.Right + (2 * MARGIN_WIDTH), + isComboBoxEdit ? rectangle.Y + MARGIN_HEIGHT : rectangle.Y, + width, + height + ); + + using (StringFormat stringFormat = new StringFormat()) { + stringFormat.Alignment = StringAlignment.Far; + stringFormat.LineAlignment = StringAlignment.Far; + + // e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + // e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear; + e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias; + e.Graphics.DrawString(this.Text, this.Font, (isSelected && !isComboBoxEdit) ? new SolidBrush(Color.White) : new SolidBrush(foreColor), rectangle, stringFormat); + } + + // e.DrawFocusRectangle(); + } + #endregion + + #region private Method - BrightnessImage(imgSource, iBrightness) + private Bitmap BrightnessImage(Image imgSource, int iBrightness) { + Bitmap btTmp = new Bitmap(imgSource); + Color cTmp; + int iR, iG, iB; + for (int iY = 0; iY < btTmp.Height; iY++) { + for (int iX = 0; iX < btTmp.Width; iX++) { + cTmp = btTmp.GetPixel(iX, iY); + + if (cTmp.A != 255) continue; + + iR = Math.Max(0, Math.Min(255, cTmp.R + iBrightness)); + iG = Math.Max(0, Math.Min(255, cTmp.G + iBrightness)); + iB = Math.Max(0, Math.Min(255, cTmp.B + iBrightness)); + + cTmp = Color.FromArgb(iR, iG, iB); + btTmp.SetPixel(iX, iY, cTmp); + } + } + return btTmp; + } + #endregion + } +} \ No newline at end of file diff --git a/Entities/Json.cs b/Entities/Json.cs new file mode 100644 index 000000000..ba43a1cda --- /dev/null +++ b/Entities/Json.cs @@ -0,0 +1,247 @@ +using System; +using System.Collections.Generic; +using System.Text; +namespace FallGuysStats { + public static class Json { + public static JsonObject Read(string json) { + for (int i = 0; i < json.Length; i++) { + char c = json[i]; + if (c == '[') { + return new JsonArray(null, json, ref i); + } else if (c == '{') { + return new JsonClass(null, json, ref i); + } + } + return null; + } + public static JsonObject Read(byte[] json) { + return Read(Encoding.UTF8.GetString(json)); + } + } + public class JsonArray : JsonObject { + private List Objects { get; set; } + public int Count { get { return Objects.Count; } } + public JsonArray(JsonObject parent = null) { + Parent = parent; + Objects = new List(); + } + internal JsonArray(JsonObject parent, string json, ref int index) { + Parent = parent; + Objects = new List(); + for (int i = index + 1; i < json.Length; i++) { + char c = json[i]; + if (char.IsWhiteSpace(c)) continue; + + if (c == '[') { + Objects.Add(new JsonArray(this, json, ref i)); + } else if (c == '{') { + Objects.Add(new JsonClass(this, json, ref i)); + } else if (c == ']') { + index = i; + break; + } else if (c != ',') { + Objects.Add(new JsonItem(this, json, false, ref i)); + } + } + } + public JsonObject this[int index] { + get { return Objects[index]; } + set { Objects[index] = value; } + } + public void Add(object value, bool isString = false) { + if (value is JsonObject jObj) { + jObj.Parent = this; + Objects.Add(jObj); + } else { + Objects.Add(new JsonItem(value == null ? null : $"{value}", isString, this)); + } + } + public override string Value() { return ToString(); } + public override string ToString() { return ToString(0); } + internal override string ToString(int level) { + string padding = string.Empty.PadLeft(level * 2); + StringBuilder values = new StringBuilder(); + values.AppendLine("["); + for (int i = 0; i < Objects.Count; i++) { + values.Append(padding).Append(" ").Append($"{Objects[i].ToString(level + 1)}, "); + if (i + 1 < Objects.Count) { + values.AppendLine(); + } + } + if (values.Length > 1) { + values.Length -= 2; + } + values.AppendLine().Append(padding).Append(']'); + return values.ToString(); + } + internal override IEnumerator Enumerate() { + for (int i = 0; i < Objects.Count; i++) { + IEnumerator e = Objects[i].Enumerate(); + while (e.MoveNext()) { + yield return e.Current; + } + } + } + } + public class JsonClass : JsonObject { + private Dictionary Fields { get; set; } + + public JsonClass(JsonObject parent = null) { + Parent = parent; + Fields = new Dictionary(); + } + internal JsonClass(JsonObject parent, string json, ref int index) { + Parent = parent; + Fields = new Dictionary(); + + for (int i = index + 1; i < json.Length; i++) { + char c = json[i]; + if (c == '"') { + string field = ReadField(json, ref i); + bool foundColon = false; + do { + c = json[++i]; + if (c == ':') { + if (foundColon) { break; } + foundColon = true; + } + } while (char.IsWhiteSpace(c) || c == ':'); + + if (c == '{') { + AddField(field, new JsonClass(this, json, ref i)); + } else if (c == '[') { + AddField(field, new JsonArray(this, json, ref i)); + } else { + AddField(field, new JsonItem(this, json, c == '"', ref i)); + } + } else if (c == '}') { + index = i; + break; + } + } + } + private void AddField(string field, JsonObject value) { + if (!Fields.ContainsKey(field)) { + Fields[field] = value; + } + } + public void Add(string field, object value, bool isString = false) { + if (!Fields.ContainsKey(field)) { + if (value is JsonObject jObj) { + jObj.Parent = this; + Fields[field] = jObj; + } else { + Fields[field] = new JsonItem(value == null ? null : $"{value}", isString, this); + } + } + } + private string ReadField(string json, ref int index) { + int start = index; + char c = json[index], last; + do { + last = c; + c = json[++index]; + } while (c != '"' || last == '\\'); + return json.Substring(start + 1, index - start - 1); + } + public JsonObject this[string key] { + get { + return Fields.TryGetValue(key, out JsonObject value) ? value : JsonObject.EMPTY; + } + } + public override string Value() { return ToString(); } + public override string ToString() { return ToString(0); } + internal override string ToString(int level) { + string padding = string.Empty.PadLeft(level * 2); + StringBuilder values = new StringBuilder(); + if (Fields.Count > 0) { + values.AppendLine("{"); + int count = 0; + foreach (KeyValuePair pair in Fields) { + count++; + values.Append(padding).Append(" ").Append($"\"{pair.Key}\": {pair.Value.ToString(level + 1)}, "); + if (count < Fields.Count) { + values.AppendLine(); + } + } + + if (values.Length > 1) { + values.Length -= 2; + } + values.AppendLine().Append(padding).Append('}'); + } else { + values.Append("{}"); + } + return values.ToString(); + } + internal override IEnumerator Enumerate() { + return Fields.Values.GetEnumerator(); + } + } + public class JsonItem : JsonObject { + public string Item { get; set; } + public bool IsString { get; set; } + + public JsonItem(string value, bool isString = false, JsonObject parent = null) { + Parent = parent; + Item = value; + IsString = isString; + } + internal JsonItem(JsonObject parent, string json, bool requireEndQuote, ref int index) { + IsString = requireEndQuote; + Parent = parent; + char last = '\0'; + for (int i = index + 1; i < json.Length; i++) { + char c = json[i]; + if ((requireEndQuote && c == '"' && last != '\\') || (!requireEndQuote && (c == ']' || c == '}' || (c == '"' && last != '\\') || c == ','))) { + Item = c == '"' ? json.Substring(index + 1, i - index - 1) : json.Substring(index, i - index).Trim(); + if (c == '"') { + do { + c = json[++i]; + } while (c != ']' && c != '}' && c != ',' && c != '"'); + } + index = c == ']' || c == '}' || c == '"' ? i - 1 : i; + break; + } + last = c; + } + } + public override string Value() { return Item; } + public override string ToString() { return Item == null ? "null" : IsString ? $"\"{Item}\"" : Item; } + internal override string ToString(int level) { return ToString(); } + } + public abstract class JsonObject : IEnumerable { + public static JsonObject EMPTY = new JsonItem("null"); + public JsonObject Parent { get; set; } + public virtual string Value() { return string.Empty; } + internal virtual string ToString(int level) { return string.Empty; } + public override string ToString() { return string.Empty; } + internal virtual IEnumerator Enumerate() { yield return this; } + public IEnumerator GetEnumerator() { return Enumerate(); } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return GetEnumerator(); } + public string AsString() { + string value = Value(); + return value == "null" ? null : value; + } + public bool AsBool() { + string value = AsString(); + return !string.IsNullOrEmpty(value) && bool.TryParse(value, out bool result) && result; + } + public long AsLong() { + string value = AsString(); + return string.IsNullOrEmpty(value) || !long.TryParse(value, out long result) ? 0 : result; + } + public int AsInt() { + string value = AsString(); + return string.IsNullOrEmpty(value) || !int.TryParse(value, out int result) ? 0 : result; + } + public decimal AsDecimal() { + string value = AsString(); + return string.IsNullOrEmpty(value) || !decimal.TryParse(value, out decimal result) ? 0 : result; + } + public DateTime AsDate() { + string value = AsString(); + return string.IsNullOrEmpty(value) || !DateTime.TryParse(value, out DateTime result) ? DateTime.MinValue : result; + } + } +} \ No newline at end of file diff --git a/Entities/Leaderboard.cs b/Entities/Leaderboard.cs new file mode 100644 index 000000000..b929407cc --- /dev/null +++ b/Entities/Leaderboard.cs @@ -0,0 +1,281 @@ +using System; +using System.Collections.Generic; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace FallGuysStats { + public struct OverallRank { + public bool found { get; set; } + public int total { get; set; } + public List users { get; set; } + + public struct Player { + public int rank { get; set; } + public string onlineServiceType { get; set; } + public string onlineServiceNickname { get; set; } + public bool isAnonymous { get; set; } + public string country { get; set; } + public string id { get; set; } + public double score { get; set; } + public double firstPlaces { get; set; } + } + } + + public struct OverallSummary { + public int rank { get; set; } + public string country { get; set; } + public int gold { get; set; } + public int silver { get; set; } + public int bronze { get; set; } + public int pink { get; set; } + public int players { get; set; } + } + + public struct LevelRank { + public bool found { get; set; } + public int total { get; set; } + public List recordholders { get; set; } + + public struct RankInfo { + public int rank { get; set; } + // public string round { get; set; } + public double record { get; set; } + public string show { get; set; } + public bool isAnonymous { get; set; } + public DateTime finish { get; set; } + public string country { get; set; } + public string onlineServiceType { get; set; } + public string onlineServiceId { get; set; } + public string onlineServiceNickname { get; set; } + public string id { get; set; } + } + } + + public class LevelRankInfoConverter : JsonConverter { + public override LevelRank.RankInfo Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { + var recordHolder = new LevelRank.RankInfo(); + while (reader.Read()) { + if (reader.TokenType == JsonTokenType.EndObject) { + return recordHolder; + } + + if (reader.TokenType == JsonTokenType.PropertyName) { + string propertyName = reader.GetString(); + reader.Read(); + switch (propertyName) { + // case "round": + // recordHolder.round = reader.GetString(); + // break; + case "record": + recordHolder.record = reader.GetDouble(); + break; + case "show": + recordHolder.show = reader.GetString(); + break; + case "isAnonymous": + recordHolder.isAnonymous = reader.GetBoolean(); + break; + case "finish": + recordHolder.finish = TimeZoneInfo.ConvertTimeFromUtc(reader.GetDateTime(), TimeZoneInfo.Local); + break; + case "country": + recordHolder.country = reader.GetString(); + break; + case "user": + if (reader.TokenType == JsonTokenType.String) { + recordHolder.id = reader.GetString(); + } else if (reader.TokenType == JsonTokenType.StartObject) { + while (reader.Read()) { + if (reader.TokenType == JsonTokenType.EndObject) { + break; + } + + if (reader.TokenType == JsonTokenType.PropertyName) { + string userPropertyName = reader.GetString(); + reader.Read(); + switch (userPropertyName) { + case "onlineServiceType": + recordHolder.onlineServiceType = reader.GetString(); + break; + case "onlineServiceId": + recordHolder.onlineServiceId = reader.GetString(); + break; + case "onlineServiceNickname": + recordHolder.onlineServiceNickname = reader.GetString(); + break; + case "id": + recordHolder.id = reader.GetString(); + break; + } + } + } + } + break; + } + } + } + + throw new JsonException(); + } + + public override void Write(Utf8JsonWriter writer, LevelRank.RankInfo value, JsonSerializerOptions options) { + throw new NotImplementedException(); + } + } + + public struct AvailableLevel { + public bool found { get; set; } + public List leaderboards { get; set; } + + public struct LevelInfo { + public string queryname { get; set; } + public string[] ids { get; set; } + } + } + + public class RoundConverter : JsonConverter { + public override AvailableLevel.LevelInfo Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { + AvailableLevel.LevelInfo levelInfo = new AvailableLevel.LevelInfo(); + + while (reader.Read()) { + if (reader.TokenType == JsonTokenType.EndObject) { + return levelInfo; + } + + if (reader.TokenType == JsonTokenType.PropertyName) { + string propertyName = reader.GetString(); + reader.Read(); + switch (propertyName) { + case "_name": + levelInfo.queryname = reader.GetString(); + break; + case "data": + while (reader.Read()) { + if (reader.TokenType == JsonTokenType.EndObject) { + break; + } + + if (reader.TokenType == JsonTokenType.PropertyName) { + string dataPropertyName = reader.GetString(); + reader.Read(); + if (dataPropertyName == "dataname") { + switch (reader.TokenType) { + case JsonTokenType.String: + levelInfo.ids = new[] { reader.GetString() }; + break; + case JsonTokenType.StartArray: + levelInfo.ids = JsonSerializer.Deserialize(ref reader); + break; + default: + throw new JsonException(); + } + } + } + } + break; + } + } + } + + throw new JsonException(); + } + + public override void Write(Utf8JsonWriter writer, AvailableLevel.LevelInfo value, JsonSerializerOptions options) { + throw new NotImplementedException(); + } + } + + public struct SearchResult { + public bool found { get; set; } + public List users { get; set; } + + public struct Player { + public string onlineServiceType { get; set; } + public string onlineServiceId { get; set; } + public string onlineServiceNickname { get; set; } + public bool isAnonymous { get; set; } + public string country { get; set; } + public string id { get; set; } + } + } + + public struct PlayerStats { + public bool found { get; set; } + public PlayerInfo user { get; set; } + public List pbs { get; set; } + public SpeedrunRank speedrunrank { get; set; } + public CrownLeagueRank crownrank { get; set; } + + public struct PlayerInfo { + public string onlineServiceType { get; set; } + public string onlineServiceId { get; set; } + public string onlineServiceNickname { get; set; } + public bool isAnonymous { get; set; } + public string country { get; set; } + } + + public struct PbInfo { + public string round { get; set; } + public double record { get; set; } + public string show { get; set; } + public string session { get; set; } + public bool isAnonymous { get; set; } + public string ip { get; set; } + public DateTime finish { get; set; } + public string country { get; set; } + public string user { get; set; } + public int index { get; set; } + public int roundTotal { get; set; } + public string roundDisplayName { get; set; } + public string roundName { get; set; } + } + + public struct SpeedrunRank { + public string onlineServiceType { get; set; } + public string onlineServiceNickname { get; set; } + public bool isAnonymous { get; set; } + public string country { get; set; } + public string id { get; set; } + public double score { get; set; } + public int firstPlaces { get; set; } + public int index { get; set; } + public int total { get; set; } + } + + public struct CrownLeagueRank { + public string onlineServiceType { get; set; } + public string onlineServiceNickname { get; set; } + public bool isAnonymous { get; set; } + public string country { get; set; } + public string id { get; set; } + public double score { get; set; } + public int crowns { get; set; } + public int shards { get; set; } + public int index { get; set; } + public int total { get; set; } + } + } + + public struct WeeklyCrown { + public bool found { get; set; } + public int total { get; set; } + public List users { get; set; } + public double year { get; set; } + public double week { get; set; } + public string previous { get; set; } + public string next { get; set; } + + public struct Player { + public int rank { get; set; } + public string onlineServiceType { get; set; } + public string onlineServiceNickname { get; set; } + public bool isAnonymous { get; set; } + public string country { get; set; } + public string id { get; set; } + public double score { get; set; } + public double crowns { get; set; } + public double shards { get; set; } + public string period { get; set; } + } + } +} \ No newline at end of file diff --git a/Entities/LevelStats.cs b/Entities/LevelStats.cs new file mode 100644 index 000000000..d26484a4a --- /dev/null +++ b/Entities/LevelStats.cs @@ -0,0 +1,2610 @@ +using System; +using System.Drawing; +using System.Collections.Generic; +using LiteDB; +namespace FallGuysStats { + public class RoundInfo : IComparable { + public ObjectId ID { get; set; } + public int? OnlineServiceType { get; set; } + public string OnlineServiceId { get; set; } + public string OnlineServiceNickname { get; set; } + public int Profile { get; set; } + public string RoundId { get; set; } + public string Name { get; set; } + public int ShowID { get; set; } + public string ShowNameId { get; set; } + public bool UseShareCode { get; set; } + public bool IsCasualShow { get; set; } + public string CreativeShareCode { get; set; } + public string CreativeStatus { get; set; } + public string CreativeAuthor { get; set; } + public string CreativeOnlinePlatformId { get; set; } + //public string CreativeNicknameContentId { get; set; } + //public string CreativeNameplateContentId { get; set; } + public int CreativeVersion { get; set; } + public string CreativeTitle { get; set; } + public string CreativeDescription { get; set; } + public string CreativeCreatorTags { get; set; } + public int CreativeMaxPlayer { get; set; } + public string CreativeThumbUrl { get; set; } + public string CreativePlatformId { get; set; } + public string CreativeGameModeId { get; set; } + public string CreativeLevelThemeId { get; set; } + public DateTime CreativeLastModifiedDate { get; set; } = DateTime.MinValue; + public int CreativePlayCount { get; set; } + public int CreativeLikes { get; set; } + public int CreativeDislikes { get; set; } + public int CreativeQualificationPercent { get; set; } + public int CreativeTimeLimitSeconds { get; set; } + public string SessionId { get; set; } + public int Round { get; set; } + public int Position { get; set; } + public int? Score { get; set; } + public int Tier { get; set; } + public bool Qualified { get; set; } + public int Kudos { get; set; } + public int Players { get; set; } + public int PlayersPs4 { get; set; } + public int PlayersPs5 { get; set; } + public int PlayersXb1 { get; set; } + public int PlayersXsx { get; set; } + public int PlayersSw { get; set; } + public int PlayersPc { get; set; } + public int PlayersAndroid { get; set; } + public int PlayersIos { get; set; } + public int PlayersBots { get; set; } + public int PlayersEtc { get; set; } + public bool InParty { get; set; } + public bool IsFinal { get; set; } + public bool IsTeam { get; set; } + public bool PrivateLobby { get; set; } + public DateTime Start { get; set; } = DateTime.MinValue; + public DateTime End { get; set; } = DateTime.MinValue; + public DateTime? Finish { get; set; } = null; + public bool Crown { get; set; } + public bool IsAbandon { get; set; } + public DateTime StartLocal; + public DateTime EndLocal; + public DateTime? FinishLocal; + public DateTime ShowStart = DateTime.MinValue; + public DateTime ShowEnd = DateTime.MinValue; + public string SceneName; + public bool Playing; + private bool setLocalTime; + + public void ToLocalTime() { + if (this.setLocalTime) return; + + this.setLocalTime = true; + + this.StartLocal = this.Start.ToLocalTime(); + this.EndLocal = this.End.ToLocalTime(); + if (this.Finish.HasValue) { + this.FinishLocal = this.Finish.Value.ToLocalTime(); + } + } + + public void VerifyName() { + if (string.IsNullOrEmpty(this.SceneName)) return; + if (LevelStats.SceneToRound.TryGetValue(this.SceneName, out string levelId)) { + this.Name = levelId; + } + } + + public string VerifiedName() { + return string.IsNullOrEmpty(this.SceneName) ? this.Name : (LevelStats.SceneToRound.TryGetValue(this.SceneName, out string levelId) ? levelId : this.Name); + } + + public override string ToString() { + return $"{this.Name}: Round={this.Round} Position={this.Position} Duration={this.End - this.Start} Kudos={this.Kudos}"; + } + + public override bool Equals(object obj) { + return obj is RoundInfo info + && info.End == this.End + && info.Finish == this.Finish + && info.InParty == this.InParty + && info.Kudos == this.Kudos + && info.Players == this.Players + && info.PlayersPs4 == this.PlayersPs4 + && info.PlayersPs5 == this.PlayersPs5 + && info.PlayersXb1 == this.PlayersXb1 + && info.PlayersXsx == this.PlayersXsx + && info.PlayersSw == this.PlayersSw + && info.PlayersPc == this.PlayersPc + && info.PlayersAndroid == this.PlayersAndroid + && info.PlayersIos == this.PlayersIos + && info.PlayersBots == this.PlayersBots + && info.PlayersEtc == this.PlayersEtc + && info.Position == this.Position + && info.Qualified == this.Qualified + && info.Round == this.Round + && info.Score == this.Score + && info.ShowID == this.ShowID + && info.Start == this.Start + && info.Tier == this.Tier + && string.Equals(info.Name, this.Name) + && string.Equals(info.SessionId, this.SessionId) + && info.OnlineServiceType == this.OnlineServiceType + && string.Equals(info.OnlineServiceId, this.OnlineServiceId) + && string.Equals(info.OnlineServiceNickname, this.OnlineServiceNickname) + && info.UseShareCode == this.UseShareCode; + } + + public override int GetHashCode() { + return Name.GetHashCode() ^ ShowID ^ Round; + } + + public int CompareTo(RoundInfo other) { + int showCompare = ShowID.CompareTo(other.ShowID); + return showCompare != 0 ? showCompare : Round.CompareTo(other.Round); + } + } + + public class LevelStats { + public static Dictionary ALL = new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "user_creative_race_round", new LevelStats("user_creative_race_round", null, "User Creative Race Round", LevelType.CreativeRace, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_creative_icon, Properties.Resources.round_creative_big_icon)}, + { "user_creative_survival_round", new LevelStats("user_creative_survival_round", null, "User Creative Survival Round", LevelType.CreativeSurvival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_creative_icon, Properties.Resources.round_creative_big_icon)}, + { "user_creative_hunt_round", new LevelStats("user_creative_hunt_round", null, "User Creative Hunt Round", LevelType.CreativeHunt, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_creative_icon, Properties.Resources.round_creative_big_icon)}, + { "creative_race_round", new LevelStats("creative_race_round", null, "Creative Race Round", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "creative_race_final_round", new LevelStats("creative_race_final_round", null, "Creative Race Final Round", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "creative_survival_round", new LevelStats("creative_survival_round", null, "Creative Survival Round", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "creative_survival_final_round", new LevelStats("creative_survival_final_round", null, "Creative Survival Final Round", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "creative_hunt_round", new LevelStats("creative_hunt_round", null, "Creative Hunt Round", LevelType.Hunt, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "creative_hunt_final_round", new LevelStats("creative_hunt_final_round", null, "Creative Hunt Final Round", LevelType.Hunt, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_s10_orig_round_001", new LevelStats("wle_s10_orig_round_001", "1127-0302-4545", "Beans Ahoy!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_002", new LevelStats("wle_s10_orig_round_002", "2416-3885-2780", "Airborne Antics", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_003", new LevelStats("wle_s10_orig_round_003", "6212-4520-8328", "Scythes & Roundabouts", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_004", new LevelStats("wle_s10_orig_round_004", "2777-8402-7007", "Cardio Runners", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_005", new LevelStats("wle_s10_orig_round_005", "2384-0516-9077", "Fan Flingers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_006", new LevelStats("wle_s10_orig_round_006", "0128-0546-8951", "Uphill Struggle", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_007", new LevelStats("wle_s10_orig_round_007", "9189-7523-8901", "Spinner Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_008", new LevelStats("wle_s10_orig_round_008", "0653-2576-5236", "Lane Changers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_009", new LevelStats("wle_s10_orig_round_009", "7750-7786-5732", "Gentle Gauntlet", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_012", new LevelStats("wle_s10_orig_round_012", "1794-4080-7040", "Up & Down", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_013", new LevelStats("wle_s10_orig_round_013", "4446-4876-4968", "Choo Choo Challenge", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_014", new LevelStats("wle_s10_orig_round_014", "7274-6756-2481", "Runner Beans", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_015", new LevelStats("wle_s10_orig_round_015", "9426-4640-3293", "Disc Dashers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_016", new LevelStats("wle_s10_orig_round_016", "7387-6177-4493", "Two Faced", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_019", new LevelStats("wle_s10_orig_round_019", "8685-7305-6864", "Blueberry Bombardment", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_020", new LevelStats("wle_s10_orig_round_020", "4582-3265-6150", "Chuting Stars", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_021", new LevelStats("wle_s10_orig_round_021", "8300-9964-4945", "Slimy Slopes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_022", new LevelStats("wle_s10_orig_round_022", "9525-6213-8767", "Circuit Breakers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_023", new LevelStats("wle_s10_orig_round_023", "9078-2884-2372", "Winding Walkways", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_026", new LevelStats("wle_s10_orig_round_026", "1335-7488-1452", "Hyperlink Hijinks", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_027", new LevelStats("wle_s10_orig_round_027", "8145-6018-5093", "Fan Frolics", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_028", new LevelStats("wle_s10_orig_round_028", "0633-3680-7102", "Windmill Road", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_029", new LevelStats("wle_s10_orig_round_029", "3207-5100-4977", "Conveyor Clash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_032", new LevelStats("wle_s10_orig_round_032", "0324-4730-9285", "Fortress Frolics", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_033", new LevelStats("wle_s10_orig_round_033", "7488-7333-3120", "Super Door Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_034", new LevelStats("wle_s10_orig_round_034", "0942-4996-5802", "Spiral Of Woo", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_035", new LevelStats("wle_s10_orig_round_035", "5673-8789-9890", "Tornado Trial", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_036", new LevelStats("wle_s10_orig_round_036", "1521-1552-6833", "Hopscotch Havoc", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_037", new LevelStats("wle_s10_orig_round_037", "5608-1711-5644", "Beat Bouncers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_038", new LevelStats("wle_s10_orig_round_038", "6401-4333-5888", "Blunder Bridges", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_039", new LevelStats("wle_s10_orig_round_039", "1920-3797-9890", "Incline Rewind", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_040", new LevelStats("wle_s10_orig_round_040", "1595-7489-8714", "Prismatic Parade", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_041", new LevelStats("wle_s10_orig_round_041", "2019-5582-0500", "Swept Away", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_042", new LevelStats("wle_s10_orig_round_042", "0567-6834-7490", "Balancing Act", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_043", new LevelStats("wle_s10_orig_round_043", "8398-4477-7834", "Trouble Tower", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_044", new LevelStats("wle_s10_orig_round_044", "2767-1753-8429", "Serpent Slalom", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_045", new LevelStats("wle_s10_orig_round_045", "6748-6192-9739", "Floorless", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_046", new LevelStats("wle_s10_orig_round_046", "9641-5398-7416", "In The Cloud", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_047", new LevelStats("wle_s10_orig_round_047", "7895-4812-3429", "Downstream Duel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_048", new LevelStats("wle_s10_orig_round_048", "1468-0990-4257", "Lost Palace", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_045_long", new LevelStats("wle_s10_orig_round_045_long", "6748-6192-9739", "Floorless", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_long_round_003", new LevelStats("wle_s10_long_round_003", "3145-1396-6644", "Fall Speedway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_long_round_004", new LevelStats("wle_s10_long_round_004", "9194-9593-3605", "Zig Zag Zoomies", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_long_round_005", new LevelStats("wle_s10_long_round_005", "1226-0563-3570", "Terrabyte Trial", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_s10_round_001", new LevelStats("wle_s10_round_001", "8058-9910-7007", "Digi Trek", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_002", new LevelStats("wle_s10_round_002", "6546-9859-4336", "Shortcut Links", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_003", new LevelStats("wle_s10_round_003", "9366-4809-0021", "Upload Heights", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_005", new LevelStats("wle_s10_round_005", "8895-2034-3061", "Data Streams", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_006", new LevelStats("wle_s10_round_006", "6970-1344-9780", "Gigabyte Gauntlet", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_007", new LevelStats("wle_s10_round_007", "3541-3776-9131", "Cube Corruption", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_008", new LevelStats("wle_s10_round_008", "9335-2112-8890", "Wham Bam Boom", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_010", new LevelStats("wle_s10_round_010", "9014-0444-9613", "Pixel Hearts", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_011", new LevelStats("wle_s10_round_011", "4409-6583-6207", "Cyber Circuit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_012", new LevelStats("wle_s10_round_012", "8113-7002-5798", "Boom Blaster Trial", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_s10_player_round_wk3_01", new LevelStats("wle_s10_player_round_wk3_01", "0024-8840-0043", "Cloudy Chaos", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_02", new LevelStats("wle_s10_player_round_wk3_02", "0700-1924-4824", "Door Game", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_03", new LevelStats("wle_s10_player_round_wk3_03", "1600-7003-9946", "Full Speed Sliding (FSS) - Jelly Road", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_04", new LevelStats("wle_s10_player_round_wk3_04", "1689-7568-3407", "Sky High Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_06", new LevelStats("wle_s10_player_round_wk3_06", "1998-0819-8328", "Spiral Upheaval", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_07", new LevelStats("wle_s10_player_round_wk3_07", "2087-8833-2659", "Descente Créative", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_08", new LevelStats("wle_s10_player_round_wk3_08", "2489-4644-1812", "Rainbow Slide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_09", new LevelStats("wle_s10_player_round_wk3_09", "3338-3252-7707", "Fragrant Trumpet", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_10", new LevelStats("wle_s10_player_round_wk3_10", "4030-1420-2157", "Bridges That Don't Like You", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_11", new LevelStats("wle_s10_player_round_wk3_11", "4928-7457-4026", "Rainbow Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_12", new LevelStats("wle_s10_player_round_wk3_12", "5021-4188-7293", "Variable Valley", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_fp2_wk6_01", new LevelStats("wle_fp2_wk6_01", "5320-7960-5930", "Broken Course", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_14", new LevelStats("wle_s10_player_round_wk3_14", "6771-8467-2061", "Tower of Fall", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_15", new LevelStats("wle_s10_player_round_wk3_15", "8700-2575-3311", "Parkour Party", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_16", new LevelStats("wle_s10_player_round_wk3_16", "8766-7319-7097", "Catastrophe Climb", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_17", new LevelStats("wle_s10_player_round_wk3_17", "8872-5222-3800", "Yeet Golf", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_18", new LevelStats("wle_s10_player_round_wk3_18", "9694-1257-5407", "Hill of Fear", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_19", new LevelStats("wle_s10_player_round_wk3_19", "2437-7699-1837", "Sky Time", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk3_20", new LevelStats("wle_s10_player_round_wk3_20", "5151-1811-0629", "EZz Map", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_s10_player_round_wk4_01", new LevelStats("wle_s10_player_round_wk4_01", "1031-4769-0669", "Slippery Stretch", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_02", new LevelStats("wle_s10_player_round_wk4_02", "2378-2762-3285", "Ball 'N Fall", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_03", new LevelStats("wle_s10_player_round_wk4_03", "4951-7804-0209", "Rowdy Cloudy", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_05", new LevelStats("wle_s10_player_round_wk4_05", "5033-3246-9786", "Vertiginous Steps", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_06", new LevelStats("wle_s10_player_round_wk4_06", "6368-6082-3506", "Topsie Tursie", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_07", new LevelStats("wle_s10_player_round_wk4_07", "6372-5154-6625", "Arcade Assault", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_08", new LevelStats("wle_s10_player_round_wk4_08", "6522-0063-8509", "The Eight Pit Trials", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_09", new LevelStats("wle_s10_player_round_wk4_09", "7660-3559-9068", "Green Beans", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_10", new LevelStats("wle_s10_player_round_wk4_10", "7671-4178-2989", "Hop Hill", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_11", new LevelStats("wle_s10_player_round_wk4_11", "8403-4697-3155", "Quick Sliders", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_12", new LevelStats("wle_s10_player_round_wk4_12", "8453-0623-7193", "Split Path", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_13", new LevelStats("wle_s10_player_round_wk4_13", "8453-2843-0803", "Piso Resbaloso", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_15", new LevelStats("wle_s10_player_round_wk4_15", "0630-0991-7090", "Snowboard Street", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_18", new LevelStats("wle_s10_player_round_wk4_18", "5186-5622-9808", "House Invasion", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_19", new LevelStats("wle_s10_player_round_wk4_19", "6444-4459-5271", "SOLO FULL-TILT RAGE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_20", new LevelStats("wle_s10_player_round_wk4_20", "9541-0497-1157", "Terminal Slime-ocity", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_21", new LevelStats("wle_s10_player_round_wk4_21", "5022-2434-4735", "Spin", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk4_22", new LevelStats("wle_s10_player_round_wk4_22", "0653-2576-5236", "Lane Changers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_s10_player_round_wk5_01", new LevelStats("wle_s10_player_round_wk5_01", "0379-8536-2130", "Block Park", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_02", new LevelStats("wle_s10_player_round_wk5_02", "4492-3335-5236", "The Drummatical Story", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_03", new LevelStats("wle_s10_player_round_wk5_03", "4962-7093-2509", "Digital Temple", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_04", new LevelStats("wle_s10_player_round_wk5_04", "5030-9762-5784", "Tower Escape", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_05", new LevelStats("wle_s10_player_round_wk5_05", "7013-0309-9834", "Tower Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_06", new LevelStats("wle_s10_player_round_wk5_06", "9107-2619-3629", "Gpu Gauntlet", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_07", new LevelStats("wle_s10_player_round_wk5_07", "9630-3128-3650", "Looooping", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_08", new LevelStats("wle_s10_player_round_wk5_08", "0016-0725-5194", "Rad Bean Skatepark", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_10", new LevelStats("wle_s10_player_round_wk5_10", "5151-2766-7273", "Siank Arena", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_11", new LevelStats("wle_s10_player_round_wk5_11", "5152-0450-7240", "Pro Players Only", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_12", new LevelStats("wle_s10_player_round_wk5_12", "5683-5861-3450", "Extreme Tower", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_13", new LevelStats("wle_s10_player_round_wk5_13", "6068-9732-2265", "Dessert Village", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_14", new LevelStats("wle_s10_player_round_wk5_14", "7079-6897-9253", "Extreme Trampoline Jumping", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_15", new LevelStats("wle_s10_player_round_wk5_15", "7176-9635-8973", "Beast Route", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_16", new LevelStats("wle_s10_player_round_wk5_16", "7385-4032-4473", "METROPOLIS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_17", new LevelStats("wle_s10_player_round_wk5_17", "8696-0154-7735", "Big Bookcase", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk5_18", new LevelStats("wle_s10_player_round_wk5_18", "1514-8743-1209", "Digital Doom", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_s10_player_round_wk6_01", new LevelStats("wle_s10_player_round_wk6_01", "0029-7642-8120", "Hammer Heaven", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_02", new LevelStats("wle_s10_player_round_wk6_02", "0369-9367-0762", "RISKY ROUTES", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_03", new LevelStats("wle_s10_player_round_wk6_03", "0677-7276-6505", "Castle Rush", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_04", new LevelStats("wle_s10_player_round_wk6_04", "1299-3796-8185", "Chaotic Race", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_05", new LevelStats("wle_s10_player_round_wk6_05", "2205-4708-9826", "FREEFALL TOWER", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_06", new LevelStats("wle_s10_player_round_wk6_06", "2535-8666-2604", "西西的天空之城 Castle in the Sky", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_08", new LevelStats("wle_s10_player_round_wk6_08", "3009-9034-1901", "Flower Power", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_09", new LevelStats("wle_s10_player_round_wk6_09", "3256-6219-9927", "Dimension Explorer", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_10", new LevelStats("wle_s10_player_round_wk6_10", "4815-5486-6368", "Forked Passage", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_12", new LevelStats("wle_s10_player_round_wk6_12", "6594-9005-1010", "The Bee Hive", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_13", new LevelStats("wle_s10_player_round_wk6_13", "1467-7300-1979", "Yeets & Ladders", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_14", new LevelStats("wle_s10_player_round_wk6_14", "2734-5123-1618", "Snek", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_15", new LevelStats("wle_s10_player_round_wk6_15", "2998-8626-6987", "SCHOOL OF FISH", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_17", new LevelStats("wle_s10_player_round_wk6_17", "7202-9028-9879", "Slippery Helixes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_18", new LevelStats("wle_s10_player_round_wk6_18", "7768-6392-9185", "Recess", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_19", new LevelStats("wle_s10_player_round_wk6_19", "8641-8055-4328", "Parrot river", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_player_round_wk6_20", new LevelStats("wle_s10_player_round_wk6_20", "9573-2809-5705", "PARKOUR CITY 城市跑酷", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp3_07_01", new LevelStats("current_wle_fp3_07_01", "8870-4742-9307", "Block Sledding", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_07_02", new LevelStats("current_wle_fp3_07_02", "8808-3436-4387", "Layup Wallop", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_07_03", new LevelStats("current_wle_fp3_07_03", "6362-1646-7291", "Minecart Mayhem", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_07_04", new LevelStats("current_wle_fp3_07_04", "5440-8703-2155", "Bouncing Pass", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_07_05", new LevelStats("current_wle_fp3_07_05", "3748-0695-7721", "Ball Factory", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_07_0_01", new LevelStats("current_wle_fp3_07_0_01", "9499-5510-3164", "Funky Sanctuaries", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_07_0_02", new LevelStats("current_wle_fp3_07_0_02", "9388-0404-7294", "Woo-F-O", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_07_0_03", new LevelStats("current_wle_fp3_07_0_03", "8664-7885-4449", "Travel Diary - Great Wall of China", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp3_08_01", new LevelStats("current_wle_fp3_08_01", "9381-5029-9669", "Grabbers Territory", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_02", new LevelStats("current_wle_fp3_08_02", "7363-9687-8489", "A Way Out", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_03", new LevelStats("current_wle_fp3_08_03", "9586-9081-9196", "Wall Block", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_04", new LevelStats("current_wle_fp3_08_04", "0612-0621-9941", "The dream island", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_05", new LevelStats("current_wle_fp3_08_05", "6482-3882-6886", "Rainbow pulsion", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_06", new LevelStats("current_wle_fp3_08_06", "7709-5968-3616", "WHIPPITY WOPPITY", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_09", new LevelStats("current_wle_fp3_08_09", "7235-2067-5458", "Big Fans Box Challenge", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_10", new LevelStats("current_wle_fp3_08_10", "4297-5620-3088", "Crazy boxes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_13", new LevelStats("current_wle_fp3_08_13", "0359-4156-7328", "Season 1 Race Mashup", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_14", new LevelStats("current_wle_fp3_08_14", "3405-3399-9164", "Flippy Hoopshots", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_15", new LevelStats("current_wle_fp3_08_15", "3477-1619-9087", "Stumble Teams", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_16", new LevelStats("current_wle_fp3_08_16", "8365-4077-8899", "Twisting Tower", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_17", new LevelStats("current_wle_fp3_08_17", "6132-6752-3094", "PUSH 'N' PULL", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_18", new LevelStats("current_wle_fp3_08_18", "0248-4849-5920", "The Rising Blocks", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_08_19", new LevelStats("current_wle_fp3_08_19", "9773-2054-9828", "Puzzle Blokies Path", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_01", new LevelStats("current_wle_fp3_09_01", "2156-3451-2947", "The up tower", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_02", new LevelStats("current_wle_fp3_09_02", "2100-4019-7383", "Short shuriken", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_03", new LevelStats("current_wle_fp3_09_03", "2036-5667-2913", "Les mêmes mécaniques de + en + dure", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_04", new LevelStats("current_wle_fp3_09_04", "2027-4003-0769", "Digi-Lily Sliding", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_05", new LevelStats("current_wle_fp3_09_05", "1973-5335-7173", "STUMBLE MEDIEVAL TOWER", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_06", new LevelStats("current_wle_fp3_09_06", "1831-0720-1570", "Random Heights", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_07", new LevelStats("current_wle_fp3_09_07", "1732-5441-1486", "Climb scramble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_08", new LevelStats("current_wle_fp3_09_08", "1643-1632-1937", "Collide Gaming", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_09", new LevelStats("current_wle_fp3_09_09", "1574-5745-8580", "Very Compressed Level", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_0_01", new LevelStats("current_wle_fp3_09_0_01", "7686-0651-7262", "Slippery Slope", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_0_02", new LevelStats("current_wle_fp3_09_0_02", "6971-2125-2835", "The Most Hardest Fall Guys LEVEL", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_0_03", new LevelStats("current_wle_fp3_09_0_03", "2960-9271-4092", "Free Falling", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_0_04", new LevelStats("current_wle_fp3_09_0_04", "2553-0095-7180", "Conveyor Problems", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_0_05", new LevelStats("current_wle_fp3_09_0_05", "2348-8341-9475", "Clocktower Climb", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_0_06", new LevelStats("current_wle_fp3_09_0_06", "1442-7149-6884", "Savour Your Happiness", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_09_0_0_01", new LevelStats("current_wle_fp3_09_0_0_01", "0841-8832-8969", "Pastel Paradise", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp3_10_01", new LevelStats("current_wle_fp3_10_01", "8126-9165-2616", "When Nature Falls", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_02", new LevelStats("current_wle_fp3_10_02", "7929-7987-1262", "The Slippery Conveyor", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_03", new LevelStats("current_wle_fp3_10_03", "9268-5264-7225", "The Slime Trials", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_04", new LevelStats("current_wle_fp3_10_04", "9914-5338-1978", "Friendly Obstacles", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_05", new LevelStats("current_wle_fp3_10_05", "7630-6136-4887", "Climb and Fall", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_06", new LevelStats("current_wle_fp3_10_06", "7510-0097-4635", "Stairs and some other things", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_07", new LevelStats("current_wle_fp3_10_07", "6472-0781-0296", "Meowgical World", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_08", new LevelStats("current_wle_fp3_10_08", "6255-9803-7844", "Polluelo Speed", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_09", new LevelStats("current_wle_fp3_10_09", "5483-7429-8172", "Pixel Parade", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_10", new LevelStats("current_wle_fp3_10_10", "4670-0464-0152", "Total Madness", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_11", new LevelStats("current_wle_fp3_10_11", "4045-0177-4638", "The Abstract Maze", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_12", new LevelStats("current_wle_fp3_10_12", "0632-7452-5630", "Fan Off", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_13", new LevelStats("current_wle_fp3_10_13", "3501-1066-4405", "cloud highway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_14", new LevelStats("current_wle_fp3_10_14", "2532-0388-3114", "はねるの!?トビラ(Door Bounce)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_15", new LevelStats("current_wle_fp3_10_15", "1685-0828-8429", "Speedrunners be like", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_16", new LevelStats("current_wle_fp3_10_16", "1478-3445-2708", "Tumble Tower", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_17", new LevelStats("current_wle_fp3_10_17", "1374-0626-0437", "Silver's Snake Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_18", new LevelStats("current_wle_fp3_10_18", "1369-3476-7041", "Now Boarding", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_19", new LevelStats("current_wle_fp3_10_19", "1265-8247-0490", "Slime Scale", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_20", new LevelStats("current_wle_fp3_10_20", "1247-0981-9943", "TUMBLEDOWN MINESHAFT", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_21", new LevelStats("current_wle_fp3_10_21", "1236-0266-0278", "Circuito CHILL 1", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_22", new LevelStats("current_wle_fp3_10_22", "1046-1529-5825", "STUMBLE SLIDER", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_23", new LevelStats("current_wle_fp3_10_23", "0953-7809-6137", "Controlled Chaos", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_24", new LevelStats("current_wle_fp3_10_24", "0832-8811-0923", "Xtreme Jumping", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_25", new LevelStats("current_wle_fp3_10_25", "0523-0589-6057", "Odin", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_26", new LevelStats("current_wle_fp3_10_26", "0312-1221-9928", "Ciudad nube", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_27", new LevelStats("current_wle_fp3_10_27", "0209-4801-4109", "Bean Voyage", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_28", new LevelStats("current_wle_fp3_10_28", "0147-5332-8225", "SLIP-SAW", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp3_10_29", new LevelStats("current_wle_fp3_10_29", "0026-7621-3553", "Bbq bacon burger", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp4_05_01_01", new LevelStats("current_wle_fp4_05_01_01", "4044-7301-7052", "巅峰车站", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_01_02", new LevelStats("current_wle_fp4_05_01_02", "4164-0494-9264", "Beba Park 7", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_01_03", new LevelStats("current_wle_fp4_05_01_03", "4166-2880-4137", "Rainbow in the clouds", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_01_04", new LevelStats("current_wle_fp4_05_01_04", "4222-3581-1925", "So You Think You Can Bounce", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_01_05", new LevelStats("current_wle_fp4_05_01_05", "4398-7555-7009", "Bounce Back Racetrack", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_01", new LevelStats("current_wle_fp4_05_01", "0510-4142-2680", "¡!OLYMPE¡!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_02", new LevelStats("current_wle_fp4_05_02", "0665-1582-4029", "Mini only up", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_03_01", new LevelStats("current_wle_fp4_05_03_01", "9117-2376-3176", "Cubic Conundrum", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_03_02", new LevelStats("current_wle_fp4_05_03_02", "0474-0978-5834", "Remote Control", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_03", new LevelStats("current_wle_fp4_05_03", "1736-4813-5491", "Parkway Slide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_04", new LevelStats("current_wle_fp4_05_04", "1862-2511-5334", "Duel Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_05", new LevelStats("current_wle_fp4_05_05", "2412-2785-7810", "beaten trackless road", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_2_01", new LevelStats("current_wle_fp4_05_2_01", "6595-2972-5515", "¡River Paradise!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_2_02", new LevelStats("current_wle_fp4_05_2_02", "7696-3433-8713", "arch city", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_05_2_03", new LevelStats("current_wle_fp4_05_2_03", "9212-2213-6190", "Desert Ruins", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp4_06_01", new LevelStats("current_wle_fp4_06_01", "7421-3397-8915", "PENTAGON CIRCUIT", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_02", new LevelStats("current_wle_fp4_06_02", "0897-2632-3022", "Pachislo", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_0_01", new LevelStats("current_wle_fp4_06_0_01", "4837-5178-6772", "AquArsene", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_0_02", new LevelStats("current_wle_fp4_06_0_02", "9883-1664-6105", "RainbowCloud", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_0_03", new LevelStats("current_wle_fp4_06_0_03", "1587-8887-3763", "Pink Cascade", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_0_04", new LevelStats("current_wle_fp4_06_0_04", "0581-9229-6109", "Conveyor Conundrum", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_0_05", new LevelStats("current_wle_fp4_06_0_05", "7710-6656-7617", "RICKETY STRAWBRIDGE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_0_10_01", new LevelStats("current_wle_fp4_06_0_10_01", "6594-9005-1010", "The Bee Hive", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_1_01", new LevelStats("current_wle_fp4_06_1_01", "8549-0392-8062", "Buggin' Out", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_1_02", new LevelStats("current_wle_fp4_06_1_02", "8929-4807-4981", "RISE AND SLIDE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_1_03", new LevelStats("current_wle_fp4_06_1_03", "8598-1284-1406", "Bean Mini Golf", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_1_04", new LevelStats("current_wle_fp4_06_1_04", "0226-5184-6884", "Youpii Youpii", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_1_05", new LevelStats("current_wle_fp4_06_1_05", "9410-7962-1207", "The climb of Trials", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_06_1_06", new LevelStats("current_wle_fp4_06_1_06", "6002-7812-7859", "Bouncy Castle", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp4_07_01", new LevelStats("current_wle_fp4_07_01", "9414-6564-4192", "Rotational Runner", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_07_02", new LevelStats("current_wle_fp4_07_02", "7909-3465-4598", "SPIRAL DASH ROAD", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_07_03", new LevelStats("current_wle_fp4_07_03", "7342-4432-1991", "simple stage", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_07_04", new LevelStats("current_wle_fp4_07_04", "6385-6125-4124", "Slip Slide Jump and Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_07_05", new LevelStats("current_wle_fp4_07_05", "1831-8990-4701", "Factory Valley", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_07_06", new LevelStats("current_wle_fp4_07_06", "0513-9569-5079", "Jumpy Beans", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_07_07", new LevelStats("current_wle_fp4_07_07", "9825-0849-5439", "Slimetastic Stumble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_07_0_01", new LevelStats("current_wle_fp4_07_0_01", "9963-3475-5634", "Camino Ninja", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp4_08_01", new LevelStats("current_wle_fp4_08_01", "9795-5277-9654", "co-op guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_0_01", new LevelStats("current_wle_fp4_08_0_01", "7200-6187-0157", "The big slide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_0_02", new LevelStats("current_wle_fp4_08_0_02", "7302-1231-7183", "Freefall Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_0_03", new LevelStats("current_wle_fp4_08_0_03", "6960-3324-8416", "Hazy Stairways", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_0_04", new LevelStats("current_wle_fp4_08_0_04", "6834-1823-0867", "Pillar Promenade", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_0_05", new LevelStats("current_wle_fp4_08_0_05", "6535-8427-4425", "Hidden Treasure of Magical Castle", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_0_06", new LevelStats("current_wle_fp4_08_0_06", "6032-0510-0146", "X-Course", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_0_07", new LevelStats("current_wle_fp4_08_0_07", "5466-6380-0679", "Speed Gauntlet", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_1_01", new LevelStats("current_wle_fp4_08_1_01", "1875-3024-7900", "Boost in Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_1_02", new LevelStats("current_wle_fp4_08_1_02", "3012-7317-9706", "Rainbow Raceway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_1_03", new LevelStats("current_wle_fp4_08_1_03", "3514-5844-7262", "Giddy up!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_1_04", new LevelStats("current_wle_fp4_08_1_04", "4045-6389-6161", "Mad lab", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_2_01", new LevelStats("current_wle_fp4_08_2_01", "0873-3500-8955", "Convoluted Conveyors", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_08_3_01", new LevelStats("current_wle_fp4_08_3_01", "1364-9647-0717", "The Oasis", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp4_09_01", new LevelStats("current_wle_fp4_09_01", "9687-4558-9242", "Crate Collector", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_09_02", new LevelStats("current_wle_fp4_09_02", "8824-3354-1460", "Dribble Drills", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_09_03", new LevelStats("current_wle_fp4_09_03", "2646-4033-5577", "Spinning Slide Dodge", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_09_04", new LevelStats("current_wle_fp4_09_04", "8671-3513-6156", "Skyline Park", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_09_05", new LevelStats("current_wle_fp4_09_05", "5440-2255-9842", "Birthday bonanza", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_09_06", new LevelStats("current_wle_fp4_09_06", "1738-4626-1757", "The Chaotic Waterfall", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_09_0_01", new LevelStats("current_wle_fp4_09_0_01", "0796-0036-7637", "ICY PEAKS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_09_1_01", new LevelStats("current_wle_fp4_09_1_01", "0090-3881-4137", "Push-Box Chaos", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_09_1_02", new LevelStats("current_wle_fp4_09_1_02", "0996-7164-5913", "Haute voltige", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_09_2_01", new LevelStats("current_wle_fp4_09_2_01", "3953-9880-4802", "DNA Test", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp4_10_01", new LevelStats("current_wle_fp4_10_01", "0994-7335-6422", "Bouncy Box Boulevard 3 Extreme Delivery", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_02", new LevelStats("current_wle_fp4_10_02", "1943-4681-1638", "Hot Blast", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_03", new LevelStats("current_wle_fp4_10_03", "6362-2965-5352", "Box Fan Blitz", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_04", new LevelStats("current_wle_fp4_10_04", "0135-0293-3689", "Woo-terfall Way", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_05", new LevelStats("current_wle_fp4_10_05", "9803-3074-8419", "Slime race", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_06", new LevelStats("current_wle_fp4_10_06", "1503-2277-4955", "Moving Day", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_07", new LevelStats("current_wle_fp4_10_07", "6929-6036-1695", "Birthday Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_08_m", new LevelStats("current_wle_fp4_10_08_m", "1654-1285-7119", "Wall Breaker", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_08", new LevelStats("current_wle_fp4_10_08", "9420-4455-9184", "Chess History", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_11", new LevelStats("current_wle_fp4_10_11", "1632-2850-0932", "HOARDER BLOCKS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_12", new LevelStats("current_wle_fp4_10_12", "9536-3101-2748", "Chickens run away", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_20", new LevelStats("current_wle_fp4_10_20", "6242-6736-1505", "Co-op and CO", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_21", new LevelStats("current_wle_fp4_10_21", "2742-4277-9915", "Construction Site", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_0_01", new LevelStats("current_wle_fp4_10_0_01", "6377-3695-4327", "Cheese Canyon", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp4_10_0_02", new LevelStats("current_wle_fp4_10_0_02", "7833-7019-9317", "Molehills", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp5_2_01_01", new LevelStats("current_wle_fp5_2_01_01", "3825-5284-9253", "Plummet Summit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_01_02", new LevelStats("current_wle_fp5_2_01_02", "3790-8589-1520", "タワークライム", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_01_03", new LevelStats("current_wle_fp5_2_01_03", "3737-3279-8628", "けいけいどうくつ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_01_04", new LevelStats("current_wle_fp5_2_01_04", "3514-5956-8272", "Quicksand Valley 01", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_01", new LevelStats("current_wle_fp5_2_01", "9148-5289-0823", "Jabonsotes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_02_01", new LevelStats("current_wle_fp5_2_02_01", "2108-0722-2123", "のっぽタワー", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_02_02", new LevelStats("current_wle_fp5_2_02_02", "1963-5709-2926", "Blaster Course", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_02_03", new LevelStats("current_wle_fp5_2_02_03", "1809-4502-9184", "Panna Cotta Guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_02_04", new LevelStats("current_wle_fp5_2_02_04", "1789-1894-0232", "The hard Climb", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_02_05", new LevelStats("current_wle_fp5_2_02_05", "0763-8856-0715", "sliding guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_02_06", new LevelStats("current_wle_fp5_2_02_06", "0567-7490-3659", "Hallow's Haunt", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_02", new LevelStats("current_wle_fp5_2_02", "9103-2158-7081", "Rainbow highway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_03", new LevelStats("current_wle_fp5_2_03", "8411-4776-5845", "Falligator", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_04_01", new LevelStats("current_wle_fp5_2_04_01", "7572-4671-3585", "Lily Lovers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_04_02", new LevelStats("current_wle_fp5_2_04_02", "3869-1711-4431", "rainow rode", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_04_03", new LevelStats("current_wle_fp5_2_04_03", "6142-2413-9656", "L' Rumorosa", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_04_04", new LevelStats("current_wle_fp5_2_04_04", "8800-7141-3616", "Super crazy level", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_04", new LevelStats("current_wle_fp5_2_04", "7572-2277-3000", "Big WaterFall Planet(巨大な滝の惑星)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_05_01", new LevelStats("current_wle_fp5_2_05_01", "8800-7141-3616", "Level XVIII", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_05_02", new LevelStats("current_wle_fp5_2_05_02", "7572-4671-3585", "Ricochet Raceway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_05_03", new LevelStats("current_wle_fp5_2_05_03", "6142-2413-9656", "L' Rumorosa", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_05_04", new LevelStats("current_wle_fp5_2_05_04", "3869-1711-4431", "rainbow roade", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_05", new LevelStats("current_wle_fp5_2_05", "7110-3642-5704", "The tension Parkour", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_06", new LevelStats("current_wle_fp5_2_06", "6376-5036-1691", "Stairing Contest", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_2_07", new LevelStats("current_wle_fp5_2_07", "6010-5013-1494", "Vibrant Ascension", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp5_3_05_01", new LevelStats("current_wle_fp5_3_05_01", "1721-2831-3075", "Beany Golf!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_3_05_02_01", new LevelStats("current_wle_fp5_3_05_02_01", "0986-9263-8815", "Speedy Bros", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_4_01_01", new LevelStats("current_wle_fp5_4_01_01", "9211-4929-5701", "Tilted Walls", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_4_01_02", new LevelStats("current_wle_fp5_4_01_02", "9018-1364-7923", "The Lost Diamond", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_4_01_03", new LevelStats("current_wle_fp5_4_01_03", "8567-8219-8609", "The Flowery Garden", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_4_01_04", new LevelStats("current_wle_fp5_4_01_04", "5880-2278-9229", "Happy Bean Cube Land 2", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_4_01_05", new LevelStats("current_wle_fp5_4_01_05", "2319-3617-4913", "Traffic Jamboree", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp5_10_01", new LevelStats("current_wle_fp5_10_01", "4063-2641-0298", "Breezy Buddies", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_0_01", new LevelStats("current_wle_fp5_10_0_01", "8299-0006-6070", "Salto Plancha", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_0_02", new LevelStats("current_wle_fp5_10_0_02", "3428-8531-9101", "My house", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_0_03", new LevelStats("current_wle_fp5_10_0_03", "4040-5736-4713", "Sleepwalk Speedway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_1_01", new LevelStats("current_wle_fp5_10_1_01", "9212-2213-6190", "Desert Ruins", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_1_02", new LevelStats("current_wle_fp5_10_1_02", "6595-2972-5515", "¡River Paradise!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_01", new LevelStats("current_wle_fp5_10_2_01", "9212-2213-6190", "Desert Ruins", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_02", new LevelStats("current_wle_fp5_10_2_02", "6595-2972-5515", "¡River Paradise!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_03", new LevelStats("current_wle_fp5_10_2_03", "9343-2310-4786", "Mystic River", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_04", new LevelStats("current_wle_fp5_10_2_04", "8853-7641-5813", "Split Path Stumble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_05", new LevelStats("current_wle_fp5_10_2_05", "7495-6827-7086", "Cliffside", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_06", new LevelStats("current_wle_fp5_10_2_06", "7154-6896-8797", "Tricky Turnpike", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_07", new LevelStats("current_wle_fp5_10_2_07", "6043-6557-4039", "The Avenue", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_08", new LevelStats("current_wle_fp5_10_2_08", "5608-7529-2030", "Gold City", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_09", new LevelStats("current_wle_fp5_10_2_09", "3906-5688-1706", "タイトル決まりませんw", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_10", new LevelStats("current_wle_fp5_10_2_10", "0358-6970-6379", "初心者用コース", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_10_2_11", new LevelStats("current_wle_fp5_10_2_11", "3969-7959-8728", "Chain Reaction", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp5_wk3_1_01", new LevelStats("current_wle_fp5_wk3_1_01", "0321-9239-5763", "Gobille infernal", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_1_02", new LevelStats("current_wle_fp5_wk3_1_02", "5272-3542-2094", "SLIMY RACE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_1_03", new LevelStats("current_wle_fp5_wk3_1_03", "0986-9263-8815", "Bouncy Bros", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_1_04", new LevelStats("current_wle_fp5_wk3_1_04", "0936-8338-2826", "El airecito", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_1_05", new LevelStats("current_wle_fp5_wk3_1_05", "3851-6647-1283", "Crown Tunnel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_1_06", new LevelStats("current_wle_fp5_wk3_1_06", "2046-9186-5835", "Sweet Sweet Scurry", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_2_01", new LevelStats("current_wle_fp5_wk3_2_01", "3705-0014-9536", "Magical Journey", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_2_02", new LevelStats("current_wle_fp5_wk3_2_02", "9323-9497-7975", "The Crown Jewel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_2_03", new LevelStats("current_wle_fp5_wk3_2_03", "5732-7608-2538", "From bottom to top", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_2_04", new LevelStats("current_wle_fp5_wk3_2_04", "7367-3353-4703", "The Throne Of The Best King", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_2_05", new LevelStats("current_wle_fp5_wk3_2_05", "1287-5978-1559", "Honeycomb Highway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_3_01", new LevelStats("current_wle_fp5_wk3_3_01", "5195-8821-0000", "Bouncier Heights", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_3_02", new LevelStats("current_wle_fp5_wk3_3_02", "2240-5868-2714", "Rainbow Racers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_3_03", new LevelStats("current_wle_fp5_wk3_3_03", "8497-6718-8016", "Bye have a great time part 24", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_wk3_3_04", new LevelStats("current_wle_fp5_wk3_3_04", "4915-3461-7638", "speedrun snek", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp5_falloween_1_01", new LevelStats("current_wle_fp5_falloween_1_01", "8402-8758-0032", "Falloween Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_02", new LevelStats("current_wle_fp5_falloween_1_02", "6240-3462-3481", "深秋寻路 Fall Routes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_03", new LevelStats("current_wle_fp5_falloween_1_03", "6121-7790-1504", "Синни Санни Сонни", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_04", new LevelStats("current_wle_fp5_falloween_1_04", "6067-2941-9905", "Falloween Festival!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_05", new LevelStats("current_wle_fp5_falloween_1_05", "5651-2398-0054", "Hearth Attack", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_06", new LevelStats("current_wle_fp5_falloween_1_06", "5024-3460-6816", "Mirage", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_07", new LevelStats("current_wle_fp5_falloween_1_07", "4849-8243-4656", "Spooky Sprinter", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_08", new LevelStats("current_wle_fp5_falloween_1_08", "4488-9051-9724", "Toon World", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_09", new LevelStats("current_wle_fp5_falloween_1_09", "4218-2924-3419", "Creepy climb", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_10", new LevelStats("current_wle_fp5_falloween_1_10", "4176-6208-9294", "Spooky Buttons", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_11", new LevelStats("current_wle_fp5_falloween_1_11", "4084-9651-9519", "Spider's Lair", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_12", new LevelStats("current_wle_fp5_falloween_1_12", "2735-9945-7419", "Night of goosebumps - Trick or Treat", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_13", new LevelStats("current_wle_fp5_falloween_1_13", "2306-3017-3066", "The Falloween Spirits", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_1_14", new LevelStats("current_wle_fp5_falloween_1_14", "1401-4773-3736", "Jack-O'-Runners", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_2_01", new LevelStats("current_wle_fp5_falloween_2_01", "5664-5599-7711", "spooky nightwalk", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_2_02", new LevelStats("current_wle_fp5_falloween_2_02", "1799-5939-4570", "Creepy Crawly Canyon", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_2_03_01", new LevelStats("current_wle_fp5_falloween_2_03_01", "5484-7576-2527", "Spider Web Escape", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_2_03_02", new LevelStats("current_wle_fp5_falloween_2_03_02", "7175-6459-2516", "Fallen Beans", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_2_03_03", new LevelStats("current_wle_fp5_falloween_2_03_03", "7190-1032-9714", "Pumpkin Patch Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_2_03_04", new LevelStats("current_wle_fp5_falloween_2_03_04", "8090-4478-3076", "Going batty", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_2_03_05", new LevelStats("current_wle_fp5_falloween_2_03_05", "3613-2575-7647", "Bone Bridges", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_2_03_06", new LevelStats("current_wle_fp5_falloween_2_03_06", "0755-6177-0051", "Spider", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_2_03", new LevelStats("current_wle_fp5_falloween_2_03", "0655-0213-7224", "fastoween", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_3_01", new LevelStats("current_wle_fp5_falloween_3_01", "8631-7291-8107", "Haunted Hoops", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_3_02", new LevelStats("current_wle_fp5_falloween_3_02", "4501-8526-4946", "SPIDER SCURRY", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_3_03", new LevelStats("current_wle_fp5_falloween_3_03", "1100-1065-3063", "Fallobeans", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_3_04", new LevelStats("current_wle_fp5_falloween_3_04", "0069-7749-5727", "Escape the haunted mansion", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_01", new LevelStats("current_wle_fp5_falloween_4_01", "9994-8017-8706", "Cursed Catacombs", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_02", new LevelStats("current_wle_fp5_falloween_4_02", "9657-6107-5958", "Altar de Alubias", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_03", new LevelStats("current_wle_fp5_falloween_4_03", "9368-3971-3271", "This is Fall O Ween", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_04", new LevelStats("current_wle_fp5_falloween_4_04", "9258-3697-5491", "Belly of the Beast", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_05", new LevelStats("current_wle_fp5_falloween_4_05", "7928-7118-4810", "Scary Final", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_06", new LevelStats("current_wle_fp5_falloween_4_06", "7120-7897-2692", "Slip 'N' Scare", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_07", new LevelStats("current_wle_fp5_falloween_4_07", "6533-6356-0472", "Spooky Speedy Arches", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_08", new LevelStats("current_wle_fp5_falloween_4_08", "6396-1389-0514", "Catoween", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_09", new LevelStats("current_wle_fp5_falloween_4_09", "5741-2031-8043", "Jack-O'-Zoom", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_10", new LevelStats("current_wle_fp5_falloween_4_10", "5476-2662-9927", "Bean´s Spooky Route", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_11", new LevelStats("current_wle_fp5_falloween_4_11", "4430-7014-2805", "Tricks and treats", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_12", new LevelStats("current_wle_fp5_falloween_4_12", "4382-9645-4115", "HAUNTED CAT MANSION", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_13", new LevelStats("current_wle_fp5_falloween_4_13", "3624-9104-8937", "Feeling Batty", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_14", new LevelStats("current_wle_fp5_falloween_4_14", "2864-3013-2704", "Monster Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_15", new LevelStats("current_wle_fp5_falloween_4_15", "1448-1995-9095", "Pumpkin Parkour", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_16", new LevelStats("current_wle_fp5_falloween_4_16", "0797-7676-9358", "Cauldron of Treats", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_17", new LevelStats("current_wle_fp5_falloween_4_17", "0788-2763-9253", "Eerie Enigma", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_18", new LevelStats("current_wle_fp5_falloween_4_18", "0634-3389-9948", "Candy Cruisers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_4_19", new LevelStats("current_wle_fp5_falloween_4_19", "0216-4798-7097", "Pumpkin eater", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_5_01", new LevelStats("current_wle_fp5_falloween_5_01", "9266-0794-7999", "Spooky Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_5_02", new LevelStats("current_wle_fp5_falloween_5_02", "8757-8658-1590", "HORROR NIGHT RITUAL", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_5_03", new LevelStats("current_wle_fp5_falloween_5_03", "5608-5038-4603", "Spooky slime race", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_5_04", new LevelStats("current_wle_fp5_falloween_5_04", "4310-0672-7447", "Halloween", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_5_05", new LevelStats("current_wle_fp5_falloween_5_05", "2573-8965-6602", "Spooky Momentum", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_5_06", new LevelStats("current_wle_fp5_falloween_5_06", "1793-2460-5757", "Cloud 9", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_5_07", new LevelStats("current_wle_fp5_falloween_5_07", "1029-3640-0683", "HAUNTED HAUL", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_6_01", new LevelStats("current_wle_fp5_falloween_6_01", "1885-0687-3381", "Coffin Droppin'", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_6_02", new LevelStats("current_wle_fp5_falloween_6_02", "2046-9186-5835", "Tricky Treats!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_6_03", new LevelStats("current_wle_fp5_falloween_6_03", "9944-2261-7096", "Happy Falloween", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_01_01", new LevelStats("current_wle_fp5_falloween_7_01_01", "8245-2536-0397", "The Haunted Castle", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_01_02", new LevelStats("current_wle_fp5_falloween_7_01_02", "5120-5302-3364", "City of fear", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_01_03", new LevelStats("current_wle_fp5_falloween_7_01_03", "2005-7268-3932", "Monster Mayhem", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_01_04", new LevelStats("current_wle_fp5_falloween_7_01_04", "9744-9959-6162", "Halloween Island", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_01_05", new LevelStats("current_wle_fp5_falloween_7_01_05", "6044-9178-1352", "Beyond The Grave Rave", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_01_06", new LevelStats("current_wle_fp5_falloween_7_01_06", "7336-7844-4312", "Falloween Monster", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_01_07", new LevelStats("current_wle_fp5_falloween_7_01_07", "7153-1520-5779", "Falloween Castle", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_01_08", new LevelStats("current_wle_fp5_falloween_7_01_08", "5105-6932-4910", "Halloween sky course", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_01_09", new LevelStats("current_wle_fp5_falloween_7_01_09", "0003-1341-4714", "WICKED RACE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_02_01", new LevelStats("current_wle_fp5_falloween_7_02_01", "3499-1607-5514", "Happy Bean Spooky Tumble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_03_01", new LevelStats("current_wle_fp5_falloween_7_03_01", "5031-9941-3572", "Horror Movie Night", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_04_01", new LevelStats("current_wle_fp5_falloween_7_04_01", "9256-6209-5924", "Night Temptation(ナイトテンプテーション)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_04_02", new LevelStats("current_wle_fp5_falloween_7_04_02", "0368-4641-9952", "Fall Haunted", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_04_03", new LevelStats("current_wle_fp5_falloween_7_04_03", "3357-4326-2937", "Color Climb", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_04_04", new LevelStats("current_wle_fp5_falloween_7_04_04", "4095-3239-4107", "Pumpkin (Speed) Party", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_05_01", new LevelStats("current_wle_fp5_falloween_7_05_01", "2438-2715-1526", "FALLOWEEN FOREST TUMBLE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_05_02", new LevelStats("current_wle_fp5_falloween_7_05_02", "2247-7408-5638", "Ominous Outpost", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_05_03", new LevelStats("current_wle_fp5_falloween_7_05_03", "2525-3294-8408", "Spook Circuit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_05_04", new LevelStats("current_wle_fp5_falloween_7_05_04", "8138-0025-5565", "Path of horrors", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_06_01", new LevelStats("current_wle_fp5_falloween_7_06_01", "2322-8913-6415", "PUMPKIN KINGDOM", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_06_02", new LevelStats("current_wle_fp5_falloween_7_06_02", "5658-3251-2803", "Grave Danger Graveyard", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_06_03", new LevelStats("current_wle_fp5_falloween_7_06_03", "1885-0687-3381", "Coffin Droppin'", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_06_04", new LevelStats("current_wle_fp5_falloween_7_06_04", "7399-1384-6084", "Skeleton Climb", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_06_05", new LevelStats("current_wle_fp5_falloween_7_06_05", "6733-6429-1092", "Falloween Heights", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_08_01", new LevelStats("current_wle_fp5_falloween_7_08_01", "1511-8704-2066", "Trick ! - Falloween party", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_10_01", new LevelStats("current_wle_fp5_falloween_7_10_01", "0851-5131-6366", "NEW OBSTACLES! - The Falloween Trial", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_7_10_02", new LevelStats("current_wle_fp5_falloween_7_10_02", "4157-3882-8459", "Nightmare Mansion", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_9_01", new LevelStats("current_wle_fp5_falloween_9_01", "9477-8846-0602", "Skeleton Mayhem", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_9_02", new LevelStats("current_wle_fp5_falloween_9_02", "8003-0564-1815", "Raveyard", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_9_03", new LevelStats("current_wle_fp5_falloween_9_03", "4672-3819-0320", "Spooky Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_9_04", new LevelStats("current_wle_fp5_falloween_9_04", "0453-7588-2618", "Collapsed World 2", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_9_05", new LevelStats("current_wle_fp5_falloween_9_05", "6237-3643-0250", "Maximum Turbulance", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_10_01", new LevelStats("current_wle_fp5_falloween_10_01", "8245-1512-8620", "Graveyard Mansion", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_10_02", new LevelStats("current_wle_fp5_falloween_10_02", "0592-4433-7070", "Trick Treat Fall", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_11_01", new LevelStats("current_wle_fp5_falloween_11_01", "2919-6281-3490", "Night Runners", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_12_01", new LevelStats("current_wle_fp5_falloween_12_01", "0389-3465-9605", "Haunted Mansion", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_12_02", new LevelStats("current_wle_fp5_falloween_12_02", "1843-2013-5149", "Spooky Orange and Purple", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_13_01", new LevelStats("current_wle_fp5_falloween_13_01", "0970-9754-5183", "Witch Way", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_14_01", new LevelStats("current_wle_fp5_falloween_14_01", "2532-1174-5060", "Nightmare Bump", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp5_falloween_15_01", new LevelStats("current_wle_fp5_falloween_15_01", "0697-1204-1880", "Spooktacular Fun Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp6_1_01", new LevelStats("current_wle_fp6_1_01", "3916-1541-0243", "Boo-mblaster Betrayal", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_1_02", new LevelStats("current_wle_fp6_1_02", "3948-0002-3038", "MOUNT SMOODGIE!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_1_03", new LevelStats("current_wle_fp6_1_03", "5043-4340-1476", "SKULL KING", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_1_04", new LevelStats("current_wle_fp6_1_04", "5047-6237-6739", "shorter circuit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_1_05", new LevelStats("current_wle_fp6_1_05", "6277-7822-1251", "be speedy", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_1_06", new LevelStats("current_wle_fp6_1_06", "3604-8131-3419", "Sky-City Stumble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_1_07", new LevelStats("current_wle_fp6_1_07", "6765-5208-2758", "Wormhole Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_1_08", new LevelStats("current_wle_fp6_1_08", "7320-9822-7602", "Sweet Tooth Slide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_1_09", new LevelStats("current_wle_fp6_1_09", "7861-4822-7936", "Splitspeed", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_1_10", new LevelStats("current_wle_fp6_1_10", "8180-8790-0009", "Fall Canyon", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_2_01", new LevelStats("current_wle_fp6_2_01", "8620-2155-3954", "Valise", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_2_02", new LevelStats("current_wle_fp6_2_02", "8991-8326-4093", "Big Yeetus challenge 2 FaIIoween", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_2_03", new LevelStats("current_wle_fp6_2_03", "9288-2697-0408", "Water Way", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_2_04", new LevelStats("current_wle_fp6_2_04", "9377-9029-3657", "The Doors of Doom", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_2_05", new LevelStats("current_wle_fp6_2_05", "9542-1740-6424", "SPOOKY CEMETERY", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_2_06", new LevelStats("current_wle_fp6_2_06", "6893-9005-0968", "Liana Swings", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_2_07", new LevelStats("current_wle_fp6_2_07", "9678-6212-2370", "Colourful", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_2_08", new LevelStats("current_wle_fp6_2_08", "3523-6255-6638", "The Heist!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_2_09", new LevelStats("current_wle_fp6_2_09", "3224-9787-0835", "Factory of Fallmecanic", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_3_01", new LevelStats("current_wle_fp6_3_01", "3071-2833-2289", "Tricky Treat", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_3_02", new LevelStats("current_wle_fp6_3_02", "2569-1984-5105", "The Lighthouse", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_3_03", new LevelStats("current_wle_fp6_3_03", "2324-3489-1583", "どっちがかんたんだとおもいますか?", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_3_04", new LevelStats("current_wle_fp6_3_04", "2306-9699-8428", "The Scarescraper", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_3_05", new LevelStats("current_wle_fp6_3_05", "1964-6897-7083", "Obstacle Road", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_3_06", new LevelStats("current_wle_fp6_3_06", "1076-4735-0083", "Rest In Paris", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_3_07", new LevelStats("current_wle_fp6_3_07", "0255-4663-0790", "Horror pumpkim", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_3_08", new LevelStats("current_wle_fp6_3_08", "8297-7587-2491", "时间停止了(Time Stop)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp6_wk2_01", new LevelStats("current_wle_fp6_wk2_01", "0676-8023-9854", "CreatorShop TOURNAMENT x GameAthlon", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_02", new LevelStats("current_wle_fp6_wk2_02", "8224-4301-6958", "MONUMENT FALLS!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_03", new LevelStats("current_wle_fp6_wk2_03", "8703-7887-6944", "Slidy Road", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_04", new LevelStats("current_wle_fp6_wk2_04", "7110-8808-3745", "SatsuRyu's speed city", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_05", new LevelStats("current_wle_fp6_wk2_05", "9710-6876-4207", "Lost in space", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_06", new LevelStats("current_wle_fp6_wk2_06", "8354-6671-5374", "Turbine Decline", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_07", new LevelStats("current_wle_fp6_wk2_07", "9565-7750-0483", "Zero Displacement", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_08", new LevelStats("current_wle_fp6_wk2_08", "6719-0148-0904", "Slide Fall-o-City", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_09", new LevelStats("current_wle_fp6_wk2_09", "5275-2973-1284", "Travel Diary - Berlin", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_10", new LevelStats("current_wle_fp6_wk2_10", "6099-8747-6282", "Neoway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_11", new LevelStats("current_wle_fp6_wk2_11", "5550-6909-7405", "Niagara Falls", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_1_01", new LevelStats("current_wle_fp6_wk2_1_01", "8568-9006-6425", "DOWN THE HATCH!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_1_02", new LevelStats("current_wle_fp6_wk2_1_02", "8249-0033-6623", "Flash Flight", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_1_03", new LevelStats("current_wle_fp6_wk2_1_03", "7780-1414-4490", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_1_04", new LevelStats("current_wle_fp6_wk2_1_04", "9303-5896-3150", "diferentes pasos", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_1_05", new LevelStats("current_wle_fp6_wk2_1_05", "4115-7916-9074", "INCLINALUBIAS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_1_06", new LevelStats("current_wle_fp6_wk2_1_06", "7122-5244-2992", "Locomoção", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_1_07", new LevelStats("current_wle_fp6_wk2_1_07", "1588-3248-4201", "Frightening Fogway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_1_08", new LevelStats("current_wle_fp6_wk2_1_08", "8574-2024-6514", "Pure Presser", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk2_1_09", new LevelStats("current_wle_fp6_wk2_1_09", "3750-6876-3150", "Spooky Sliders", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp6_wk3_01", new LevelStats("current_wle_fp6_wk3_01", "0423-0473-3184", "BLACK AND WHITE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_02", new LevelStats("current_wle_fp6_wk3_02", "8660-4177-3710", "Compact 5", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_03", new LevelStats("current_wle_fp6_wk3_03", "9446-4952-3095", "Turkey Takeoff Tryouts", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_04", new LevelStats("current_wle_fp6_wk3_04", "7388-0835-3150", "SLIME DISTRICT", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_05", new LevelStats("current_wle_fp6_wk3_05", "1011-4417-3724", "Alto voltaje", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_06", new LevelStats("current_wle_fp6_wk3_06", "7561-7994-9778", "SEA OF TERROR", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_07", new LevelStats("current_wle_fp6_wk3_07", "5462-0917-1482", "Aeriodeslizador (beta)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_08", new LevelStats("current_wle_fp6_wk3_08", "8794-5080-3844", "Obstructed Running Track", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_09", new LevelStats("current_wle_fp6_wk3_09", "3558-6227-3899", "Work and Travel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_10", new LevelStats("current_wle_fp6_wk3_10", "5374-8478-0194", "connect the bridge", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_2_01", new LevelStats("current_wle_fp6_wk3_2_01", "8113-8467-0296", "Immer weiter", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_2_02", new LevelStats("current_wle_fp6_wk3_2_02", "6053-9623-4091", "speed demon", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_2_03", new LevelStats("current_wle_fp6_wk3_2_03", "4477-6528-6319", "Royaume brave", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_2_04", new LevelStats("current_wle_fp6_wk3_2_04", "3236-9384-6706", "Cyber Jam", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_2_05", new LevelStats("current_wle_fp6_wk3_2_05", "4014-7989-8827", "Delectable Parade", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_3_01", new LevelStats("current_wle_fp6_wk3_3_01", "8402-6872-1991", "おこらないで!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk3_3_02", new LevelStats("current_wle_fp6_wk3_3_02", "2992-2383-4539", "Track and Field Stadium - Challenge", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_fp6_wk4_01_01", new LevelStats("current_wle_fp6_wk4_01_01", "6298-7475-9085", "Processed Beans", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_01_02", new LevelStats("current_wle_fp6_wk4_01_02", "8112-0477-0080", "Xmas tower", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_02_01", new LevelStats("current_wle_fp6_wk4_02_01", "1068-9922-6737", "Jingle Falls", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_02_02", new LevelStats("current_wle_fp6_wk4_02_02", "0479-2414-1882", "Ice Confusion Cave(アイスコンフュージョンケイブ)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_02_03", new LevelStats("current_wle_fp6_wk4_02_03", "0502-5614-4769", "Beans in Sand Land", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_02_04", new LevelStats("current_wle_fp6_wk4_02_04", "1225-4872-0162", "MERRY MAYHEM!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_02_05", new LevelStats("current_wle_fp6_wk4_02_05", "", "BIG FREEZE RACE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_03_01", new LevelStats("current_wle_fp6_wk4_03_01", "8297-4133-1110", "Frostbite Forest", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_03_02", new LevelStats("current_wle_fp6_wk4_03_02", "8930-5259-5657", "Temple of Love", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_03_03", new LevelStats("current_wle_fp6_wk4_03_03", "3291-2140-7680", "fall mountain (糖豆山涧)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_03_04", new LevelStats("current_wle_fp6_wk4_03_04", "2844-4157-0778", "Le mont glacé", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_03_05", new LevelStats("current_wle_fp6_wk4_03_05", "1732-0477-7618", "Snow Style", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_03_06", new LevelStats("current_wle_fp6_wk4_03_06", "9740-0964-8208", "Wintery woods", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_05_01", new LevelStats("current_wle_fp6_wk4_05_01", "3533-8159-6854", "Rebound", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_05_02", new LevelStats("current_wle_fp6_wk4_05_02", "5244-0881-7559", "Rebound Rampway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_fp6_wk4_05_03", new LevelStats("current_wle_fp6_wk4_05_03", "8484-9415-5438", "The Winter Islands", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_mrs_bouncy_bean_time_opener", new LevelStats("wle_mrs_bouncy_bean_time_opener", "0589-3737-0601", "Frosty Frolics", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bouncy_bean_time_opener_02", new LevelStats("wle_mrs_bouncy_bean_time_opener_02", "2127-9536-2330", "roll roll bean", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bouncy_bean_time_opener_03", new LevelStats("wle_mrs_bouncy_bean_time_opener_03", "8773-4020-1405", "SPEEDROLLING", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bouncy_bean_time_filler", new LevelStats("wle_mrs_bouncy_bean_time_filler", "0058-2575-2174", "Ball Park", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bouncy_bean_time_filler_02", new LevelStats("wle_mrs_bouncy_bean_time_filler_02", "5021-0663-0427", "Ball Carnival", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bouncy_bean_time_filler_03", new LevelStats("wle_mrs_bouncy_bean_time_filler_03", "0127-6614-5946", "Spiral Trial", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bouncy_bean_time_filler_04", new LevelStats("wle_mrs_bouncy_bean_time_filler_04", "3914-8444-0243", "Golf Fall", LevelType.Hunt, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bouncy_bean_time_final", new LevelStats("wle_mrs_bouncy_bean_time_final", "1612-5875-5936", "Downtown Rush", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bouncy_bean_time_final_02", new LevelStats("wle_mrs_bouncy_bean_time_final_02", "9159-9775-0826", "Skyview Derby", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bouncy_bean_time_final_03", new LevelStats("wle_mrs_bouncy_bean_time_final_03", "7692-7222-5282", "Rolling Speedway", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bouncy_bean_time_final_04", new LevelStats("wle_mrs_bouncy_bean_time_final_04", "2785-7930-3909", "SEA FLOW!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "current_wle_community_10_5_01", new LevelStats("current_wle_community_10_5_01", "2107-4141-3257", "Snowy Starfall", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_02", new LevelStats("current_wle_community_10_5_02", "2203-4068-7191", "The Earthquake", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_01", new LevelStats("current_wle_community_10_5_1_01", "9715-4600-4667", "Tree Sky Hights!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_04", new LevelStats("current_wle_community_10_5_1_04", "7992-1555-1473", "Garden of Woo", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_05", new LevelStats("current_wle_community_10_5_1_05", "7022-6258-4388", "Out in the open", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_07", new LevelStats("current_wle_community_10_5_1_07", "6597-0240-5339", "CANDY INDUSTRY", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_08", new LevelStats("current_wle_community_10_5_1_08", "6384-8421-0160", "Jungle Journey", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_09", new LevelStats("current_wle_community_10_5_1_09", "6284-7975-0778", "Mount Fallmore", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_10", new LevelStats("current_wle_community_10_5_1_10", "6152-2655-3133", "The Slanted Rooms", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_12", new LevelStats("current_wle_community_10_5_1_12", "4492-7111-3098", "Futuristic Facility", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_14", new LevelStats("current_wle_community_10_5_1_14", "0774-4344-8979", "Dangerou's Trap", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_15", new LevelStats("current_wle_community_10_5_1_15", "0665-6875-4549", "Three Rooms", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_16", new LevelStats("current_wle_community_10_5_1_16", "0599-3632-2182", "Jungle Mira tumble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_17", new LevelStats("current_wle_community_10_5_1_17", "0446-8446-4930", "Winter Slide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "current_wle_community_10_5_1_18", new LevelStats("current_wle_community_10_5_1_18", "0296-6407-4999", "Digi-Crown Summit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_discover_level_wk2_001", new LevelStats("wle_discover_level_wk2_001", "9038-5995-0613", "Castle in the Clouds", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_002", new LevelStats("wle_discover_level_wk2_002", "4904-4223-0526", "Christmas corner!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_003", new LevelStats("wle_discover_level_wk2_003", "5275-3298-6913", "Hot Wheels 2069", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_004", new LevelStats("wle_discover_level_wk2_004", "4398-7555-7009", "Bounce Back Racetrack", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_005", new LevelStats("wle_discover_level_wk2_005", "5362-9288-2858", "Space Getaway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_006", new LevelStats("wle_discover_level_wk2_006", "3291-2140-7680", "fall mountain (糖豆山涧)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_007", new LevelStats("wle_discover_level_wk2_007", "8237-7159-3977", "伝説のポケモン!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_008", new LevelStats("wle_discover_level_wk2_008", "2964-4225-1009", "Knight Slide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_009", new LevelStats("wle_discover_level_wk2_009", "6421-3169-3667", "Christmas Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_010", new LevelStats("wle_discover_level_wk2_010", "1796-2312-9416", "Labyrinth (1986) Part1", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_011", new LevelStats("wle_discover_level_wk2_011", "3533-8159-6854", "Rebound", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_012", new LevelStats("wle_discover_level_wk2_012", "5086-5243-9680", "Trip to Santa's home", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_013", new LevelStats("wle_discover_level_wk2_013", "1389-8884-2061", "ピッピカチュ☆彡", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_014", new LevelStats("wle_discover_level_wk2_014", "9324-7797-9946", "Rainbow Race", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_015", new LevelStats("wle_discover_level_wk2_015", "8128-3640-3460", "Speed Suburbs", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_016", new LevelStats("wle_discover_level_wk2_016", "1544-6104-2453", "SUPER MARIO WONDER", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_017", new LevelStats("wle_discover_level_wk2_017", "5441-5981-3430", "Punching Bridges", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_018", new LevelStats("wle_discover_level_wk2_018", "0089-2044-0703", "The Slimescrapper", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_019", new LevelStats("wle_discover_level_wk2_019", "5121-0443-6799", "Snowy Flakes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_020", new LevelStats("wle_discover_level_wk2_020", "7571-2950-1286", "Foggy Freeway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_021", new LevelStats("wle_discover_level_wk2_021", "2246-3279-7448", "Snowy Climb", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_022", new LevelStats("wle_discover_level_wk2_022", "8787-5820-1328", "snow athletic valley", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_023", new LevelStats("wle_discover_level_wk2_023", "8257-1760-0020", "詰め込んだだけレース4", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_024", new LevelStats("wle_discover_level_wk2_024", "8207-5307-7171", "Winter Wonder Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_025", new LevelStats("wle_discover_level_wk2_025", "2722-3817-6628", "Randonnée Galactique", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_026", new LevelStats("wle_discover_level_wk2_026", "0777-3024-0228", "Cloudy with a Chance of Cannonballs", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_027", new LevelStats("wle_discover_level_wk2_027", "7721-7953-1307", "Digital Snowland", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_028", new LevelStats("wle_discover_level_wk2_028", "8266-7988-9989", "Shiver Beans", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_029", new LevelStats("wle_discover_level_wk2_029", "8696-7950-5029", "SanTama Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_030", new LevelStats("wle_discover_level_wk2_030", "0707-0032-0823", "Winter Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_031", new LevelStats("wle_discover_level_wk2_031", "9015-3378-5798", "Jiggle Jingle", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_032", new LevelStats("wle_discover_level_wk2_032", "1907-7914-9110", "Ice Pop Interstate", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_033", new LevelStats("wle_discover_level_wk2_033", "7244-3167-1509", "クリエだよ全員集合", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_034", new LevelStats("wle_discover_level_wk2_034", "1002-4872-3000", "Snow Day", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_035", new LevelStats("wle_discover_level_wk2_035", "9410-3554-3998", "It's Tiiiiiiiimeee!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_036", new LevelStats("wle_discover_level_wk2_036", "5353-5711-2408", "KYOUFUU GUYS BACK", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_037", new LevelStats("wle_discover_level_wk2_037", "2339-7794-6638", "Sonic's Sunset Adventure", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_038", new LevelStats("wle_discover_level_wk2_038", "7984-3310-2143", "♪勝利のフォンフォーレ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_039", new LevelStats("wle_discover_level_wk2_039", "2118-2980-8240", "RACE ORIGINS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_040", new LevelStats("wle_discover_level_wk2_040", "3936-9524-9756", "Winter Wipeout", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_041", new LevelStats("wle_discover_level_wk2_041", "1893-8327-1728", "Centripetal Circuit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_042", new LevelStats("wle_discover_level_wk2_042", "1225-4872-0162", "MERRY MAYHEM!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_043", new LevelStats("wle_discover_level_wk2_043", "2910-3365-2494", "SQUID FALL GUYS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_044", new LevelStats("wle_discover_level_wk2_044", "5244-0881-7559", "Rebound Rampway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_045", new LevelStats("wle_discover_level_wk2_045", "2306-9699-8428", "The Scarescraper", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_046", new LevelStats("wle_discover_level_wk2_046", "3317-4973-3298", "$$$¡The Casino Crew!$$$", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_047", new LevelStats("wle_discover_level_wk2_047", "4916-2277-5636", "Dee's- Escape the Pirate Ship!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_048", new LevelStats("wle_discover_level_wk2_048", "0755-3864-7172", "ジャングル ぐるぐる", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_049", new LevelStats("wle_discover_level_wk2_049", "4750-3581-7195", "ショートステージ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discover_level_wk2_050", new LevelStats("wle_discover_level_wk2_050", "3874-0613-2428", "スノーマウンテンクライム", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_round_mrs_shuffle_discover_005", new LevelStats("wle_round_mrs_shuffle_discover_005", "6143-1489-7648", "My Melody", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_006", new LevelStats("wle_round_mrs_shuffle_discover_006", "0531-0274-6523", "prismatic ice crystal", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_007", new LevelStats("wle_round_mrs_shuffle_discover_007", "4088-3463-6280", "スキルアップステージ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_008", new LevelStats("wle_round_mrs_shuffle_discover_008", "3919-1470-2020", "WHITE TREE JUMBLE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_009", new LevelStats("wle_round_mrs_shuffle_discover_009", "4068-4449-2826", "Snowy Adventure", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_010", new LevelStats("wle_round_mrs_shuffle_discover_010", "2343-7227-5171", "Happy Bean Food Fiesta", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_011", new LevelStats("wle_round_mrs_shuffle_discover_011", "5155-0045-3777", "Belly Flop Bobsleigh", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_012", new LevelStats("wle_round_mrs_shuffle_discover_012", "7397-2807-8370", "winter party", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_013", new LevelStats("wle_round_mrs_shuffle_discover_013", "6087-1755-7358", "The lost keys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_014", new LevelStats("wle_round_mrs_shuffle_discover_014", "4173-7676-1012", "Bonk", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_015", new LevelStats("wle_round_mrs_shuffle_discover_015", "2567-3257-6492", "Winter Disc-O", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_016", new LevelStats("wle_round_mrs_shuffle_discover_016", "6002-8159-1176", "christmas wreath!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_017", new LevelStats("wle_round_mrs_shuffle_discover_017", "6693-3650-6103", "Winter BebaLand", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_018", new LevelStats("wle_round_mrs_shuffle_discover_018", "7340-7752-2280", "Automatic FallGuys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_019", new LevelStats("wle_round_mrs_shuffle_discover_019", "5476-5714-6607", "Holiday Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_020", new LevelStats("wle_round_mrs_shuffle_discover_020", "8044-7487-8236", "Treetop Frost", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_021", new LevelStats("wle_round_mrs_shuffle_discover_021", "7011-8033-9053", "Rainbow Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_022", new LevelStats("wle_round_mrs_shuffle_discover_022", "4421-0291-8062", "BYE DONT HAVE A GREAT TIME PART LXIX", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_023", new LevelStats("wle_round_mrs_shuffle_discover_023", "2075-7914-8271", "Hieroglysphinx Hurdles", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_024", new LevelStats("wle_round_mrs_shuffle_discover_024", "1767-3826-5141", "ホなら", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_025", new LevelStats("wle_round_mrs_shuffle_discover_025", "4220-3572-8716", "Bye have a great time part 45", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_026", new LevelStats("wle_round_mrs_shuffle_discover_026", "3738-3761-8973", "POWDERY PEAK", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_027", new LevelStats("wle_round_mrs_shuffle_discover_027", "4377-3277-0807", "It's Christmas Slime Climb Time!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_028", new LevelStats("wle_round_mrs_shuffle_discover_028", "9498-6752-8838", "MERRY CLIMBING!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_030", new LevelStats("wle_round_mrs_shuffle_discover_030", "3321-8899-5701", "Snow N' Speed", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_032", new LevelStats("wle_round_mrs_shuffle_discover_032", "8397-8258-4931", "Lets Have Fun (74)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_033", new LevelStats("wle_round_mrs_shuffle_discover_033", "2852-0112-6612", "Concept Ladder Match (Pre-alpha)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_034", new LevelStats("wle_round_mrs_shuffle_discover_034", "5037-8070-7958", "Speedy City", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_036", new LevelStats("wle_round_mrs_shuffle_discover_036", "1941-1012-6605", "Fall Village", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_037", new LevelStats("wle_round_mrs_shuffle_discover_037", "8810-0659-0889", "超巨大な、クリスマスツリー", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_038", new LevelStats("wle_round_mrs_shuffle_discover_038", "0322-2275-5501", "TINSELTOWN MELTDOWN!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_039", new LevelStats("wle_round_mrs_shuffle_discover_039", "0732-7682-8120", "Jump jar jar", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_040", new LevelStats("wle_round_mrs_shuffle_discover_040", "0850-4200-7527", "FOOD FIESTA", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_041", new LevelStats("wle_round_mrs_shuffle_discover_041", "0996-1266-2293", "Bye have a great time part 46", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_044", new LevelStats("wle_round_mrs_shuffle_discover_044", "9477-0031-6019", "BEAN BALL", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_045", new LevelStats("wle_round_mrs_shuffle_discover_045", "0053-9749-5348", "Python Pinball", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_046", new LevelStats("wle_round_mrs_shuffle_discover_046", "3245-3941-5183", "Block Battle", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_047", new LevelStats("wle_round_mrs_shuffle_discover_047", "6572-2020-4822", "Ice Cold Ascension", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_048", new LevelStats("wle_round_mrs_shuffle_discover_048", "7952-4596-3647", "ボタンでGO!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_049", new LevelStats("wle_round_mrs_shuffle_discover_049", "0666-3148-3665", "ミクセル MIKUSERU", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_round_mrs_shuffle_discover_050", new LevelStats("wle_round_mrs_shuffle_discover_050", "1767-3826-5141", "ホなら", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_discovery_shuffle_up2_01", new LevelStats("wle_discovery_shuffle_up2_01", "0369-9877-4595", "The spooky trail", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_05", new LevelStats("wle_discovery_shuffle_up2_05", "1305-2323-9251", "Balance Bean", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_06", new LevelStats("wle_discovery_shuffle_up2_06", "1336-8119-2083", "digital slime road", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_07", new LevelStats("wle_discovery_shuffle_up2_07", "1550-2075-3779", "The Punch Warriors! - Definitive Edition", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_08", new LevelStats("wle_discovery_shuffle_up2_08", "1645-6648-3627", "Winter Mansion", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_13", new LevelStats("wle_discovery_shuffle_up2_13", "1993-4156-1980", "Festive Rush", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_14", new LevelStats("wle_discovery_shuffle_up2_14", "2733-2354-1360", "Mound Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_15", new LevelStats("wle_discovery_shuffle_up2_15", "2878-1744-2374", "FEVER DREAM FUNHOUSE!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_17", new LevelStats("wle_discovery_shuffle_up2_17", "2966-8138-9009", "WinteRace", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_18", new LevelStats("wle_discovery_shuffle_up2_18", "3311-1709-9429", "4 Seasons", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_19", new LevelStats("wle_discovery_shuffle_up2_19", "3353-3188-3841", "WAVE RUNNERS!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_24", new LevelStats("wle_discovery_shuffle_up2_24", "5173-1810-8972", "Tool Up! Winter Season Fall Guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_26", new LevelStats("wle_discovery_shuffle_up2_26", "5244-4866-1449", "Arctic Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_28", new LevelStats("wle_discovery_shuffle_up2_28", "5320-6815-4429", "Grenouille X pinkixx", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_29", new LevelStats("wle_discovery_shuffle_up2_29", "5707-9757-2948", "GAME OVER", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_30", new LevelStats("wle_discovery_shuffle_up2_30", "6131-1980-2353", "Hot Wheels III", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_32", new LevelStats("wle_discovery_shuffle_up2_32", "7039-8904-3050", "Ski Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_33", new LevelStats("wle_discovery_shuffle_up2_33", "7077-1695-2596", "夜店", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_34", new LevelStats("wle_discovery_shuffle_up2_34", "7974-0262-9054", "チャッキーのタイムアタックレース", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_37", new LevelStats("wle_discovery_shuffle_up2_37", "8210-4387-4957", "Frosty run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_discovery_shuffle_up2_38", new LevelStats("wle_discovery_shuffle_up2_38", "8224-4301-6958", "MONUMENT FALLS!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_mrs_shuffle_show_roundpool_winter_01", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_01", "0127-6614-5946", "Spiral Trial", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_02", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_02", "0202-3345-6459", "SNOWMAN CLIMB", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_03", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_03", "0785-9958-2583", "Perpetual motion", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_04", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_04", "0978-7193-0877", "No way to go", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_06", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_06", "1018-0601-4568", "The winter slime climb time!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_07", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_07", "1028-8447-6803", "The Speedy Zone", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_08", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_08", "1080-4520-0540", "The crown's race", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_09", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_09", "1355-4974-3395", "Mitten Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_10", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_10", "1583-7626-4192", "Parcours arc en ciel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_11", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_11", "1789-0356-0022", "forest balls", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_12", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_12", "1851-6438-0229", "FIREBALL FRENZY!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_13", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_13", "1921-2266-8825", "GIFT EXCHANGE!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_14", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_14", "1972-8076-8639", "The Snowscraper", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_15", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_15", "2127-9536-2330", "roll roll bean", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_16", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_16", "2279-3142-3151", "Overclocked", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_17", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_17", "2488-9965-2012", "Spaceball Spin", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_18", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_18", "2567-3257-6492", "Winter Disc-O", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_19", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_19", "2823-7671-8623", "Chill 'n' Roll", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_20", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_20", "2878-1744-2374", "FEVER DREAM FUNHOUSE!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_21", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_21", "3118-5265-4067", "Himalayan Railway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_22", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_22", "3438-3341-2184", "Need for Speed", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_23", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_23", "3533-8159-6854", "Rebound", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_24", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_24", "3946-6046-1187", "スライムスクレイパー", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_25", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_25", "3985-2817-3261", "Frosty Cold Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_26", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_26", "4222-8379-7282", "Halfpipe Havoc", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_27", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_27", "4322-2919-3954", "Snowflake Wonderland", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_28", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_28", "4496-2498-1629", "Ball Guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_30", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_30", "5034-6811-7900", "REINDEER GAMES!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_31", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_31", "5155-0045-3777", "Belly Flop Bobsleigh", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_32", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_32", "5275-3298-6913", "Hot Wheels 2069", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_33", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_33", "5342-2286-3941", "Gingerbread Lane", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_34", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_34", "6297-0789-3293", "We ballin'", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_35", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_35", "6572-2020-4822", "Ice Cold Ascension", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_36", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_36", "6807-9166-7641", "étage sur étage", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_37", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_37", "6929-6036-1695", "Birthday Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_38", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_38", "7199-6910-2813", "The Jolly Express", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_39", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_39", "7550-4206-8593", "MARBLE RACE [Bean-Ball]", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_40", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_40", "7906-0122-5423", "Roller Race", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_41", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_41", "8126-5268-3887", "Return to Fall Rapids", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_42", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_42", "8210-4387-4957", "Frosty run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_44", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_44", "8387-7113-6288", "Sirbeans garden racetrack", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_45", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_45", "8500-1364-3165", "Roll-a-Coaster", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_46", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_46", "8535-2892-6407", "Gran Glaciar Paradicial", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_47", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_47", "8630-2224-5879", "Cave Exploration ~洞窟探検~", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_roundpool_winter_48", new LevelStats("wle_mrs_shuffle_show_roundpool_winter_48", "8696-7950-5029", "SanTama Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_shuffle_discover_fp7_1_01", new LevelStats("wle_shuffle_discover_fp7_1_01", "0090-0467-1055", "Green hill zone", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_02", new LevelStats("wle_shuffle_discover_fp7_1_02", "0531-5204-1716", "Lost Temple", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_03", new LevelStats("wle_shuffle_discover_fp7_1_03", "0633-9924-7509", "Champiñón Volante", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_04", new LevelStats("wle_shuffle_discover_fp7_1_04", "1355-4974-3395", "Mitten Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_05", new LevelStats("wle_shuffle_discover_fp7_1_05", "1401-4773-3736", "Jack-O'-Runners", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_06", new LevelStats("wle_shuffle_discover_fp7_1_06", "1583-7626-4192", "Parcours arc en ciel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_07", new LevelStats("wle_shuffle_discover_fp7_1_07", "1594-8823-0844", "Mario kart", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_08", new LevelStats("wle_shuffle_discover_fp7_1_08", "1755-7710-2295", "A Day At The Holiday Race",LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_09", new LevelStats("wle_shuffle_discover_fp7_1_09", "1781-7703-9709", "2024 謹賀新年", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_10", new LevelStats("wle_shuffle_discover_fp7_1_10", "1785-0794-4204", "Hustling run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_11", new LevelStats("wle_shuffle_discover_fp7_1_11", "1821-6881-7535", "tempête arc en ciel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_12", new LevelStats("wle_shuffle_discover_fp7_1_12", "1841-3486-5714", "Wander- Weg", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_13", new LevelStats("wle_shuffle_discover_fp7_1_13", "1899-0629-5726", "Ruta en la selva", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_14", new LevelStats("wle_shuffle_discover_fp7_1_14", "2038-0908-2760", "Turboslide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_15", new LevelStats("wle_shuffle_discover_fp7_1_15", "2257-8247-4855", "A piece of cake", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_16", new LevelStats("wle_shuffle_discover_fp7_1_16", "2379-7912-0281", "WOW", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_18", new LevelStats("wle_shuffle_discover_fp7_1_18", "2433-6238-7216", "Magic Squirrel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_19", new LevelStats("wle_shuffle_discover_fp7_1_19", "2669-9903-8713", "Dinosaur Climb", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_20", new LevelStats("wle_shuffle_discover_fp7_1_20", "3060-0234-4703", "bouing bouing", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_21", new LevelStats("wle_shuffle_discover_fp7_1_21", "3378-8118-1218", "快感快速!!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_23", new LevelStats("wle_shuffle_discover_fp7_1_23", "3926-4186-7225", "challenge", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_24", new LevelStats("wle_shuffle_discover_fp7_1_24", "4150-2201-3373", "Fnf final escape", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_25", new LevelStats("wle_shuffle_discover_fp7_1_25", "4421-6821-3561", "Speedrun", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_26", new LevelStats("wle_shuffle_discover_fp7_1_26", "4431-2440-1295", "AS AVENTURAS DO PIETRO", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_27", new LevelStats("wle_shuffle_discover_fp7_1_27", "4630-2042-2390", "The Desert temple", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_28", new LevelStats("wle_shuffle_discover_fp7_1_28", "4691-8677-1597", "Snowy Speed Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_29", new LevelStats("wle_shuffle_discover_fp7_1_29", "4984-8943-6009", "Arcade escape", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_30", new LevelStats("wle_shuffle_discover_fp7_1_30", "5010-6268-1193", "Guardian's Grace", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_31", new LevelStats("wle_shuffle_discover_fp7_1_31", "5200-7755-6085", "Desertic Templus", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_32", new LevelStats("wle_shuffle_discover_fp7_1_32", "5243-9916-4759", "Calamité arc en ciel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_33", new LevelStats("wle_shuffle_discover_fp7_1_33", "5494-5198-1084", "Map Test V1", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_34", new LevelStats("wle_shuffle_discover_fp7_1_34", "6809-2721-7779", "From A to Z", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_35", new LevelStats("wle_shuffle_discover_fp7_1_35", "7353-4870-7898", "YULE LOG SPRINT", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_37", new LevelStats("wle_shuffle_discover_fp7_1_37", "8300-6770-9669", "Turnaround Turnpike", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_38", new LevelStats("wle_shuffle_discover_fp7_1_38", "8320-3796-5449", "Good morning 2024 world", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_discover_fp7_1_39", new LevelStats("wle_shuffle_discover_fp7_1_39", "8387-7113-6288", "Sirbeans garden racetrack", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_shuffle_2_24_01", new LevelStats("wle_shuffle_2_24_01", "0137-9226-3492", "classic sewer", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_02", new LevelStats("wle_shuffle_2_24_02", "0555-9530-2984", "Speed Ball", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_03", new LevelStats("wle_shuffle_2_24_03", "0853-0857-2804", "Rainbow Riser", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_04", new LevelStats("wle_shuffle_2_24_04", "0925-8175-1603", "cave tree", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_05", new LevelStats("wle_shuffle_2_24_05", "1113-9504-3361", "Orbital Junction", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_06", new LevelStats("wle_shuffle_2_24_06", "1709-1062-7959", "Lily leapers remix v3", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_07", new LevelStats("wle_shuffle_2_24_07", "1762-3855-0426", "Little Pipe Dream", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_08", new LevelStats("wle_shuffle_2_24_08", "1851-6438-0229", "FIREBALL FRENZY!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_09", new LevelStats("wle_shuffle_2_24_09", "1899-0629-5726", "Ruta en la selva", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_10", new LevelStats("wle_shuffle_2_24_10", "2257-8247-4855", "A piece of cake", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_11", new LevelStats("wle_shuffle_2_24_11", "2473-6380-9031", "Monster Forest Road", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_12", new LevelStats("wle_shuffle_2_24_12", "2636-5233-5391", "Slippery Stumble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_13", new LevelStats("wle_shuffle_2_24_13", "2733-2354-1360", "Mound Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_15", new LevelStats("wle_shuffle_2_24_15", "2833-0337-8746", "Non-Stop Slide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_16", new LevelStats("wle_shuffle_2_24_16", "2950-3083-4160", "slime climb Creative", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_17", new LevelStats("wle_shuffle_2_24_17", "3016-2791-5507", "(REBORN) WITH THE WIND OMAME-CHAN !!!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_18", new LevelStats("wle_shuffle_2_24_18", "3382-1071-8849", "The Desert Temple Escape", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_19", new LevelStats("wle_shuffle_2_24_19", "3533-8159-6854", "Rebound", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_20", new LevelStats("wle_shuffle_2_24_20", "3651-3165-5779", "Roundabout Route", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_21", new LevelStats("wle_shuffle_2_24_21", "3931-1194-7251", "Sparkly gingerbred trail", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_22", new LevelStats("wle_shuffle_2_24_22", "4272-8921-2903", "Ski Fall Remix", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_24", new LevelStats("wle_shuffle_2_24_24", "4738-7257-3282", "Fan Flingers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_25", new LevelStats("wle_shuffle_2_24_25", "5021-0663-0427", "Ball Carnival", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_26", new LevelStats("wle_shuffle_2_24_26", "5173-1810-8972", "Tool Up! Winter Season Fall Guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_27", new LevelStats("wle_shuffle_2_24_27", "5232-5994-7528", "Trompeta Teatral", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_28", new LevelStats("wle_shuffle_2_24_28", "5440-2255-9842", "Birthday bonanza", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_29", new LevelStats("wle_shuffle_2_24_29", "6498-6754-9604", "BlueBlur Circuit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_30", new LevelStats("wle_shuffle_2_24_30", "6762-2892-8807", "Lemon Grass", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_31", new LevelStats("wle_shuffle_2_24_31", "6807-4403-9274", "Tuyauterie au nez", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_32", new LevelStats("wle_shuffle_2_24_32", "7167-0951-1768", "Slimey's showdown", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_33", new LevelStats("wle_shuffle_2_24_33", "7275-8097-7020", "GOLF GUYS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_34", new LevelStats("wle_shuffle_2_24_34", "7395-0882-0113", "(REBORN) DIGI×2 LOVE×2 GUYS REVERSE !!!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_35", new LevelStats("wle_shuffle_2_24_35", "7551-9923-5836", "R", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_36", new LevelStats("wle_shuffle_2_24_36", "7893-2545-1949", "Zelda is BANANAS!!!!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_38", new LevelStats("wle_shuffle_2_24_38", "8267-5992-3460", "Traffic Jamboree", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_39", new LevelStats("wle_shuffle_2_24_39", "8300-6770-9669", "Turnaround Turnpike", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_40", new LevelStats("wle_shuffle_2_24_40", "8709-8342-7408", "Great hunt", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_41", new LevelStats("wle_shuffle_2_24_41", "8881-5154-9680", "HYPERSPACE HIGHWAY!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_2_24_42", new LevelStats("wle_shuffle_2_24_42", "9649-0030-3361", "Back in Slime", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_shuffle_wk2405_01", new LevelStats("wle_shuffle_wk2405_01", "0152-5126-6360", "Duckling Beach", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_02", new LevelStats("wle_shuffle_wk2405_02", "0434-7961-8569", "BUILDER GUYS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_03", new LevelStats("wle_shuffle_wk2405_03", "0451-5025-8946", "ヒヤヒヤハイウェイ Unstable Highway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_04", new LevelStats("wle_shuffle_wk2405_04", "0555-9530-2984", "Speed Ball", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_05", new LevelStats("wle_shuffle_wk2405_05", "0585-4287-4068", "North Pole Traps", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_06", new LevelStats("wle_shuffle_wk2405_06", "0742-5047-0072", "Volcanic Island Travel!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_07", new LevelStats("wle_shuffle_wk2405_07", "0762-2529-1636", "Kepler 21's town", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_08", new LevelStats("wle_shuffle_wk2405_08", "1113-9504-3361", "Orbital Junction", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_11", new LevelStats("wle_shuffle_wk2405_11", "1305-2323-9251", "Balance Bean", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_12", new LevelStats("wle_shuffle_wk2405_12", "1312-9615-7859", "ťřūťű", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_13", new LevelStats("wle_shuffle_wk2405_13", "1446-7217-9770", "Summer Vibes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_14", new LevelStats("wle_shuffle_wk2405_14", "1551-9649-9406", "Dee's- Pinball Lilly", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_15", new LevelStats("wle_shuffle_wk2405_15", "1584-5789-4736", "Galactic Guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_16", new LevelStats("wle_shuffle_wk2405_16", "1644-8319-4270", "Orbital Stumbling", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_17", new LevelStats("wle_shuffle_wk2405_17", "1645-6648-3627", "Winter Mansion", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_18", new LevelStats("wle_shuffle_wk2405_18", "1677-5568-2329", "Pole Jumper", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_19", new LevelStats("wle_shuffle_wk2405_19", "1762-3855-0426", "Little Pipe Dream", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_20", new LevelStats("wle_shuffle_wk2405_20", "1851-6438-0229", "FIREBALL FRENZY!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_21", new LevelStats("wle_shuffle_wk2405_21", "1899-0629-5726", "Ruta en la selva", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_22", new LevelStats("wle_shuffle_wk2405_22", "2118-0169-2777", "The Spacescřaper", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_23", new LevelStats("wle_shuffle_wk2405_23", "2119-9755-8619", "Downward Spiral! (& Beyond)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_24", new LevelStats("wle_shuffle_wk2405_24", "2135-0316-5392", "Slippery Swoop Showdown", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_25", new LevelStats("wle_shuffle_wk2405_25", "2279-5432-3832", "Tunnel of tumble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_26", new LevelStats("wle_shuffle_wk2405_26", "2422-5079-5711", "Digital Paradise", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_27", new LevelStats("wle_shuffle_wk2405_27", "2473-6380-9031", "Monster Forest Road", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_28", new LevelStats("wle_shuffle_wk2405_28", "2499-8605-6569", "GALACTIC RUN", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_29", new LevelStats("wle_shuffle_wk2405_29", "2833-0337-8746", "Non-Stop Slide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_30", new LevelStats("wle_shuffle_wk2405_30", "2950-3083-4160", "slime climb Creative", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_31", new LevelStats("wle_shuffle_wk2405_31", "2981-1792-2094", "Love a day", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_32", new LevelStats("wle_shuffle_wk2405_32", "3379-7623-0093", "serious circuit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_33", new LevelStats("wle_shuffle_wk2405_33", "3515-1952-4869", "Falling in Love", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_34", new LevelStats("wle_shuffle_wk2405_34", "3533-8159-6854", "Rebound", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_35", new LevelStats("wle_shuffle_wk2405_35", "3599-1696-1979", "Digifal Guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_36", new LevelStats("wle_shuffle_wk2405_36", "3681-0035-5998", "Vaporia", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_37", new LevelStats("wle_shuffle_wk2405_37", "3692-7533-5535", "Solar Speedway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_38", new LevelStats("wle_shuffle_wk2405_38", "4131-9512-0855", "Rollin' Ruins", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_39", new LevelStats("wle_shuffle_wk2405_39", "4173-4719-9835", "The drum course", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_40", new LevelStats("wle_shuffle_wk2405_40", "4251-6257-1154", "AX-ATTACK", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_41", new LevelStats("wle_shuffle_wk2405_41", "4254-4453-9946", "Pipe beans", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_42", new LevelStats("wle_shuffle_wk2405_42", "4409-9722-2181", "Ball World", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_43", new LevelStats("wle_shuffle_wk2405_43", "4738-7257-3282", "Fan Flingers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_44", new LevelStats("wle_shuffle_wk2405_44", "4917-5541-8489", "Deserted Frontier", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_45", new LevelStats("wle_shuffle_wk2405_45", "4948-7947-3835", "Torapo", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_46", new LevelStats("wle_shuffle_wk2405_46", "5101-0520-3689", "No Name", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_47", new LevelStats("wle_shuffle_wk2405_47", "5151-6305-8757", "Satellite Scramble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_48", new LevelStats("wle_shuffle_wk2405_48", "5163-0680-7911", "STATION SPRINT", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_49", new LevelStats("wle_shuffle_wk2405_49", "5165-8049-4726", "Route 20", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_50", new LevelStats("wle_shuffle_wk2405_50", "5240-1090-0445", "Jungle escape", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_51", new LevelStats("wle_shuffle_wk2405_51", "5377-4447-8084", "Love at First Woo", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_52", new LevelStats("wle_shuffle_wk2405_52", "6102-4733-7031", "Satellite Circuit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_53", new LevelStats("wle_shuffle_wk2405_53", "6299-1605-1449", "Round and around", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_54", new LevelStats("wle_shuffle_wk2405_54", "6670-6327-4438", "World of rolling", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_55", new LevelStats("wle_shuffle_wk2405_55", "6762-2892-8807", "Lemon Grass", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_56", new LevelStats("wle_shuffle_wk2405_56", "6891-0486-6091", "Downward Spiral", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_57", new LevelStats("wle_shuffle_wk2405_57", "7461-4504-4537", "STARS ALIGN!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_58", new LevelStats("wle_shuffle_wk2405_58", "7890-9381-7427", "Interstellar Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_59", new LevelStats("wle_shuffle_wk2405_59", "8090-3422-8555", "World of cakes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_60", new LevelStats("wle_shuffle_wk2405_60", "8396-7548-5281", "ASTRAL AIRWAY", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_61", new LevelStats("wle_shuffle_wk2405_61", "8567-7267-5943", "secret ways", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_62", new LevelStats("wle_shuffle_wk2405_62", "8732-7733-6041", "No Name", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_63", new LevelStats("wle_shuffle_wk2405_63", "8903-4061-1306", "Space adventure (part 1)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_64", new LevelStats("wle_shuffle_wk2405_64", "9554-9683-9662", "Rainbow Road", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_wk2405_65", new LevelStats("wle_shuffle_wk2405_65", "9674-4412-3975", "Falltropolis", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_digishuffle_feb_01", new LevelStats("wle_digishuffle_feb_01", "0589-5895-3052", "jungle fun run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_02", new LevelStats("wle_digishuffle_feb_02", "0970-9754-5183", "☆Witch Way☆", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_03", new LevelStats("wle_digishuffle_feb_03", "1110-8239-3606", "Mushroom Mayhem", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_04", new LevelStats("wle_digishuffle_feb_04", "1113-9504-3361", "Orbital Junction", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_06", new LevelStats("wle_digishuffle_feb_06", "1435-6819-1202", "Day at the beach", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_07", new LevelStats("wle_digishuffle_feb_07", "1446-7217-9770", "Summer Vibes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_08", new LevelStats("wle_digishuffle_feb_08", "1645-5138-0646", "Roll Asteroid Field", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_09", new LevelStats("wle_digishuffle_feb_09", "1899-0629-5726", "Ruta en la selva", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_10", new LevelStats("wle_digishuffle_feb_10", "1948-7911-1902", "Cosmic Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_11", new LevelStats("wle_digishuffle_feb_11", "2191-8215-6975", "Bouncing Frenzy", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_12", new LevelStats("wle_digishuffle_feb_12", "2232-8592-5429", "Beehive Havoc", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_13", new LevelStats("wle_digishuffle_feb_13", "2359-6697-9703", "Snowy Cave-in", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_15", new LevelStats("wle_digishuffle_feb_15", "2567-3257-6492", "Winter Disc-O", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_16", new LevelStats("wle_digishuffle_feb_16", "2895-6428-2061", "magician", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_17", new LevelStats("wle_digishuffle_feb_17", "2981-1792-2094", "Love a day", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_18", new LevelStats("wle_digishuffle_feb_18", "3029-9759-3996", "Chilly Leapers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_19", new LevelStats("wle_digishuffle_feb_19", "3500-8638-8328", "Colorful Year - Beans Memories", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_20", new LevelStats("wle_digishuffle_feb_20", "3549-6885-3678", "BIPLANE BLUNDER", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_21", new LevelStats("wle_digishuffle_feb_21", "3681-0035-5998", "Vaporia", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_22", new LevelStats("wle_digishuffle_feb_22", "3858-3881-8519", "Satellite Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_23", new LevelStats("wle_digishuffle_feb_23", "3903-9211-8125", "Galactic Gauntlet", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_24", new LevelStats("wle_digishuffle_feb_24", "4011-0597-3669", "RUN COWBOY", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_25", new LevelStats("wle_digishuffle_feb_25", "4021-2554-9984", "Breakfast Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_26", new LevelStats("wle_digishuffle_feb_26", "4096-7186-2895", "Spin 'n' Swing", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_27", new LevelStats("wle_digishuffle_feb_27", "5377-4447-8084", "Love at First Woo", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_28", new LevelStats("wle_digishuffle_feb_28", "6843-5622-7108", "Astral Exploration", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_29", new LevelStats("wle_digishuffle_feb_29", "7013-5023-4631", "Speedway 2069", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_30", new LevelStats("wle_digishuffle_feb_30", "7320-4692-4771", "Data Eraser", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_31", new LevelStats("wle_digishuffle_feb_31", "9301-0516-7509", "Mediefall Highway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_33", new LevelStats("wle_digishuffle_feb_33", "9663-3513-7281", "パンダフルワールド", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_digishuffle_feb_34", new LevelStats("wle_digishuffle_feb_34", "9831-3388-4115", "Celestial Tale", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "chill_01", new LevelStats("chill_01", "0016-2247-3797", "Ariko Jones", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_02", new LevelStats("chill_02", "0112-8216-0130", "Floating island", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_03", new LevelStats("chill_03", "0280-4814-3193", "Colorful World", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_04", new LevelStats("chill_04", "0213-2251-4092", "Winter Wallop", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_06", new LevelStats("chill_06", "0551-6711-5976", "Tropical Top2", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_07", new LevelStats("chill_07", "0619-1806-0030", "rainbows and stickers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_08", new LevelStats("chill_08", "0622-6707-7933", "Ancient Fallstronomers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_11", new LevelStats("chill_11", "1129-6526-3753", "ORBITAL STUMBLE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_12", new LevelStats("chill_12", "1135-2300-3023", "The Bisounours", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_13", new LevelStats("chill_13", "1414-9922-3370", "Adrenaline Force 2", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_14", new LevelStats("chill_14", "1446-7217-9770", "Summer Vibes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_15", new LevelStats("chill_15", "1686-1103-6548", "Speedy Bounces", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_16", new LevelStats("chill_16", "1853-3366-4204", "Data Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_17", new LevelStats("chill_17", "1865-0213-5397", "Snow Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_18", new LevelStats("chill_18", "2005-7268-3932", "Monster Mayhem", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_19", new LevelStats("chill_19", "2342-2692-5979", "Star Power!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_20", new LevelStats("chill_20", "2548-0993-9070", "Sketchy Sledding!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_21", new LevelStats("chill_21", "2668-7303-9457", "Musical Madness", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_22", new LevelStats("chill_22", "2765-1389-1990", "BEANS ORBITAL ZONE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_23", new LevelStats("chill_23", "2789-0570-4149", "Safe Mode", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_24", new LevelStats("chill_24", "2899-4792-9714", "Piste de neige", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_25", new LevelStats("chill_25", "2981-1792-2094", "Love a day", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_26", new LevelStats("chill_26", "3029-9759-3996", "Chilly Leapers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_27", new LevelStats("chill_27", "3080-8437-1592", "Passage imbroglio arc en ciel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_28", new LevelStats("chill_28", "3486-7227-7408", "Shogun Guys I", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_29", new LevelStats("chill_29", "3577-1177-0010", "WINDMILL WAY", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_30", new LevelStats("chill_30", "3692-7533-5535", "Solar Speedway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_31", new LevelStats("chill_31", "3841-8164-0833", "Micro Machine", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_32", new LevelStats("chill_32", "3858-3881-8519", "Satellite Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_33", new LevelStats("chill_33", "4508-1970-8125", "Rudinn's Garden Palace", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_35", new LevelStats("chill_35", "4717-5188-2919", "Frosty Wonderland", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_36", new LevelStats("chill_36", "5196-2874-1592", "Freezy Frolic", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_37", new LevelStats("chill_37", "5210-1471-1902", "Extraterrestrial Terminal", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_38", new LevelStats("chill_38", "5294-9437-7902", "Cluster Cosmos", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_39", new LevelStats("chill_39", "5377-4447-8084", "Love at First Woo", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_40", new LevelStats("chill_40", "5440-1398-4126", "A night in Paris", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "chill_41", new LevelStats("chill_41", "7013-9024-6455", "Float Parkour", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_survival_shuffle_fp8_01", new LevelStats("wle_survival_shuffle_fp8_01", "0139-0518-4417", "More Blastball!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_02", new LevelStats("wle_survival_shuffle_fp8_02", "0236-0508-3409", "Rhino Runaway", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_03", new LevelStats("wle_survival_shuffle_fp8_03", "0268-5166-3980", "Bouncy Castle", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_04", new LevelStats("wle_survival_shuffle_fp8_04", "0279-7687-4138", "Snowy Stronghold", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_05", new LevelStats("wle_survival_shuffle_fp8_05", "0364-3730-0329", "Hexa-Towers - Finals Arena", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_06", new LevelStats("wle_survival_shuffle_fp8_06", "0403-2459-1927", "Satellite Delight", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_07", new LevelStats("wle_survival_shuffle_fp8_07", "0425-4708-1620", "pacific jump", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_08", new LevelStats("wle_survival_shuffle_fp8_08", "0433-5791-1386", "There can only be one", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_09", new LevelStats("wle_survival_shuffle_fp8_09", "0445-7672-1672", "Ganj's Matter Baby", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_10", new LevelStats("wle_survival_shuffle_fp8_10", "0468-2620-0660", "RHINOCHET", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_11", new LevelStats("wle_survival_shuffle_fp8_11", "0535-4780-5856", "Rocky Rumble", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_12", new LevelStats("wle_survival_shuffle_fp8_12", "0585-7009-6459", "Ludo War", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_13", new LevelStats("wle_survival_shuffle_fp8_13", "0643-7158-5368", "Slimelantis", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_14", new LevelStats("wle_survival_shuffle_fp8_14", "0677-0545-5069", "Dramatic Squirrel", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_15", new LevelStats("wle_survival_shuffle_fp8_15", "0742-9981-9284", "HEX-A-BLAST", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_16", new LevelStats("wle_survival_shuffle_fp8_16", "0752-1088-6618", "HEX-A-RUN", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_17", new LevelStats("wle_survival_shuffle_fp8_17", "0763-9386-5971", "BLAST BRIDGES", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_18", new LevelStats("wle_survival_shuffle_fp8_18", "0764-3278-0504", "HEX-A-BATTLE", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_19", new LevelStats("wle_survival_shuffle_fp8_19", "0798-4142-4810", "Blast Ball X", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_20", new LevelStats("wle_survival_shuffle_fp8_20", "0810-5820-0438", "Explosive Arena", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_21", new LevelStats("wle_survival_shuffle_fp8_21", "0870-7815-0193", "Rhino Blast", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_22", new LevelStats("wle_survival_shuffle_fp8_22", "1035-7942-0514", "Slime Surfers", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_23", new LevelStats("wle_survival_shuffle_fp8_23", "1037-6378-6667", "Eduardo Escapades", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_24", new LevelStats("wle_survival_shuffle_fp8_24", "1057-6149-8829", "Hex A Trouble", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_25", new LevelStats("wle_survival_shuffle_fp8_25", "1062-8560-4625", "Roll In - Finals Arena", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_26", new LevelStats("wle_survival_shuffle_fp8_26", "1093-0713-2192", "Back & Forth", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_27", new LevelStats("wle_survival_shuffle_fp8_27", "1107-9205-4613", "HEXAGONAL RING BLAST", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_29", new LevelStats("wle_survival_shuffle_fp8_29", "1129-5201-7725", "beens royal resurrection", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_30", new LevelStats("wle_survival_shuffle_fp8_30", "1214-6875-1636", "Hexa-Toto", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_31", new LevelStats("wle_survival_shuffle_fp8_31", "1217-5060-6173", "Blender Container", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_32", new LevelStats("wle_survival_shuffle_fp8_32", "1241-5854-9275", "Circular Jump", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_33", new LevelStats("wle_survival_shuffle_fp8_33", "1345-6455-8518", "hex-a-volcanic", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_34", new LevelStats("wle_survival_shuffle_fp8_34", "1399-1232-9110", "ボマーぽよまつからの挑戦状☆ミ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_35", new LevelStats("wle_survival_shuffle_fp8_35", "1466-7533-0848", "Reverse Chaos", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_36", new LevelStats("wle_survival_shuffle_fp8_36", "1511-5911-5835", "survival board", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_37", new LevelStats("wle_survival_shuffle_fp8_37", "1534-2904-1182", "Volcanic Chaos", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_38", new LevelStats("wle_survival_shuffle_fp8_38", "1561-8417-4634", "High-Ground Arena", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_39", new LevelStats("wle_survival_shuffle_fp8_39", "1584-3531-2171", "rainbow convoyer", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_40", new LevelStats("wle_survival_shuffle_fp8_40", "1601-3345-5524", "すぱいだーすっぱいんだー", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_41", new LevelStats("wle_survival_shuffle_fp8_41", "1689-9661-1371", "HEX-A-PARTY", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_42", new LevelStats("wle_survival_shuffle_fp8_42", "1697-5036-9461", "HEX A REBORN", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_43", new LevelStats("wle_survival_shuffle_fp8_43", "1761-1827-7407", "CAROUSEL CHAOS", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_44", new LevelStats("wle_survival_shuffle_fp8_44", "1798-1981-6505", "west sniper", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_45", new LevelStats("wle_survival_shuffle_fp8_45", "1800-7772-0808", "Blast Balls Hexa Trials", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_46", new LevelStats("wle_survival_shuffle_fp8_46", "1807-7707-7162", "自製生存關2-蹦蹦犀牛炸彈!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_47", new LevelStats("wle_survival_shuffle_fp8_47", "1865-3315-7517", "Hexagon Battle", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_49", new LevelStats("wle_survival_shuffle_fp8_49", "2003-3179-2374", "Tick Tock Clock", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_survival_shuffle_fp8_50", new LevelStats("wle_survival_shuffle_fp8_50", "2070-2754-3667", "ダイナミクスビート DYNAMICS BEAT", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "survival_shuffle_01", new LevelStats("survival_shuffle_01", "0001-3398-9703", "Speed attack", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_02", new LevelStats("survival_shuffle_02", "0002-3598-2927", "Garbage Chute V2", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_03", new LevelStats("survival_shuffle_03", "0011-1320-3872", "Hex-a-Disco (20p Version)", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_04", new LevelStats("survival_shuffle_04", "0037-0351-0008", "Night Crashers", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_05", new LevelStats("survival_shuffle_05", "0138-4486-5862", "Survival Area", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_06", new LevelStats("survival_shuffle_06", "0139-9089-4357", "Can You Win!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_07", new LevelStats("survival_shuffle_07", "0302-9070-2481", "SPINNER SURVIVAL(Hard) ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_08", new LevelStats("survival_shuffle_08", "0325-5807-6616", "NAMEK", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_09", new LevelStats("survival_shuffle_09", "0446-0211-5526", "Hex-A-Blast", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_10", new LevelStats("survival_shuffle_10", "0464-1165-3464", "HEX-A-JUMP", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_11", new LevelStats("survival_shuffle_11", "0466-6542-5575", "Space Blast", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_12", new LevelStats("survival_shuffle_12", "0621-1809-2474", "とまきけアイス", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_13", new LevelStats("survival_shuffle_13", "0650-4139-9165", "SPINNER SURVIVAL(Very Hard) ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_14", new LevelStats("survival_shuffle_14", "0685-0275-3688", "Caldera chaos", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_15", new LevelStats("survival_shuffle_15", "0729-5775-2619", "hexatourne", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_16", new LevelStats("survival_shuffle_16", "0807-3471-3911", "HEX-A-MANIA", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_17", new LevelStats("survival_shuffle_17", "0891-8019-0826", "Slime leakage royale", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_18", new LevelStats("survival_shuffle_18", "0893-7372-1280", "Merciless Traverse", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_19", new LevelStats("survival_shuffle_19", "0919-3875-4083", "Stompin' Ground Challenge", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_20", new LevelStats("survival_shuffle_20", "0931-1076-9131", "Bird is the Word", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_21", new LevelStats("survival_shuffle_21", "0992-9402-5956", "Conflagration interstellaire", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_22", new LevelStats("survival_shuffle_22", "0996-8895-0560", "Subzero Gale", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_23", new LevelStats("survival_shuffle_23", "1029-5111-9560", "Piti afundando", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_24", new LevelStats("survival_shuffle_24", "1031-0943-5858", "つかみ魔たちの祭典", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_25", new LevelStats("survival_shuffle_25", "1035-7942-0514", "Slime Surfers", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_26", new LevelStats("survival_shuffle_26", "1079-2066-7490", "Space Blast ball", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_27", new LevelStats("survival_shuffle_27", "1117-0276-7801", "Fan wars survival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_28", new LevelStats("survival_shuffle_28", "1233-6334-4535", "World of Guys - Ultimate Shotout -", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_29", new LevelStats("survival_shuffle_29", "1404-4394-0228", "Shogun's Arena ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_30", new LevelStats("survival_shuffle_30", "1456-0289-2450", "Boulder Hex", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_31", new LevelStats("survival_shuffle_31", "1571-6875-3041", "HEX-A-RENA", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_32", new LevelStats("survival_shuffle_32", "1684-8539-3788", "BLAST BALL BASHERS", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_33", new LevelStats("survival_shuffle_33", "1776-9881-2488", "hexa roll beta 2", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_34", new LevelStats("survival_shuffle_34", "1855-2210-3183", "Running survivor ver1・3", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_35", new LevelStats("survival_shuffle_35", "1930-9413-0504", "King of the Castle", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_36", new LevelStats("survival_shuffle_36", "2125-7810-0668", "BATTLE OF SURVIVORS", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_37", new LevelStats("survival_shuffle_37", "2218-2237-6280", "MINI STOMPIN' GROUND", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_38", new LevelStats("survival_shuffle_38", "2223-3843-5933", "Royal Rumble", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_39", new LevelStats("survival_shuffle_39", "2239-4032-8370", "Bataille au ²", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_40", new LevelStats("survival_shuffle_40", "2300-9050-2738", "Hex-a-mountain", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_41", new LevelStats("survival_shuffle_41", "2324-5993-8846", "Hex-A-Glory", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_42", new LevelStats("survival_shuffle_42", "2369-5933-7869", "POOL PARTY", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_43", new LevelStats("survival_shuffle_43", "2403-3764-7295", "King of the Pillar", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_44", new LevelStats("survival_shuffle_44", "2414-6563-5913", "止まれない木", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_45", new LevelStats("survival_shuffle_45", "2468-3255-4955", "slime battle pt2", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_46", new LevelStats("survival_shuffle_46", "2472-8019-2806", "No Punching", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_47", new LevelStats("survival_shuffle_47", "2554-1870-1590", "Blue and yellow showdown", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_48", new LevelStats("survival_shuffle_48", "2556-2850-8580", "Retro Roundabout", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_49", new LevelStats("survival_shuffle_49", "2746-1206-9444", "玉あそび", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_50", new LevelStats("survival_shuffle_50", "2757-4184-4892", "Royal Rumble (Rofall Gumble)", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_51", new LevelStats("survival_shuffle_51", "2766-5157-4854", "Aggressive survival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_52", new LevelStats("survival_shuffle_52", "2768-9919-2109", "Fight Zone", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_53", new LevelStats("survival_shuffle_53", "2787-7213-1361", "Hex-A-Blaster", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_54", new LevelStats("survival_shuffle_54", "2800-7205-9261", "SLIME RIOT!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_55", new LevelStats("survival_shuffle_55", "2823-7384-1462", "Es knallt richtig", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_56", new LevelStats("survival_shuffle_56", "2900-6383-5029", "Super Fortress Factory", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_57", new LevelStats("survival_shuffle_57", "2911-3475-1293", "Heavy hitters only", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_58", new LevelStats("survival_shuffle_58", "2970-1929-2231", "へいたんバトロワ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_59", new LevelStats("survival_shuffle_59", "2974-8302-6009", "Volcanic Panic", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_60", new LevelStats("survival_shuffle_60", "3217-2312-7423", "Volcanic Panic", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_61", new LevelStats("survival_shuffle_61", "3238-7459-1859", "雷霆乱豆中心", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_62", new LevelStats("survival_shuffle_62", "3368-7801-7649", "ブラストボール(十字形)", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_63", new LevelStats("survival_shuffle_63", "3400-2691-9198", "Poison Pond PVP", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_64", new LevelStats("survival_shuffle_64", "3457-8239-6063", "Puncher Brawl 2", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_65", new LevelStats("survival_shuffle_65", "3478-2156-3398", "Atoll pétulant", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_66", new LevelStats("survival_shuffle_66", "3505-6407-2260", "Blast Rhino", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_67", new LevelStats("survival_shuffle_67", "3516-5739-3625", "Blast Arena", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_68", new LevelStats("survival_shuffle_68", "3525-4399-8921", "Brewing Boxes", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_69", new LevelStats("survival_shuffle_69", "3527-8682-8116", "The flood", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_70", new LevelStats("survival_shuffle_70", "3576-2020-3042", "PUSHBACK", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_71", new LevelStats("survival_shuffle_71", "3613-5541-4227", "Arena Guys", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_72", new LevelStats("survival_shuffle_72", "3716-0027-8439", "Jungle Survival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_73", new LevelStats("survival_shuffle_73", "3717-7893-4420", "おしくらまんじゅうジャンプ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_74", new LevelStats("survival_shuffle_74", "3791-6511-4335", "blast fall X", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_75", new LevelStats("survival_shuffle_75", "3818-5750-6914", "Tic-Tac-Blow", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_76", new LevelStats("survival_shuffle_76", "3863-2482-6193", "CS Guys", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_77", new LevelStats("survival_shuffle_77", "4016-3965-9927", "Bounce Battle", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_78", new LevelStats("survival_shuffle_78", "4032-4431-9709", "Cheat's Only Fan", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_79", new LevelStats("survival_shuffle_79", "4054-1741-1803", "Showdown Party", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_80", new LevelStats("survival_shuffle_80", "4073-0485-0605", "Donut layers!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_81", new LevelStats("survival_shuffle_81", "4096-9381-4417", "パワーアップ・ノックアウト", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_82", new LevelStats("survival_shuffle_82", "4144-0419-9174", "アップダウンバトル", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_83", new LevelStats("survival_shuffle_83", "4148-1195-1516", "頂上対決", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_84", new LevelStats("survival_shuffle_84", "4161-5620-3974", "Blast Ring", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_85", new LevelStats("survival_shuffle_85", "4163-9502-8071", "Raft Rumble", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_86", new LevelStats("survival_shuffle_86", "4173-0014-5863", "Rhino-hex-killer+invasion", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_87", new LevelStats("survival_shuffle_87", "4211-4126-2692", "Survie des enfers", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_88", new LevelStats("survival_shuffle_88", "4354-6261-9718", "blast ball HEXAGON ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_89", new LevelStats("survival_shuffle_89", "4827-7320-3185", "The Bean-rena", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_90", new LevelStats("survival_shuffle_90", "5074-6268-1076", "Lake in the mountains", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_91", new LevelStats("survival_shuffle_91", "5110-6922-0191", "Playing area", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_92", new LevelStats("survival_shuffle_92", "5123-9105-1817", "Hopping Party", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_93", new LevelStats("survival_shuffle_93", "5251-9505-7371", "Shape Dimension", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_94", new LevelStats("survival_shuffle_94", "6388-3383-2309", "Dramatic Flowers", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "survival_shuffle_wk11_01", new LevelStats("survival_shuffle_wk11_01", "0001-3398-9703", "Speed attack", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_02", new LevelStats("survival_shuffle_wk11_02", "0002-3598-2927", "Garbage Chute V2", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_03", new LevelStats("survival_shuffle_wk11_03", "0011-1320-3872", "Hex-a-Disco (20p Version)", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_04", new LevelStats("survival_shuffle_wk11_04", "0033-2640-0922", "Sobreviventes da Batalha", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_05", new LevelStats("survival_shuffle_wk11_05", "0099-2672-5160", "今日の運勢サバイバル", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_06", new LevelStats("survival_shuffle_wk11_06", "0139-0518-4417", "More Blastball!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_07", new LevelStats("survival_shuffle_wk11_07", "0215-2512-7248", "Hexagone Tower", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_08", new LevelStats("survival_shuffle_wk11_08", "0268-5166-3980", "Bouncy Castle", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_09", new LevelStats("survival_shuffle_wk11_09", "0279-7687-4138", "Snowy Stronghold", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_10", new LevelStats("survival_shuffle_wk11_10", "0325-5807-6616", "NAMEK", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_11", new LevelStats("survival_shuffle_wk11_11", "0364-3730-0329", "Hexa-Towers - Finals Arena", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_12", new LevelStats("survival_shuffle_wk11_12", "0403-2459-1927", "Satellite Delight", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_13", new LevelStats("survival_shuffle_wk11_13", "0434-9963-3185", "DEADLY VOLCANO ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_14", new LevelStats("survival_shuffle_wk11_14", "0445-7672-1672", "Ganj's Matter Baby", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_15", new LevelStats("survival_shuffle_wk11_15", "0464-1165-3464", "HEX-A-JUMP", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_16", new LevelStats("survival_shuffle_wk11_16", "0468-2620-0660", "RHINOCHET", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_17", new LevelStats("survival_shuffle_wk11_17", "0535-4780-5856", "Rocky Rumble", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_18", new LevelStats("survival_shuffle_wk11_18", "0585-7009-6459", "Ludo War", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_19", new LevelStats("survival_shuffle_wk11_19", "0586-7049-9131", "RING ROUND FIGHT", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_20", new LevelStats("survival_shuffle_wk11_20", "0721-2057-4995", "Flight frenzy", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_21", new LevelStats("survival_shuffle_wk11_21", "0763-9386-5971", "BLAST BRIDGES", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_22", new LevelStats("survival_shuffle_wk11_22", "0798-4142-4810", "Blast Ball X", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_23", new LevelStats("survival_shuffle_wk11_23", "0820-8000-8111", "Blast Trip", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_24", new LevelStats("survival_shuffle_wk11_24", "0896-2795-3193", "Royal Rumble", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_25", new LevelStats("survival_shuffle_wk11_25", "0931-1076-9131", "Bird is the Word", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_26", new LevelStats("survival_shuffle_wk11_26", "0974-8029-3047", "The Whirligig", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_27", new LevelStats("survival_shuffle_wk11_27", "0996-8895-0560", "Subzero Gale", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_28", new LevelStats("survival_shuffle_wk11_28", "1035-7942-0514", "Slime Surfers", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_29", new LevelStats("survival_shuffle_wk11_29", "1037-6378-6667", "Eduardo Escapades", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_30", new LevelStats("survival_shuffle_wk11_30", "1057-6149-8829", "Hex A Trouble", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_31", new LevelStats("survival_shuffle_wk11_31", "1093-0713-2192", "Back & Forth", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_32", new LevelStats("survival_shuffle_wk11_32", "1107-9205-4613", "HEXAGONAL RING BLAST", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_33", new LevelStats("survival_shuffle_wk11_33", "1128-0059-8370", "Carousel Mayhem", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_34", new LevelStats("survival_shuffle_wk11_34", "1129-5201-7725", "Beens Royale RESURRECTION", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_35", new LevelStats("survival_shuffle_wk11_35", "1214-6875-1636", "Hexa-Toto", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_36", new LevelStats("survival_shuffle_wk11_36", "1217-5060-6173", "Blender Container", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_37", new LevelStats("survival_shuffle_wk11_37", "1323-8956-8043", "Mid wars!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_38", new LevelStats("survival_shuffle_wk11_38", "1345-6455-8518", "hex-a-volcanic", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_39", new LevelStats("survival_shuffle_wk11_39", "1402-1621-8787", "vamos rey del aire", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_40", new LevelStats("survival_shuffle_wk11_40", "1404-4394-0228", "Shogun's Arena ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_41", new LevelStats("survival_shuffle_wk11_41", "1511-5911-5835", "survival board", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_42", new LevelStats("survival_shuffle_wk11_42", "1577-4980-3628", "survival factory", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_43", new LevelStats("survival_shuffle_wk11_43", "1584-3531-2171", "rainbow convoyer", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_44", new LevelStats("survival_shuffle_wk11_44", "1601-3345-5524", "すぱいだーすっぱいんだー", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_45", new LevelStats("survival_shuffle_wk11_45", "1697-5036-9461", "HEX A REBORN", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_46", new LevelStats("survival_shuffle_wk11_46", "1700-5362-4267", "The Hex-A-Gon House", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_47", new LevelStats("survival_shuffle_wk11_47", "1761-1827-7407", "CAROUSEL CHAOS", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_48", new LevelStats("survival_shuffle_wk11_48", "1921-2120-7647", "Ring Off", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_49", new LevelStats("survival_shuffle_wk11_49", "1973-0178-5751", "âpre pélutant", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_50", new LevelStats("survival_shuffle_wk11_50", "2070-2754-3667", "ダイナミクスビート DYNAMICS BEAT", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_51", new LevelStats("survival_shuffle_wk11_51", "2413-7931-8867", "Fruit Chute Survival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_52", new LevelStats("survival_shuffle_wk11_52", "2472-8019-2806", "No Punching", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_53", new LevelStats("survival_shuffle_wk11_53", "2787-7213-1361", "Hex-A-Blaster", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_54", new LevelStats("survival_shuffle_wk11_54", "2789-3347-6686", "The Punch Warriors! - Survival Edition", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_55", new LevelStats("survival_shuffle_wk11_55", "2974-8302-6009", "Volcanic Panic", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_56", new LevelStats("survival_shuffle_wk11_56", "3208-1341-0438", "Hex-a-lowercase t", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_57", new LevelStats("survival_shuffle_wk11_57", "3428-1566-3462", "Beta Jinxed", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_58", new LevelStats("survival_shuffle_wk11_58", "4054-1741-1803", "Showdown Party", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_59", new LevelStats("survival_shuffle_wk11_59", "4332-2024-5429", "Canyon Sand 1", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_60", new LevelStats("survival_shuffle_wk11_60", "4720-2495-9093", "Aggro-Crag", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_61", new LevelStats("survival_shuffle_wk11_61", "4729-4530-3888", "Bean Fort", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_62", new LevelStats("survival_shuffle_wk11_62", "5077-7412-9484", "Tronco Gigante", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_63", new LevelStats("survival_shuffle_wk11_63", "5240-1134-1386", "Block Battle - Survive ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_64", new LevelStats("survival_shuffle_wk11_64", "5444-9207-7160", "Hot Shots", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_65", new LevelStats("survival_shuffle_wk11_65", "5451-7155-3954", "blast royale", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_66", new LevelStats("survival_shuffle_wk11_66", "5501-2780-5317", "Supervivencia del caos", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_67", new LevelStats("survival_shuffle_wk11_67", "5671-3860-8720", "Hex-A-Mayhem", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_68", new LevelStats("survival_shuffle_wk11_68", "5681-7436-8272", "The Falliseum", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_69", new LevelStats("survival_shuffle_wk11_69", "5886-6505-7182", "終末列車", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_70", new LevelStats("survival_shuffle_wk11_70", "5918-4991-8054", "O chão é lava", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_71", new LevelStats("survival_shuffle_wk11_71", "6001-1303-6106", "Survival Carnival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_72", new LevelStats("survival_shuffle_wk11_72", "6058-1120-3920", "Kraken x balls x boxing", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_73", new LevelStats("survival_shuffle_wk11_73", "6137-2890-9096", "Gum survival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_74", new LevelStats("survival_shuffle_wk11_74", "6244-1907-1839", "スライム研究室", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_75", new LevelStats("survival_shuffle_wk11_75", "6374-0140-7969", "Colour switch", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_76", new LevelStats("survival_shuffle_wk11_76", "6511-8334-3856", "Fall Royale", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_77", new LevelStats("survival_shuffle_wk11_77", "6621-2101-3801", "Roll Out Explosion", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_78", new LevelStats("survival_shuffle_wk11_78", "6715-6615-1192", "HELIX ROLL", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_79", new LevelStats("survival_shuffle_wk11_79", "6839-6754-7814", "耐久出来ないサバイバル2", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_80", new LevelStats("survival_shuffle_wk11_80", "6909-5244-6714", "detonates atlantis", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_81", new LevelStats("survival_shuffle_wk11_81", "7100-4080-0998", "Conveyor Chaos", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_82", new LevelStats("survival_shuffle_wk11_82", "7343-5007-7151", "Skywars Guys - Freshlands Valley", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_84", new LevelStats("survival_shuffle_wk11_84", "7452-6159-2747", "Slime Crater", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_85", new LevelStats("survival_shuffle_wk11_85", "7495-5141-5265", "Firewall Finale", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_86", new LevelStats("survival_shuffle_wk11_86", "7544-7533-7945", "ブラストボールエンド", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_87", new LevelStats("survival_shuffle_wk11_87", "7578-6522-1809", "ボタンコンフュージョン", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_88", new LevelStats("survival_shuffle_wk11_88", "7720-0916-9339", "DEE'S- RHINO RUMBLE!!!!!!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_89", new LevelStats("survival_shuffle_wk11_89", "7840-6223-0113", "tournement de couleur", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_90", new LevelStats("survival_shuffle_wk11_90", "8267-1155-7348", "BATTLE IN THE SEAS", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_91", new LevelStats("survival_shuffle_wk11_91", "8279-5127-0705", "HARD HEROES DRLVE SURVLVAL", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_92", new LevelStats("survival_shuffle_wk11_92", "8397-6411-4987", "Jump Show Fall", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_93", new LevelStats("survival_shuffle_wk11_93", "8441-1224-7850", "Hex-A-Lava", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_94", new LevelStats("survival_shuffle_wk11_94", "8674-6308-1071", "Magma Meltdown", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_95", new LevelStats("survival_shuffle_wk11_95", "8693-3022-8175", "恐怖のたまご", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_96", new LevelStats("survival_shuffle_wk11_96", "9013-8325-3144", "Cosmic Clash", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_97", new LevelStats("survival_shuffle_wk11_97", "9045-2750-1618", "Fall And Round", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_98", new LevelStats("survival_shuffle_wk11_98", "9147-6219-3978", "フォールドッジブラストボール", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_wk11_99", new LevelStats("survival_shuffle_wk11_99", "9684-7712-6319", "Sewer Stand-off", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "survival_shuffle_3wk3_01", new LevelStats("survival_shuffle_3wk3_01", "0033-2640-0922", "Sobreviventes da Batalha", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_02", new LevelStats("survival_shuffle_3wk3_02", "0347-2756-7507", "Survival Festival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_03", new LevelStats("survival_shuffle_3wk3_03", "0464-1541-5306", "MEOW-FO ROYALE", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_04", new LevelStats("survival_shuffle_3wk3_04", "0466-6542-5575", "Space Blast", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_05", new LevelStats("survival_shuffle_3wk3_05", "0466-9593-3507", "meteor rain", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_06", new LevelStats("survival_shuffle_3wk3_06", "0564-3499-0635", "Spiral-Cano", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_07", new LevelStats("survival_shuffle_3wk3_07", "0621-0352-3356", "Bridge Island Boss", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_08", new LevelStats("survival_shuffle_3wk3_08", "0685-0275-3688", "Caldera chaos", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_09", new LevelStats("survival_shuffle_3wk3_09", "0763-9386-5971", "BLAST BRIDGES", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_10", new LevelStats("survival_shuffle_3wk3_10", "0896-2795-3193", "Royal Rumble", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_11", new LevelStats("survival_shuffle_3wk3_11", "0964-0136-8192", "flower ring", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_12", new LevelStats("survival_shuffle_3wk3_12", "0974-8029-3047", "The Whirligig", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_13", new LevelStats("survival_shuffle_3wk3_13", "1037-6798-8536", "?", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_14", new LevelStats("survival_shuffle_3wk3_14", "1157-0132-2574", "熔岩蜂窝 Hex-A-Lava", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_15", new LevelStats("survival_shuffle_3wk3_15", "1323-8956-8043", "Mid wars!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_16", new LevelStats("survival_shuffle_3wk3_16", "1402-1621-8787", "vamos rey del aire", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_17", new LevelStats("survival_shuffle_3wk3_17", "1404-4394-0228", "Shogun's Arena ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_18", new LevelStats("survival_shuffle_3wk3_18", "1414-2132-3688", "聖帝導夢ランボー!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_19", new LevelStats("survival_shuffle_3wk3_19", "1613-5929-6973", "Test Survival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_20", new LevelStats("survival_shuffle_3wk3_20", "1899-8026-9827", "Blunder Barge", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_21", new LevelStats("survival_shuffle_3wk3_21", "1921-2120-7647", "Ring Off", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_22", new LevelStats("survival_shuffle_3wk3_22", "1973-0178-5751", "âpre pélutant", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_23", new LevelStats("survival_shuffle_3wk3_23", "1976-0786-1063", "Arena Nocaute Ultimate", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_24", new LevelStats("survival_shuffle_3wk3_24", "2239-4032-8370", "Bataille au ²", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_25", new LevelStats("survival_shuffle_3wk3_25", "2348-5211-1060", "Bom Bom Do", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_26", new LevelStats("survival_shuffle_3wk3_26", "2397-4456-3963", "Super Smash Beans 2!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_27", new LevelStats("survival_shuffle_3wk3_27", "2799-1027-4193", "VOLLEY BRAWL!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_28", new LevelStats("survival_shuffle_3wk3_28", "2843-9635-3486", "Bamblast!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_29", new LevelStats("survival_shuffle_3wk3_29", "2865-0994-8855", "Extreme Block Party", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_30", new LevelStats("survival_shuffle_3wk3_30", "2899-8058-5684", "Colisel da insegurança", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_31", new LevelStats("survival_shuffle_3wk3_31", "2966-2442-2528", "hex-a-climb", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_32", new LevelStats("survival_shuffle_3wk3_32", "3208-1341-0438", "Hex-a-lowercase t", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_33", new LevelStats("survival_shuffle_3wk3_33", "3428-1566-3462", "Beta Jinxed", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_34", new LevelStats("survival_shuffle_3wk3_34", "3527-8682-8116", "The flood", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_35", new LevelStats("survival_shuffle_3wk3_35", "3661-3666-9198", "Explosive kraken!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_36", new LevelStats("survival_shuffle_3wk3_36", "3671-8547-1836", "Bean Abduction ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_37", new LevelStats("survival_shuffle_3wk3_37", "3791-6511-4335", "blast fall X", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_38", new LevelStats("survival_shuffle_3wk3_38", "4172-9873-8749", "HexaBoom", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_39", new LevelStats("survival_shuffle_3wk3_39", "4188-0907-7419", "グラグラ足場", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_40", new LevelStats("survival_shuffle_3wk3_40", "4251-8614-3769", "Floor-Fall-Survival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_41", new LevelStats("survival_shuffle_3wk3_41", "4264-0360-0093", "Batalha TRI-unFall", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_42", new LevelStats("survival_shuffle_3wk3_42", "4382-3330-4291", "Détonation arc en ciel", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_43", new LevelStats("survival_shuffle_3wk3_43", "4392-5300-4575", "Rustic Jungle", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_44", new LevelStats("survival_shuffle_3wk3_44", "4455-5622-2163", "SLIME BLOCK PARTY", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_45", new LevelStats("survival_shuffle_3wk3_45", "4596-4641-4616", "チーム(すもう)サバイバル!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_46", new LevelStats("survival_shuffle_3wk3_46", "4653-5999-1391", "Hex-apple", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_47", new LevelStats("survival_shuffle_3wk3_47", "4720-2495-9093", "Aggro-Crag", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_48", new LevelStats("survival_shuffle_3wk3_48", "4818-4221-0210", "Frenzied Factory", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_49", new LevelStats("survival_shuffle_3wk3_49", "4826-9515-9703", "AIR BATTLE", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_50", new LevelStats("survival_shuffle_3wk3_50", "4827-7320-3185", "The Bean-rena", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_51", new LevelStats("survival_shuffle_3wk3_51", "4914-5911-0459", "Hex-A-Joust", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_52", new LevelStats("survival_shuffle_3wk3_52", "5074-6268-1076", "Lake in the mountains", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_53", new LevelStats("survival_shuffle_3wk3_53", "5077-7412-9484", "Tronco Gigante", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_54", new LevelStats("survival_shuffle_3wk3_54", "5195-2202-2639", "Whirling Arena", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_55", new LevelStats("survival_shuffle_3wk3_55", "5240-1134-1386", "Block Battle - Survive ", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_56", new LevelStats("survival_shuffle_3wk3_56", "5444-9207-7160", "Hot Shots", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_57", new LevelStats("survival_shuffle_3wk3_57", "5563-4288-6969", "Gladiators", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_58", new LevelStats("survival_shuffle_3wk3_58", "5681-7436-8272", "The Falliseum", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_59", new LevelStats("survival_shuffle_3wk3_59", "5728-5438-6738", "Blast Chaos", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_60", new LevelStats("survival_shuffle_3wk3_60", "5870-6641-3350", "Blast Ball Reveal", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_61", new LevelStats("survival_shuffle_3wk3_61", "5886-6505-7182", "終末列車", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_62", new LevelStats("survival_shuffle_3wk3_62", "6058-1120-3920", "Kraken x balls x boxing", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_63", new LevelStats("survival_shuffle_3wk3_63", "6137-2890-9096", "Gum survival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_64", new LevelStats("survival_shuffle_3wk3_64", "6244-1907-1839", "スライム研究室", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_65", new LevelStats("survival_shuffle_3wk3_65", "6284-4465-5978", "BEAN’S FIRST MATH TEST", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_66", new LevelStats("survival_shuffle_3wk3_66", "6330-2586-0857", "Fight Land", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_67", new LevelStats("survival_shuffle_3wk3_67", "6374-0140-7969", "Colour switch", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_68", new LevelStats("survival_shuffle_3wk3_68", "6511-8334-3856", "Fall Royale", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_69", new LevelStats("survival_shuffle_3wk3_69", "6707-0400-3226", "デジタルランティス", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_70", new LevelStats("survival_shuffle_3wk3_70", "6882-0818-1725", "MAME RING", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_71", new LevelStats("survival_shuffle_3wk3_71", "6909-5244-6714", "detonates atlantis", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_72", new LevelStats("survival_shuffle_3wk3_72", "6927-3452-0491", "Flower Punch", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_73", new LevelStats("survival_shuffle_3wk3_73", "7054-1633-5355", "Wobbly arena", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_74", new LevelStats("survival_shuffle_3wk3_74", "7077-1002-7764", "TURMOIL--POWER UP PANIC", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_75", new LevelStats("survival_shuffle_3wk3_75", "7299-4057-9330", "Why is it Spicy", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_76", new LevelStats("survival_shuffle_3wk3_76", "7343-5007-7151", "Skywars Guys - Freshlands Valley", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_77", new LevelStats("survival_shuffle_3wk3_77", "7452-6159-2747", "Slime Crater", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_78", new LevelStats("survival_shuffle_3wk3_78", "7578-6522-1809", "ボタンコンフュージョン", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_79", new LevelStats("survival_shuffle_3wk3_79", "7840-6223-0113", "tournement de couleur", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_80", new LevelStats("survival_shuffle_3wk3_80", "7872-1773-2807", "Boxeo V69", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_81", new LevelStats("survival_shuffle_3wk3_81", "8156-6770-2256", "fall in a storm", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_82", new LevelStats("survival_shuffle_3wk3_82", "8267-1155-7348", "BATTLE IN THE SEAS", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_83", new LevelStats("survival_shuffle_3wk3_83", "8311-1488-3577", "Rebellion of block ver2", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + // { "survival_shuffle_wk11_86", new LevelStats("survival_shuffle_wk11_86", "7544-7533-7945", "ブラストボールエンド", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_86", new LevelStats("survival_shuffle_3wk3_86", "8365-3577-1583", "怒りのすとんぴんぐ・ぐらうんど", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_87", new LevelStats("survival_shuffle_3wk3_87", "8397-6411-4987", "Jump Show Fall", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_88", new LevelStats("survival_shuffle_3wk3_88", "8397-9401-8989", "カウントブロック", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_89", new LevelStats("survival_shuffle_3wk3_89", "8441-1224-7850", "Hex-A-Lava", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_90", new LevelStats("survival_shuffle_3wk3_90", "8443-7586-0231", "Mario", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_91", new LevelStats("survival_shuffle_3wk3_91", "8674-6308-1071", "Magma Meltdown", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_92", new LevelStats("survival_shuffle_3wk3_92", "8721-9215-9889", "ROOFTOP RUMBLE!", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_93", new LevelStats("survival_shuffle_3wk3_93", "8871-5123-4985", "émoussement arc en ciel", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_94", new LevelStats("survival_shuffle_3wk3_94", "9045-2750-1618", "Fall And Round", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_95", new LevelStats("survival_shuffle_3wk3_95", "9091-9952-6954", "深空蜂窝", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_96", new LevelStats("survival_shuffle_3wk3_96", "9169-1678-6253", "Pokémon Stadium", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_97", new LevelStats("survival_shuffle_3wk3_97", "9326-8400-2421", "Safari survival", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_98", new LevelStats("survival_shuffle_3wk3_98", "9348-0295-0429", "Slime Playground", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_99", new LevelStats("survival_shuffle_3wk3_99", "9386-9503-7393", "Hexagonal Fadeout", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_3wk3_100", new LevelStats("survival_shuffle_3wk3_100", "9389-5255-4720", "ランダムエッグスイッチアクション", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_mrs_ugc_playful_01", new LevelStats("wle_mrs_ugc_playful_01", "8908-1940-0497", "Neon pipe run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_02", new LevelStats("wle_mrs_ugc_playful_02", "2867-0835-7816", "SUNKEN CIRCUIT", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_03", new LevelStats("wle_mrs_ugc_playful_03", "2551-6449-0519", "Blundercity Marathon", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_04", new LevelStats("wle_mrs_ugc_playful_04", "7520-5431-3852", "Rainbow highway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_05", new LevelStats("wle_mrs_ugc_playful_05", "5068-9083-5381", "Rainbow Riptide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_06", new LevelStats("wle_mrs_ugc_playful_06", "8870-4187-1043", "Past passage", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_07", new LevelStats("wle_mrs_ugc_playful_07", "9403-5474-4900", "Sandcastle Kingdom", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_08", new LevelStats("wle_mrs_ugc_playful_08", "0697-2122-9317", "Jumping Season", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_09", new LevelStats("wle_mrs_ugc_playful_09", "3959-3547-5785", "Fall Stars", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_10", new LevelStats("wle_mrs_ugc_playful_10", "0389-6298-7535", "Medieval Sprint ", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_11", new LevelStats("wle_mrs_ugc_playful_11", "4739-4043-8717", "SPRING MOUNTAIN", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_12", new LevelStats("wle_mrs_ugc_playful_12", "8971-3755-4404", "NAUTICAL SHAMBLE", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_13", new LevelStats("wle_mrs_ugc_playful_13", "5002-7599-6118", "The Last Winter", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_ugc_playful_14", new LevelStats("wle_mrs_ugc_playful_14", "4523-2470-8408", "SHOWRUNNERS WAREHOUSE -", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "playful_shuffle_01", new LevelStats("playful_shuffle_01", "0004-5893-0704", "Fiebre medieval", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_02", new LevelStats("playful_shuffle_02", "0017-7310-4536", "Triple Trial", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_03", new LevelStats("playful_shuffle_03", "0038-3708-8148", "Trees (Waterfall)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_04", new LevelStats("playful_shuffle_04", "0029-0609-0668", "Heaven's Gateway!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_05", new LevelStats("playful_shuffle_05", "0137-6344-1903", "plat guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_06", new LevelStats("playful_shuffle_06", "0166-5868-8010", "震えるキャベツ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_07", new LevelStats("playful_shuffle_07", "0213-2251-4092", "Winter Wallop", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_08", new LevelStats("playful_shuffle_08", "0226-3217-4450", "Multi Leaper", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_09", new LevelStats("playful_shuffle_09", "0231-6268-1173", "Golden Poodles", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_10", new LevelStats("playful_shuffle_10", "0235-0676-8481", "ストレートスタンブル", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_11", new LevelStats("playful_shuffle_11", "0310-6455-1252", "Easy Fun Speedrun", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_12", new LevelStats("playful_shuffle_12", "0346-2654-6607", "RUN RUN Park", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_13", new LevelStats("playful_shuffle_13", "0213-2251-4092", "Winter Wallop", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_14", new LevelStats("playful_shuffle_14", "0369-0390-5759", "ごちゃごちゃストリート", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_15", new LevelStats("playful_shuffle_15", "0446-4709-8460", "Conveyors Obstacles", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_16", new LevelStats("playful_shuffle_16", "0280-4814-3193", "Colorful World", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_17", new LevelStats("playful_shuffle_17", "0554-4154-9737", "Green Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_18", new LevelStats("playful_shuffle_18", "0622-6707-7933", "Ancient Fallstronomers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_19", new LevelStats("playful_shuffle_19", "0654-7822-6578", "+slidin' in the air+ 10k play special", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_20", new LevelStats("playful_shuffle_20", "0697-2122-9317", "Jumping Season", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_21", new LevelStats("playful_shuffle_21", "0699-6517-1735", "Track attackers system", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_22", new LevelStats("playful_shuffle_22", "0754-1211-1552", "CASTLE CLASH", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_23", new LevelStats("playful_shuffle_23", "0589-5895-3052", "jungle fun run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_24", new LevelStats("playful_shuffle_24", "0798-0793-5369", "Falling Dreams", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_25", new LevelStats("playful_shuffle_25", "0871-6676-7946", "ロケットでうちあげだ 2", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_26", new LevelStats("playful_shuffle_26", "0880-4013-3410", "The Terrible Spiral Of Woo Remake", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_27", new LevelStats("playful_shuffle_27", "1029-9755-4811", "Rainbow Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_28", new LevelStats("playful_shuffle_28", "1038-1047-7823", "TruPixel's Jungle Mash-up", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_29", new LevelStats("playful_shuffle_29", "0673-2850-5823", "Crown Canyon", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_30", new LevelStats("playful_shuffle_30", "1091-2876-4312", "Monochromatic Manic", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_31", new LevelStats("playful_shuffle_31", "0742-5047-0072", "Volcanic Island Travel!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_32", new LevelStats("playful_shuffle_32", "0753-1016-1631", "JUMP AROUND!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_33", new LevelStats("playful_shuffle_33", "1367-9649-7097", "Ramp It Up!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_34", new LevelStats("playful_shuffle_34", "1414-9922-3370", "Adrenaline Force 2", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_35", new LevelStats("playful_shuffle_35", "1447-3215-4661", "DIGITAL MADNESS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_36", new LevelStats("playful_shuffle_36", "1563-4332-2748", "Cosmic Pipes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_37", new LevelStats("playful_shuffle_37", "1575-9818-1738", "Milky way", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_38", new LevelStats("playful_shuffle_38", "1732-0477-7618", "Snow Style", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_39", new LevelStats("playful_shuffle_39", "1853-3366-4204", "Data Dash ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_40", new LevelStats("playful_shuffle_40", "1854-3346-5058", "Caida resbaladisa", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_41", new LevelStats("playful_shuffle_41", "1860-8855-5659", "Frostbite Speed Fall Slider", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_42", new LevelStats("playful_shuffle_42", "1865-0213-5397", "Snow Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_43", new LevelStats("playful_shuffle_43", "7005-1715-9295", "Royale Tower", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_44", new LevelStats("playful_shuffle_44", "1948-7911-1902", "Cosmic Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_45", new LevelStats("playful_shuffle_45", "2279-3142-3151", "Overclocked", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_46", new LevelStats("playful_shuffle_46", "2328-6643-0869", " Wild Dunes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_47", new LevelStats("playful_shuffle_47", "2515-9984-9835", "Flutter-by!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_48", new LevelStats("playful_shuffle_48", "2551-6449-0519", "Blundercity Marathon", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_50", new LevelStats("playful_shuffle_50", "2630-5425-3491", "Pixel Circuit像素环游", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_51", new LevelStats("playful_shuffle_51", "2839-4160-0713", "Stars Guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_52", new LevelStats("playful_shuffle_52", "2867-0835-7816", "SUNKEN CIRCUIT", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_54", new LevelStats("playful_shuffle_54", "2952-2780-7718", "Pocket Summit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_55", new LevelStats("playful_shuffle_55", "2981-1792-2094", "Love a day", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_56", new LevelStats("playful_shuffle_56", "3080-8437-1592", "Passage imbroglio arc en ciel ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_58", new LevelStats("playful_shuffle_58", "3670-0134-3335", "コズミックミュージック COSMIC MUSIC", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_shuffle_59", new LevelStats("playful_shuffle_59", "3696-1196-2846", "glissoire arc en ciel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "playful_refresh_w2_01", new LevelStats("playful_refresh_w2_01", "0213-2251-4092", "Winter Wallop", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_02", new LevelStats("playful_refresh_w2_02", "0226-3217-4450", "Multi Leaper", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_03", new LevelStats("playful_refresh_w2_03", "0235-0676-8481", "ストレートスタンブル", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_04", new LevelStats("playful_refresh_w2_04", "0346-2654-6607", "RUN RUN Park", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_05", new LevelStats("playful_refresh_w2_05", "0363-3045-6071", "やってみな!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_06", new LevelStats("playful_refresh_w2_06", "0369-0390-5759", "ごちゃごちゃストリート", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_07", new LevelStats("playful_refresh_w2_07", "0446-4709-8460", "Conveyors Obstacles", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_08", new LevelStats("playful_refresh_w2_08", "0530-6687-3285", "Seeing The Bean Ball", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_09", new LevelStats("playful_refresh_w2_09", "0554-4154-9737", "Green Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_10", new LevelStats("playful_refresh_w2_10", "0622-6707-7933", "Ancient Fallstronomers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_11", new LevelStats("playful_refresh_w2_11", "0697-2122-9317", "Jumping Season", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_12", new LevelStats("playful_refresh_w2_12", "0699-6517-1735", "Track attackers system", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_13", new LevelStats("playful_refresh_w2_13", "0754-1211-1552", "CASTLE CLASH", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_14", new LevelStats("playful_refresh_w2_14", "0880-4013-3410", "The Terrible Spiral Of Woo Remake", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_15", new LevelStats("playful_refresh_w2_15", "1029-9755-4811", "Rainbow Dash", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_16", new LevelStats("playful_refresh_w2_16", "1038-1047-7823", "TruPixel's Jungle Mash-up", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_17", new LevelStats("playful_refresh_w2_17", "1046-2165-1393", "fall-in space", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_18", new LevelStats("playful_refresh_w2_18", "1091-2876-4312", "Monochromatic Manic", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_19", new LevelStats("playful_refresh_w2_19", "1414-9922-3370", "Adrenaline Force 2", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_20", new LevelStats("playful_refresh_w2_20", "1447-3215-4661", "DIGITAL MADNESS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_21", new LevelStats("playful_refresh_w2_21", "1853-3366-4204", "Data Dash ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_22", new LevelStats("playful_refresh_w2_22", "1854-3346-5058", "Caida resbaladisa", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_23", new LevelStats("playful_refresh_w2_23", "1865-0213-5397", "Snow Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_24", new LevelStats("playful_refresh_w2_24", "2304-1640-5834", "Orange And Blue Leapers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_25", new LevelStats("playful_refresh_w2_25", "2328-6643-0869", " Wild Dunes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_26", new LevelStats("playful_refresh_w2_26", "2551-6449-0519", "Blundercity Marathon", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_27", new LevelStats("playful_refresh_w2_27", "2952-2780-7718", "Pocket Summit", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_28", new LevelStats("playful_refresh_w2_28", "2981-1792-2094", "Love a day", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_29", new LevelStats("playful_refresh_w2_29", "3080-8437-1592", "Passage imbroglio arc en ciel ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_30", new LevelStats("playful_refresh_w2_30", "3959-3547-5785", "Fall Stars", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_31", new LevelStats("playful_refresh_w2_31", "4739-4043-8717", "SPRING MOUNTAIN", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_32", new LevelStats("playful_refresh_w2_32", "4837-5178-6772", "AquArsene", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_33", new LevelStats("playful_refresh_w2_33", "5068-9083-5381", "Rainbow Riptide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_34", new LevelStats("playful_refresh_w2_34", "5294-9437-7902", "Cluster Cosmos", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_35", new LevelStats("playful_refresh_w2_35", "6153-5163-7083", "Koala kingdom", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_36", new LevelStats("playful_refresh_w2_36", "6244-4430-5722", "Fallyager 12 Repair Mission", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_37", new LevelStats("playful_refresh_w2_37", "6328-5723-7735", "Lily River Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_38", new LevelStats("playful_refresh_w2_38", "6375-3876-0944", "STARLIGHT STUMBLE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_39", new LevelStats("playful_refresh_w2_39", "6487-3751-6889", "Welcome to Namek", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_40", new LevelStats("playful_refresh_w2_40", "7520-5431-3852", "Rainbow highway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_41", new LevelStats("playful_refresh_w2_41", "8870-4187-1043", "Past passage", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_42", new LevelStats("playful_refresh_w2_42", "8908-1940-0497", "Neon pipe run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "playful_refresh_w2_43", new LevelStats("playful_refresh_w2_43", "8971-3755-4404", "NAUTICAL SHAMBLE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_shuggle_mwk3_01", new LevelStats("wle_shuggle_mwk3_01", "0016-2247-3797", "Ariko Jones", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_02", new LevelStats("wle_shuggle_mwk3_02", "0017-7310-4536", "Triple Trial", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_03", new LevelStats("wle_shuggle_mwk3_03", "0127-8839-5638", "Aerial Squirrel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_04", new LevelStats("wle_shuggle_mwk3_04", "0147-3266-6811", "ギリギリアウトチャレンジ公式競技場 1", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_05", new LevelStats("wle_shuggle_mwk3_05", "0166-6349-5228", "シンスモウ(ブラストボール)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_06", new LevelStats("wle_shuggle_mwk3_06", "0213-2251-4092", "Winter Wallop", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_07", new LevelStats("wle_shuggle_mwk3_07", "0330-7381-3747", "リリーリーパー再現", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_08", new LevelStats("wle_shuggle_mwk3_08", "0431-7366-4778", "Wilderness Adventures!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_09", new LevelStats("wle_shuggle_mwk3_09", "0435-3207-7953", "Rets arc en ciel", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_10", new LevelStats("wle_shuggle_mwk3_10", "0454-3246-8708", "egypt park", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_11", new LevelStats("wle_shuggle_mwk3_11", "0554-4154-9737", "Green Mountain", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_12", new LevelStats("wle_shuggle_mwk3_12", "0566-7887-8195", "super speedrun", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_13", new LevelStats("wle_shuggle_mwk3_13", "0588-7062-5834", "ULTRA MEGA EXTREME HARD!!!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_14", new LevelStats("wle_shuggle_mwk3_14", "0623-9987-7536", "Заурядные Белки", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_15", new LevelStats("wle_shuggle_mwk3_15", "0651-7701-2012", "Digital keyboard 😜✌️", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_16", new LevelStats("wle_shuggle_mwk3_16", "0685-3423-6379", "artistic ELIMINATED challenge 1", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_17", new LevelStats("wle_shuggle_mwk3_17", "0696-1790-8690", "TAKOのツボ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_18", new LevelStats("wle_shuggle_mwk3_18", "0697-2122-9317", "Jumping Season", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_19", new LevelStats("wle_shuggle_mwk3_19", "0700-4696-5747", "Black", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_20", new LevelStats("wle_shuggle_mwk3_20", "0722-4870-7085", "Digital Climb 3 ~Rainbow~", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_21", new LevelStats("wle_shuggle_mwk3_21", "0742-5047-0072", "Volcanic Island Travel!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_22", new LevelStats("wle_shuggle_mwk3_22", "0754-8795-4935", "Sky Ball", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_23", new LevelStats("wle_shuggle_mwk3_23", "0764-6218-3172", "Space Race Remake", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_24", new LevelStats("wle_shuggle_mwk3_24", "0850-4321-4720", "危険なリス", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_25", new LevelStats("wle_shuggle_mwk3_25", "0894-4597-7070", "Summer and the Wonder land of the Sea", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_26", new LevelStats("wle_shuggle_mwk3_26", "0961-1599-0100", "Skim City", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_27", new LevelStats("wle_shuggle_mwk3_27", "0962-8301-8218", "Prova do campeão (Champion Round) ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_28", new LevelStats("wle_shuggle_mwk3_28", "1006-0078-9769", "Жёлтые Нарвалы", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_29", new LevelStats("wle_shuggle_mwk3_29", "1036-0474-0827", "Tropical Punch", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_30", new LevelStats("wle_shuggle_mwk3_30", "1091-6929-8271", "away from the slime", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_31", new LevelStats("wle_shuggle_mwk3_31", "1223-3980-6290", "キョダイMAX黒き天空龍!PFNo02", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_32", new LevelStats("wle_shuggle_mwk3_32", "1441-7635-4209", "Yellow Kingdoms", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_33", new LevelStats("wle_shuggle_mwk3_33", "1575-9818-1738", "Milky way", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_34", new LevelStats("wle_shuggle_mwk3_34", "1646-1039-8191", "SPACE ROUND", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_35", new LevelStats("wle_shuggle_mwk3_35", "1686-1103-6548", "Speedy Bounces", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_36", new LevelStats("wle_shuggle_mwk3_36", "1732-0477-7618", "Snow Style", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_37", new LevelStats("wle_shuggle_mwk3_37", "1732-3145-6162", "bunny leapers V8", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_38", new LevelStats("wle_shuggle_mwk3_38", "1839-9959-6470", "Mushroom", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_39", new LevelStats("wle_shuggle_mwk3_39", "1853-3366-4204", "Data Dash ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_40", new LevelStats("wle_shuggle_mwk3_40", "1899-0629-5726", "RUTA EN LA SELVA", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_41", new LevelStats("wle_shuggle_mwk3_41", "1943-9925-1869", "Button infected desert temple", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_42", new LevelStats("wle_shuggle_mwk3_42", "1963-4340-5785", "Carreira colorida", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_43", new LevelStats("wle_shuggle_mwk3_43", "1970-7426-6616", "Cargo Drop", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_44", new LevelStats("wle_shuggle_mwk3_44", "1974-8763-5636", "green dash ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_45", new LevelStats("wle_shuggle_mwk3_45", "2180-7224-3921", "Jungle Guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_46", new LevelStats("wle_shuggle_mwk3_46", "2202-8340-1339", "Golden gates", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_47", new LevelStats("wle_shuggle_mwk3_47", "2247-9049-7915", "Evil Guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_48", new LevelStats("wle_shuggle_mwk3_48", "2304-1640-5834", "Orange And Blue Leapers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_49", new LevelStats("wle_shuggle_mwk3_49", "2322-4623-3051", "Plinko Fall", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_50", new LevelStats("wle_shuggle_mwk3_50", "2416-5417-8639", "Digital Bean Stumble (V2)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_51", new LevelStats("wle_shuggle_mwk3_51", "2432-3154-0723", "Estareo's Lele Lembe v9", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_52", new LevelStats("wle_shuggle_mwk3_52", "2515-2414-0355", "THE GATE OF TRUTH", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_53", new LevelStats("wle_shuggle_mwk3_53", "2515-9984-9835", "Flutter-by!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_54", new LevelStats("wle_shuggle_mwk3_54", "2548-0993-9070", "Sketchy Sledding!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_55", new LevelStats("wle_shuggle_mwk3_55", "2567-4398-2792", "A Cold Race", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_56", new LevelStats("wle_shuggle_mwk3_56", "2621-1219-7680", "X-Treme MegaKaizo Ultra Fall GuysHardest", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_57", new LevelStats("wle_shuggle_mwk3_57", "2688-6137-6642", "Snow Speed", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_58", new LevelStats("wle_shuggle_mwk3_58", "2843-7203-8790", "Bean Fantasy", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_59", new LevelStats("wle_shuggle_mwk3_59", "2894-6598-3430", "Runner(For Fame Pass)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_60", new LevelStats("wle_shuggle_mwk3_60", "2896-9028-2913", "French Station", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_61", new LevelStats("wle_shuggle_mwk3_61", "2950-3083-4160", "slime climb Creative", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_62", new LevelStats("wle_shuggle_mwk3_62", "3026-8984-5105", "CLASSROOM(PART 2)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_63", new LevelStats("wle_shuggle_mwk3_63", "3029-9759-3996", "Chilly Leapers ", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_64", new LevelStats("wle_shuggle_mwk3_64", "3115-3312-8632", "Fall Bridge", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_65", new LevelStats("wle_shuggle_mwk3_65", "3378-8118-1218", "快感快速!!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_66", new LevelStats("wle_shuggle_mwk3_66", "3542-7905-5715", "Jungle Guys II", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_67", new LevelStats("wle_shuggle_mwk3_67", "3670-0134-3335", "コズミックミュージック COSMIC MUSIC", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_68", new LevelStats("wle_shuggle_mwk3_68", "3858-3881-8519", "Satellite Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_69", new LevelStats("wle_shuggle_mwk3_69", "4287-6061-0329", "GROOVIN’ BANANA TEMPLE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_70", new LevelStats("wle_shuggle_mwk3_70", "4392-5130-0924", "Rumble Tumble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_71", new LevelStats("wle_shuggle_mwk3_71", "4408-2938-3987", "Fashion Show!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_72", new LevelStats("wle_shuggle_mwk3_72", "4497-6655-3043", "DROP TOWER 蹦极塔", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_73", new LevelStats("wle_shuggle_mwk3_73", "4585-5675-1320", "Boggle-Bean Bridges", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_74", new LevelStats("wle_shuggle_mwk3_74", "4837-5178-6772", "AquArsene", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_75", new LevelStats("wle_shuggle_mwk3_75", "4851-1075-4536", "Winter Games", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_76", new LevelStats("wle_shuggle_mwk3_76", "4927-7823-6835", "LOONEY TUNES", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_77", new LevelStats("wle_shuggle_mwk3_77", "6086-4950-5913", "atlan-sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_78", new LevelStats("wle_shuggle_mwk3_78", "6153-5163-7083", "Koala kingdom", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_79", new LevelStats("wle_shuggle_mwk3_79", "6262-8474-0608", "straight500", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_80", new LevelStats("wle_shuggle_mwk3_80", "6326-6889-1828", "BIG CROWN MONUMENT", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_81", new LevelStats("wle_shuggle_mwk3_81", "6328-5723-7735", "Lily River Run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_82", new LevelStats("wle_shuggle_mwk3_82", "6350-1354-8129", "Skyball", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_83", new LevelStats("wle_shuggle_mwk3_83", "6375-3876-0944", "STARLIGHT STUMBLE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_84", new LevelStats("wle_shuggle_mwk3_84", "7013-5023-4631", "Speedway 2069", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_85", new LevelStats("wle_shuggle_mwk3_85", "7187-1903-2769", "GOLD RUSH", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_86", new LevelStats("wle_shuggle_mwk3_86", "7320-4692-4771", "Data Eraser", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_87", new LevelStats("wle_shuggle_mwk3_87", "7453-5883-9462", "FESTIVE CROSSROADS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_88", new LevelStats("wle_shuggle_mwk3_88", "7520-5431-3852", "Rainbow highway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_89", new LevelStats("wle_shuggle_mwk3_89", "7567-4732-0705", "Candyland", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_90", new LevelStats("wle_shuggle_mwk3_90", "7598-2752-9626", "hex-a-run", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_91", new LevelStats("wle_shuggle_mwk3_91", "8134-7974-0636", "Rover Rumble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_92", new LevelStats("wle_shuggle_mwk3_92", "8233-5350-1971", "MEOW MEOW GALAXY", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_93", new LevelStats("wle_shuggle_mwk3_93", "8299-2426-0811", "Speedy Lovers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_94", new LevelStats("wle_shuggle_mwk3_94", "8550-8800-2195", "THE Rivalry Game (Football)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_95", new LevelStats("wle_shuggle_mwk3_95", "8564-5675-2490", "MARIPEN PHOTOLOCATION(Digital)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_96", new LevelStats("wle_shuggle_mwk3_96", "8750-6874-5611", "Olympique Guys", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_97", new LevelStats("wle_shuggle_mwk3_97", "9103-2046-6006", "Boo City", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_98", new LevelStats("wle_shuggle_mwk3_98", "9223-1389-7064", "CARNIVORUS PLANTS", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_99", new LevelStats("wle_shuggle_mwk3_99", "9933-2609-1716", "はしるまくれ!⊂{◎Å◎}⊃", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuggle_mwk3_100", new LevelStats("wle_shuggle_mwk3_100", "9940-9126-5136", "Crazy Coaster", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_mrs_winter_opener_01", new LevelStats("wle_mrs_winter_opener_01", "5595-1042-3285", "Winter Blunderland", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_opener_02", new LevelStats("wle_mrs_winter_opener_02", "6176-9974-0928", "Frosty fiesta", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_opener_03", new LevelStats("wle_mrs_winter_opener_03", "2964-4225-1009", "Knight Slide", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_opener_04", new LevelStats("wle_mrs_winter_opener_04", "4752-4654-0294", "Digi-Snow Stumble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_opener_05", new LevelStats("wle_mrs_winter_opener_05", "2359-6697-9703", "Snowy Cave-in", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_opener_06", new LevelStats("wle_mrs_winter_opener_06", "0479-2414-1882", "Ice Confusion Cave(アイスコンフュージョンケイブ)", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_opener_07", new LevelStats("wle_mrs_winter_opener_07", "2567-4398-2792", "A Cold Race", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_opener_08", new LevelStats("wle_mrs_winter_opener_08", "1049-2864-9558", "Ice Rock", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_filler_01", new LevelStats("wle_mrs_winter_filler_01", "5121-0443-6799", "Snowy Flakes", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_filler_02", new LevelStats("wle_mrs_winter_filler_02", "3203-4873-4429", "Mountain of Ice", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_filler_03", new LevelStats("wle_mrs_winter_filler_03", "9733-4501-0061", "FROSTY FUMBLE", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_filler_04", new LevelStats("wle_mrs_winter_filler_04", "9367-9078-0476", "Winter Getaway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_filler_05", new LevelStats("wle_mrs_winter_filler_05", "4691-8677-1597", "Snowy Speed Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_filler_06", new LevelStats("wle_mrs_winter_filler_06", "5708-2311-5326", "WINTER WONDERLAND", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_filler_07", new LevelStats("wle_mrs_winter_filler_07", "8535-2892-6407", "Gran Glaciar Paradicial", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_final_01", new LevelStats("wle_mrs_winter_final_01", "2576-3113-2321", "The Ice Dragon's Lair", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_final_02", new LevelStats("wle_mrs_winter_final_02", "6493-0242-7613", "Winter Wonderland", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_final_03", new LevelStats("wle_mrs_winter_final_03", "5422-3243-4290", "Snowman Sprint", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_final_04", new LevelStats("wle_mrs_winter_final_04", "9498-6752-8838", "MERRY CLIMBING!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_winter_final_05", new LevelStats("wle_mrs_winter_final_05", "6493-0242-7613", "Winter Wonderland", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_s10_bt_round_001", new LevelStats("wle_s10_bt_round_001", "9334-9348-1212", "Push Ups", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_bt_round_002", new LevelStats("wle_s10_bt_round_002", "9596-6865-9561", "Heave & Haul", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_bt_round_003", new LevelStats("wle_s10_bt_round_003", "1575-3397-3154", "Stepping Stones", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_bt_round_004", new LevelStats("wle_s10_bt_round_004", "4676-0921-9816", "Double Trouble", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_s10_cf_round_001", new LevelStats("wle_s10_cf_round_001", "5065-6325-4646", "Blocky Bridges", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_cf_round_002", new LevelStats("wle_s10_cf_round_002", "6581-1890-6801", "Gappy-go-Lucky", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_cf_round_003", new LevelStats("wle_s10_cf_round_003", "6656-2033-4324", "Drop n' Drag", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_cf_round_004", new LevelStats("wle_s10_cf_round_004", "7277-7302-9886", "Fun with Fans", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_mrs_bagel_opener_1", new LevelStats("wle_mrs_bagel_opener_1", "9100-1195-6052", "Tunnel of Love", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bagel_opener_2", new LevelStats("wle_mrs_bagel_opener_2", "9299-0471-0746", "Pink Parade", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bagel_opener_3", new LevelStats("wle_mrs_bagel_opener_3", "4805-7882-8305", "Prideful Path", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bagel_opener_4", new LevelStats("wle_mrs_bagel_opener_4", "9840-2154-6787", "Coming Together", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bagel_filler_1", new LevelStats("wle_mrs_bagel_filler_1", "8176-1884-5016", "Clifftop Capers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bagel_filler_2", new LevelStats("wle_mrs_bagel_filler_2", "1008-8179-1628", "Waveway Splits", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bagel_filler_3", new LevelStats("wle_mrs_bagel_filler_3", "3947-7683-6106", "In the Groove", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bagel_filler_4", new LevelStats("wle_mrs_bagel_filler_4", "8489-4249-0438", "Heartfall Heat", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bagel_final_1", new LevelStats("wle_mrs_bagel_final_1", "7476-9346-3120", "Rainbow Rise", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_bagel_final_2", new LevelStats("wle_mrs_bagel_final_2", "9201-4959-0276", "Out and About", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_s10_orig_round_010", new LevelStats("wle_s10_orig_round_010", "0733-6671-4871", "Square Up", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_011", new LevelStats("wle_s10_orig_round_011", "6498-0353-5009", "Slide Showdown", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_017", new LevelStats("wle_s10_orig_round_017", "7774-2277-5742", "Bellyflop Battlers", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_018", new LevelStats("wle_s10_orig_round_018", "2228-9895-3526", "Apples & Oranges", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_024", new LevelStats("wle_s10_orig_round_024", "7652-0829-4538", "Wooseleum", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_025", new LevelStats("wle_s10_orig_round_025", "1976-1259-2690", "Mount Boom", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_030", new LevelStats("wle_s10_orig_round_030", "4694-8620-4972", "Mega Monument", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_orig_round_031", new LevelStats("wle_s10_orig_round_031", "6464-4069-3540", "Transfer Turnpike", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_004", new LevelStats("wle_s10_round_004", "8993-4568-6925", "Parkour Panic", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_s10_round_009", new LevelStats("wle_s10_round_009", "7495-5141-5265", "Firewall Finale", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_main_filler_01", new LevelStats("wle_main_filler_01", "1899-0629-5726", "Ruta en la selva", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_main_filler_02", new LevelStats("wle_main_filler_02", "5780-8198-0947", "ROTATION STATION", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_main_filler_03", new LevelStats("wle_main_filler_03", "8123-8432-9611", "canyon sun day", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_main_opener_01", new LevelStats("wle_main_opener_01", "2567-3257-6492", "Winter Disc-O", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_main_opener_02", new LevelStats("wle_main_opener_02", "3858-3881-8519", "Satellite Sprint", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_mrs_survival_showdown_opener", new LevelStats("wle_mrs_survival_showdown_opener", "1035-7942-0514", "Slime Surfers", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_survival_showdown_opener_01", new LevelStats("wle_mrs_survival_showdown_opener_01", "4729-4530-3888", "Bean Fort", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_survival_showdown_opener_02", new LevelStats("wle_mrs_survival_showdown_opener_02", "1093-0713-2192", "Back & Forth", LevelType.Survival, BestRecordType.Longest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_survival_showdown_final", new LevelStats("wle_mrs_survival_showdown_final", "3708-4701-3392", "Hectic Hexagons", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_survival_showdown_final_01", new LevelStats("wle_mrs_survival_showdown_final_01", "9013-8325-3144", "Cosmic Clash", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_survival_showdown_final_02", new LevelStats("wle_mrs_survival_showdown_final_02", "0268-5166-3980", "Bouncy Castle", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_survival_showdown_final_04", new LevelStats("wle_mrs_survival_showdown_final_04", "1534-2904-1182", "Volcanic Chaos", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "wle_shuffle_survival_m3wk4_01", new LevelStats("wle_shuffle_survival_m3wk4_01", "0011-1320-3872", "Hex-a-Disco (20p Version)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_02", new LevelStats("wle_shuffle_survival_m3wk4_02", "0099-2672-5160", "今日の運勢サバイバル", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_03", new LevelStats("wle_shuffle_survival_m3wk4_03", "0464-1541-5306", "MEOW-FO ROYALE", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_04", new LevelStats("wle_shuffle_survival_m3wk4_04", "0474-3586-9330", "SHOOTINGSTAR SHOWDOWN", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_05", new LevelStats("wle_shuffle_survival_m3wk4_05", "0652-9483-1801", "Invisible Party", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_06", new LevelStats("wle_shuffle_survival_m3wk4_06", "1128-0059-8370", "Carousel Mayhem", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_07", new LevelStats("wle_shuffle_survival_m3wk4_07", "1216-2863-7383", "ALLIANCE OF VALIANT GUYS", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_08", new LevelStats("wle_shuffle_survival_m3wk4_08", "1338-9463-8075", "255 STOMPIN' VOLCANOS", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_09", new LevelStats("wle_shuffle_survival_m3wk4_09", "1414-2132-3688", "聖帝導夢ランボー!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_10", new LevelStats("wle_shuffle_survival_m3wk4_10", "1589-2435-9639", "Hex-Sa-Vival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_11", new LevelStats("wle_shuffle_survival_m3wk4_11", "1700-5362-4267", "The Hex-A-Gon House", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_12", new LevelStats("wle_shuffle_survival_m3wk4_12", "1996-0003-9362", "スライムにおちるな!Don't fall into the slime!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_13", new LevelStats("wle_shuffle_survival_m3wk4_13", "2514-1760-3000", "Lord of the beans", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_14", new LevelStats("wle_shuffle_survival_m3wk4_14", "2789-0141-6815", "BLASTGON", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_15", new LevelStats("wle_shuffle_survival_m3wk4_15", "2830-5003-3900", "Fan-Attic-Blitz", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_16", new LevelStats("wle_shuffle_survival_m3wk4_16", "2897-8912-0806", "Sprayed Out", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_17", new LevelStats("wle_shuffle_survival_m3wk4_17", "2988-9050-3308", "サイバーマン", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_18", new LevelStats("wle_shuffle_survival_m3wk4_18", "3416-5297-4556", "pirates team battle", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_19", new LevelStats("wle_shuffle_survival_m3wk4_19", "3661-3666-9198", "Explosive kraken!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_20", new LevelStats("wle_shuffle_survival_m3wk4_20", "3968-5331-8087", "squid game glass floors", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_21", new LevelStats("wle_shuffle_survival_m3wk4_21", "4144-0419-9174", "アップダウンバトル", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_22", new LevelStats("wle_shuffle_survival_m3wk4_22", "4163-9502-8071", "Raft Rampage", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_23", new LevelStats("wle_shuffle_survival_m3wk4_23", "4392-5300-4575", "Rustic Jungle", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_24", new LevelStats("wle_shuffle_survival_m3wk4_24", "4596-4641-4616", "チーム(すもう)サバイバル!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_25", new LevelStats("wle_shuffle_survival_m3wk4_25", "4827-7320-3185", "The Bean-rena", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_26", new LevelStats("wle_shuffle_survival_m3wk4_26", "4841-5974-2295", "20秒障害物競走", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_27", new LevelStats("wle_shuffle_survival_m3wk4_27", "5563-4288-6969", "Gladiators", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_28", new LevelStats("wle_shuffle_survival_m3wk4_28", "5886-6505-7182", "終末列車", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_29", new LevelStats("wle_shuffle_survival_m3wk4_29", "6001-1303-6106", "Carnivalè Slime Survival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_30", new LevelStats("wle_shuffle_survival_m3wk4_30", "6137-2890-9096", "Gum survival UPDATE!!!!!!!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_31", new LevelStats("wle_shuffle_survival_m3wk4_31", "6224-0560-7372", "Safari trek", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_32", new LevelStats("wle_shuffle_survival_m3wk4_32", "6284-4465-5978", "BEAN’S FIRST MATH TEST", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_33", new LevelStats("wle_shuffle_survival_m3wk4_33", "6496-7227-2849", "JUMP SHOWDAWN", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_34", new LevelStats("wle_shuffle_survival_m3wk4_34", "6621-2101-3801", "Roll Out Explosion", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_35", new LevelStats("wle_shuffle_survival_m3wk4_35", "6952-4313-3646", "足場が動く!跳ねる! The box moves! And bounce!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_36", new LevelStats("wle_shuffle_survival_m3wk4_36", "7054-1633-5355", "Wobbly arena", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_37", new LevelStats("wle_shuffle_survival_m3wk4_37", "7299-4057-9330", "Why is it Spicy", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_38", new LevelStats("wle_shuffle_survival_m3wk4_38", "7450-6176-6965", "BLASTGON (01)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_39", new LevelStats("wle_shuffle_survival_m3wk4_39", "7556-1420-2397", "LOTION FAN SUMOU REBUILD", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_40", new LevelStats("wle_shuffle_survival_m3wk4_40", "7872-1773-2807", "Boxeo V69", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_41", new LevelStats("wle_shuffle_survival_m3wk4_41", "8124-9006-0815", "ワールド・オブ・ホーシップス", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_42", new LevelStats("wle_shuffle_survival_m3wk4_42", "8315-8171-7185", "ぺちぺちシャトルラン", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_43", new LevelStats("wle_shuffle_survival_m3wk4_43", "8336-5178-6601", "往復列車", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_44", new LevelStats("wle_shuffle_survival_m3wk4_44", "9157-5570-8782", "おじゃまシンロールファン", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_45", new LevelStats("wle_shuffle_survival_m3wk4_45", "9217-6968-6109", "Big Fans Arena", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_46", new LevelStats("wle_shuffle_survival_m3wk4_46", "9267-3421-5568", "Oct-o-Gone", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_47", new LevelStats("wle_shuffle_survival_m3wk4_47", "9326-8400-2421", "Safari survival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_48", new LevelStats("wle_shuffle_survival_m3wk4_48", "9391-6369-4478", "Broken Bridge", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_survival_m3wk4_49", new LevelStats("wle_shuffle_survival_m3wk4_49", "9862-6962-8949", "Sushi Skirmish", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_01", new LevelStats("wle_mrs_shuffle_show_m3wk4_01", "0220-1031-9817", "Extreme map", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_02", new LevelStats("wle_mrs_shuffle_show_m3wk4_02", "0421-8307-6405", "Transporte legalActualizado👀👀👀", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_03", new LevelStats("wle_mrs_shuffle_show_m3wk4_03", "0590-4290-8609", "Dutch Delight !!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_04", new LevelStats("wle_mrs_shuffle_show_m3wk4_04", "0775-4399-7283", "Snake2k__", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_05", new LevelStats("wle_mrs_shuffle_show_m3wk4_05", "0798-6886-9130", "Destruction-0 Lava Empire Galaxy", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_06", new LevelStats("wle_mrs_shuffle_show_m3wk4_06", "1069-4767-7690", "Lily or slider", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_07", new LevelStats("wle_mrs_shuffle_show_m3wk4_07", "1126-6911-7493", "April Fall Fools", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_08", new LevelStats("wle_mrs_shuffle_show_m3wk4_08", "1127-7835-9917", "Guitar Hero", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_09", new LevelStats("wle_mrs_shuffle_show_m3wk4_09", "1665-5006-4193", "King Of The Castle", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_10", new LevelStats("wle_mrs_shuffle_show_m3wk4_10", "1763-6024-3764", "Rijal so9ot wlad l97ab", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_11", new LevelStats("wle_mrs_shuffle_show_m3wk4_11", "1937-2040-9394", "とっくん!!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_12", new LevelStats("wle_mrs_shuffle_show_m3wk4_12", "1973-2729-5606", "PRECISION ORIGINS", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_13", new LevelStats("wle_mrs_shuffle_show_m3wk4_13", "1985-6763-3023", "THE FALLING 7 COLOURS OF THE RAINBOW", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_14", new LevelStats("wle_mrs_shuffle_show_m3wk4_14", "2499-8570-6470", "RACE 3", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_15", new LevelStats("wle_mrs_shuffle_show_m3wk4_15", "2563-1291-9926", "Verdens vanskeligaste banan", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_16", new LevelStats("wle_mrs_shuffle_show_m3wk4_16", "2735-2911-2712", "night fever in the style", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_17", new LevelStats("wle_mrs_shuffle_show_m3wk4_17", "3005-4531-1098", "EZ track (Vietnam Edition)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_18", new LevelStats("wle_mrs_shuffle_show_m3wk4_18", "3017-6080-1270", "くらげこん1", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_19", new LevelStats("wle_mrs_shuffle_show_m3wk4_19", "3115-3312-8632", "Fall Bridge", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_20", new LevelStats("wle_mrs_shuffle_show_m3wk4_20", "3228-8151-0856", "Roll With it!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_21", new LevelStats("wle_mrs_shuffle_show_m3wk4_21", "3542-7905-5715", "Jungle Guys II", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_22", new LevelStats("wle_mrs_shuffle_show_m3wk4_22", "4036-7811-2044", "Space Arcade", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_23", new LevelStats("wle_mrs_shuffle_show_m3wk4_23", "4382-9645-4115", "HAUNTED CAT MANSION", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_24", new LevelStats("wle_mrs_shuffle_show_m3wk4_24", "5494-5198-1084", "Map Test V1", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_25", new LevelStats("wle_mrs_shuffle_show_m3wk4_25", "5541-3035-5936", "The Tower Guardian", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_26", new LevelStats("wle_mrs_shuffle_show_m3wk4_26", "5816-4692-1045", "リーバー リーバー", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_27", new LevelStats("wle_mrs_shuffle_show_m3wk4_27", "6253-3546-3998", "Your Momma Stage", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_28", new LevelStats("wle_mrs_shuffle_show_m3wk4_28", "6451-2253-6270", "ゴルフ日和 バージョン3", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_29", new LevelStats("wle_mrs_shuffle_show_m3wk4_29", "6537-7922-4504", "そよ風ガイズ", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_30", new LevelStats("wle_mrs_shuffle_show_m3wk4_30", "6593-7885-9912", "GUYS FACTORY", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_31", new LevelStats("wle_mrs_shuffle_show_m3wk4_31", "6678-1088-9515", "Fall Raider", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_32", new LevelStats("wle_mrs_shuffle_show_m3wk4_32", "6929-6036-1695", "Birthday Dash", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_33", new LevelStats("wle_mrs_shuffle_show_m3wk4_33", "7389-4301-9607", "Little jumps of love!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_34", new LevelStats("wle_mrs_shuffle_show_m3wk4_34", "7822-3796-2283", "Challenging Kingdoms", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_35", new LevelStats("wle_mrs_shuffle_show_m3wk4_35", "8595-2883-2040", "パンチングホラー", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_36", new LevelStats("wle_mrs_shuffle_show_m3wk4_36", "8703-4389-3742", "HAZARD PYRAMID", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_37", new LevelStats("wle_mrs_shuffle_show_m3wk4_37", "8771-9702-0218", "Funland", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_38", new LevelStats("wle_mrs_shuffle_show_m3wk4_38", "8781-5242-4883", "Dark Lily Lovers", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_39", new LevelStats("wle_mrs_shuffle_show_m3wk4_39", "8850-6467-9905", "Runners", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_40", new LevelStats("wle_mrs_shuffle_show_m3wk4_40", "9644-2340-9818", "Glam night out!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_41", new LevelStats("wle_mrs_shuffle_show_m3wk4_41", "9730-9444-7064", "Lets Have Fun (122)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_mrs_shuffle_show_m3wk4_42", new LevelStats("wle_mrs_shuffle_show_m3wk4_42", "9961-7601-2121", "올라가기", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_01", new LevelStats("wle_shuffle_falljam_april_01", "0159-0993-7817", "Explosive Wreckage", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_02", new LevelStats("wle_shuffle_falljam_april_02", "0369-6179-5892", "Puzzle Path", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_03", new LevelStats("wle_shuffle_falljam_april_03", "0431-7366-4778", "Wilderness Adventures!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_04", new LevelStats("wle_shuffle_falljam_april_04", "0435-3207-7953", "Rets arc en ciel", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_05", new LevelStats("wle_shuffle_falljam_april_05", "0621-0352-3356", "Bridge Island Boss", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_06", new LevelStats("wle_shuffle_falljam_april_06", "0964-0136-8192", "flower ring", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_07", new LevelStats("wle_shuffle_falljam_april_07", "1558-9056-9650", "Box Factory II", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_08", new LevelStats("wle_shuffle_falljam_april_08", "1589-2435-9639", "Hex-Sa-Vival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_09", new LevelStats("wle_shuffle_falljam_april_09", "1886-4534-4182", "DEE'S- Cannon Ball Blast!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_10", new LevelStats("wle_shuffle_falljam_april_10", "1899-8026-9827", "Blunder Barge", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_11", new LevelStats("wle_shuffle_falljam_april_11", "1921-2120-7647", "Ring Off", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_12", new LevelStats("wle_shuffle_falljam_april_12", "1973-0178-5751", "âpre pélutant", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_13", new LevelStats("wle_shuffle_falljam_april_13", "1973-6524-0142", "écoulement interstellaire", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_14", new LevelStats("wle_shuffle_falljam_april_14", "2126-4068-3241", "Escalada Crustântida", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_15", new LevelStats("wle_shuffle_falljam_april_15", "2239-4625-6051", "フォールパニック", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_16", new LevelStats("wle_shuffle_falljam_april_16", "2416-8792-6566", "おすもうファイト", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_17", new LevelStats("wle_shuffle_falljam_april_17", "2561-1308-5649", "Corruption Confection", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_18", new LevelStats("wle_shuffle_falljam_april_18", "2612-5531-2072", "Rainbow Harmony Sweets", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_19", new LevelStats("wle_shuffle_falljam_april_19", "2621-1219-7680", "X-Treme MegaKaizo Ultra Fall GuysHardest", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_20", new LevelStats("wle_shuffle_falljam_april_20", "2697-6209-0490", "Castle of Illusion", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_21", new LevelStats("wle_shuffle_falljam_april_21", "2702-2700-0260", "EZ Race", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_22", new LevelStats("wle_shuffle_falljam_april_22", "2823-0730-1099", "The Swivelling Pineapple", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_23", new LevelStats("wle_shuffle_falljam_april_23", "2843-9635-3486", "Bamblast!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_24", new LevelStats("wle_shuffle_falljam_april_24", "2931-3459-7348", "Canonbaluza", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_25", new LevelStats("wle_shuffle_falljam_april_25", "3034-3075-9286", "Balon prisionero 2 [version Fall Guys]", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_26", new LevelStats("wle_shuffle_falljam_april_26", "3155-3887-9063", "GOGETA VS JANEMBA SAGA", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_27", new LevelStats("wle_shuffle_falljam_april_27", "3208-1341-0438", "Hex-a-lowercase t", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_28", new LevelStats("wle_shuffle_falljam_april_28", "3359-6376-7570", "Hex-a-spectre", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_29", new LevelStats("wle_shuffle_falljam_april_29", "3416-5297-4556", "pirates team battle", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_30", new LevelStats("wle_shuffle_falljam_april_30", "3728-1377-7429", "誰が撃った", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_31", new LevelStats("wle_shuffle_falljam_april_31", "4087-9888-5447", "Sweet Foolery", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_32", new LevelStats("wle_shuffle_falljam_april_32", "4176-4222-5973", "ごめんなさい。", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_33", new LevelStats("wle_shuffle_falljam_april_33", "4188-0907-7419", "グラグラ足場", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_34", new LevelStats("wle_shuffle_falljam_april_34", "4264-0360-0093", "Batalha TRI-unFall", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_35", new LevelStats("wle_shuffle_falljam_april_35", "4382-3330-4291", "Détonation arc en ciel", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_36", new LevelStats("wle_shuffle_falljam_april_36", "4492-2226-2708", "Little Bean Nightmare", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_37", new LevelStats("wle_shuffle_falljam_april_37", "4571-9701-9845", "ひたすら前に 逃げ続ける 崩れる足場のショー", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_38", new LevelStats("wle_shuffle_falljam_april_38", "4691-4225-5019", "Heat wave!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_39", new LevelStats("wle_shuffle_falljam_april_39", "4729-5220-6343", "A walk in the park", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_40", new LevelStats("wle_shuffle_falljam_april_40", "4826-9515-9703", "AIR BATTLE", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_41", new LevelStats("wle_shuffle_falljam_april_41", "4914-9144-2175", "Land Of Blasthex", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_42", new LevelStats("wle_shuffle_falljam_april_42", "4947-9788-3064", "MARIO VS DONKEY KONG", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_43", new LevelStats("wle_shuffle_falljam_april_43", "5001-2002-9985", "THE DRAGON’S SIEGE", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_44", new LevelStats("wle_shuffle_falljam_april_44", "5044-5920-6418", "ジャンプレース", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_45", new LevelStats("wle_shuffle_falljam_april_45", "5102-4036-7327", "No21_おじょうのウィンドスナイパー", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_46", new LevelStats("wle_shuffle_falljam_april_46", "5681-7436-8272", "The Falliseum", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_47", new LevelStats("wle_shuffle_falljam_april_47", "5870-6641-3350", "Blast Ball Reveal", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_48", new LevelStats("wle_shuffle_falljam_april_48", "5982-1093-1802", "クラーケンに遭遇 (Kraken Slam)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_49", new LevelStats("wle_shuffle_falljam_april_49", "6058-1120-3920", "Kraken x balls x boxing", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_50", new LevelStats("wle_shuffle_falljam_april_50", "6077-3078-2848", "Fall-War", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_51", new LevelStats("wle_shuffle_falljam_april_51", "6086-4950-5913", "atlan-sprint", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_52", new LevelStats("wle_shuffle_falljam_april_52", "6168-0608-2173", "ZOMBIE SERPENT RUN!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_53", new LevelStats("wle_shuffle_falljam_april_53", "6379-4545-9395", "Prankster's Paradise", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_54", new LevelStats("wle_shuffle_falljam_april_54", "6471-1037-1419", "Tactical Fruit Incoming!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_55", new LevelStats("wle_shuffle_falljam_april_55", "6573-7104-4679", "Prankster Street", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_56", new LevelStats("wle_shuffle_falljam_april_56", "6621-2101-3801", "Roll Out Explosion", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_57", new LevelStats("wle_shuffle_falljam_april_57", "6828-7476-9214", "invisible neon", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_58", new LevelStats("wle_shuffle_falljam_april_58", "6909-5244-6714", "detonates atlantis", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_59", new LevelStats("wle_shuffle_falljam_april_59", "7400-1330-5328", "Bataille au ² à l'ancienne", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_60", new LevelStats("wle_shuffle_falljam_april_60", "7466-5059-0658", "ピザの上にパイナップルホ!?!?!?!?", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_61", new LevelStats("wle_shuffle_falljam_april_61", "7697-8747-8627", "Sewer Circuit", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_62", new LevelStats("wle_shuffle_falljam_april_62", "8156-6770-2256", "fall in a storm", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_63", new LevelStats("wle_shuffle_falljam_april_63", "8275-4939-5013", "グラグラBOX", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_64", new LevelStats("wle_shuffle_falljam_april_64", "8300-3660-4862", "volcano cave", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_65", new LevelStats("wle_shuffle_falljam_april_65", "8326-0331-4278", "はじめてのサバイバル!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_66", new LevelStats("wle_shuffle_falljam_april_66", "8330-6385-1412", "KRAKEN IS BACK", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_67", new LevelStats("wle_shuffle_falljam_april_67", "8585-9684-2574", "hex timers", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_68", new LevelStats("wle_shuffle_falljam_april_68", "8766-6833-3714", "Lice goulu", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_69", new LevelStats("wle_shuffle_falljam_april_69", "8871-5123-4985", "émoussement arc en ciel", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_70", new LevelStats("wle_shuffle_falljam_april_70", "8923-6504-5536", "Fan 'n' Roll", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_71", new LevelStats("wle_shuffle_falljam_april_71", "9008-5597-5357", "Basketball battle", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_72", new LevelStats("wle_shuffle_falljam_april_72", "9217-6968-6109", "Big Fans Arena", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_73", new LevelStats("wle_shuffle_falljam_april_73", "9429-4786-6903", "Easter egg hunt", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_74", new LevelStats("wle_shuffle_falljam_april_74", "9794-1784-9966", "Math", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_75", new LevelStats("wle_shuffle_falljam_april_75", "9841-9193-3161", "Conveyor Chaos", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_76", new LevelStats("wle_shuffle_falljam_april_76", "9873-3267-7915", "Voltige arc en ciel", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "wle_shuffle_falljam_april_77", new LevelStats("wle_shuffle_falljam_april_77", "9876-8930-8896", "Bupkiss", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_01", new LevelStats("survival_shuffle_m4wk1_01", "0199-0171-9041", "FAN SURVIVAL", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_02", new LevelStats("survival_shuffle_m4wk1_02", "0377-5777-1381", "Back and Forth", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_03", new LevelStats("survival_shuffle_m4wk1_03", "0446-8313-7348", "Kraken Blast", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_04", new LevelStats("survival_shuffle_m4wk1_04", "0664-5668-6193", "Lethal sandy temple", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_05", new LevelStats("survival_shuffle_m4wk1_05", "0675-3447-0866", "JUMP", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_06", new LevelStats("survival_shuffle_m4wk1_06", "1039-6135-5999", "ざむいクルーズ", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_07", new LevelStats("survival_shuffle_m4wk1_07", "1412-1112-7707", "消えゆく道", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_08", new LevelStats("survival_shuffle_m4wk1_08", "1454-8106-4984", "The Ultimate final!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_09", new LevelStats("survival_shuffle_m4wk1_09", "1710-2951-1278", "Chillys Board", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_10", new LevelStats("survival_shuffle_m4wk1_10", "1772-7007-7418", "Déclivité interstellaire", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_11", new LevelStats("survival_shuffle_m4wk1_11", "2448-1730-4672", "chess", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_12", new LevelStats("survival_shuffle_m4wk1_12", "2463-2672-9462", "Champion's Arena", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_13", new LevelStats("survival_shuffle_m4wk1_13", "2966-6420-1361", "しょうがいぶつをよけろ", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_14", new LevelStats("survival_shuffle_m4wk1_14", "3017-4975-4944", "Castle Clash", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_15", new LevelStats("survival_shuffle_m4wk1_15", "3108-7745-9682", "Team Blue vs Team Yellow", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_16", new LevelStats("survival_shuffle_m4wk1_16", "3192-4909-5963", "ポヨサバ ~ぽよんぽよんサバイバル~", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_17", new LevelStats("survival_shuffle_m4wk1_17", "3291-8219-3354", "Salad Fingers Soup", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_18", new LevelStats("survival_shuffle_m4wk1_18", "3817-1234-0537", "SPACE ARENA", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_19", new LevelStats("survival_shuffle_m4wk1_19", "3913-4673-9070", "Fortress In The Forrest", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_20", new LevelStats("survival_shuffle_m4wk1_20", "5112-1251-2708", "ボンバーサイ", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_21", new LevelStats("survival_shuffle_m4wk1_21", "5352-3982-3901", "Zéphyr goulu", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_22", new LevelStats("survival_shuffle_m4wk1_22", "5589-7944-4558", "Bise goulu", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_23", new LevelStats("survival_shuffle_m4wk1_23", "6010-6047-3542", "Tennis Ball Tantrum", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_24", new LevelStats("survival_shuffle_m4wk1_24", "6076-9136-0371", "BridgDisaster01", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_25", new LevelStats("survival_shuffle_m4wk1_25", "6284-4465-5978", "BEAN’S FIRST MATH TEST", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_26", new LevelStats("survival_shuffle_m4wk1_26", "6498-0079-9765", "Saltos Hexagonia y superbola V69", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_27", new LevelStats("survival_shuffle_m4wk1_27", "6771-1853-3844", "Bataille au ³", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_28", new LevelStats("survival_shuffle_m4wk1_28", "6772-3321-6326", "FALL-CANO!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_29", new LevelStats("survival_shuffle_m4wk1_29", "7310-7863-6316", "DEE's- Pirate Palooza", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_30", new LevelStats("survival_shuffle_m4wk1_30", "7533-0509-7064", "タマゴダイバー", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_31", new LevelStats("survival_shuffle_m4wk1_31", "7682-1355-9483", "See-saw Survival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_32", new LevelStats("survival_shuffle_m4wk1_32", "8256-9221-8921", "Ring Around The Roses", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_33", new LevelStats("survival_shuffle_m4wk1_33", "8278-3513-8813", "MYSTERIOUS CAVE 2", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_34", new LevelStats("survival_shuffle_m4wk1_34", "8289-3006-3431", "FORTNITE BATTLE BUS", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_35", new LevelStats("survival_shuffle_m4wk1_35", "8389-2377-6738", "SO ICY", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_36", new LevelStats("survival_shuffle_m4wk1_36", "9200-2026-2661", "DEE's- Spider Fight", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_37", new LevelStats("survival_shuffle_m4wk1_37", "9311-9202-2235", "SUPER MARIO 64", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_38", new LevelStats("survival_shuffle_m4wk1_38", "9517-8504-8914", "Blast Ball in Slime", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk1_39", new LevelStats("survival_shuffle_m4wk1_39", "9723-9831-4865", "Compression goulu", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_01", new LevelStats("solos_shuffle_m4wk1_01", "4287-6061-0329", "GROOVIN’ BANANA TEMPLE", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_02", new LevelStats("solos_shuffle_m4wk1_02", "2843-7203-8790", "Fantasy Guys", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_03", new LevelStats("solos_shuffle_m4wk1_03", "4851-1075-4536", "Winter Games", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_04", new LevelStats("solos_shuffle_m4wk1_04", "5001-2002-9985", "THE DRAGON’S SIEGE", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_05", new LevelStats("solos_shuffle_m4wk1_05", "2871-6488-5826", "easy run", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_07", new LevelStats("solos_shuffle_m4wk1_07", "7012-9467-5105", "Whimsical Hollow", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_08", new LevelStats("solos_shuffle_m4wk1_08", "6189-2862-3683", "Space Fall", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_09", new LevelStats("solos_shuffle_m4wk1_09", "5014-1363-3131", "Tableau pilou", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_10", new LevelStats("solos_shuffle_m4wk1_10", "9745-2561-5271", "Full House", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_11", new LevelStats("solos_shuffle_m4wk1_11", "9292-3064-5979", "Art guys", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_12", new LevelStats("solos_shuffle_m4wk1_12", "2929-3951-0904", "Dragon Quest", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_13", new LevelStats("solos_shuffle_m4wk1_13", "8300-1287-1481", "Time is Ticking", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_14", new LevelStats("solos_shuffle_m4wk1_14", "1128-0144-3221", "Obstacle Collapse", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_16", new LevelStats("solos_shuffle_m4wk1_16", "9815-9724-1839", "熟したドラゴン", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_17", new LevelStats("solos_shuffle_m4wk1_17", "1953-1468-9585", "Pink Wonderland", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_18", new LevelStats("solos_shuffle_m4wk1_18", "8079-1687-1793", "Lava Empire Galaxy (Another Dimension)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_19", new LevelStats("solos_shuffle_m4wk1_19", "6609-8229-3999", "Vexing Volcano", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_20", new LevelStats("solos_shuffle_m4wk1_20", "0720-0451-9959", "Skipping Mats (Saltando Esteiras)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_21", new LevelStats("solos_shuffle_m4wk1_21", "1919-3964-1208", "Rollin' Frenzy", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_23", new LevelStats("solos_shuffle_m4wk1_23", "3589-8733-4411", "Westy climb", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_24", new LevelStats("solos_shuffle_m4wk1_24", "6068-9368-3057", "Levels (Heaven Upsidedown)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_25", new LevelStats("solos_shuffle_m4wk1_25", "2999-9170-0912", "わどちゃんランド", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_26", new LevelStats("solos_shuffle_m4wk1_26", "2364-4501-0614", "雑なステージ19(20240330)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_28", new LevelStats("solos_shuffle_m4wk1_28", "1771-7731-5738", "Space jumps", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_29", new LevelStats("solos_shuffle_m4wk1_29", "2578-5994-3381", "Bye Have a Great Time Part 107", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_30", new LevelStats("solos_shuffle_m4wk1_30", "3415-5721-9191", "Hypersonic Highway", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_31", new LevelStats("solos_shuffle_m4wk1_31", "3526-1148-4190", "bendy xd", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_33", new LevelStats("solos_shuffle_m4wk1_33", "9291-3272-2649", "Zitternde Begegnungen", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_34", new LevelStats("solos_shuffle_m4wk1_34", "1575-1297-9096", "LIVING!!!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_35", new LevelStats("solos_shuffle_m4wk1_35", "0773-2561-1370", "Speed Up", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_40", new LevelStats("solos_shuffle_m4wk1_40", "1962-8779-8339", "Kaizo level v3", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_42", new LevelStats("solos_shuffle_m4wk1_42", "6468-8988-8738", "The Black Hole", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_43", new LevelStats("solos_shuffle_m4wk1_43", "2888-8689-8416", "VOLANDO VOY", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_44", new LevelStats("solos_shuffle_m4wk1_44", "3505-3115-6625", "Day At The Races", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_45", new LevelStats("solos_shuffle_m4wk1_45", "2557-4672-4972", "Sky Run", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk1_46", new LevelStats("solos_shuffle_m4wk1_46", "0749-9470-1911", "Stuff N' Things", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_06", new LevelStats("survival_shuffle_m4wk2_06", "0522-4415-3833", "鯖威張るピンボール", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_07", new LevelStats("survival_shuffle_m4wk2_07", "0721-8256-3903", "Stinky Donut Battle Try Hard", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_09", new LevelStats("survival_shuffle_m4wk2_09", "0788-9547-1252", "Hex a reverse", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_10", new LevelStats("survival_shuffle_m4wk2_10", "0983-4098-8869", "BlueBlur Neon Town", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_14", new LevelStats("survival_shuffle_m4wk2_14", "1456-1035-4213", "Great escape", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_15", new LevelStats("survival_shuffle_m4wk2_15", "1560-4149-8008", "KRAKEN vs RHINO MECHANICAL FIGHTING", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_18", new LevelStats("survival_shuffle_m4wk2_18", "1712-7840-6574", "Rumble guys", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_19", new LevelStats("survival_shuffle_m4wk2_19", "1778-6374-3041", "じゅんさん國志 with パワーアップキット", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_21", new LevelStats("survival_shuffle_m4wk2_21", "2012-4778-9472", "Forest Fire", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_24", new LevelStats("survival_shuffle_m4wk2_24", "2341-5801-5209", "Hex-Brast Shuttle", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_26", new LevelStats("survival_shuffle_m4wk2_26", "2565-1366-1726", "バトル オブ リリリ", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_30", new LevelStats("survival_shuffle_m4wk2_30", "2823-1655-5709", "Heavy Shot!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_34", new LevelStats("survival_shuffle_m4wk2_34", "3301-1617-4679", "CROSS FORCE", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_36", new LevelStats("survival_shuffle_m4wk2_36", "3614-4104-6925", "Neon Fighters", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_37", new LevelStats("survival_shuffle_m4wk2_37", "3814-1822-3127", "一切転落爆弾之合戦", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_38", new LevelStats("survival_shuffle_m4wk2_38", "3881-7989-6825", "FÊTE AUX BOîTES", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_39", new LevelStats("survival_shuffle_m4wk2_39", "4111-4232-3899", "Banana Slingus", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_42", new LevelStats("survival_shuffle_m4wk2_42", "4340-2984-6312", "グラグラブロックタワー", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_43", new LevelStats("survival_shuffle_m4wk2_43", "4364-9043-0626", "Party Animalsのあれ", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_47", new LevelStats("survival_shuffle_m4wk2_47", "5224-5522-3053", "狂野擂台(Wild Stumble)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_49", new LevelStats("survival_shuffle_m4wk2_49", "5375-3169-4503", "Mundo polly", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_52", new LevelStats("survival_shuffle_m4wk2_52", "5818-0364-0657", "Gladiator Guys", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_54", new LevelStats("survival_shuffle_m4wk2_54", "6054-3637-7816", "Boss Electro", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_56", new LevelStats("survival_shuffle_m4wk2_56", "6264-8675-5381", "Re:survival board 2", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_59", new LevelStats("survival_shuffle_m4wk2_59", "6520-4400-4456", "Wash Cycle Circuit", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_60", new LevelStats("survival_shuffle_m4wk2_60", "6526-9000-7295", "VEM X1 HAHAHA (GRABBING ROUND)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_61", new LevelStats("survival_shuffle_m4wk2_61", "6565-0692-6591", "Barge Voyage", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_63", new LevelStats("survival_shuffle_m4wk2_63", "6841-9194-6429", "サバイバルおまめバトロワフィールド", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_64", new LevelStats("survival_shuffle_m4wk2_64", "6976-5427-6827", "DRAGON BALL KAMI'S LOOKOUT", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_65", new LevelStats("survival_shuffle_m4wk2_65", "6991-9655-7905", "FF Guys", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_66", new LevelStats("survival_shuffle_m4wk2_66", "7200-8130-0307", "ハコハコサバイバル", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_68", new LevelStats("survival_shuffle_m4wk2_68", "7410-3102-7030", "Cursed Crew Survival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_69", new LevelStats("survival_shuffle_m4wk2_69", "7410-3134-3266", "タマゴ弾幕 (EGG Barrage)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_72", new LevelStats("survival_shuffle_m4wk2_72", "7440-1656-0731", "跑跑跑蜂窩向前跑", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_75", new LevelStats("survival_shuffle_m4wk2_75", "7792-4199-5269", "ジゴクブラボ2", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_76", new LevelStats("survival_shuffle_m4wk2_76", "7792-5143-3313", "砖头派对2 Block Party 2", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_79", new LevelStats("survival_shuffle_m4wk2_79", "8024-3216-8349", "Fallout tiles", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_82", new LevelStats("survival_shuffle_m4wk2_82", "8149-6942-2573", "Blast-Island", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_84", new LevelStats("survival_shuffle_m4wk2_84", "8242-6699-9241", "豆豆們在火上添油", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_86", new LevelStats("survival_shuffle_m4wk2_86", "8286-4330-7406", "ぬりかべ", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_87", new LevelStats("survival_shuffle_m4wk2_87", "8304-1893-6425", "Sketch wars", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_88", new LevelStats("survival_shuffle_m4wk2_88", "8485-1497-1493", "No te caigas", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_89", new LevelStats("survival_shuffle_m4wk2_89", "8551-2895-2066", "Battle Royale", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_90", new LevelStats("survival_shuffle_m4wk2_90", "8881-6392-9509", "HEX-A-FLOAT", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_92", new LevelStats("survival_shuffle_m4wk2_92", "8908-8138-6814", "Ultimate hex-a-blast (Space Edition)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_94", new LevelStats("survival_shuffle_m4wk2_94", "9328-2062-1604", "Gatekeeper's River", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_95", new LevelStats("survival_shuffle_m4wk2_95", "9433-1544-1827", "Hoop Teams", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_96", new LevelStats("survival_shuffle_m4wk2_96", "9520-6641-3407", "Battle In The Castle Fountain", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_97", new LevelStats("survival_shuffle_m4wk2_97", "9664-5888-0171", "Feast Mode", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk2_98", new LevelStats("survival_shuffle_m4wk2_98", "9683-7753-5316", "Fall Mountain Survival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_03", new LevelStats("solos_shuffle_m4wk2_03", "0202-4036-6072", "The Conflicted", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_04", new LevelStats("solos_shuffle_m4wk2_04", "0279-0365-9976", "Gauntlet of Luminesce", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_05", new LevelStats("solos_shuffle_m4wk2_05", "0346-8479-5319", "Fan Club", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_09", new LevelStats("solos_shuffle_m4wk2_09", "0886-3483-7130", "BallBean Plaza!! ( FinalVersion!! )", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_11", new LevelStats("solos_shuffle_m4wk2_11", "0953-8951-2980", "Bean's Underground", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_12", new LevelStats("solos_shuffle_m4wk2_12", "1117-8348-9512", "Bye Have a Great Time Part 109", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_16", new LevelStats("solos_shuffle_m4wk2_16", "1494-4368-3605", "レースゲーム", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_17", new LevelStats("solos_shuffle_m4wk2_17", "1593-1957-9363", "Crew Wars Final Round", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_19", new LevelStats("solos_shuffle_m4wk2_19", "1919-3964-1208", "Rollin' Frenzy", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_20", new LevelStats("solos_shuffle_m4wk2_20", "1975-8538-0866", "緑のリス", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_21", new LevelStats("solos_shuffle_m4wk2_21", "2016-0014-1102", "The death blow Len D", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_22", new LevelStats("solos_shuffle_m4wk2_22", "2106-2224-1318", "Desert Rush", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_24", new LevelStats("solos_shuffle_m4wk2_24", "2228-7123-5440", "Erupting volcano", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_25", new LevelStats("solos_shuffle_m4wk2_25", "2259-3834-7591", "FLUBBER FRENZY", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_26", new LevelStats("solos_shuffle_m4wk2_26", "2302-9514-8316", "大混乱のドラゴン (01)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_27", new LevelStats("solos_shuffle_m4wk2_27", "2420-4577-0801", "Mini in Maxi", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_30", new LevelStats("solos_shuffle_m4wk2_30", "2644-7400-8988", "CARRERA ESPACIAL", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_32", new LevelStats("solos_shuffle_m4wk2_32", "2735-3328-5656", "Space jam", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_33", new LevelStats("solos_shuffle_m4wk2_33", "2843-1377-2102", "Kissing The Meat", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_35", new LevelStats("solos_shuffle_m4wk2_35", "3148-0927-9857", "Bye Have a Great Time Part 108", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_37", new LevelStats("solos_shuffle_m4wk2_37", "3313-2620-0679", "315あいくえおかきしくけこ", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_38", new LevelStats("solos_shuffle_m4wk2_38", "3403-6823-3643", "ヤッテイク", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_42", new LevelStats("solos_shuffle_m4wk2_42", "3690-2575-9999", "Little Castle", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_43", new LevelStats("solos_shuffle_m4wk2_43", "3717-6014-4223", "Gincanas Do Faustão", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_44", new LevelStats("solos_shuffle_m4wk2_44", "3831-3308-7052", "Bowser's Castle", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_46", new LevelStats("solos_shuffle_m4wk2_46", "4041-2248-9462", "Fall Of Darkness", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_49", new LevelStats("solos_shuffle_m4wk2_49", "4450-7775-4967", "Dark Slime", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_50", new LevelStats("solos_shuffle_m4wk2_50", "4518-9092-4879", "Space scramble", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_53", new LevelStats("solos_shuffle_m4wk2_53", "5185-6101-8637", "Mix dash", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_57", new LevelStats("solos_shuffle_m4wk2_57", "5564-5488-9132", "Доблестный проход", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_62", new LevelStats("solos_shuffle_m4wk2_62", "6189-2862-3683", "Space Fall", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_64", new LevelStats("solos_shuffle_m4wk2_64", "6555-4301-7958", "Pop Pop Jump", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_65", new LevelStats("solos_shuffle_m4wk2_65", "6560-0458-1808", "Konohamaru return's", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_68", new LevelStats("solos_shuffle_m4wk2_68", "6951-0933-5491", "Alien Speedrun", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_69", new LevelStats("solos_shuffle_m4wk2_69", "7110-7677-8368", "LAVASCRAPER!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_70", new LevelStats("solos_shuffle_m4wk2_70", "7144-3792-4227", "Future Follies", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_72", new LevelStats("solos_shuffle_m4wk2_72", "7221-3572-8738", "FUMBLE FALL", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_73", new LevelStats("solos_shuffle_m4wk2_73", "7242-3249-7903", "Arène sombre", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_80", new LevelStats("solos_shuffle_m4wk2_80", "7984-4615-7905", "Kuromi's Candy Shop", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_83", new LevelStats("solos_shuffle_m4wk2_83", "8123-0265-3755", "Sunset's Essence", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_84", new LevelStats("solos_shuffle_m4wk2_84", "8132-0346-7901", "APOCOLYPSE VOLCANO", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_88", new LevelStats("solos_shuffle_m4wk2_88", "8298-9798-1154", "BEYOND THE CREVASSE", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_91", new LevelStats("solos_shuffle_m4wk2_91", "8850-2445-4134", "Lets Have Fun (132)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_92", new LevelStats("solos_shuffle_m4wk2_92", "8992-2440-5716", "leicht mittel schwär lulu", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_94", new LevelStats("solos_shuffle_m4wk2_94", "9331-5220-0836", "Only for speed runners", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_96", new LevelStats("solos_shuffle_m4wk2_96", "9553-9792-4977", "Crispy crispbufallo521", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_98", new LevelStats("solos_shuffle_m4wk2_98", "9667-4278-0702", "Hero's landing (hard) - mosaic fun run (", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk2_99", new LevelStats("solos_shuffle_m4wk2_99", "9830-5971-0757", "Up n Over", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_02", new LevelStats("survival_shuffle_m4wk3_02", "0033-1145-6007", "Rainbow Blast", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_03", new LevelStats("survival_shuffle_m4wk3_03", "0077-7086-6195", "Subway battle!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_06", new LevelStats("survival_shuffle_m4wk3_06", "0289-6944-9728", "WACKY WALKWAY", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_09", new LevelStats("survival_shuffle_m4wk3_09", "0512-7132-0881", "Una torre muy inestable", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_10", new LevelStats("survival_shuffle_m4wk3_10", "0699-8730-5569", "Wishing Fountain", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_11", new LevelStats("survival_shuffle_m4wk3_11", "0700-2437-9712", "Pic goulu", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_13", new LevelStats("survival_shuffle_m4wk3_13", "0885-8919-2044", "Ondulement interstellaire", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_15", new LevelStats("survival_shuffle_m4wk3_15", "1104-0764-3489", "RING FINAL FALL", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_17", new LevelStats("survival_shuffle_m4wk3_17", "1129-5036-4810", "Feeling Froggy", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_27", new LevelStats("survival_shuffle_m4wk3_27", "1855-0473-9369", "Big Digi-Fan", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_30", new LevelStats("survival_shuffle_m4wk3_30", "2267-0285-7218", "KTL Box Finale", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_35", new LevelStats("survival_shuffle_m4wk3_35", "2642-2750-5557", "Turbulente Blumen", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_39", new LevelStats("survival_shuffle_m4wk3_39", "3118-8006-8570", "Space battle", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_41", new LevelStats("survival_shuffle_m4wk3_41", "3378-5246-5138", "Pine Cone Heights Battle", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_43", new LevelStats("survival_shuffle_m4wk3_43", "3454-3768-9905", "Neon party", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_46", new LevelStats("survival_shuffle_m4wk3_46", "3527-9423-4349", "メジャーじゅんさんのパーフェクトクローザー", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_47", new LevelStats("survival_shuffle_m4wk3_47", "3540-6801-6866", "DEE's- Blast Fall!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_49", new LevelStats("survival_shuffle_m4wk3_49", "4149-3154-0924", "Block Garden", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_58", new LevelStats("survival_shuffle_m4wk3_58", "5701-7955-5290", "Water Fall Royale", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_66", new LevelStats("survival_shuffle_m4wk3_66", "6288-4455-3648", "じゅんさんのピラミッドパワーと耐震偽装問題", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_68", new LevelStats("survival_shuffle_m4wk3_68", "6520-4400-4456", "Wash Cycle Circuit", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_74", new LevelStats("survival_shuffle_m4wk3_74", "7001-4656-1735", "円陣", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_80", new LevelStats("survival_shuffle_m4wk3_80", "7567-5972-7270", "レッドウォール", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_84", new LevelStats("survival_shuffle_m4wk3_84", "8413-2444-5525", "Volcanic Blast! (v2)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_86", new LevelStats("survival_shuffle_m4wk3_86", "8530-4248-0327", "おしおしヘキサ", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_92", new LevelStats("survival_shuffle_m4wk3_92", "9145-7911-5947", "なわとびぴょこりん", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m4wk3_100", new LevelStats("survival_shuffle_m4wk3_100", "9993-8513-0548", "決戰糖豆之巔", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_03", new LevelStats("solos_shuffle_m4wk3_03", "0566-9310-7999", "Fragrant Narwhal", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_04", new LevelStats("solos_shuffle_m4wk3_04", "0820-8982-4144", "Lets Have Fun (135)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_09", new LevelStats("solos_shuffle_m4wk3_09", "1645-3115-5543", "RECORRIDO DE LA ALUBIA", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_12", new LevelStats("solos_shuffle_m4wk3_12", "1964-2693-4281", "Potato's Challanges - Jumpin' and Rollin", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_22", new LevelStats("solos_shuffle_m4wk3_22", "2679-6891-8701", "Jedes Böhnchen gibt ein Tönchen", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_23", new LevelStats("solos_shuffle_m4wk3_23", "2833-3179-9619", "Digi-Ball Guys!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_26", new LevelStats("solos_shuffle_m4wk3_26", "2876-9199-3335", "Golden Aardvark", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_28", new LevelStats("solos_shuffle_m4wk3_28", "3139-8397-0289", "Mixed Nuts", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_30", new LevelStats("solos_shuffle_m4wk3_30", "3208-2574-6987", "顫抖的松鼠", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_32", new LevelStats("solos_shuffle_m4wk3_32", "3532-0161-5309", "Xavier", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_35", new LevelStats("solos_shuffle_m4wk3_35", "3690-2575-9999", "Little Castle", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_38", new LevelStats("solos_shuffle_m4wk3_38", "4360-4240-4771", "Bye Have a Great Time Part 110", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_40", new LevelStats("solos_shuffle_m4wk3_40", "4450-7775-4967", "Dark Slime", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_46", new LevelStats("solos_shuffle_m4wk3_46", "4939-8447-9878", "Rainbow Road", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_64", new LevelStats("solos_shuffle_m4wk3_64", "6320-4534-9021", "Zyrex (Kolaylaştırıldı)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_67", new LevelStats("solos_shuffle_m4wk3_67", "6437-3997-9351", "El Monumento", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_70", new LevelStats("solos_shuffle_m4wk3_70", "7187-6223-6218", "Fall Classico", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_73", new LevelStats("solos_shuffle_m4wk3_73", "7439-0272-9044", "Mount Olympus", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_74", new LevelStats("solos_shuffle_m4wk3_74", "7721-0572-9074", "Cheaters Never Prosper", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_76", new LevelStats("solos_shuffle_m4wk3_76", "7808-2885-7643", "Plundering Pipes", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_80", new LevelStats("solos_shuffle_m4wk3_80", "8249-6424-8308", "Think´N´Yeet", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_84", new LevelStats("solos_shuffle_m4wk3_84", "8579-3974-7419", "Lets Have Fun (133)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_86", new LevelStats("solos_shuffle_m4wk3_86", "8740-1481-6858", "up and down", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_90", new LevelStats("solos_shuffle_m4wk3_90", "9114-4792-2112", "Classic Remix", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_93", new LevelStats("solos_shuffle_m4wk3_93", "9340-2170-9141", "DORADOS DE PAPEL", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solos_shuffle_m4wk3_95", new LevelStats("solos_shuffle_m4wk3_95", "9399-3227-9437", "CLOUDY MOUNTAIN", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_03", new LevelStats("mpg_allen_151486_survival_shuffle_post_03", "0403-2469-1077", "Death Run", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_04", new LevelStats("mpg_allen_151486_survival_shuffle_post_04", "0476-7617-2835", "Balancing act", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_06", new LevelStats("mpg_allen_151486_survival_shuffle_post_06", "0675-3447-0866", "JUMP", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_07", new LevelStats("mpg_allen_151486_survival_shuffle_post_07", "0752-5981-0036", "Bribe arc en ciel", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_08", new LevelStats("mpg_allen_151486_survival_shuffle_post_08", "0802-1491-5999", "SURVIVAL ARENA (UPGRADE 22)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_09", new LevelStats("mpg_allen_151486_survival_shuffle_post_09", "0972-9254-0353", "See Saw Survival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_10", new LevelStats("mpg_allen_151486_survival_shuffle_post_10", "1012-7877-9548", "Power Fight", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_12", new LevelStats("mpg_allen_151486_survival_shuffle_post_12", "1206-6205-5699", "Red Kitties", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_15", new LevelStats("mpg_allen_151486_survival_shuffle_post_15", "1494-0271-3714", "Donut Lava", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_16", new LevelStats("mpg_allen_151486_survival_shuffle_post_16", "1676-2001-6887", "Mogre's Party", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_17", new LevelStats("mpg_allen_151486_survival_shuffle_post_17", "1742-2122-9935", "A Puñetazo Limpio (Solos Version)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_18", new LevelStats("mpg_allen_151486_survival_shuffle_post_18", "1773-9702-9283", "mega boxing ring", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_19", new LevelStats("mpg_allen_151486_survival_shuffle_post_19", "1981-7988-4308", "Sunken Blast", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_22", new LevelStats("mpg_allen_151486_survival_shuffle_post_22", "2920-5131-1466", "Wild West Wind", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_23", new LevelStats("mpg_allen_151486_survival_shuffle_post_23", "3007-7135-0395", "Hunger Game Clock Arena", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_24", new LevelStats("mpg_allen_151486_survival_shuffle_post_24", "3038-1310-2694", "Eggs-termination", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_26", new LevelStats("mpg_allen_151486_survival_shuffle_post_26", "3503-8033-7981", "Summer Rhinos", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_27", new LevelStats("mpg_allen_151486_survival_shuffle_post_27", "3969-0090-3796", "Ratbird's Peach's Castle", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_30", new LevelStats("mpg_allen_151486_survival_shuffle_post_30", "4881-3891-3795", "Pool Beans", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_32", new LevelStats("mpg_allen_151486_survival_shuffle_post_32", "5162-2974-1588", "ばななあれるぎー", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_33", new LevelStats("mpg_allen_151486_survival_shuffle_post_33", "5252-1929-8308", "Uncle Battleships", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_34", new LevelStats("mpg_allen_151486_survival_shuffle_post_34", "5331-0003-9416", "サイ農場", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_36", new LevelStats("mpg_allen_151486_survival_shuffle_post_36", "5360-7076-9525", "Нежные Царства", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_37", new LevelStats("mpg_allen_151486_survival_shuffle_post_37", "5364-0880-8084", "Fliegende Narwale", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_38", new LevelStats("mpg_allen_151486_survival_shuffle_post_38", "5366-9523-8657", "BOX VALLAY ~ボックスバレー~", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_40", new LevelStats("mpg_allen_151486_survival_shuffle_post_40", "5497-9968-9958", "desoler", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_41", new LevelStats("mpg_allen_151486_survival_shuffle_post_41", "5589-7944-4558", "Bise goulu", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_43", new LevelStats("mpg_allen_151486_survival_shuffle_post_43", "5607-6984-9660", "、", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_44", new LevelStats("mpg_allen_151486_survival_shuffle_post_44", "5618-4682-8053", "Airborne Kingdoms", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_46", new LevelStats("mpg_allen_151486_survival_shuffle_post_46", "6098-4465-7936", "Color chart chaos", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_47", new LevelStats("mpg_allen_151486_survival_shuffle_post_47", "6141-6797-4984", "じゅんさん×3EYES", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_50", new LevelStats("mpg_allen_151486_survival_shuffle_post_50", "6667-7920-1945", "はっぴいいいいいいいい", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_51", new LevelStats("mpg_allen_151486_survival_shuffle_post_51", "6670-9463-9151", "Hex-A-GuruTate ぐるぐるヘキサ(たて)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_52", new LevelStats("mpg_allen_151486_survival_shuffle_post_52", "6692-8673-7721", "MONSOON MELEE!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_54", new LevelStats("mpg_allen_151486_survival_shuffle_post_54", "6794-8494-0171", "ウォール街のランダムじゅんさん", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_55", new LevelStats("mpg_allen_151486_survival_shuffle_post_55", "6828-9832-1498", "マイナーじゅんさんのパーフェクトクローザー", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_56", new LevelStats("mpg_allen_151486_survival_shuffle_post_56", "6841-2173-5848", "Hexarodillo", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_57", new LevelStats("mpg_allen_151486_survival_shuffle_post_57", "7125-1386-7900", "Surviving for a minute", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_58", new LevelStats("mpg_allen_151486_survival_shuffle_post_58", "7143-7923-6508", "Mini boards", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_59", new LevelStats("mpg_allen_151486_survival_shuffle_post_59", "7144-5397-3532", "What lies beneath", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_61", new LevelStats("mpg_allen_151486_survival_shuffle_post_61", "7510-8787-6879", "20秒障害物競走2", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_63", new LevelStats("mpg_allen_151486_survival_shuffle_post_63", "7950-5723-0503", "Water Explosion", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_64", new LevelStats("mpg_allen_151486_survival_shuffle_post_64", "8028-1187-3085", "ロジックパズル", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_65", new LevelStats("mpg_allen_151486_survival_shuffle_post_65", "8090-6401-4695", "激情四射", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_68", new LevelStats("mpg_allen_151486_survival_shuffle_post_68", "8155-0165-0503", "HUGGY", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_71", new LevelStats("mpg_allen_151486_survival_shuffle_post_71", "8417-9186-5490", "Duel Climb", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_74", new LevelStats("mpg_allen_151486_survival_shuffle_post_74", "8486-1894-2659", "LAVA BLAST", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_76", new LevelStats("mpg_allen_151486_survival_shuffle_post_76", "8575-3585-5039", "ファイトオアじゅんさんオアフライト", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_78", new LevelStats("mpg_allen_151486_survival_shuffle_post_78", "8809-7664-7042", "遠距離?近距離?落としあえ!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_79", new LevelStats("mpg_allen_151486_survival_shuffle_post_79", "8893-3770-3851", "Two-Sided Trial", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_80", new LevelStats("mpg_allen_151486_survival_shuffle_post_80", "9102-8853-3810", "めんま様の遊び場", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_81", new LevelStats("mpg_allen_151486_survival_shuffle_post_81", "9160-3031-3095", "Tip Toe Survival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151486_survival_shuffle_post_83", new LevelStats("mpg_allen_151486_survival_shuffle_post_83", "9696-6430-4894", "Rolling out", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_04", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_04", "0547-5370-9482", "Ciber Circuito 3000", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_06", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_06", "0790-9609-1758", "荒れ狂うトランペット", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_09", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_09", "1118-5891-1916", "Wonder World", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_10", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_10", "1122-4247-7912", "Safari run", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_13", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_13", "1257-1031-5987", "El Paraíso de las nubes", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_15", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_15", "1459-6543-8811", "Space Race", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_18", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_18", "1787-0467-9414", "Chaotic Flowers", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_19", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_19", "1975-8538-0866", "緑のリス", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_22", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_22", "2547-9338-7347", "いちご", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_23", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_23", "2569-5045-9472", "Winter Classico", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_24", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_24", "2613-5692-2761", "Bye Have a Great Time Part 112", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_25", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_25", "2810-6166-9698", "PERIMETER BLITZ!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_38", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_38", "4173-7117-8680", "Majestic Jungle", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_40", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_40", "4226-9736-2580", "Jujuboo", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_42", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_42", "4473-4983-2926", "Only Down!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_44", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_44", "4817-0211-6547", "おためし4", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_51", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_51", "5442-5037-8492", "Mystical Canyon", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_58", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_58", "6056-3971-8933", "map difficile!!!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_59", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_59", "6167-0021-7029", "Airborne Narwhal", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_60", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_60", "6189-2862-3683", "Space Fall", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_61", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_61", "6230-0147-2021", "Up and Down", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_62", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_62", "6301-3098-1050", "フォールロード Fall Road", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_65", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_65", "6692-3400-6698", "はこジャンの王国", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_72", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_72", "7373-2310-6765", "Lets Have Fun (137)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_74", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_74", "7404-7649-9592", "!A toda velocidad!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_83", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_83", "8311-5869-9949", "Lets Have Fun (139)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_88", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_88", "8900-9253-3418", "Classico", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_93", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_93", "9370-2581-6943", "モグランド(レース)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "mpg_allen_151485_solo_shuffle_m4w4_99", new LevelStats("mpg_allen_151485_solo_shuffle_m4w4_99", "9793-4573-2869", "OBSTACLE OVERLOAD", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_01", new LevelStats("survival_shuffle_m5w1_refresh_01", "1414-2132-3688", "聖帝導夢ランボー!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_02", new LevelStats("survival_shuffle_m5w1_refresh_02", "1404-4394-0228", "Shogun's Arena", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_03", new LevelStats("survival_shuffle_m5w1_refresh_03", "9326-8400-2421", "Safari survival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_04", new LevelStats("survival_shuffle_m5w1_refresh_04", "1107-9205-4613", "HEXAGONAL RING BLAST", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_05", new LevelStats("survival_shuffle_m5w1_refresh_05", "1921-2120-7647", "Ring Off", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_06", new LevelStats("survival_shuffle_m5w1_refresh_06", "4392-5300-4575", "Rustic Jungle", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_07", new LevelStats("survival_shuffle_m5w1_refresh_07", "8871-5123-4985", "émoussement arc en ciel", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_08", new LevelStats("survival_shuffle_m5w1_refresh_08", "4382-3330-4291", "Détonation arc en ciel", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_09", new LevelStats("survival_shuffle_m5w1_refresh_09", "7452-6159-2747", "Slime Crater", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_10", new LevelStats("survival_shuffle_m5w1_refresh_10", "8289-3006-3431", "FORTNITE BATTLE BUS", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_11", new LevelStats("survival_shuffle_m5w1_refresh_11", "3428-1566-3462", "Beta Jinxed", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_12", new LevelStats("survival_shuffle_m5w1_refresh_12", "4653-5999-1391", "Hex-apple", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_13", new LevelStats("survival_shuffle_m5w1_refresh_13", "5240-1134-1386", "Block Battle - Survive", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_14", new LevelStats("survival_shuffle_m5w1_refresh_14", "6224-0560-7372", "Safari trek", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_15", new LevelStats("survival_shuffle_m5w1_refresh_15", "1712-7840-6574", "Rumble guys", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_16", new LevelStats("survival_shuffle_m5w1_refresh_16", "8267-1155-7348", "BATTLE IN THE SEAS", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_17", new LevelStats("survival_shuffle_m5w1_refresh_17", "1216-2863-7383", "ALLIANCE OF VALIANT GUYS", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_18", new LevelStats("survival_shuffle_m5w1_refresh_18", "2514-1760-3000", "Lord of the beans", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_19", new LevelStats("survival_shuffle_m5w1_refresh_19", "9683-7753-5316", "Fall Mountain Survival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_20", new LevelStats("survival_shuffle_m5w1_refresh_20", "7200-8130-0307", "ハコハコサバイバル", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_21", new LevelStats("survival_shuffle_m5w1_refresh_21", "8304-1893-6425", "Sketch wars", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_22", new LevelStats("survival_shuffle_m5w1_refresh_22", "0996-8895-0560", "Subzero Gale", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_23", new LevelStats("survival_shuffle_m5w1_refresh_23", "8286-4330-7406", "ぬりかべ", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_24", new LevelStats("survival_shuffle_m5w1_refresh_24", "4111-4232-3899", "Banana Slingus", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_25", new LevelStats("survival_shuffle_m5w1_refresh_25", "8417-9186-5490", "Duel Climb", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_26", new LevelStats("survival_shuffle_m5w1_refresh_26", "2012-4778-9472", "Forest Fire", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_27", new LevelStats("survival_shuffle_m5w1_refresh_27", "1710-2951-1278", "Chillys Board", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_28", new LevelStats("survival_shuffle_m5w1_refresh_28", "7510-8787-6879", "20秒障害物競走2", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_29", new LevelStats("survival_shuffle_m5w1_refresh_29", "8330-6385-1412", "KRAKEN IS BACK", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_30", new LevelStats("survival_shuffle_m5w1_refresh_30", "3614-4104-6925", "Neon Fighters", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_31", new LevelStats("survival_shuffle_m5w1_refresh_31", "0474-3586-9330", "SHOOTINGSTAR SHOWDOWN", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_32", new LevelStats("survival_shuffle_m5w1_refresh_32", "9157-5570-8782", "おじゃまシンロールファン", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_33", new LevelStats("survival_shuffle_m5w1_refresh_33", "0347-2756-7507", "Survival Festival", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_34", new LevelStats("survival_shuffle_m5w1_refresh_34", "6841-9194-6429", "おまめバトロワフィールド(さっしょうりょくLv100)", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_35", new LevelStats("survival_shuffle_m5w1_refresh_35", "1772-7007-7418", "Déclivité interstellaire", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_36", new LevelStats("survival_shuffle_m5w1_refresh_36", "0664-5668-6193", "Lethal sandy temple", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_37", new LevelStats("survival_shuffle_m5w1_refresh_37", "2397-4456-3963", "Super Smash Beans 2!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_38", new LevelStats("survival_shuffle_m5w1_refresh_38", "6882-0818-1725", "MAME RING", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_39", new LevelStats("survival_shuffle_m5w1_refresh_39", "6772-3321-6326", "FALL-CANO!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_40", new LevelStats("survival_shuffle_m5w1_refresh_40", "9723-9831-4865", "Compression goulu", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_41", new LevelStats("survival_shuffle_m5w1_refresh_41", "8256-9221-8921", "Ring Around The Roses", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_42", new LevelStats("survival_shuffle_m5w1_refresh_42", "4818-4221-0210", "Frenzied Factory", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_43", new LevelStats("survival_shuffle_m5w1_refresh_43", "8124-9006-0815", "ワールド・オブ・ホーシップス", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_44", new LevelStats("survival_shuffle_m5w1_refresh_44", "2799-1027-4193", "VOLLEY BRAWL!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_45", new LevelStats("survival_shuffle_m5w1_refresh_45", "9873-3267-7915", "Voltige arc en ciel", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "survival_shuffle_m5w1_refresh_46", new LevelStats("survival_shuffle_m5w1_refresh_46", "8365-3577-1583", "怒りのすとんぴんぐ・ぐらうんど", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_01", new LevelStats("solo_shuffle_m5_wk1_01", "0245-2672-6293", "Unfinish Colorbook", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_02", new LevelStats("solo_shuffle_m5_wk1_02", "0268-9255-4323", "Floor is lava", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_03", new LevelStats("solo_shuffle_m5_wk1_03", "0431-7366-4778", "Wilderness Adventures!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_04", new LevelStats("solo_shuffle_m5_wk1_04", "0435-3207-7953", "Rets arc en ciel", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_05", new LevelStats("solo_shuffle_m5_wk1_05", "0498-2840-8511", "Zoru Zoo Circus", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_06", new LevelStats("solo_shuffle_m5_wk1_06", "0684-8028-8855", "LIME CLIMB!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_07", new LevelStats("solo_shuffle_m5_wk1_07", "0798-0793-5369", "Falling Dreams", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_08", new LevelStats("solo_shuffle_m5_wk1_08", "0894-4597-7070", "Summer and the Wonder land of the Sea", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_09", new LevelStats("solo_shuffle_m5_wk1_09", "1118-5891-1916", "Wonder World", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_10", new LevelStats("solo_shuffle_m5_wk1_10", "1122-4247-7912", "Safari run", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_11", new LevelStats("solo_shuffle_m5_wk1_11", "1127-7835-9917", "Guitar Hero", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_12", new LevelStats("solo_shuffle_m5_wk1_12", "1128-0144-3221", "Obstacle Collapse", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_13", new LevelStats("solo_shuffle_m5_wk1_13", "1558-9056-9650", "Box Factory II", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_14", new LevelStats("solo_shuffle_m5_wk1_14", "1575-9818-1738", "Milky way", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_15", new LevelStats("solo_shuffle_m5_wk1_15", "2247-9049-7915", "Evil Guys", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_16", new LevelStats("solo_shuffle_m5_wk1_16", "2304-1640-5834", "Orange And Blue Leapers", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_17", new LevelStats("solo_shuffle_m5_wk1_17", "2416-5417-8639", "Digital Bean Stumble", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_18", new LevelStats("solo_shuffle_m5_wk1_18", "2839-4160-0713", "Stars Guys", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_19", new LevelStats("solo_shuffle_m5_wk1_19", "2843-7203-8790", "Fantasy Guys", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_20", new LevelStats("solo_shuffle_m5_wk1_20", "2896-9028-2913", "French Station", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_21", new LevelStats("solo_shuffle_m5_wk1_21", "3115-3312-8632", "Fall Bridge", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_22", new LevelStats("solo_shuffle_m5_wk1_22", "3542-7905-5715", "Jungle Guys II", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_23", new LevelStats("solo_shuffle_m5_wk1_23", "3600-7356-3960", "CRAZY DOOR DASH", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_24", new LevelStats("solo_shuffle_m5_wk1_24", "3690-2575-9999", "Little Castle", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_25", new LevelStats("solo_shuffle_m5_wk1_25", "4041-2248-9462", "Fall Of Darkness", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_26", new LevelStats("solo_shuffle_m5_wk1_26", "4287-6061-0329", "GROOVIN’ BANANA TEMPLE", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_27", new LevelStats("solo_shuffle_m5_wk1_27", "4473-4983-2926", "Only Down!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_28", new LevelStats("solo_shuffle_m5_wk1_28", "4739-4043-8717", "SPRING MOUNTAIN", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_29", new LevelStats("solo_shuffle_m5_wk1_29", "5001-2002-9985", "THE DRAGON’S SIEGE", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_30", new LevelStats("solo_shuffle_m5_wk1_30", "5294-9437-7902", "Cluster Cosmos", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_31", new LevelStats("solo_shuffle_m5_wk1_31", "6253-3546-3998", "I GOTTA FIND BUBBA GUMP", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_32", new LevelStats("solo_shuffle_m5_wk1_32", "6350-1354-8129", "Skyball", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_33", new LevelStats("solo_shuffle_m5_wk1_33", "6951-0933-5491", "Alien Speedrun", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_34", new LevelStats("solo_shuffle_m5_wk1_34", "7013-9024-6455", "Float Parkour+", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_35", new LevelStats("solo_shuffle_m5_wk1_35", "7110-7677-8368", "LAVASCRAPER!", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_36", new LevelStats("solo_shuffle_m5_wk1_36", "8079-1687-1793", "Lava Empire Galaxy (Another Dimension)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_37", new LevelStats("solo_shuffle_m5_wk1_37", "8123-0265-3755", "Sunset's Essence", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_38", new LevelStats("solo_shuffle_m5_wk1_38", "8275-4939-5013", "グラグラBOX(Swaying BOX)", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_39", new LevelStats("solo_shuffle_m5_wk1_39", "8850-6467-9905", "Runners", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_40", new LevelStats("solo_shuffle_m5_wk1_40", "9103-2046-6006", "Boo City", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "solo_shuffle_m5_wk1_41", new LevelStats("solo_shuffle_m5_wk1_41", "9745-2561-5271", "Full House", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_opener_1", new LevelStats("knockout_fp10_opener_1", "2789-0141-6815", "BLASTGON", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_opener_5", new LevelStats("knockout_fp10_opener_5", "1037-6378-6667", "Eduardo Escapades", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_opener_6", new LevelStats("knockout_fp10_opener_6", "6511-8334-3856", "Fall Royale", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_opener_10", new LevelStats("knockout_fp10_opener_10", "4851-1075-4536", "Winter Games", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_opener_11", new LevelStats("knockout_fp10_opener_11", "8971-3755-4404", "NAUTICAL SHAMBLE", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_opener_12", new LevelStats("knockout_fp10_opener_12", "0556-2336-1236", "WEBBED HEIGHTS", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_opener_13", new LevelStats("knockout_fp10_opener_13", "2819-4503-2969", "OBSIDIAN PEAK", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_opener_14", new LevelStats("knockout_fp10_opener_14", "6296-6708-8109", "Extra-Beanestial", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_opener_15", new LevelStats("knockout_fp10_opener_15", "0001-3398-9703", "Speed attack", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_opener_16", new LevelStats("knockout_fp10_opener_16", "8900-9253-3418", "Classico", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_filler_1", new LevelStats("knockout_fp10_filler_1", "5074-6268-1076", "Lake in the mountains", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_filler_2", new LevelStats("knockout_fp10_filler_2", "0464-1541-5306", "MEOW-FO ROYALE", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_filler_5", new LevelStats("knockout_fp10_filler_5", "9752-2019-0960", "Lava on the Rhino!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_filler_10", new LevelStats("knockout_fp10_filler_10", "6177-7114-2813", "Heat 'n' Balance", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_filler_11", new LevelStats("knockout_fp10_filler_11", "9117-2038-4168", "Dual Climb", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_filler_12", new LevelStats("knockout_fp10_filler_12", "9700-8249-3134", "VIRTUAL VISTA", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_filler_14", new LevelStats("knockout_fp10_filler_14", "6189-2862-3683", "Space Fall", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_filler_13", new LevelStats("knockout_fp10_filler_13", "5425-6756-5615", "THE JUKEBOX", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_final_4", new LevelStats("knockout_fp10_final_4", "8773-6176-6758", "Trampillas Tramposas", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_final_5", new LevelStats("knockout_fp10_final_5", "4131-9512-0855", "Rollin' Ruins", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_final_6", new LevelStats("knockout_fp10_final_6", "7792-4199-5269", "ジゴクブラボ2", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_final_7", new LevelStats("knockout_fp10_final_7", "3359-6376-7570", "Hex-a-spectre", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_final_8", new LevelStats("knockout_fp10_final_8", "1459-8267-4305", "FAN-SIEGE ROTATION", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_opener_1", new LevelStats("knockout_fp10_squads_opener_1", "2789-0141-6815", "BLASTGON", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_opener_6", new LevelStats("knockout_fp10_squads_opener_6", "4851-1075-4536", "Winter Games", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_opener_7", new LevelStats("knockout_fp10_squads_opener_7", "8971-3755-4404", "NAUTICAL SHAMBLE", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_opener_8", new LevelStats("knockout_fp10_squads_opener_8", "0556-2336-1236", "WEBBED HEIGHTS", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_opener_9", new LevelStats("knockout_fp10_squads_opener_9", "2819-4503-2969", "OBSIDIAN PEAK", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_opener_10", new LevelStats("knockout_fp10_squads_opener_10", "6296-6708-8109", "Extra-Beanestial", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_opener_11", new LevelStats("knockout_fp10_squads_opener_11", "0001-3398-9703", "Speed attack", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_opener_12", new LevelStats("knockout_fp10_squads_opener_12", "8900-9253-3418", "Classico", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_bigfiller_3", new LevelStats("knockout_fp10_squads_bigfiller_3", "1037-6378-6667", "Eduardo Escapades", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_bigfiller_4", new LevelStats("knockout_fp10_squads_bigfiller_4", "6511-8334-3856", "Fall Royale", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_bigfiller_5", new LevelStats("knockout_fp10_squads_bigfiller_5", "0464-1541-5306", "MEOW-FO ROYALE", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_bigfiller_6", new LevelStats("knockout_fp10_squads_bigfiller_6", "6177-7114-2813", "Heat 'n' Balance", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_bigfiller_7", new LevelStats("knockout_fp10_squads_bigfiller_7", "9117-2038-4168", "Dual Climb", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_bigfiller_8", new LevelStats("knockout_fp10_squads_bigfiller_8", "9700-8249-3134", "VIRTUAL VISTA", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_bigfiller_10", new LevelStats("knockout_fp10_squads_bigfiller_10", "6189-2862-3683", "Space Fall", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_filler_1", new LevelStats("knockout_fp10_squads_filler_1", "5074-6268-1076", "Lake in the mountains", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_filler_2", new LevelStats("knockout_fp10_squads_filler_2", "9752-2019-0960", "Lava on the Rhino!", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_filler_3", new LevelStats("knockout_fp10_squads_filler_3", "1459-8267-4305", "FAN-SIEGE ROTATION", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_bigfiller_9", new LevelStats("knockout_fp10_squads_bigfiller_9", "5425-6756-5615", "THE JUKEBOX", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_final_2", new LevelStats("knockout_fp10_squads_final_2", "4131-9512-0855", "Rollin' Ruins", LevelType.Race, BestRecordType.Fastest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_final_5", new LevelStats("knockout_fp10_squads_final_5", "8773-6176-6758", "Trampillas Tramposas", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_final_6", new LevelStats("knockout_fp10_squads_final_6", "7792-4199-5269", "Breaking Blast Ball", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "knockout_fp10_squads_final_7", new LevelStats("knockout_fp10_squads_final_7", "3359-6376-7570", "Hex-a-spectre", LevelType.Survival, BestRecordType.Longest, true, true, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "welcome_noelim_ftue_s1", new LevelStats("welcome_noelim_ftue_s1", "1315-5661-0771", "Welcome to Fall Guys!", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_hit_parade_icon, Properties.Resources.round_hit_parade_big_icon)}, + { "soulful_narwhal_noelim_ftue_s2", new LevelStats("soulful_narwhal_noelim_ftue_s2", "5097-4808-8876", "Digital Highway", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + { "ball_noelim_ftue", new LevelStats("ball_noelim_ftue", "4150-7311-8813", "Treetop Rollers", LevelType.Race, BestRecordType.Fastest, true, false, 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)}, + + { "round_biggestfan", new LevelStats("round_biggestfan", null, "Big Fans", LevelType.Race, BestRecordType.Fastest, false, false, 2, Properties.Resources.round_big_fans_icon, Properties.Resources.round_big_fans_big_icon)}, + { "round_satellitehoppers_almond", new LevelStats("round_satellitehoppers_almond", null, "Cosmic Highway", LevelType.Race, BestRecordType.Fastest, false, false, 8, Properties.Resources.round_cosmic_highway_icon, Properties.Resources.round_cosmic_highway_big_icon)}, + { "round_gauntlet_02", new LevelStats("round_gauntlet_02", null, "Dizzy Heights", LevelType.Race, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_dizzy_heights_icon, Properties.Resources.round_dizzy_heights_big_icon)}, + { "round_door_dash", new LevelStats("round_door_dash", null, "Door Dash", LevelType.Race, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_door_dash_icon, Properties.Resources.round_door_dash_big_icon)}, + { "round_iceclimb", new LevelStats("round_iceclimb", null, "Freezy Peak", LevelType.Race, BestRecordType.Fastest, false, false, 3, Properties.Resources.round_freezy_peak_icon, Properties.Resources.round_freezy_peak_big_icon)}, + { "round_dodge_fall", new LevelStats("round_dodge_fall", null, "Fruit Chute", LevelType.Race, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_fruit_chute_icon, Properties.Resources.round_fruit_chute_big_icon)}, + { "round_see_saw_360", new LevelStats("round_see_saw_360", null, "Full Tilt", LevelType.Race, BestRecordType.Fastest, false, false, 6, Properties.Resources.round_full_tilt_icon, Properties.Resources.round_full_tilt_big_icon)}, + { "round_chompchomp", new LevelStats("round_chompchomp", null, "Gate Crash", LevelType.Race, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_gate_crash_icon, Properties.Resources.round_gate_crash_big_icon)}, + { "round_gauntlet_01", new LevelStats("round_gauntlet_01", null, "Hit Parade", LevelType.Race, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_hit_parade_icon, Properties.Resources.round_hit_parade_big_icon)}, + { "round_gauntlet_04", new LevelStats("round_gauntlet_04", null, "Knight Fever", LevelType.Race, BestRecordType.Fastest, false, false, 2, Properties.Resources.round_knight_fever_icon, Properties.Resources.round_knight_fever_big_icon)}, + { "round_drumtop", new LevelStats("round_drumtop", null, "Lily Leapers", LevelType.Race, BestRecordType.Fastest, false, false, 5, Properties.Resources.round_lily_leapers_icon, Properties.Resources.round_lily_leapers_big_icon)}, + { "round_gauntlet_08", new LevelStats("round_gauntlet_08", null, "Party Promenade", LevelType.Race, BestRecordType.Fastest, false, false, 6, Properties.Resources.round_party_promenade_icon, Properties.Resources.round_party_promenade_big_icon)}, + { "round_pipedup_s6_launch", new LevelStats("round_pipedup_s6_launch", null, "Pipe Dream", LevelType.Race, BestRecordType.Fastest, false, false, 6, Properties.Resources.round_pipe_dream_icon, Properties.Resources.round_pipe_dream_big_icon)}, + { "round_follow_the_line", new LevelStats("round_follow_the_line", null, "Puzzle Path", LevelType.Race, BestRecordType.Fastest, false, false, 9, Properties.Resources.round_puzzle_path_icon, Properties.Resources.round_puzzle_path_big_icon)}, + { "round_tunnel_race", new LevelStats("round_tunnel_race", null, "Roll On", LevelType.Race, BestRecordType.Fastest, false, false, 4, Properties.Resources.round_roll_on_icon, Properties.Resources.round_roll_on_big_icon)}, + { "round_see_saw", new LevelStats("round_see_saw", null, "See Saw", LevelType.Race, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_see_saw_icon, Properties.Resources.round_see_saw_big_icon)}, + { "round_shortcircuit", new LevelStats("round_shortcircuit", null, "Short Circuit", LevelType.Race, BestRecordType.Fastest, false, false, 4, Properties.Resources.round_short_circuit_icon, Properties.Resources.round_short_circuit_big_icon)}, + { "round_gauntlet_06", new LevelStats("round_gauntlet_06", null, "Skyline Stumble", LevelType.Race, BestRecordType.Fastest, false, false, 4, Properties.Resources.round_skyline_stumble_icon, Properties.Resources.round_skyline_stumble_big_icon)}, + { "round_lava", new LevelStats("round_lava", null, "Slime Climb", LevelType.Race, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_slime_climb_icon, Properties.Resources.round_slime_climb_big_icon)}, + { "round_gauntlet_10_almond", new LevelStats("round_gauntlet_10_almond", null, "Space Race", LevelType.Race, BestRecordType.Fastest, false, false, 8, Properties.Resources.round_space_race_icon, Properties.Resources.round_space_race_big_icon)}, + { "round_short_circuit_2_symphony_launch_show", new LevelStats("round_short_circuit_2_symphony_launch_show", null, "Speed Circuit", LevelType.Race, BestRecordType.Fastest, false, false, 7, Properties.Resources.round_speed_circuit_icon, Properties.Resources.round_speed_circuit_big_icon)}, + { "round_slide_chute", new LevelStats("round_slide_chute", null, "Speed Slider", LevelType.Race, BestRecordType.Fastest, false, false, 9, Properties.Resources.round_speed_slider_icon, Properties.Resources.round_speed_slider_big_icon)}, + { "round_starlink_almond", new LevelStats("round_starlink_almond", null, "Starchart", LevelType.Race, BestRecordType.Fastest, false, false, 8, Properties.Resources.round_starchart_icon, Properties.Resources.round_starchart_big_icon)}, + { "round_slimeclimb_2", new LevelStats("round_slimeclimb_2", null, "The Slimescraper", LevelType.Race, BestRecordType.Fastest, false, false, 4, Properties.Resources.round_the_slimescraper_icon, Properties.Resources.round_the_slimescraper_big_icon)}, + { "round_gauntlet_03", new LevelStats("round_gauntlet_03", null, "The Whirlygig", LevelType.Race, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_the_whirlygig_icon, Properties.Resources.round_the_whirlygig_big_icon)}, + { "round_tip_toe", new LevelStats("round_tip_toe", null, "Tip Toe", LevelType.Race, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_tip_toe_icon, Properties.Resources.round_tip_toe_big_icon)}, + { "round_gauntlet_09_symphony_launch_show", new LevelStats("round_gauntlet_09_symphony_launch_show", null, "Track Attack", LevelType.Race, BestRecordType.Fastest, false, false, 7, Properties.Resources.round_track_attack_icon, Properties.Resources.round_track_attack_big_icon)}, + { "round_gauntlet_07", new LevelStats("round_gauntlet_07", null, "Treetop Tumble", LevelType.Race, BestRecordType.Fastest, false, false, 5, Properties.Resources.round_treetop_tumble_icon, Properties.Resources.round_treetop_tumble_big_icon)}, + { "round_gauntlet_05", new LevelStats("round_gauntlet_05", null, "Tundra Run", LevelType.Race, BestRecordType.Fastest, false, false, 3, Properties.Resources.round_tundra_run_icon, Properties.Resources.round_tundra_run_big_icon)}, + { "round_wall_guys", new LevelStats("round_wall_guys", null, "Wall Guys", LevelType.Race, BestRecordType.Fastest, false, false, 2, Properties.Resources.round_wall_guys_icon, Properties.Resources.round_wall_guys_big_icon)}, + { "round_airtime", new LevelStats("round_airtime", null, "Airtime", LevelType.Hunt, BestRecordType.Fastest, false, false, 6, Properties.Resources.round_airtime_icon, Properties.Resources.round_airtime_big_icon)}, + { "round_bluejay", new LevelStats("round_bluejay", null, "Bean Hill Zone", LevelType.Hunt, BestRecordType.Fastest, false, false, 7, Properties.Resources.round_bean_hill_zone_icon, Properties.Resources.round_bean_hill_zone_big_icon)}, + { "round_hoops_revenge_symphony_launch_show", new LevelStats("round_hoops_revenge_symphony_launch_show", null, "Bounce Party", LevelType.Hunt, BestRecordType.Fastest, false, false, 7, Properties.Resources.round_bounce_party_icon, Properties.Resources.round_bounce_party_big_icon)}, + { "round_king_of_the_hill", new LevelStats("round_king_of_the_hill", null, "Bubble Trouble", LevelType.Hunt, BestRecordType.Fastest, false, false, 5, Properties.Resources.round_bubble_trouble_icon, Properties.Resources.round_bubble_trouble_big_icon)}, + { "round_1v1_button_basher", new LevelStats("round_1v1_button_basher", null, "Button Bashers", LevelType.Hunt, BestRecordType.Fastest, false, false, 4, Properties.Resources.round_button_bashers_icon, Properties.Resources.round_button_bashers_big_icon)}, + { "round_ffa_button_bashers_squads_almond", new LevelStats("round_ffa_button_bashers_squads_almond", null, "Frantic Factory", LevelType.Hunt, BestRecordType.Fastest, false, false, 8, Properties.Resources.round_frantic_factory_icon, Properties.Resources.round_frantic_factory_big_icon)}, + { "round_slippy_slide", new LevelStats("round_slippy_slide", null, "Hoop Chute", LevelType.Hunt, BestRecordType.Fastest, false, false, 9, Properties.Resources.round_hoop_chute_icon, Properties.Resources.round_hoop_chute_big_icon)}, + { "round_hoops_blockade_solo", new LevelStats("round_hoops_blockade_solo", null, "Hoopsie Legends", LevelType.Hunt, BestRecordType.Fastest, false, false, 2, Properties.Resources.round_hoopsie_legends_icon, Properties.Resources.round_hoopsie_legends_big_icon)}, + { "round_follow-the-leader_s6_launch", new LevelStats("round_follow-the-leader_s6_launch", null, "Leading Light", LevelType.Hunt, BestRecordType.Fastest, false, false, 6, Properties.Resources.round_leading_light_icon, Properties.Resources.round_leading_light_big_icon)}, + { "round_penguin_solos", new LevelStats("round_penguin_solos", null, "Pegwin Pool Party", LevelType.Hunt, BestRecordType.Fastest, false, false, 5, Properties.Resources.round_pegwin_pool_party_icon, Properties.Resources.round_pegwin_pool_party_big_icon)}, + { "round_skeefall", new LevelStats("round_skeefall", null, "Ski Fall", LevelType.Hunt, BestRecordType.Fastest, false, false, 3, Properties.Resources.round_ski_fall_icon, Properties.Resources.round_ski_fall_big_icon)}, + { "round_tail_tag", new LevelStats("round_tail_tag", null, "Tail Tag", LevelType.Hunt, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_tail_tag_icon, Properties.Resources.round_tail_tag_big_icon)}, + { "round_1v1_volleyfall_symphony_launch_show", new LevelStats("round_1v1_volleyfall_symphony_launch_show", null, "Volleyfall", LevelType.Hunt, BestRecordType.HighScore, false, false, 7, Properties.Resources.round_volleyfall_icon, Properties.Resources.round_volleyfall_big_icon)}, + { "round_fruitpunch_s4_show", new LevelStats("round_fruitpunch_s4_show", null, "Big Shots", LevelType.Survival, BestRecordType.Longest, false, false, 4, Properties.Resources.round_big_shots_icon, Properties.Resources.round_big_shots_big_icon)}, + { "round_blastballruins", new LevelStats("round_blastballruins", null, "Blastlantis", LevelType.Survival, BestRecordType.Longest, false, false, 9, Properties.Resources.round_blastlantis_icon, Properties.Resources.round_blastlantis_big_icon)}, + { "round_block_party", new LevelStats("round_block_party", null, "Block Party", LevelType.Survival, BestRecordType.Longest, false, false, 1, Properties.Resources.round_block_party_icon, Properties.Resources.round_block_party_big_icon)}, + { "round_hoverboardsurvival_s4_show", new LevelStats("round_hoverboardsurvival_s4_show", null, "Hoverboard Heroes", LevelType.Survival, BestRecordType.Fastest, false, false, 4, Properties.Resources.round_hoverboard_heroes_icon, Properties.Resources.round_hoverboard_heroes_big_icon)}, + { "round_hoverboardsurvival2_almond", new LevelStats("round_hoverboardsurvival2_almond", null, "Hyperdrive Heroes", LevelType.Survival, BestRecordType.Fastest, false, false, 8, Properties.Resources.round_hyperdrive_heroes_icon, Properties.Resources.round_hyperdrive_heroes_big_icon)}, + { "round_jump_club", new LevelStats("round_jump_club", null, "Jump Club", LevelType.Survival, BestRecordType.Longest, false, false, 1, Properties.Resources.round_jump_club_icon, Properties.Resources.round_jump_club_big_icon)}, + { "round_tunnel", new LevelStats("round_tunnel", null, "Roll Out", LevelType.Survival, BestRecordType.Longest, false, false, 1, Properties.Resources.round_roll_out_icon, Properties.Resources.round_roll_out_big_icon)}, + { "round_snowballsurvival", new LevelStats("round_snowballsurvival", null, "Snowball Survival", LevelType.Survival, BestRecordType.Longest, false, false, 3, Properties.Resources.round_snowball_survival_icon, Properties.Resources.round_snowball_survival_big_icon)}, + { "round_robotrampage_arena_2", new LevelStats("round_robotrampage_arena_2", null, "Stompin' Ground", LevelType.Survival, BestRecordType.Longest, false, false, 5, Properties.Resources.round_stompin_ground_icon, Properties.Resources.round_stompin_ground_big_icon)}, + { "round_spin_ring_symphony_launch_show", new LevelStats("round_spin_ring_symphony_launch_show", null, "The Swiveller", LevelType.Survival, BestRecordType.Longest, false, false, 7, Properties.Resources.round_the_swiveller_icon, Properties.Resources.round_the_swiveller_big_icon)}, + + { "round_match_fall", new LevelStats("round_match_fall", null, "Perfect Match", LevelType.Logic, BestRecordType.Longest, false, false, 1, Properties.Resources.round_perfect_match_icon, Properties.Resources.round_perfect_match_big_icon)}, + { "round_pixelperfect_almond", new LevelStats("round_pixelperfect_almond", null, "Pixel Painters", LevelType.Logic, BestRecordType.Fastest, false, false, 8, Properties.Resources.round_pixel_painters_icon, Properties.Resources.round_pixel_painters_big_icon)}, + { "round_fruit_bowl", new LevelStats("round_fruit_bowl", null, "Sum Fruit", LevelType.Logic, BestRecordType.Longest, false, false, 5, Properties.Resources.round_sum_fruit_icon, Properties.Resources.round_sum_fruit_big_icon)}, + { "round_basketfall_s4_show", new LevelStats("round_basketfall_s4_show", null, "Basketfall", LevelType.Team, BestRecordType.HighScore, false, false, 4, Properties.Resources.round_basketfall_icon, Properties.Resources.round_basketfall_big_icon)}, + { "round_egg_grab", new LevelStats("round_egg_grab", null, "Egg Scramble", LevelType.Team, BestRecordType.HighScore, false, false, 1, Properties.Resources.round_egg_scramble_icon, Properties.Resources.round_egg_scramble_big_icon)}, + { "round_egg_grab_02", new LevelStats("round_egg_grab_02", null, "Egg Siege", LevelType.Team, BestRecordType.HighScore, false, false, 2, Properties.Resources.round_egg_siege_icon, Properties.Resources.round_egg_siege_big_icon)}, + { "round_fall_ball_60_players", new LevelStats("round_fall_ball_60_players", null, "Fall Ball", LevelType.Team, BestRecordType.HighScore, false, false, 1, Properties.Resources.round_fall_ball_icon, Properties.Resources.round_fall_ball_big_icon)}, + { "round_ballhogs", new LevelStats("round_ballhogs", null, "Hoarders", LevelType.Team, BestRecordType.HighScore, false, false, 1, Properties.Resources.round_hoarders_icon, Properties.Resources.round_hoarders_big_icon)}, + { "round_hoops", new LevelStats("round_hoops", null, "Hoopsie Daisy", LevelType.Team, BestRecordType.HighScore, false, false, 1, Properties.Resources.round_hoopsie_daisy_icon, Properties.Resources.round_hoopsie_daisy_big_icon)}, + { "round_jinxed", new LevelStats("round_jinxed", null, "Jinxed", LevelType.Team, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_jinxed_icon, Properties.Resources.round_jinxed_big_icon)}, + { "round_chicken_chase", new LevelStats("round_chicken_chase", null, "Pegwin Pursuit", LevelType.Team, BestRecordType.HighScore, false, false, 3, Properties.Resources.round_pegwin_pursuit_icon, Properties.Resources.round_pegwin_pursuit_big_icon)}, + { "round_territory_control_s4_show", new LevelStats("round_territory_control_s4_show", null, "Power Trip", LevelType.Team, BestRecordType.HighScore, false, false, 4, Properties.Resources.round_power_trip_icon, Properties.Resources.round_power_trip_big_icon)}, + { "round_rocknroll", new LevelStats("round_rocknroll", null, "Rock 'n' Roll", LevelType.Team, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_rock_n_roll_icon, Properties.Resources.round_rock_n_roll_big_icon)}, + { "round_snowy_scrap", new LevelStats("round_snowy_scrap", null, "Snowy Scrap", LevelType.Team, BestRecordType.Fastest, false, false, 3, Properties.Resources.round_snowy_scrap_icon, Properties.Resources.round_snowy_scrap_big_icon)}, + { "round_conveyor_arena", new LevelStats("round_conveyor_arena", null, "Team Tail Tag", LevelType.Team, BestRecordType.Fastest, false, false, 1, Properties.Resources.round_team_tail_tag_icon, Properties.Resources.round_team_tail_tag_big_icon)}, + + { "round_invisibeans", new LevelStats("round_invisibeans", null, "Sweet Thieves", LevelType.Invisibeans, BestRecordType.Fastest, false, false, 6, Properties.Resources.round_sweet_thieves_icon, Properties.Resources.round_sweet_thieves_big_icon)}, + { "round_pumpkin_pie", new LevelStats("round_pumpkin_pie", null, "Treat Thieves", LevelType.Invisibeans, BestRecordType.Fastest, false, false, 8, Properties.Resources.round_treat_thieves_icon, Properties.Resources.round_treat_thieves_big_icon)}, + + { "round_blastball_arenasurvival_symphony_launch_show", new LevelStats("round_blastball_arenasurvival_symphony_launch_show", null, "Blast Ball", LevelType.Survival, BestRecordType.Longest, false, true, 7, Properties.Resources.round_blast_ball_icon, Properties.Resources.round_blast_ball_big_icon)}, + { "round_fall_mountain_hub_complete", new LevelStats("round_fall_mountain_hub_complete", null, "Fall Mountain", LevelType.Race, BestRecordType.Fastest, false, true, 1, Properties.Resources.round_fall_mountain_icon, Properties.Resources.round_fall_mountain_big_icon)}, + { "round_floor_fall", new LevelStats("round_floor_fall", null, "Hex-A-Gone", LevelType.Survival, BestRecordType.Longest, false, true, 1, Properties.Resources.round_hex_a_gone_icon, Properties.Resources.round_hex_a_gone_big_icon)}, + { "round_hexaring_symphony_launch_show", new LevelStats("round_hexaring_symphony_launch_show", null, "Hex-A-Ring", LevelType.Survival, BestRecordType.Longest, false, true, 7, Properties.Resources.round_hex_a_ring_icon, Properties.Resources.round_hex_a_ring_big_icon)}, + { "round_hexsnake_almond", new LevelStats("round_hexsnake_almond", null, "Hex-A-Terrestrial", LevelType.Survival, BestRecordType.Longest, false, true, 8, Properties.Resources.round_hex_a_terrestrial_icon, Properties.Resources.round_hex_a_terrestrial_big_icon)}, + { "round_jump_showdown", new LevelStats("round_jump_showdown", null, "Jump Showdown", LevelType.Survival, BestRecordType.Longest, false, true, 1, Properties.Resources.round_jump_showdown_icon, Properties.Resources.round_jump_showdown_big_icon)}, + { "round_kraken_attack", new LevelStats("round_kraken_attack", null, "Kraken Slam", LevelType.Survival, BestRecordType.Longest, false, true, 9, Properties.Resources.round_kraken_slam_icon, Properties.Resources.round_kraken_slam_big_icon)}, + { "round_crown_maze", new LevelStats("round_crown_maze", null, "Lost Temple", LevelType.Race, BestRecordType.Fastest, false, true, 5, Properties.Resources.round_lost_temple_icon, Properties.Resources.round_lost_temple_big_icon)}, + { "round_tunnel_final", new LevelStats("round_tunnel_final", null, "Roll Off", LevelType.Survival, BestRecordType.Longest, false, true, 3, Properties.Resources.round_roll_off_icon, Properties.Resources.round_roll_off_big_icon)}, + { "round_royal_rumble", new LevelStats("round_royal_rumble", null, "Royal Fumble", LevelType.Hunt, BestRecordType.Fastest, false, true, 1, Properties.Resources.round_royal_fumble_icon, Properties.Resources.round_royal_fumble_big_icon)}, + { "round_thin_ice", new LevelStats("round_thin_ice", null, "Thin Ice", LevelType.Survival, BestRecordType.Longest, false, true, 3, Properties.Resources.round_thin_ice_icon, Properties.Resources.round_thin_ice_big_icon)}, + { "round_tiptoefinale_almond", new LevelStats("round_tiptoefinale_almond", null, "Tip Toe Finale", LevelType.Race, BestRecordType.Fastest, false, true, 8, Properties.Resources.round_tip_toe_finale_icon, Properties.Resources.round_tip_toe_finale_big_icon)}, + }; + + public static Dictionary SceneToRound = new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "FallGuy_DoorDash", "round_door_dash" }, + { "FallGuy_Gauntlet_02_01", "round_gauntlet_02" }, + { "FallGuy_DodgeFall", "round_dodge_fall" }, + { "FallGuy_ChompChomp_01", "round_chompchomp" }, + { "FallGuy_Gauntlet_01", "round_gauntlet_01" }, + { "FallGuy_SeeSaw_variant2", "round_see_saw" }, + { "FallGuy_Lava_02", "round_lava" }, + { "FallGuy_TipToe", "round_tip_toe" }, + { "FallGuy_Gauntlet_03", "round_gauntlet_03" }, + { "FallGuy_Block_Party", "round_block_party" }, + { "FallGuy_JumpClub_01", "round_jump_club" }, + { "FallGuy_MatchFall", "round_match_fall" }, + { "FallGuy_Tunnel_01", "round_tunnel" }, + { "FallGuy_TailTag_2", "round_tail_tag" }, + { "FallGuy_EggGrab", "round_egg_grab" }, + { "FallGuy_FallBall_5", "round_fall_ball_60_players" }, + { "FallGuy_BallHogs_01", "round_ballhogs" }, + { "FallGuy_Hoops_01", "round_hoops" }, + { "FallGuy_TeamInfected", "round_jinxed" }, + { "FallGuy_RocknRoll", "round_rocknroll" }, + { "FallGuy_ConveyorArena_01", "round_conveyor_arena" }, + { "FallGuy_FallMountain_Hub_Complete", "round_fall_mountain_hub_complete" }, + { "FallGuy_FloorFall", "round_floor_fall" }, + { "FallGuy_JumpShowdown_01", "round_jump_showdown" }, + { "FallGuy_Arena_01", "round_royal_rumble" }, + + { "FallGuy_BiggestFan", "round_biggestfan" }, + { "FallGuy_Hoops_Blockade", "round_hoops_blockade_solo" }, + { "FallGuy_Gauntlet_04", "round_gauntlet_04" }, + { "FallGuy_WallGuys", "round_wall_guys" }, + { "FallGuy_EggGrab_02", "round_egg_grab_02" }, + + { "FallGuy_IceClimb_01", "round_iceclimb" }, + { "FallGuy_SkeeFall", "round_skeefall" }, + { "FallGuy_Gauntlet_05", "round_gauntlet_05" }, + { "FallGuy_SnowballSurvival", "round_snowballsurvival" }, + { "FallGuy_ChickenChase_01", "round_chicken_chase" }, + { "FallGuy_Snowy_Scrap", "round_snowy_scrap" }, + { "FallGuy_Tunnel_Final", "round_tunnel_final" }, + { "FallGuy_ThinIce", "round_thin_ice" }, + + { "FallGuy_1v1_ButtonBasher", "round_1v1_button_basher" }, + { "FallGuy_Tunnel_Race_01", "round_tunnel_race" }, + { "FallGuy_ShortCircuit", "round_shortcircuit" }, + { "FallGuy_Gauntlet_06", "round_gauntlet_06" }, + { "FallGuy_SlimeClimb_2", "round_slimeclimb_2" }, + { "FallGuy_FruitPunch", "round_fruitpunch_s4_show" }, + { "FallGuy_HoverboardSurvival", "round_hoverboardsurvival_s4_show" }, + { "FallGuy_Basketfall_01", "round_basketfall_s4_show" }, + { "FallGuy_TerritoryControl_v2", "round_territory_control_s4_show" }, + + { "FallGuy_KingOfTheHill2", "round_king_of_the_hill" }, + { "FallGuy_DrumTop", "round_drumtop" }, + { "FallGuy_Penguin_Solos", "round_penguin_solos" }, + { "FallGuy_Gauntlet_07", "round_gauntlet_07" }, + { "FallGuy_RobotRampage_Arena2", "round_robotrampage_arena_2" }, + { "FallGuy_FruitBowl", "round_fruit_bowl" }, + { "FallGuy_Crown_Maze_Topdown", "round_crown_maze" }, + + { "FallGuy_Airtime", "round_airtime" }, + { "FallGuy_SeeSaw360", "round_see_saw_360" }, + { "FallGuy_FollowTheLeader", "round_follow-the-leader_s6_launch" }, + { "FallGuy_Gauntlet_08", "round_gauntlet_08" }, + { "FallGuy_PipedUp", "round_pipedup_s6_launch" }, + { "FallGuy_Invisibeans", "round_invisibeans" }, + + { "FallGuy_BlueJay", "round_bluejay" }, + { "FallGuy_HoopsRevenge", "round_hoops_revenge_symphony_launch_show" }, + { "FallGuy_ShortCircuit2", "round_short_circuit_2_symphony_launch_show" }, + { "FallGuy_Gauntlet_09", "round_gauntlet_09_symphony_launch_show" }, + { "FallGuy_SpinRing", "round_spin_ring_symphony_launch_show" }, + { "FallGuy_1v1_Volleyfall", "round_1v1_volleyfall_symphony_launch_show" }, + { "FallGuy_BlastBall_ArenaSurvival", "round_blastball_arenasurvival_symphony_launch_show" }, + { "FallGuy_HexARing", "round_hexaring_symphony_launch_show" }, + + { "FallGuy_SatelliteHoppers", "round_satellitehoppers_almond" }, + { "FallGuy_FFA_Button_Bashers", "round_ffa_button_bashers_squads_almond" }, + { "FallGuy_Hoverboard_Survival_2", "round_hoverboardsurvival2_almond" }, + { "FallGuy_PixelPerfect", "round_pixelperfect_almond" }, + { "FallGuy_Gauntlet_10", "round_gauntlet_10_almond" }, + { "FallGuy_Starlink", "round_starlink_almond" }, + { "FallGuy_HexSnake", "round_hexsnake_almond" }, + { "FallGuy_Tip_Toe_Finale", "round_tiptoefinale_almond" }, + { "FallGuy_PumpkinPie", "round_pumpkin_pie" }, + + { "FallGuy_BlastBallRuins", "round_blastballruins" }, + { "FallGuy_FollowTheLine", "round_follow_the_line" }, + { "FallGuy_Kraken_Attack", "round_kraken_attack" }, + { "FallGuy_SlippySlide", "round_slippy_slide" }, + { "FallGuy_SlideChute", "round_slide_chute" }, + }; + public Image RoundIcon { get; set; } + public Image RoundBigIcon { get; set; } + public string Id { get; set; } + public string ShareCode { get; set; } + public string Name { get; set; } + public int Qualified { get; set; } + public int Gold { get; set; } + public int Silver { get; set; } + public int Bronze { get; set; } + public int Played { get; set; } + public int Kudos { get; set; } + public TimeSpan Fastest { get; set; } + public TimeSpan Longest { get; set; } + public int AveKudos { get { return this.Kudos / Math.Max(1, this.Played); } } + public TimeSpan AveDuration { get { return TimeSpan.FromSeconds((int)this.Duration.TotalSeconds / Math.Max(1, this.Played)); } } + public TimeSpan AveFinish { get { return TimeSpan.FromSeconds((double)this.FinishTime.TotalSeconds / Math.Max(1, this.FinishedCount)); } } + public LevelType Type; + public BestRecordType BestRecordType; + public bool IsCreative; + public bool IsFinal; + public int TimeLimitSeconds; + + public TimeSpan Duration; + public TimeSpan FinishTime; + public List Stats; + public int Season; + public int FinishedCount; + + public LevelStats(string levelId, string shareCode, string levelName, LevelType type, BestRecordType recordType, bool isCreative, bool isFinal, int season, Image roundIcon, Image roundBigIcon) { + this.Id = levelId; + this.ShareCode = shareCode; + this.Name = levelName; + this.Type = type; + this.BestRecordType = recordType; + this.Season = season; + this.IsCreative = isCreative; + this.IsFinal = isFinal; + this.RoundIcon = roundIcon; + this.RoundBigIcon = roundBigIcon; + this.Stats = new List(); + this.Clear(); + } + + public void Clear() { + this.Qualified = 0; + this.Gold = 0; + this.Silver = 0; + this.Bronze = 0; + this.Played = 0; + this.Kudos = 0; + this.FinishedCount = 0; + this.Duration = TimeSpan.Zero; + this.FinishTime = TimeSpan.Zero; + this.Fastest = TimeSpan.Zero; + this.Longest = TimeSpan.Zero; + this.Stats.Clear(); + } + + public void Increase(RoundInfo stat, bool isLinkedCustomShow) { + if (!stat.PrivateLobby || stat.UseShareCode || isLinkedCustomShow) { + this.Played++; + this.Duration += stat.End - stat.Start; + switch (stat.Tier) { + case (int)QualifyTier.Gold: + this.Gold++; + break; + case (int)QualifyTier.Silver: + this.Silver++; + break; + case (int)QualifyTier.Bronze: + this.Bronze++; + break; + } + + this.Kudos += stat.Kudos; + this.Qualified += stat.Qualified ? 1 : 0; + } + + TimeSpan finishTime = stat.Finish.GetValueOrDefault(stat.Start) - stat.Start; + if (stat.Finish.HasValue && finishTime.TotalSeconds > 1.1) { + if (!stat.PrivateLobby || stat.UseShareCode || isLinkedCustomShow) { + this.FinishedCount++; + this.FinishTime += finishTime; + } + if (this.Fastest == TimeSpan.Zero || this.Fastest > finishTime) { + this.Fastest = finishTime; + } + if (this.Longest < finishTime) { + this.Longest = finishTime; + } + } + } + + public void Add(RoundInfo stat) { + this.Stats.Add(stat); + } + + public override string ToString() { + return $"{this.Name}: {this.Qualified} / {this.Played}"; + } + } +} diff --git a/Entities/LevelTimeLimit.cs b/Entities/LevelTimeLimit.cs new file mode 100644 index 000000000..0c5442dda --- /dev/null +++ b/Entities/LevelTimeLimit.cs @@ -0,0 +1,6 @@ +namespace FallGuysStats { + public class LevelTimeLimit { + public string LevelId { get; set; } + public int Duration { get; set; } + } +} \ No newline at end of file diff --git a/Entities/LevelType.cs b/Entities/LevelType.cs new file mode 100644 index 000000000..84385682d --- /dev/null +++ b/Entities/LevelType.cs @@ -0,0 +1,156 @@ +using System.Drawing; +using MetroFramework; + +namespace FallGuysStats { + internal static class LevelTypeBehavior { + // public static int FastestLabel(this LevelType type) { + // switch (type) { + // case LevelType.CreativeRace: + // case LevelType.Race: + // case LevelType.CreativeHunt: + // case LevelType.Hunt: + // case LevelType.Invisibeans: + // return 1; // FASTEST + // case LevelType.CreativeSurvival: + // case LevelType.Survival: + // case LevelType.CreativeLogic: + // case LevelType.Logic: + // return 0; // LONGEST + // case LevelType.CreativeTeam: + // case LevelType.Team: + // return 2; // HIGH_SCORE + // } + // return 1; + // } + + public static string UserCreativeLevelTypeId(this LevelType type) { + switch (type) { + case LevelType.CreativeRace: + return "user_creative_race_round"; + case LevelType.CreativeSurvival: + return "user_creative_survival_round"; + case LevelType.CreativeHunt: + return "user_creative_hunt_round"; + case LevelType.CreativeLogic: + return "user_creative_logic_round"; + case LevelType.CreativeTeam: + return "user_creative_team_round"; + } + return "unknown"; + } + + public static string LevelTitle(this LevelType type, bool isFinal) { + if (isFinal) { + return Multilingual.GetWord("level_detail_final"); + } + switch (type) { + case LevelType.CreativeRace: + case LevelType.Race: + return Multilingual.GetWord("level_detail_race"); + case LevelType.CreativeHunt: + case LevelType.Hunt: + return Multilingual.GetWord("level_detail_hunt"); + case LevelType.Invisibeans: + return Multilingual.GetWord("level_detail_invisibeans"); + case LevelType.CreativeSurvival: + case LevelType.Survival: + return Multilingual.GetWord("level_detail_survival"); + case LevelType.CreativeLogic: + case LevelType.Logic: + return Multilingual.GetWord("level_detail_logic"); + case LevelType.CreativeTeam: + case LevelType.Team: + return Multilingual.GetWord("level_detail_team"); + } + return "Unknown"; + } + + public static Color LevelDefaultColor(this LevelType type, bool isFinal) { + if (isFinal) { + return Color.FromArgb(251, 198, 0); + } + switch (type) { + case LevelType.CreativeRace: + case LevelType.Race: + return Color.FromArgb(0, 236, 106); + case LevelType.CreativeHunt: + case LevelType.Hunt: + return Color.FromArgb(45, 101, 186); + case LevelType.Invisibeans: + return Color.FromArgb(0, 0, 0); + case LevelType.CreativeSurvival: + case LevelType.Survival: + return Color.FromArgb(184, 21, 213); + case LevelType.CreativeLogic: + case LevelType.Logic: + return Color.FromArgb(91, 181, 189); + case LevelType.CreativeTeam: + case LevelType.Team: + return Color.FromArgb(248, 82, 0); + } + return Color.DarkGray; + } + + public static Color LevelBackColor(this LevelType type, bool isFinal, bool isTeam, int alpha) { + if (isFinal) { + return Color.FromArgb(alpha, 250, 195, 0); + } + if (isTeam) { + return Color.FromArgb(alpha, 250, 80, 0); + } + switch (type) { + // case LevelType.CreativeRace: + // return Color.FromArgb(alpha, 122, 201, 241); + case LevelType.CreativeRace: + case LevelType.Race: + return Color.FromArgb(alpha, 0, 235, 105); + case LevelType.CreativeSurvival: + case LevelType.Survival: + return Color.FromArgb(alpha, 185, 20, 210); + case LevelType.CreativeHunt: + case LevelType.Hunt: + return Color.FromArgb(alpha, 45, 100, 190); + case LevelType.CreativeLogic: + case LevelType.Logic: + return Color.FromArgb(alpha, 90, 180, 190); + case LevelType.CreativeTeam: + case LevelType.Team: + return Color.FromArgb(alpha, 250, 80, 0); + case LevelType.Invisibeans: + return Color.FromArgb(alpha, 0, 0, 0); + } + return Color.DarkGray; + } + + public static Color LevelForeColor(this LevelType type, bool isFinal, bool isTeam, MetroThemeStyle theme = MetroThemeStyle.Default) { + if (isFinal) { + return Color.FromArgb(130, 100, 0); + } + if (isTeam) { + return Color.FromArgb(130, 40, 0); + } + switch (type) { + // case LevelType.CreativeRace: + // return theme == MetroThemeStyle.Light ? Color.Navy : Color.Snow; + case LevelType.CreativeRace: + case LevelType.Race: + return Color.FromArgb(0, 130, 55); + case LevelType.CreativeSurvival: + case LevelType.Survival: + return Color.FromArgb(110, 10, 130); + case LevelType.CreativeHunt: + case LevelType.Hunt: + return Color.FromArgb(30, 70, 130); + case LevelType.CreativeLogic: + case LevelType.Logic: + return Color.FromArgb(60, 120, 130); + case LevelType.CreativeTeam: + case LevelType.Team: + return Color.FromArgb(130, 40, 0); + case LevelType.Invisibeans: + return theme == MetroThemeStyle.Light ? Color.FromArgb(0, 0, 0) : Color.DarkGray; + } + return Color.FromArgb(60, 60, 60); + } + } +} \ No newline at end of file diff --git a/Entities/LineReader.cs b/Entities/LineReader.cs new file mode 100644 index 000000000..10477476b --- /dev/null +++ b/Entities/LineReader.cs @@ -0,0 +1,71 @@ +using System.IO; +using System.Text; +namespace FallGuysStats { + public class LineReader { + private readonly byte[] buffer; + private int bufferIndex, bufferSize; + private readonly Stream file; + private readonly StringBuilder currentLine; + public long Position; + public LineReader(Stream stream) { + file = stream; + buffer = new byte[1024]; + currentLine = new StringBuilder(); + Position = stream.Position; + } + + public string ReadLine() { + while (bufferIndex < bufferSize) { + byte data = buffer[bufferIndex++]; + Position++; + + if (data == (byte)'\n' || data == (byte)'\r') { + if (data == '\r') { + data = bufferIndex < buffer.Length ? buffer[bufferIndex] : (byte)0; + if (data == (byte)'\n') { + bufferIndex++; + Position++; + } + } + + string result = currentLine.ToString(); + currentLine.Clear(); + return result; + } + + currentLine.Append((char)data); + } + + while ((bufferSize = file.Read(buffer, 0, buffer.Length)) > 0) { + bufferIndex = 0; + while (bufferIndex < bufferSize) { + byte data = buffer[bufferIndex++]; + Position++; + + if (data == (byte)'\n' || data == (byte)'\r') { + if (data == '\r') { + data = bufferIndex < buffer.Length ? buffer[bufferIndex] : (byte)0; + if (data == (byte)'\n') { + bufferIndex++; + Position++; + } + } + + string result = currentLine.ToString(); + currentLine.Clear(); + return result; + } + + currentLine.Append((char)data); + } + } + + if (currentLine.Length > 0) { + string result = currentLine.ToString(); + currentLine.Clear(); + return result; + } + return null; + } + } +} \ No newline at end of file diff --git a/Entities/LogFileWatcher.cs b/Entities/LogFileWatcher.cs new file mode 100644 index 000000000..6b6fe4755 --- /dev/null +++ b/Entities/LogFileWatcher.cs @@ -0,0 +1,1484 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.Json; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; + +namespace FallGuysStats { + public class LogLine { + public TimeSpan Time { get; } = TimeSpan.Zero; + public DateTime Date { get; set; } = DateTime.MinValue; + public string Line { get; set; } + public bool IsValid { get; set; } + public long Offset { get; set; } + + public LogLine(string line, long offset) { + this.Offset = offset; + this.Line = line; + bool isValidSemiColon = line.IndexOf(":") == 2 && line.IndexOf(":", 3) == 5 && line.IndexOf(":", 6) == 12; + bool isValidDot = line.IndexOf(".") == 2 && line.IndexOf(".", 3) == 5 && line.IndexOf(":", 6) == 12; + this.IsValid = isValidSemiColon || isValidDot; + if (this.IsValid) { + this.Time = TimeSpan.ParseExact(line.Substring(0, 12), isValidSemiColon ? "hh\\:mm\\:ss\\.fff" : "hh\\.mm\\.ss\\.fff", null); + } + } + + public override string ToString() { + return $"{this.Time}: {this.Line} ({this.Offset})"; + } + } + public class LogRound { + public bool InLoadingGameScreen; + public bool IsRoundPreloaded; + public bool CountingPlayers; + public bool GetCurrentPlayerID; + public int CurrentPlayerID; + public bool FindingPosition; + + public RoundInfo Info; + } + + public class ThreadLocalData { + public long lastQueuingInfoLinePos; + + public bool isPrivateLobby; + public bool currentlyInParty; + public string selectedShowId; + public string currentSessionId; + public bool useShareCode; + public bool isCasualShow; + public string sceneName; + + public bool toggleCountryInfoApi; + public string creativeShareCode; + public string creativeOnlinePlatformId; + public string creativeAuthor; + public int creativeVersion; + public string creativeStatus; + public string creativeTitle; + public string creativeDescription; + public string creativeCreatorTags; + public int creativeMaxPlayer; + public string creativeThumbUrl; + public string creativePlatformId; + public string creativeGameModeId; + public string creativeLevelThemeId; + public DateTime creativeLastModifiedDate; + public int creativePlayCount; + public int creativeLikes; + public int creativeDislikes; + public int creativeQualificationPercent; + public int creativeTimeLimitSeconds; + } + + public class LogFileWatcher { + private const int UpdateDelay = 500; + + private string filePath; + private string prevFilePath; + private List logLines = new List(); + private bool isWatcherRunning, isParserRunning; + private bool stop; + + internal Task logFileWatcher; + private Task logLineParser; + + public Stats StatsForm { get; set; } + + private readonly ThreadLocal threadLocalVariable = new ThreadLocal(() => new ThreadLocalData()); + public event Action> OnParsedLogLines; + public event Action> OnParsedLogLinesCurrent; + public event Action OnNewLogFileDate; + public event Action OnServerConnectionNotification; + public event Action OnPersonalBestNotification; + public event Action OnError; + + private readonly ServerPingWatcher serverPingWatcher = new ServerPingWatcher(); + private readonly GameStateWatcher gameStateWatcher = new GameStateWatcher(); + + public void Start(string logDirectory, string fileName) { + if (this.isWatcherRunning || this.isParserRunning) return; + + this.filePath = Path.Combine(logDirectory, fileName); + this.prevFilePath = Path.Combine(logDirectory, $"{Path.GetFileNameWithoutExtension(fileName)}-prev.log"); + this.stop = false; + this.logFileWatcher = new Task(this.ReadLogFile); + this.logFileWatcher.Start(); + this.logLineParser = new Task(this.ParseLines); + this.logLineParser.Start(); + } + + public async Task Stop() { + this.stop = true; + while (this.isWatcherRunning || this.isParserRunning || this.logFileWatcher == null || this.logFileWatcher.Status == TaskStatus.Created) { + await Task.Delay(50); + } + lock (this.logLines) { + this.logLines = new List(); + } + + await Task.Run(() => this.logFileWatcher?.Wait()); + await Task.Run(() => this.logLineParser?.Wait()); + + // await this.gameStateWatcher.Stop(); + // await this.serverPingWatcher.Stop(); + } + + private void ReadLogFile() { + this.isWatcherRunning = true; + List tempLines = new List(); + DateTime lastDate = DateTime.MinValue; + bool prevFileCompleted = false; + string currentFilePath = this.prevFilePath; + long offset = 0; + while (!this.stop) { + try { + if (File.Exists(currentFilePath)) { + using (FileStream fs = new FileStream(currentFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { + tempLines.Clear(); + + if (fs.Length > offset) { + fs.Seek(offset, SeekOrigin.Begin); + + LineReader sr = new LineReader(fs); + string line; + DateTime currentDate = lastDate; + while ((line = sr.ReadLine()) != null) { + LogLine logLine = new LogLine(line, sr.Position); + + if (line.IndexOf("Discovering subsystems at path", StringComparison.OrdinalIgnoreCase) != -1) { + string subsystemsPath = line.Substring(44); + string[] userInfo; + if (subsystemsPath.IndexOf("steamapps", StringComparison.OrdinalIgnoreCase) != -1) { + Stats.OnlineServiceType = OnlineServiceTypes.Steam; + userInfo = this.StatsForm.FindSteamUserInfo(); + } else { + Stats.OnlineServiceType = OnlineServiceTypes.EpicGames; + userInfo = this.StatsForm.FindEpicGamesUserInfo(); + } + + Stats.OnlineServiceId = userInfo[0]; + Stats.OnlineServiceNickname = userInfo[1]; + this.StatsForm.SetSecretKey(); + this.StatsForm.SetLeaderboardTitle(); + } + + if (logLine.IsValid) { + int index; + if ((index = line.IndexOf("[GlobalGameStateClient].PreStart called at ")) != -1) { + this.ResetMainLocalVariables(); + currentDate = DateTime.SpecifyKind(DateTime.Parse(line.Substring(index + 43, 19)), DateTimeKind.Utc); + this.OnNewLogFileDate?.Invoke(currentDate); + } + + if (currentDate != DateTime.MinValue) { + if (currentDate.TimeOfDay.TotalSeconds - logLine.Time.TotalSeconds > 60000) { + currentDate = currentDate.AddDays(1); + } + currentDate = currentDate.AddSeconds(logLine.Time.TotalSeconds - currentDate.TimeOfDay.TotalSeconds); + logLine.Date = currentDate; + } + + if (line.IndexOf(" == [CompletedEpisodeDto] ==") != -1) { + StringBuilder sb = new StringBuilder(line); + sb.AppendLine(); + while ((line = sr.ReadLine()) != null) { + LogLine temp = new LogLine(line, fs.Position); + if (temp.IsValid) { + logLine.Line = sb.ToString(); + logLine.Offset = sr.Position; + tempLines.Add(logLine); + tempLines.Add(temp); + break; + } else if (!string.IsNullOrEmpty(line)) { + sb.AppendLine(line); + } + } + } else if (line.IndexOf("[FNMMSClientRemoteService] Status message received: {") != -1 + && logLine.Offset > this.threadLocalVariable.Value.lastQueuingInfoLinePos) { + this.threadLocalVariable.Value.lastQueuingInfoLinePos = logLine.Offset; + while ((line = sr.ReadLine()) != null) { + if (line.IndexOf("\"queuedPlayers\": ") != -1) { + string content = Regex.Replace(line.Substring(21), "[\",]", ""); + if (!string.Equals(content, "null") + && int.TryParse(content, out int queuedPlayers)) { + Stats.QueuedPlayers = queuedPlayers; + Stats.IsQueuing = !this.threadLocalVariable.Value.isPrivateLobby; + } + break; + } + } + } else if (line.IndexOf("[FNMMSRemoteServiceBase] Disposed") != -1 + && logLine.Offset > this.threadLocalVariable.Value.lastQueuingInfoLinePos) { + this.threadLocalVariable.Value.lastQueuingInfoLinePos = logLine.Offset; + Stats.IsQueuing = false; + Stats.QueuedPlayers = 0; + } else { + tempLines.Add(logLine); + } + } + } + } else if (offset > fs.Length) { + offset = this.threadLocalVariable.Value.lastQueuingInfoLinePos = 0; + } + } + } + + if (tempLines.Count > 0) { + List round = new List(); + LogRound logRound = new LogRound(); + List currentLines = new List(); + + for (int i = 0; i < tempLines.Count; i++) { + LogLine line = tempLines[i]; + currentLines.Add(line); + if (this.ParseLine(line, round, logRound)) { + Stats.SavedRoundCount = 0; + lastDate = line.Date; + offset = line.Offset; + lock (this.logLines) { + this.logLines.AddRange(currentLines); + currentLines.Clear(); + } + } else if ((line.Line.IndexOf("[Matchmaking] Begin", StringComparison.OrdinalIgnoreCase) != -1 && line.Line.IndexOf("private lobby", StringComparison.OrdinalIgnoreCase) == -1) + || line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StatePrivateLobby with FGClient.StateConnectToGame", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[StateMainMenu] Creating or joining private lobby minimal", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StatePrivateLobby with FGClient.StateMainMenu", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StateReloadingToMainMenu with FGClient.StateMainMenu", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StateDisconnectingFromServer with FGClient.StateMainMenu", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[StateMainMenu] Loading scene MainMenu", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[EOSPartyPlatformService.Base] Reset, reason: Shutdown", StringComparison.OrdinalIgnoreCase) != -1 + || (this.threadLocalVariable.Value.isCasualShow && (line.Line.IndexOf("[GameplaySpectatorUltimatePartyFlowViewModel] Begin countdown", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[ClientGameManager] Server notifying that the round is over", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StateDisconnectingFromServer with FGClient.StateConnectToGame", StringComparison.OrdinalIgnoreCase) != -1))) { + offset = i > 0 ? tempLines[i - 1].Offset : offset; + lastDate = line.Date; + } else if (this.StatsForm.CurrentSettings.AutoChangeProfile && line.Line.IndexOf("[HandleSuccessfulLogin] Selected show is", StringComparison.OrdinalIgnoreCase) != -1) { + if (Stats.InShow && !Stats.EndedShow) { + this.StatsForm.SetLinkedProfileMenu(this.threadLocalVariable.Value.selectedShowId, this.threadLocalVariable.Value.isPrivateLobby); + } + } else if (this.StatsForm.CurrentSettings.PreventOverlayMouseClicks && line.Line.IndexOf("[GameSession] Changing state from Countdown to Playing", StringComparison.OrdinalIgnoreCase) != -1) { + if (Stats.InShow && !Stats.EndedShow) { + this.StatsForm.PreventOverlayMouseClicks(); + } + } + } + + this.OnParsedLogLinesCurrent?.Invoke(round); + } + + if (!prevFileCompleted) { + prevFileCompleted = true; + offset = this.threadLocalVariable.Value.lastQueuingInfoLinePos = 0; + currentFilePath = this.filePath; + } + } catch (Exception ex) { + this.OnError?.Invoke(ex.ToString()); + } + Thread.Sleep(UpdateDelay); + } + this.isWatcherRunning = false; + } + + private void ParseLines() { + this.isParserRunning = true; + List round = new List(); + List allStats = new List(); + LogRound logRound = new LogRound(); + + while (!this.stop) { + try { + lock (this.logLines) { + foreach (LogLine line in this.logLines) { + if (this.ParseLine(line, round, logRound)) { + allStats.AddRange(round); + } + } + + if (allStats.Count > 0) { + this.OnParsedLogLines?.Invoke(allStats); + allStats.Clear(); + } + + this.logLines.Clear(); + } + } catch (Exception ex) { + this.OnError?.Invoke(ex.ToString()); + } + Thread.Sleep(UpdateDelay); + } + this.isParserRunning = false; + } + + private void AddLineAfterClientShutdown() { + try { + bool isValidSemiColon, isValidDot, isValid; + string lastTime = DateTime.UtcNow.ToString("hh:mm:ss.fff"); + foreach (string line in File.ReadAllLines(this.filePath)) { + isValidSemiColon = line.IndexOf(":") == 2 && line.IndexOf(":", 3) == 5 && line.IndexOf(":", 6) == 12; + isValidDot = line.IndexOf(".") == 2 && line.IndexOf(".", 3) == 5 && line.IndexOf(":", 6) == 12; + isValid = isValidSemiColon || isValidDot; + if (isValid) { + lastTime = line.Substring(0, 12); + } + } + TextWriter tw = new StreamWriter(this.filePath, true); + tw.WriteLine(); + tw.WriteLine($"{lastTime}: [EOSPartyPlatformService.Base] Reset, reason: Shutdown"); + tw.WriteLine(); + tw.Close(); + } catch { + // ignored + } + } + + private readonly Dictionary _sceneNameReplacer = new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "FallGuy_FollowTheLeader_UNPACKED", "FallGuy_FollowTheLeader" }, + { "FallGuy_BlueJay_UNPACKED", "FallGuy_BlueJay" } + }; + + private bool IsShowIsCasualShow(string showId) { + return string.Equals(showId, "casual_show") + || string.Equals(showId, "spotlight_mode") + || string.Equals(showId, "explore_points") + || string.Equals(showId, "no_elimination_explore") + || string.Equals(showId, "xtreme_explore"); + } + + private bool IsRealFinalRound(int roundNum, string roundId, string showId) { + if ((showId.StartsWith("knockout_fp") && showId.EndsWith("_srs")) + || (showId.StartsWith("show_wle_s10_") && showId.IndexOf("_srs", StringComparison.OrdinalIgnoreCase) != -1) + || showId.IndexOf("wle_s10_player_round_", StringComparison.OrdinalIgnoreCase) != -1 + || showId.StartsWith("wle_mrs_shuffle_") + || showId.StartsWith("wle_shuffle_") + || showId.StartsWith("current_wle_fp") + || showId.StartsWith("wle_s10_cf_round_") + || string.Equals(showId, "wle_playful_shuffle") + || (showId.StartsWith("event_") && showId.EndsWith("_fools") && roundId.StartsWith("wle_shuffle_")) + || (string.Equals(showId, "anniversary_fp12_ltm") && roundNum == 10)) { + return true; + } + + return (roundId.IndexOf("round_jinxed", StringComparison.OrdinalIgnoreCase) != -1 + && roundId.IndexOf("_non_final", StringComparison.OrdinalIgnoreCase) == -1 + && !string.Equals(showId, "event_anniversary_season_1_alternate_name")) + + || (roundId.IndexOf("round_fall_ball", StringComparison.OrdinalIgnoreCase) != -1 + && roundId.IndexOf("_non_final", StringComparison.OrdinalIgnoreCase) == -1 + && roundId.IndexOf("_cup_only", StringComparison.OrdinalIgnoreCase) == -1 + && roundId.IndexOf("_teamgames", StringComparison.OrdinalIgnoreCase) == -1 + && !string.Equals(showId, "event_anniversary_season_1_alternate_name")) + + || (roundId.IndexOf("round_territory", StringComparison.OrdinalIgnoreCase) != -1 + && roundId.IndexOf("_non_final", StringComparison.OrdinalIgnoreCase) == -1 + && roundId.IndexOf("_teamgames", StringComparison.OrdinalIgnoreCase) == -1) + + || (roundId.IndexOf("round_basketfall", StringComparison.OrdinalIgnoreCase) != -1 + && roundId.IndexOf("_non_final", StringComparison.OrdinalIgnoreCase) == -1 + && (roundId.EndsWith("_duos", StringComparison.OrdinalIgnoreCase) + || roundId.IndexOf("_final", StringComparison.OrdinalIgnoreCase) != -1)) + + || (roundId.IndexOf("round_1v1_volleyfall", StringComparison.OrdinalIgnoreCase) != -1 + && (roundId.IndexOf("_final", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("_teamgames", StringComparison.OrdinalIgnoreCase) != -1)) + + || ((roundId.IndexOf("round_pixelperfect", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_robotrampage", StringComparison.OrdinalIgnoreCase) != -1) + && roundId.EndsWith("_final", StringComparison.OrdinalIgnoreCase)) + + || roundId.EndsWith("_2teamsfinal", StringComparison.OrdinalIgnoreCase) + + || roundId.EndsWith("_timeattack_final", StringComparison.OrdinalIgnoreCase) + + || roundId.EndsWith("_xtreme_party_final", StringComparison.OrdinalIgnoreCase) + + || (roundId.IndexOf("_squads_squadcelebration", StringComparison.OrdinalIgnoreCase) != -1 + && roundId.EndsWith("_final", StringComparison.OrdinalIgnoreCase)) + + || (string.Equals(showId, "event_animals_template") + && roundNum == 4) + + || (string.Equals(showId, "event_yeetus_template") + && roundNum == 3) + + || (string.Equals(showId, "event_only_finals_v3_template") + && roundId.EndsWith("_final", StringComparison.OrdinalIgnoreCase)) + + || (string.Equals(showId, "event_only_hoverboard_template") + && roundNum == 3) + + || (string.Equals(showId, "event_snowday_stumble") + && roundNum == 4) + + || (string.Equals(showId, "fp16_ski_fall_high_scorers") + && roundNum == 1) + + || (string.Equals(showId, "ftue_uk_show") + && string.Equals(roundId, "round_snowballsurvival_noelim_ftue_s2")) + + || (string.Equals(showId, "no_elimination_show") + && roundNum == 3) + + || (string.Equals(showId, "sports_show") + && roundId.EndsWith("_final", StringComparison.OrdinalIgnoreCase)) + + || (string.Equals(showId, "showcase_fp13") + && (string.Equals(roundId, "scrapyard_derrameburbujeante") + || roundId.EndsWith("_final", StringComparison.OrdinalIgnoreCase))) + + || (string.Equals(showId, "showcase_fp16") + && (roundId.EndsWith("_final", StringComparison.OrdinalIgnoreCase) + || roundId.EndsWith("_goopropegrandslam", StringComparison.OrdinalIgnoreCase))) + + || (string.Equals(showId, "showcase_fp17") + && (string.Equals(roundId, "round_fp17_gardenpardon") + || string.Equals(roundId, "round_fp17_castlesiege"))) + + || (string.Equals(showId, "showcase_fp18") + && (string.Equals(roundId, "showcase_bulletfallwoods") + || string.Equals(roundId, "showcase_treeclimberswoods"))) + + || (string.Equals(showId, "showcase_fp19") + && (roundNum == 3 || string.Equals(roundId, "fp19_mellowcakes"))) + + || (string.Equals(showId, "showcase_fp20") + && (roundNum == 3 || string.Equals(roundId, "showcase_boats"))) + + || (string.Equals(showId, "wle_mrs_bouncy_bean_time") + && roundNum == 3) + + || (string.Equals(showId, "wle_nature_ltm") + && (roundNum == 3 || string.Equals(roundId, "logroll_nature_ltm"))) + + || (showId.StartsWith("greatestsquads_") + && (roundNum == 3 || string.Equals(roundId, "gs_slimecycle"))) + + // "Knockout" Shows + || (showId.StartsWith("knockout_") + && (string.Equals(roundId, "knockout_rotateandeliminate") + || string.Equals(roundId, "knockout_gooprope_rodeo") + || string.Equals(roundId, "knockout_slimeballshowdown") + || string.Equals(roundId, "knockout_blunderblocks") + || string.Equals(roundId, "knockout_pier_pressure") + || string.Equals(roundId, "round_fp17_knockout_castlesiege") + || string.Equals(roundId, "round_fp17_knockout_gardenpardon") + || (!string.Equals(roundId, "knockout_fp10_final_8") + && roundId.StartsWith("knockout_", StringComparison.OrdinalIgnoreCase) + && (roundId.EndsWith("_opener_4", StringComparison.OrdinalIgnoreCase) + || roundId.IndexOf("_final", StringComparison.OrdinalIgnoreCase) != -1)))); + } + + private bool IsModeException(string roundId, string showId) { + return roundId.IndexOf("round_1v1_button_basher_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_lava_event_only_slime_climb", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_slimeclimb_2_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_tip_toe_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_kraken_attack_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_blastball_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_floor_fall_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hexsnake_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_jump_showdown_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hexaring_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_tunnel_final_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_thin_ice_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_drumtop_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_floor_fall_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_floor_fall_event_only_low_grav", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_floor_fall_event_walnut", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hexaring_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hexaring_event_walnut", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hexsnake_event_walnut", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_kraken_attack_event_only_survival", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_thin_ice_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_fall_ball_cup_only_trios", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_blastball_arenasurvival_blast_ball_trials", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_sports_suddendeath_fall_ball", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_robotrampage_arena_2_ss2_show1", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_floor_fall_squads_survival", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_thin_ice_squads_survival", StringComparison.OrdinalIgnoreCase) != -1 + || string.Equals(showId, "event_blast_ball_banger_template") + || string.Equals(showId, "event_only_finals_v3_ranked") + // || showId.StartsWith("knockout_") + || string.Equals(showId, "reversed_knockout_show") // "Tuokconk" Show + || showId.StartsWith("ranked_"); // "Ranked Knockout" Show + } + + private bool IsModeFinalException(int roundNum, string roundId) { + return ((roundId.IndexOf("round_1v1_button_basher_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_lava_event_only_slime_climb", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_slimeclimb_2_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_tip_toe_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_kraken_attack_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_blastball_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_floor_fall_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hexsnake_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_jump_showdown_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hexaring_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_tunnel_final_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_thin_ice_only_finals", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_drumtop_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_floor_fall_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_floor_fall_event_only_low_grav", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_floor_fall_event_walnut", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hexaring_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hexaring_event_walnut", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hexsnake_event_walnut", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_kraken_attack_event_only_survival", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_thin_ice_event_only", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_fall_ball_cup_only_trios", StringComparison.OrdinalIgnoreCase) != -1) + && roundId.EndsWith("_final", StringComparison.OrdinalIgnoreCase)) + + || (roundId.IndexOf("round_blastball_arenasurvival_blast_ball_trials", StringComparison.OrdinalIgnoreCase) != -1 + && roundId.EndsWith("_fn", StringComparison.OrdinalIgnoreCase)) + + || (roundId.IndexOf("round_sports_suddendeath_fall_ball", StringComparison.OrdinalIgnoreCase) != -1 + && roundId.EndsWith("_02", StringComparison.OrdinalIgnoreCase)) + + || (roundId.IndexOf("round_robotrampage_arena_2_ss2_show1", StringComparison.OrdinalIgnoreCase) != -1 + && roundId.EndsWith("_03", StringComparison.OrdinalIgnoreCase)) + + || string.Equals(roundId, "round_blastball_arenasurvival_blast_ball_banger") + + || roundId.EndsWith("_only_finals_final_ranked", StringComparison.OrdinalIgnoreCase) + || roundId.EndsWith("_only_finals_ranked", StringComparison.OrdinalIgnoreCase) + + /* + // "Knockout" Shows + *|| string.Equals(roundId, "round_fp17_knockout_castlesiege") + *|| string.Equals(roundId, "round_fp17_knockout_gardenpardon") + *|| (!string.Equals(roundId, "knockout_fp10_final_8") + * && roundId.StartsWith("knockout_", StringComparison.OrdinalIgnoreCase) + * && (roundId.EndsWith("_opener_4", StringComparison.OrdinalIgnoreCase) + * || roundId.IndexOf("_final", StringComparison.OrdinalIgnoreCase) != -1)) + */ + + // "Tuokconk" Show + || (roundId.StartsWith("reversed_knockout_", StringComparison.OrdinalIgnoreCase) + && (roundNum == 3 || string.Equals(roundId, "reversed_knockout_door_dash"))) + + // "Ranked Knockout" Show + || (roundId.StartsWith("ranked_", StringComparison.OrdinalIgnoreCase) + && roundId.EndsWith("_final", StringComparison.OrdinalIgnoreCase)); + } + + private bool IsTeamException(string roundId) { + return (roundId.IndexOf("round_1v1_volleyfall", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("round_hoops_revenge", StringComparison.OrdinalIgnoreCase) != -1) + && (roundId.IndexOf("_duos", StringComparison.OrdinalIgnoreCase) != -1 + || roundId.IndexOf("_squads", StringComparison.OrdinalIgnoreCase) != -1); + } + + private void SetDefaultCreativeLevelVariables() { + this.threadLocalVariable.Value.creativeOnlinePlatformId = string.Empty; + this.threadLocalVariable.Value.creativeAuthor = string.Empty; + this.threadLocalVariable.Value.creativeShareCode = string.Empty; + this.threadLocalVariable.Value.creativeVersion = 0; + this.threadLocalVariable.Value.creativeStatus = string.Empty; + this.threadLocalVariable.Value.creativeTitle = string.Empty; + this.threadLocalVariable.Value.creativeDescription = string.Empty; + this.threadLocalVariable.Value.creativeCreatorTags = string.Empty; + this.threadLocalVariable.Value.creativeMaxPlayer = 0; + this.threadLocalVariable.Value.creativeThumbUrl = string.Empty; + this.threadLocalVariable.Value.creativePlatformId = string.Empty; + this.threadLocalVariable.Value.creativeGameModeId = string.Empty; + this.threadLocalVariable.Value.creativeLevelThemeId = string.Empty; + this.threadLocalVariable.Value.creativeLastModifiedDate = DateTime.MinValue; + this.threadLocalVariable.Value.creativePlayCount = 0; + this.threadLocalVariable.Value.creativeLikes = 0; + this.threadLocalVariable.Value.creativeDislikes = 0; + this.threadLocalVariable.Value.creativeQualificationPercent = 0; + this.threadLocalVariable.Value.creativeTimeLimitSeconds = 0; + } + + private void SetCreativeLevelVariables(string shareCode) { + RoundInfo ri = this.StatsForm.GetRoundInfoFromShareCode(shareCode); + if (ri != null) { + this.threadLocalVariable.Value.creativeOnlinePlatformId = ri.CreativeOnlinePlatformId; + this.threadLocalVariable.Value.creativeAuthor = ri.CreativeAuthor; + // this.threadLocalVariable.Value.creativeShareCode = ri.CreativeShareCode; + this.threadLocalVariable.Value.creativeVersion = ri.CreativeVersion; + this.threadLocalVariable.Value.creativeStatus = ri.CreativeStatus; + this.threadLocalVariable.Value.creativeTitle = ri.CreativeTitle; + this.threadLocalVariable.Value.creativeDescription = ri.CreativeDescription; + this.threadLocalVariable.Value.creativeCreatorTags = ri.CreativeCreatorTags; + this.threadLocalVariable.Value.creativeMaxPlayer = ri.CreativeMaxPlayer; + this.threadLocalVariable.Value.creativeThumbUrl = ri.CreativeThumbUrl; + this.threadLocalVariable.Value.creativePlatformId = ri.CreativePlatformId; + this.threadLocalVariable.Value.creativeGameModeId = ri.CreativeGameModeId; + this.threadLocalVariable.Value.creativeLevelThemeId = ri.CreativeLevelThemeId; + this.threadLocalVariable.Value.creativeLastModifiedDate = ri.CreativeLastModifiedDate; + this.threadLocalVariable.Value.creativePlayCount = ri.CreativePlayCount; + this.threadLocalVariable.Value.creativeLikes = ri.CreativeLikes; + this.threadLocalVariable.Value.creativeDislikes = ri.CreativeDislikes; + this.threadLocalVariable.Value.creativeQualificationPercent = ri.CreativeQualificationPercent; + this.threadLocalVariable.Value.creativeTimeLimitSeconds = ri.CreativeTimeLimitSeconds; + return; + } + bool isSucceed = false; + TimeSpan timeDiff = DateTime.UtcNow - Stats.ConnectedToServerDate; + if (timeDiff.TotalMinutes <= 15 && Utils.IsInternetConnected()) { + try { + JsonElement resData = Utils.GetApiData(Utils.FALLGUYSDB_API_URL, $"creative/{shareCode}.json"); + JsonElement je = resData.GetProperty("data"); + JsonElement snapshot = je.GetProperty("snapshot"); + JsonElement versionMetadata = snapshot.GetProperty("version_metadata"); + JsonElement stats = snapshot.GetProperty("stats"); + string[] onlinePlatformInfo = this.StatsForm.FindUserCreativeAuthor(snapshot.GetProperty("author").GetProperty("name_per_platform")); + this.threadLocalVariable.Value.creativeOnlinePlatformId = onlinePlatformInfo[0]; + this.threadLocalVariable.Value.creativeAuthor = onlinePlatformInfo[1]; + // this.threadLocalVariable.Value.creativeShareCode = snapshot.GetProperty("share_code").GetString(); + this.threadLocalVariable.Value.creativeVersion = versionMetadata.GetProperty("version").GetInt32(); + this.threadLocalVariable.Value.creativeStatus = versionMetadata.GetProperty("status").GetString(); + this.threadLocalVariable.Value.creativeTitle = versionMetadata.GetProperty("title").GetString(); + this.threadLocalVariable.Value.creativeDescription = versionMetadata.GetProperty("description").GetString(); + if (versionMetadata.TryGetProperty("creator_tags", out JsonElement creatorTags) && creatorTags.ValueKind == JsonValueKind.Array) { + string temps = string.Empty; + foreach (JsonElement t in creatorTags.EnumerateArray()) { + if (!string.IsNullOrEmpty(temps)) { temps += ";"; } + temps += t.GetString(); + } + this.threadLocalVariable.Value.creativeCreatorTags = temps; + } + this.threadLocalVariable.Value.creativeMaxPlayer = versionMetadata.GetProperty("max_player_count").GetInt32(); + this.threadLocalVariable.Value.creativeThumbUrl = versionMetadata.GetProperty("thumb_url").GetString(); + this.threadLocalVariable.Value.creativePlatformId = versionMetadata.GetProperty("platform_id").GetString(); + this.threadLocalVariable.Value.creativeGameModeId = versionMetadata.GetProperty("game_mode_id").GetString() ?? "GAMEMODE_GAUNTLET"; + this.threadLocalVariable.Value.creativeLevelThemeId = versionMetadata.GetProperty("level_theme_id").GetString() ?? "THEME_VANILLA"; + this.threadLocalVariable.Value.creativeLastModifiedDate = versionMetadata.GetProperty("last_modified_date").GetDateTime(); + this.threadLocalVariable.Value.creativePlayCount = stats.GetProperty("play_count").GetInt32(); + this.threadLocalVariable.Value.creativeLikes = stats.GetProperty("likes").GetInt32(); + this.threadLocalVariable.Value.creativeDislikes = stats.GetProperty("dislikes").GetInt32(); + this.threadLocalVariable.Value.creativeQualificationPercent = versionMetadata.GetProperty("qualification_percent").GetInt32(); + this.threadLocalVariable.Value.creativeTimeLimitSeconds = versionMetadata.GetProperty("config").TryGetProperty("time_limit_seconds", out JsonElement jeTimeLimitSeconds) ? jeTimeLimitSeconds.GetInt32() : 240; + // Task.Run(() => { this.StatsForm.UpdateCreativeLevel(string.Empty, shareCode, snapshot); }); + isSucceed = true; + } catch { + try { + JsonElement resData = Utils.GetApiData(Utils.FGANALYST_API_URL, $"creative/?share_code={shareCode}"); + JsonElement je = resData.GetProperty("level_data"); + JsonElement levelData = je[0]; + JsonElement versionMetadata = levelData.GetProperty("version_metadata"); + JsonElement stats = levelData.GetProperty("stats"); + string[] onlinePlatformInfo = this.StatsForm.FindUserCreativeAuthor(levelData.GetProperty("author").GetProperty("name_per_platform")); + this.threadLocalVariable.Value.creativeOnlinePlatformId = onlinePlatformInfo[0]; + this.threadLocalVariable.Value.creativeAuthor = onlinePlatformInfo[1]; + // this.threadLocalVariable.Value.creativeShareCode = levelData.GetProperty("share_code").GetString(); + this.threadLocalVariable.Value.creativeVersion = versionMetadata.GetProperty("version").GetInt32(); + this.threadLocalVariable.Value.creativeStatus = versionMetadata.GetProperty("status").GetString(); + this.threadLocalVariable.Value.creativeTitle = versionMetadata.GetProperty("title").GetString(); + this.threadLocalVariable.Value.creativeDescription = versionMetadata.GetProperty("description").GetString(); + if (versionMetadata.TryGetProperty("creator_tags", out JsonElement creatorTags) && creatorTags.ValueKind == JsonValueKind.Array) { + string temps = string.Empty; + foreach (JsonElement t in creatorTags.EnumerateArray()) { + if (!string.IsNullOrEmpty(temps)) { temps += ";"; } + temps += t.GetString(); + } + this.threadLocalVariable.Value.creativeCreatorTags = temps; + } + this.threadLocalVariable.Value.creativeMaxPlayer = versionMetadata.GetProperty("max_player_count").GetInt32(); + this.threadLocalVariable.Value.creativeThumbUrl = versionMetadata.GetProperty("thumb_url").GetString(); + this.threadLocalVariable.Value.creativePlatformId = versionMetadata.GetProperty("platform_id").GetString(); + this.threadLocalVariable.Value.creativeGameModeId = versionMetadata.GetProperty("game_mode_id").GetString() ?? "GAMEMODE_GAUNTLET"; + this.threadLocalVariable.Value.creativeLevelThemeId = versionMetadata.GetProperty("level_theme_id").GetString() ?? "THEME_VANILLA"; + this.threadLocalVariable.Value.creativeLastModifiedDate = versionMetadata.GetProperty("last_modified_date").GetDateTime(); + this.threadLocalVariable.Value.creativePlayCount = stats.GetProperty("play_count").GetInt32(); + this.threadLocalVariable.Value.creativeLikes = stats.GetProperty("likes").GetInt32(); + this.threadLocalVariable.Value.creativeDislikes = stats.GetProperty("dislikes").GetInt32(); + this.threadLocalVariable.Value.creativeQualificationPercent = versionMetadata.GetProperty("qualification_percent").GetInt32(); + this.threadLocalVariable.Value.creativeTimeLimitSeconds = versionMetadata.GetProperty("config").TryGetProperty("time_limit_seconds", out JsonElement jeTimeLimitSeconds) ? jeTimeLimitSeconds.GetInt32() : 240; + // Task.Run(() => { this.StatsForm.UpdateCreativeLevel(string.Empty, shareCode, levelData); }); + isSucceed = true; + } catch { + isSucceed = false; + } + } + } + + if (!isSucceed) { + this.SetDefaultCreativeLevelVariables(); + } + } + + private void SetCreativeLevelInfo(RoundInfo info) { + info.CreativeOnlinePlatformId = this.threadLocalVariable.Value.creativeOnlinePlatformId; + info.CreativeAuthor = this.threadLocalVariable.Value.creativeAuthor; + info.CreativeShareCode = this.threadLocalVariable.Value.creativeShareCode; + info.CreativeVersion = this.threadLocalVariable.Value.creativeVersion; + info.CreativeStatus = this.threadLocalVariable.Value.creativeStatus; + info.CreativeTitle = this.threadLocalVariable.Value.creativeTitle; + info.CreativeDescription = this.threadLocalVariable.Value.creativeDescription; + info.CreativeCreatorTags = this.threadLocalVariable.Value.creativeCreatorTags; + info.CreativeMaxPlayer = this.threadLocalVariable.Value.creativeMaxPlayer; + info.CreativeThumbUrl = this.threadLocalVariable.Value.creativeThumbUrl; + info.CreativePlatformId = this.threadLocalVariable.Value.creativePlatformId; + info.CreativeGameModeId = this.threadLocalVariable.Value.creativeGameModeId; + info.CreativeLevelThemeId = this.threadLocalVariable.Value.creativeLevelThemeId; + info.CreativeLastModifiedDate = this.threadLocalVariable.Value.creativeLastModifiedDate; + info.CreativePlayCount = this.threadLocalVariable.Value.creativePlayCount; + info.CreativeLikes = this.threadLocalVariable.Value.creativeLikes; + info.CreativeDislikes = this.threadLocalVariable.Value.creativeDislikes; + info.CreativeQualificationPercent = this.threadLocalVariable.Value.creativeQualificationPercent; + info.CreativeTimeLimitSeconds = this.threadLocalVariable.Value.creativeTimeLimitSeconds; + } + + private void SetCountryCodeByIp(string ip) { + if (this.threadLocalVariable.Value.toggleCountryInfoApi || !Utils.IsProcessRunning("FallGuys_client_game")) return; + + this.threadLocalVariable.Value.toggleCountryInfoApi = true; + Stats.LastCountryAlpha2Code = string.Empty; + Stats.LastCountryRegion = string.Empty; + Stats.LastCountryCity = string.Empty; + try { + string ci = Utils.GetCountryInfo(ip); + if (!string.IsNullOrEmpty(ci)) { + string[] countryInfo = ci.Split(';'); + Stats.LastCountryAlpha2Code = countryInfo[0].ToLower(); + Stats.LastCountryRegion = !string.Equals(countryInfo[1].ToLower(), "unknown") ? countryInfo[1] : string.Empty; + Stats.LastCountryCity = !string.Equals(countryInfo[2].ToLower(), "unknown") ? countryInfo[2] : string.Empty; + } else { + string countryCode = Utils.GetCountryCode(ip); + Stats.LastCountryAlpha2Code = !string.IsNullOrEmpty(countryCode) ? countryCode.ToLower() : string.Empty; + Stats.LastCountryRegion = string.Empty; + Stats.LastCountryCity = string.Empty; + } + } catch { + this.threadLocalVariable.Value.toggleCountryInfoApi = false; + Stats.LastCountryAlpha2Code = string.Empty; + Stats.LastCountryRegion = string.Empty; + Stats.LastCountryCity = string.Empty; + } + } + + private void ResetVariablesUsedForOverlay() { + Stats.IsQueuing = false; + Stats.QueuedPlayers = 0; + Stats.IsConnectedToServer = false; + Stats.LastServerPing = 0; + Stats.IsBadServerPing = false; + Stats.LastCountryAlpha2Code = string.Empty; + Stats.LastCountryRegion = string.Empty; + Stats.LastCountryCity = string.Empty; + Stats.CasualRoundNum = 0; + Stats.LastPlayedRoundEnd = null; + this.threadLocalVariable.Value.toggleCountryInfoApi = false; + this.SetDefaultCreativeLevelVariables(); + } + + private void ResetMainLocalVariables() { + this.threadLocalVariable.Value.selectedShowId = string.Empty; + this.threadLocalVariable.Value.currentSessionId = string.Empty; + this.threadLocalVariable.Value.useShareCode = false; + this.threadLocalVariable.Value.isCasualShow = false; + this.threadLocalVariable.Value.sceneName = string.Empty; + } + + private void UpdateServerConnectionLog(string session, string show) { + lock (this.StatsForm.ServerConnectionLogCache) { + if (!this.StatsForm.ExistsServerConnectionLog(session)) { + this.StatsForm.InsertServerConnectionLog(session, show, Stats.LastServerIp, Stats.ConnectedToServerDate, true, true); + this.serverPingWatcher.Start(); + this.SetCountryCodeByIp(Stats.LastServerIp); + if (!Stats.IsClientHasBeenClosed && this.StatsForm.CurrentSettings.NotifyServerConnected && !string.IsNullOrEmpty(Stats.LastCountryAlpha2Code)) { + this.OnServerConnectionNotification?.Invoke(); + } + } else { + ServerConnectionLog serverConnectionLog = this.StatsForm.SelectServerConnectionLog(session); + if (!serverConnectionLog.IsNotify) { + if (!Stats.IsClientHasBeenClosed && this.StatsForm.CurrentSettings.NotifyServerConnected && !string.IsNullOrEmpty(Stats.LastCountryAlpha2Code)) { + this.OnServerConnectionNotification?.Invoke(); + } + } + + if (serverConnectionLog.IsPlaying) { + this.serverPingWatcher.Start(); + this.SetCountryCodeByIp(Stats.LastServerIp); + } + } + } + } + + private void UpdatePersonalBestLog(RoundInfo info) { + lock (this.StatsForm.PersonalBestLogCache) { + if (string.IsNullOrEmpty(info.SessionId) || info.PrivateLobby || (!info.IsCasualShow && info.UseShareCode) || !info.Finish.HasValue) return; + + if (info.IsCasualShow && this.StatsForm.IsCreativeShow(info.ShowNameId)) { + if (string.IsNullOrEmpty(info.Name) || (!string.Equals(info.CreativeGameModeId, "GAMEMODE_GAUNTLET", StringComparison.OrdinalIgnoreCase) + && !string.Equals(info.CreativeGameModeId, "GAMEMODE_POINTS", StringComparison.OrdinalIgnoreCase))) return; + + if (!this.StatsForm.ExistsPersonalBestLog(info.Finish.Value)) { + List roundInfoList = this.StatsForm.AllStats.FindAll(r => !r.PrivateLobby && + !string.IsNullOrEmpty(r.ShowNameId) && + !string.IsNullOrEmpty(r.SessionId) && + r.IsCasualShow && + string.Equals(r.Name, info.Name) && + r.Finish.HasValue); + + double currentPb = roundInfoList.Count > 0 ? roundInfoList.Min(r => (r.Finish.Value - r.Start).TotalMilliseconds) : 0; + double currentRecord = (info.Finish.Value - info.Start).TotalMilliseconds; + bool isNewPb = currentPb == 0 || currentRecord < currentPb; + + this.StatsForm.InsertPersonalBestLog(info.Finish.Value, info.SessionId, "casual_show", info.Name, currentRecord, isNewPb); + if (this.StatsForm.CurrentSettings.NotifyPersonalBest && isNewPb) { + string levelName = !string.IsNullOrEmpty(info.CreativeTitle) ? info.CreativeTitle : this.StatsForm.GetUserCreativeLevelTitle(info.Name); + this.OnPersonalBestNotification?.Invoke("casual_show", levelName, currentPb, currentRecord); + } + } + } else { + string levelId = info.VerifiedName(); + if (!this.StatsForm.StatLookup.TryGetValue(levelId, out LevelStats currentLevel) || (currentLevel.BestRecordType != BestRecordType.Fastest)) return; + + if (!this.StatsForm.ExistsPersonalBestLog(info.Finish.Value)) { + List roundInfoList = new List(); + if (currentLevel.IsCreative) { + roundInfoList = this.StatsForm.AllStats.FindAll(r => !r.PrivateLobby && + !string.IsNullOrEmpty(r.ShowNameId) && + !string.IsNullOrEmpty(r.SessionId) && + string.Equals(r.ShowNameId, info.ShowNameId) && + string.Equals(r.CreativeShareCode, currentLevel.ShareCode) && + r.Finish.HasValue); + } else { + if (!info.IsCasualShow) { + roundInfoList = this.StatsForm.AllStats.FindAll(r => !r.PrivateLobby && + !string.IsNullOrEmpty(r.ShowNameId) && + !string.IsNullOrEmpty(r.SessionId) && + string.Equals(r.ShowNameId, info.ShowNameId) && + string.Equals(r.Name, levelId) && + r.Finish.HasValue); + } else { + roundInfoList = this.StatsForm.AllStats.FindAll(r => !r.PrivateLobby && + !string.IsNullOrEmpty(r.ShowNameId) && + !string.IsNullOrEmpty(r.SessionId) && + r.IsCasualShow && + string.Equals(r.Name, levelId) && + r.Finish.HasValue); + } + } + + double currentPb = roundInfoList.Count > 0 ? roundInfoList.Min(r => (r.Finish.Value - r.Start).TotalMilliseconds) : 0; + double currentRecord = (info.Finish.Value - info.Start).TotalMilliseconds; + bool isNewPb = currentPb == 0 || currentRecord < currentPb; + + string showId = !info.IsCasualShow ? info.ShowNameId : "casual_show"; + this.StatsForm.InsertPersonalBestLog(info.Finish.Value, info.SessionId, showId, levelId, currentRecord, isNewPb); + if (this.StatsForm.CurrentSettings.NotifyPersonalBest && isNewPb) { + this.OnPersonalBestNotification?.Invoke(showId, levelId, currentPb, currentRecord); + } + } + } + } + } + + private bool ParseLine(LogLine line, List round, LogRound logRound) { + int index; + if ((!this.threadLocalVariable.Value.isCasualShow && line.Line.IndexOf("[StateDisconnectingFromServer] Shutting down game and resetting scene to reconnect", StringComparison.OrdinalIgnoreCase) != -1) + || line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StateDisconnectingFromServer with FGClient.StateMainMenu", StringComparison.OrdinalIgnoreCase) != -1) { + this.StatsForm.UpdateServerConnectionLog(this.threadLocalVariable.Value.currentSessionId, false); + this.ResetVariablesUsedForOverlay(); + Stats.InShow = false; + } else if ((line.Line.IndexOf("[Matchmaking] Begin", StringComparison.OrdinalIgnoreCase) != -1 && line.Line.IndexOf("private lobby", StringComparison.OrdinalIgnoreCase) == -1) + || line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StatePrivateLobby with FGClient.StateConnectToGame", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[StateMainMenu] Creating or joining private lobby minimal", StringComparison.OrdinalIgnoreCase) != -1 + || (this.threadLocalVariable.Value.isCasualShow && line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StateDisconnectingFromServer with FGClient.StateConnectToGame", StringComparison.OrdinalIgnoreCase) != -1)) { + if (line.Date > Stats.LastGameStart) { + Stats.LastGameStart = line.Date; + if (logRound.Info != null) { + if (logRound.Info.End == DateTime.MinValue) { + logRound.Info.End = line.Date; + } + logRound.Info.Playing = false; + logRound.Info = null; + } + } + Stats.EndedShow = false; + + this.threadLocalVariable.Value.isPrivateLobby = line.Line.IndexOf("StatePrivateLobby", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("private lobby", StringComparison.OrdinalIgnoreCase) != -1; + + if (line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StateDisconnectingFromServer with FGClient.StateConnectToGame", StringComparison.OrdinalIgnoreCase) == -1) { + this.threadLocalVariable.Value.currentlyInParty = !this.threadLocalVariable.Value.isPrivateLobby + && (line.Line.IndexOf("solo", StringComparison.OrdinalIgnoreCase) == -1); + } + + logRound.InLoadingGameScreen = false; + logRound.CountingPlayers = false; + logRound.GetCurrentPlayerID = false; + logRound.FindingPosition = false; + + round.Clear(); + } else if (!Stats.EndedShow && line.Line.IndexOf("[FG_UnityInternetNetworkManager] Client connected to Server", StringComparison.OrdinalIgnoreCase) != -1) { + if (!Stats.IsConnectedToServer) { + Stats.IsConnectedToServer = true; + Stats.ConnectedToServerDate = line.Date; + int ipIndex = line.Line.IndexOf("IP:", StringComparison.OrdinalIgnoreCase) + 3; + Stats.LastServerIp = line.Line.Substring(ipIndex); + } + } else if ((index = line.Line.IndexOf("[HandleSuccessfulLogin] Selected show is ", StringComparison.OrdinalIgnoreCase)) != -1) { + int index2 = line.Line.IndexOf(" IsUltimatePartyEpisode:"); + this.threadLocalVariable.Value.selectedShowId = index2 != -1 ? line.Line.Substring(index + 41, index2 - (index + 41)) : line.Line.Substring(index + 41); + this.threadLocalVariable.Value.isCasualShow = this.IsShowIsCasualShow(this.threadLocalVariable.Value.selectedShowId); + if (this.threadLocalVariable.Value.selectedShowId.StartsWith("ugc-")) { + this.threadLocalVariable.Value.selectedShowId = this.threadLocalVariable.Value.selectedShowId.Substring(4); + this.threadLocalVariable.Value.useShareCode = true; + } else if (this.threadLocalVariable.Value.isCasualShow && this.StatsForm.IsCreativeShow(this.threadLocalVariable.Value.selectedShowId)) { + this.threadLocalVariable.Value.useShareCode = true; + } else { + this.threadLocalVariable.Value.useShareCode = false; + } + } else if ((index = line.Line.IndexOf("[HandleSuccessfulLogin] Session: ", StringComparison.OrdinalIgnoreCase)) != -1) { + this.threadLocalVariable.Value.currentSessionId = line.Line.Substring(index + 33); + if ((DateTime.UtcNow - Stats.ConnectedToServerDate).TotalMinutes <= 40) { + this.UpdateServerConnectionLog(this.threadLocalVariable.Value.currentSessionId, this.threadLocalVariable.Value.selectedShowId); + } + } else if ((index = line.Line.IndexOf("[RoundLoader] Load UGC via share code: ", StringComparison.OrdinalIgnoreCase)) != -1) { + this.threadLocalVariable.Value.creativeShareCode = line.Line.Substring(index + 39, 14); + } else if ((index = line.Line.IndexOf("[RoundLoader] LoadGameLevelSceneASync COMPLETE for scene ", StringComparison.OrdinalIgnoreCase)) != -1 + || (index = line.Line.IndexOf("[RoundLoader] NOT loading game scene ", StringComparison.OrdinalIgnoreCase)) != -1) { + if (line.Date > Stats.LastRoundLoad) { + Stats.LastRoundLoad = line.Date; + Stats.InShow = true; + Stats.SucceededPlayerIds.Clear(); + Stats.EliminatedPlayerIds.Clear(); + Stats.ReadyPlayerIds.Clear(); + Stats.NumPlayersSucceeded = 0; + Stats.NumPlayersPsSucceeded = 0; + Stats.NumPlayersXbSucceeded = 0; + Stats.NumPlayersSwSucceeded = 0; + Stats.NumPlayersPcSucceeded = 0; + Stats.NumPlayersMbSucceeded = 0; + Stats.NumPlayersEliminated = 0; + Stats.NumPlayersPsEliminated = 0; + Stats.NumPlayersXbEliminated = 0; + Stats.NumPlayersSwEliminated = 0; + Stats.NumPlayersPcEliminated = 0; + Stats.NumPlayersMbEliminated = 0; + Stats.IsLastRoundRunning = true; + Stats.IsLastPlayedRoundStillPlaying = false; + Stats.LastPlayedRoundStart = null; + Stats.LastPlayedRoundEnd = null; + + if ((DateTime.UtcNow - Stats.ConnectedToServerDate).TotalMinutes <= 40) { + this.gameStateWatcher.Start(); + } + } + + int index2 = line.Line.IndexOf(" on frame "); + if (index2 != -1) { + this.threadLocalVariable.Value.sceneName = line.Line.Substring(index + 57, index2 - (index + 57)); + } else { + index2 = line.Line.IndexOf(" as it is already loaded and active"); + this.threadLocalVariable.Value.sceneName = line.Line.Substring(index + 37, index2 - (index + 37)); + } + + if (logRound.InLoadingGameScreen) { + logRound.Info = new RoundInfo { + ShowNameId = this.threadLocalVariable.Value.selectedShowId, SessionId = this.threadLocalVariable.Value.currentSessionId, + UseShareCode = this.threadLocalVariable.Value.useShareCode, IsCasualShow = this.threadLocalVariable.Value.isCasualShow, + OnlineServiceType = (int)Stats.OnlineServiceType, OnlineServiceId = Stats.OnlineServiceId, OnlineServiceNickname = Stats.OnlineServiceNickname + }; + + logRound.FindingPosition = false; + + round.Add(logRound.Info); + } else { + logRound.IsRoundPreloaded = true; + } + } else if (line.Line.IndexOf("[StateGameLoading] ShowLoadingGameScreenAndLoadLevel", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.InLoadingGameScreen = true; + if (logRound.IsRoundPreloaded) { + logRound.IsRoundPreloaded = false; + logRound.Info = new RoundInfo { + ShowNameId = this.threadLocalVariable.Value.selectedShowId, SessionId = this.threadLocalVariable.Value.currentSessionId, + UseShareCode = this.threadLocalVariable.Value.useShareCode, IsCasualShow = this.threadLocalVariable.Value.isCasualShow, + OnlineServiceType = (int)Stats.OnlineServiceType, OnlineServiceId = Stats.OnlineServiceId, OnlineServiceNickname = Stats.OnlineServiceNickname + }; + + logRound.FindingPosition = false; + + round.Add(logRound.Info); + } + } else if (logRound.Info != null && (index = line.Line.IndexOf("[StateGameLoading] Finished loading game level", StringComparison.OrdinalIgnoreCase)) != -1) { + if (string.IsNullOrEmpty(logRound.Info.SessionId)) { + logRound.Info.Round = -1; + } else if (logRound.Info.IsCasualShow) { + if (this.threadLocalVariable.Value.currentSessionId != Stats.SavedSessionId) { + Stats.SavedSessionId = this.threadLocalVariable.Value.currentSessionId; + Stats.CasualRoundNum++; + } + logRound.Info.Round = 1; + } else { + logRound.Info.Round = !Stats.EndedShow ? round.Count : Stats.SavedRoundCount + round.Count; + } + + if (logRound.Info.UseShareCode) { + if (line.Date > Stats.LastCreativeRoundLoad) { + Stats.LastCreativeRoundLoad = line.Date; + this.SetCreativeLevelVariables(this.threadLocalVariable.Value.creativeShareCode); + } + logRound.Info.ShowNameId = this.StatsForm.GetUserCreativeLevelTypeId(this.threadLocalVariable.Value.creativeGameModeId); + logRound.Info.SceneName = this.threadLocalVariable.Value.creativeGameModeId; + logRound.Info.RoundId = logRound.Info.Name = this.threadLocalVariable.Value.creativeShareCode; + this.SetCreativeLevelInfo(logRound.Info); + } else { + logRound.Info.ShowNameId = logRound.Info.ShowNameId ?? this.threadLocalVariable.Value.selectedShowId; + logRound.Info.SceneName = this._sceneNameReplacer.TryGetValue(this.threadLocalVariable.Value.sceneName, out string sceneName) + ? sceneName + : this.threadLocalVariable.Value.sceneName; + int index2 = line.Line.IndexOf(". ", index + 62); + if (index2 == -1) { index2 = line.Line.Length; } + logRound.Info.RoundId = line.Line.Substring(index + 62, index2 - index - 62); + logRound.Info.Name = this.StatsForm.ReplaceLevelIdInShuffleShow(logRound.Info.ShowNameId, logRound.Info.RoundId); + } + + if (string.IsNullOrEmpty(logRound.Info.SessionId) || logRound.Info.IsCasualShow) { + logRound.Info.IsFinal = false; + } else if (logRound.Info.UseShareCode || this.IsRealFinalRound(logRound.Info.Round, logRound.Info.Name, logRound.Info.ShowNameId)) { + logRound.Info.IsFinal = true; + } else if (this.IsModeException(logRound.Info.Name, logRound.Info.ShowNameId)) { + logRound.Info.IsFinal = this.IsModeFinalException(logRound.Info.Round, logRound.Info.Name); + } else if (logRound.Info.Name.StartsWith("wle_s10_") || logRound.Info.Name.StartsWith("wle_mrs_")) { + logRound.Info.IsFinal = this.StatsForm.StatLookup.TryGetValue(logRound.Info.Name, out LevelStats levelStats) && levelStats.IsFinal; + } else { + logRound.Info.IsFinal = LevelStats.SceneToRound.TryGetValue(logRound.Info.SceneName, out string levelId) && this.StatsForm.StatLookup.TryGetValue(levelId, out LevelStats levelStats) && levelStats.IsFinal; + } + + logRound.Info.IsTeam = this.IsTeamException(logRound.Info.Name); + + logRound.Info.Start = line.Date; + logRound.Info.PrivateLobby = this.threadLocalVariable.Value.isPrivateLobby; + logRound.Info.InParty = this.threadLocalVariable.Value.currentlyInParty; + + logRound.CountingPlayers = true; + logRound.GetCurrentPlayerID = true; + } else if (logRound.Info != null && logRound.CountingPlayers && (line.Line.IndexOf("[ClientGameManager] Finalising spawn", StringComparison.OrdinalIgnoreCase) != -1 || line.Line.IndexOf("[ClientGameManager] Added player ", StringComparison.OrdinalIgnoreCase) != -1)) { + logRound.Info.Players++; + } else if (logRound.Info != null && logRound.CountingPlayers && line.Line.IndexOf("[CameraDirector] Adding Spectator target", StringComparison.OrdinalIgnoreCase) != -1) { + int playerId = int.Parse(line.Line.Substring(line.Line.IndexOf(" and playerID: ", StringComparison.OrdinalIgnoreCase) + 15)); + if (line.Line.IndexOf("ps4", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.PlayersPs4++; + if (line.Date > Stats.LastRoundLoad && !Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.ReadyPlayerIds.Add(playerId, "ps4"); + } + } else if (line.Line.IndexOf("ps5", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.PlayersPs5++; + if (line.Date > Stats.LastRoundLoad && !Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.ReadyPlayerIds.Add(playerId, "ps5"); + } + } else if (line.Line.IndexOf("xb1", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.PlayersXb1++; + if (line.Date > Stats.LastRoundLoad && !Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.ReadyPlayerIds.Add(playerId, "xb1"); + } + } else if (line.Line.IndexOf("xsx", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.PlayersXsx++; + if (line.Date > Stats.LastRoundLoad && !Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.ReadyPlayerIds.Add(playerId, "xsx"); + } + } else if (line.Line.IndexOf("switch", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.PlayersSw++; + if (line.Date > Stats.LastRoundLoad && !Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.ReadyPlayerIds.Add(playerId, "switch"); + } + } else if (line.Line.IndexOf("pc", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.PlayersPc++; + if (line.Date > Stats.LastRoundLoad && !Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.ReadyPlayerIds.Add(playerId, "pc"); + } + } else if (line.Line.IndexOf("android", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.PlayersAndroid++; + if (line.Date > Stats.LastRoundLoad && !Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.ReadyPlayerIds.Add(playerId, "android"); + } + } else if (line.Line.IndexOf("ios", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.PlayersIos++; + if (line.Date > Stats.LastRoundLoad && !Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.ReadyPlayerIds.Add(playerId, "ios"); + } + } else if (line.Line.IndexOf("bots", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.PlayersBots++; + if (line.Date > Stats.LastRoundLoad && !Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.ReadyPlayerIds.Add(playerId, "bots"); + } + } else { + logRound.Info.PlayersEtc++; + if (line.Date > Stats.LastRoundLoad && !Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.ReadyPlayerIds.Add(playerId, "etc"); + } + } + } else if (logRound.Info != null && logRound.GetCurrentPlayerID && line.Line.IndexOf("[ClientGameManager] Handling bootstrap for local player FallGuy", StringComparison.OrdinalIgnoreCase) != -1 && (index = line.Line.IndexOf("playerID = ", StringComparison.OrdinalIgnoreCase)) != -1) { + logRound.GetCurrentPlayerID = false; + int prevIndex = line.Line.IndexOf(",", index + 11); + logRound.CurrentPlayerID = int.Parse(line.Line.Substring(index + 11, prevIndex - index - 11)); + } else if (logRound.Info != null && line.Line.IndexOf("[GameSession] Changing state from Countdown to Playing", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.Start = line.Date; + logRound.Info.Playing = true; + logRound.InLoadingGameScreen = false; + logRound.CountingPlayers = false; + logRound.GetCurrentPlayerID = false; + } else if (logRound.Info != null && line.Line.IndexOf($"HandleServerPlayerProgress PlayerId={logRound.CurrentPlayerID} is succeeded=", StringComparison.OrdinalIgnoreCase) != -1) { + if (line.Line.IndexOf("succeeded=True", StringComparison.OrdinalIgnoreCase) != -1) { + logRound.Info.Finish = logRound.Info.End == DateTime.MinValue ? line.Date : logRound.Info.End; + if (line.Date > Stats.LastRoundLoad && !Stats.SucceededPlayerIds.Contains(logRound.CurrentPlayerID)) { + Stats.SucceededPlayerIds.Add(logRound.CurrentPlayerID); + Stats.NumPlayersSucceeded++; + if (Stats.ReadyPlayerIds.TryGetValue(logRound.CurrentPlayerID, out string platformId)) { + switch (platformId) { + case "ps4": + case "ps5": + Stats.NumPlayersPsSucceeded++; break; + case "xb1": + case "xsx": + Stats.NumPlayersXbSucceeded++; break; + case "switch": + Stats.NumPlayersSwSucceeded++; break; + case "pc": + Stats.NumPlayersPcSucceeded++; break; + case "android": + case "ios": + Stats.NumPlayersMbSucceeded++; break; + } + } + this.UpdatePersonalBestLog(logRound.Info); + } + logRound.FindingPosition = true; + } else if (line.Line.IndexOf("succeeded=False", StringComparison.OrdinalIgnoreCase) != -1) { + if (line.Date > Stats.LastRoundLoad && !Stats.EliminatedPlayerIds.Contains(logRound.CurrentPlayerID)) { + Stats.EliminatedPlayerIds.Add(logRound.CurrentPlayerID); + Stats.NumPlayersEliminated++; + if (Stats.ReadyPlayerIds.TryGetValue(logRound.CurrentPlayerID, out string platformId)) { + switch (platformId) { + case "ps4": + case "ps5": + Stats.NumPlayersPsEliminated++; break; + case "xb1": + case "xsx": + Stats.NumPlayersXbEliminated++; break; + case "switch": + Stats.NumPlayersSwEliminated++; break; + case "pc": + Stats.NumPlayersPcEliminated++; break; + case "android": + case "ios": + Stats.NumPlayersMbEliminated++; break; + } + } + } + logRound.FindingPosition = true; + } + } else if (logRound.Info != null && !Stats.EndedShow && logRound.FindingPosition && (index = line.Line.IndexOf("[ClientGameSession] NumPlayersAchievingObjective=")) != -1) { + int position = int.Parse(line.Line.Substring(index + 49)); + if (position > 0) { + logRound.FindingPosition = false; + logRound.Info.Position = position; + } + } else if (line.Date > Stats.LastRoundLoad && (index = line.Line.IndexOf("HandleServerPlayerProgress PlayerId=", StringComparison.OrdinalIgnoreCase)) != -1) { + if (line.Line.IndexOf("succeeded=True", StringComparison.OrdinalIgnoreCase) != -1) { + int prevIndex = line.Line.IndexOf(" ", index + 36); + int playerId = int.Parse(line.Line.Substring(index + 36, prevIndex - index - 36)); + if (!Stats.SucceededPlayerIds.Contains(playerId)) { + Stats.SucceededPlayerIds.Add(playerId); + Stats.NumPlayersSucceeded++; + if (Stats.ReadyPlayerIds.TryGetValue(playerId, out string platformId)) { + switch (platformId) { + case "ps4": + case "ps5": + Stats.NumPlayersPsSucceeded++; break; + case "xb1": + case "xsx": + Stats.NumPlayersXbSucceeded++; break; + case "switch": + Stats.NumPlayersSwSucceeded++; break; + case "pc": + Stats.NumPlayersPcSucceeded++; break; + case "android": + case "ios": + Stats.NumPlayersMbSucceeded++; break; + } + } + } + } else if (line.Line.IndexOf("succeeded=False", StringComparison.OrdinalIgnoreCase) != -1) { + int prevIndex = line.Line.IndexOf(" ", index + 36); + int playerId = int.Parse(line.Line.Substring(index + 36, prevIndex - index - 36)); + if (!Stats.EliminatedPlayerIds.Contains(playerId) && Stats.ReadyPlayerIds.ContainsKey(playerId)) { + Stats.EliminatedPlayerIds.Add(playerId); + Stats.NumPlayersEliminated++; + if (Stats.ReadyPlayerIds.TryGetValue(playerId, out string platformId)) { + switch (platformId) { + case "ps4": + case "ps5": + Stats.NumPlayersPsEliminated++; break; + case "xb1": + case "xsx": + Stats.NumPlayersXbEliminated++; break; + case "switch": + Stats.NumPlayersSwEliminated++; break; + case "pc": + Stats.NumPlayersPcEliminated++; break; + case "android": + case "ios": + Stats.NumPlayersMbEliminated++; break; + } + } + } + } + } else if (line.Line.IndexOf("[GameSession] Changing state from Playing to GameOver", StringComparison.OrdinalIgnoreCase) != -1) { + if (line.Date > Stats.LastRoundLoad) { + if (Stats.InShow && Stats.LastPlayedRoundStart.HasValue && !Stats.LastPlayedRoundEnd.HasValue) { + Stats.LastPlayedRoundEnd = line.Date; + } + Stats.IsLastRoundRunning = false; + Stats.IsLastPlayedRoundStillPlaying = false; + } + if (logRound.Info != null) { + if (logRound.Info.End == DateTime.MinValue) { + logRound.Info.End = line.Date; + } + logRound.Info.Playing = false; + } + } else if (line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StatePrivateLobby with FGClient.StateMainMenu", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[GameStateMachine] Replacing FGClient.StateReloadingToMainMenu with FGClient.StateMainMenu", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[StateMainMenu] Loading scene MainMenu", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[EOSPartyPlatformService.Base] Reset, reason: Shutdown", StringComparison.OrdinalIgnoreCase) != -1 + || (this.threadLocalVariable.Value.isCasualShow && (line.Line.IndexOf("[GameplaySpectatorUltimatePartyFlowViewModel] Begin countdown", StringComparison.OrdinalIgnoreCase) != -1 + || line.Line.IndexOf("[ClientGameManager] Server notifying that the round is over", StringComparison.OrdinalIgnoreCase) != -1)) + || Stats.IsClientHasBeenClosed) { + bool isCasualShowCountdown = line.Line.IndexOf("[GameplaySpectatorUltimatePartyFlowViewModel] Begin countdown", StringComparison.OrdinalIgnoreCase) != -1; + bool isInCasualShow = isCasualShowCountdown || line.Line.IndexOf("[ClientGameManager] Server notifying that the round is over", StringComparison.OrdinalIgnoreCase) != -1; + if (!isInCasualShow) { + this.ResetVariablesUsedForOverlay(); + } + + if (Stats.IsClientHasBeenClosed) { + Stats.IsClientHasBeenClosed = false; + this.AddLineAfterClientShutdown(); + return false; + } + + if (!isCasualShowCountdown) { + if (Stats.InShow && Stats.LastPlayedRoundStart.HasValue && !Stats.LastPlayedRoundEnd.HasValue) { + Stats.LastPlayedRoundEnd = line.Date; + } + Stats.IsLastRoundRunning = false; + Stats.IsLastPlayedRoundStillPlaying = false; + } + + logRound.InLoadingGameScreen = false; + logRound.CountingPlayers = false; + logRound.GetCurrentPlayerID = false; + logRound.FindingPosition = false; + + if (logRound.Info != null) { + if (logRound.Info.End == DateTime.MinValue) { + if (isCasualShowCountdown) { + Stats.LastPlayedRoundStart = logRound.Info.Start; + Stats.IsLastPlayedRoundStillPlaying = true; + } + logRound.Info.End = line.Date; + } + logRound.Info.Playing = false; + if (!string.IsNullOrEmpty(logRound.Info.SessionId)) { + if (this.threadLocalVariable.Value.isCasualShow) { + if (!Stats.EndedShow) { + DateTime showEnd = logRound.Info.End; + for (int i = 0; i < round.Count; i++) { + if (string.IsNullOrEmpty(round[i].Name)) { + round.RemoveAt(i); + logRound.Info = null; + Stats.InShow = isInCasualShow; + Stats.EndedShow = true; + return true; + } + round[i].VerifyName(); + round[i].ShowStart = round[i].Start; + round[i].Playing = false; + round[i].Round = 1; + if (round[i].End == DateTime.MinValue) { + round[i].End = line.Date; + } + if (round[i].Start == DateTime.MinValue) { + round[i].Start = round[i].End; + } + if (round[i].Finish.HasValue) { + round[i].Qualified = true; + } + round[i].ShowEnd = showEnd; + } + this.StatsForm.UpdateServerConnectionLog(logRound.Info.SessionId, false); + logRound.Info = null; + Stats.InShow = isInCasualShow; + Stats.EndedShow = true; + return true; + } + } else if (logRound.Info.UseShareCode || (this.StatsForm.CurrentSettings.RecordEscapeDuringAGame && !Stats.EndedShow)) { + DateTime showStart = DateTime.MinValue; + DateTime showEnd = logRound.Info.End; + for (int i = 0; i < round.Count; i++) { + if (string.IsNullOrEmpty(round[i].Name)) { + if (i != 0) { + round[i - 1].Qualified = false; + } + round.RemoveAt(i); + logRound.Info = null; + Stats.InShow = false; + Stats.EndedShow = true; + return true; + } + round[i].VerifyName(); + if (i == 0) { + showStart = round[i].Start; + } + round[i].ShowStart = showStart; + round[i].Playing = false; + round[i].Round = i + 1; + if (round[i].End == DateTime.MinValue) { + round[i].End = line.Date; + } + if (round[i].Start == DateTime.MinValue) { + round[i].Start = round[i].End; + } + if (i < (round.Count - 1)) { + round[i].Qualified = true; + round[i].IsAbandon = true; + } else if (round[i].UseShareCode && round[i].Finish.HasValue) { + round[i].Qualified = true; + round[i].Crown = true; + } else { + round[i].IsAbandon = true; + } + round[i].ShowEnd = showEnd; + if (round.Count > 1 && (i + 1) != round.Count) { + round[i].IsFinal = false; + } + } + this.StatsForm.UpdateServerConnectionLog(logRound.Info.SessionId, false); + logRound.Info = null; + Stats.InShow = false; + Stats.EndedShow = true; + return true; + } + } + } + logRound.Info = null; + Stats.InShow = isInCasualShow; + Stats.EndedShow = true; + } else if (line.Line.IndexOf(" == [CompletedEpisodeDto] ==", StringComparison.OrdinalIgnoreCase) != -1) { + if (logRound.Info == null || Stats.EndedShow) { return false; } + + Stats.SavedRoundCount = logRound.Info.Round; + Stats.EndedShow = true; + + if (logRound.Info.End == DateTime.MinValue) { + Stats.LastPlayedRoundStart = logRound.Info.Start; + Stats.IsLastPlayedRoundStillPlaying = true; + logRound.Info.End = line.Date; + } + logRound.Info.Playing = false; + + RoundInfo roundInfo = null; + StringReader sr = new StringReader(line.Line); + string detail; + bool foundRound = false; + int maxRound = 0; + DateTime showStart = DateTime.MinValue; + int questKudos = 0; + while ((detail = sr.ReadLine()) != null) { + if (detail.IndexOf("[Round ", StringComparison.OrdinalIgnoreCase) == 0) { + foundRound = true; + int roundNum = detail[7] - 0x30 + 1; + string roundName = detail.Substring(11, detail.Length - 12); + + if (roundNum - 1 < round.Count) { + if (roundNum > maxRound) { + maxRound = roundNum; + } + + roundInfo = round[roundNum - 1]; + + if (string.IsNullOrEmpty(roundInfo.Name)) { + return false; + } + + if (string.Equals(roundInfo.ShowNameId, "wle_mrs_shuffle_show") || string.Equals(roundInfo.ShowNameId, "wle_shuffle_discover") || string.Equals(roundInfo.ShowNameId, "wle_mrs_shuffle_show_squads")) { + if (round.Count > 1 && roundNum != round.Count) { + roundInfo.IsFinal = false; + } + roundName = this.StatsForm.ReplaceLevelIdInShuffleShow(roundInfo.ShowNameId, roundName); + } + + if (!string.Equals(roundInfo.Name, roundName, StringComparison.OrdinalIgnoreCase)) { + return false; + } + + roundInfo.VerifyName(); + + if (roundNum == 1) { + showStart = roundInfo.Start; + } + roundInfo.ShowStart = showStart; + roundInfo.Playing = false; + roundInfo.Round = roundNum; + } else { + return false; + } + + if (roundInfo.End == DateTime.MinValue) { + roundInfo.End = line.Date; + } + if (roundInfo.Start == DateTime.MinValue) { + roundInfo.Start = roundInfo.End; + } + } else if (foundRound) { + if (detail.IndexOf("> Qualified: ", StringComparison.OrdinalIgnoreCase) == 0) { + char qualified = detail[13]; + roundInfo.Qualified = qualified == 'T'; + } else if (detail.IndexOf("> Position: ", StringComparison.OrdinalIgnoreCase) == 0) { + roundInfo.Position = int.Parse(detail.Substring(12)); + } else if (detail.IndexOf("> Team Score: ", StringComparison.OrdinalIgnoreCase) == 0) { + roundInfo.Score = int.Parse(detail.Substring(14)); + } else if (detail.IndexOf("> Kudos: ", StringComparison.OrdinalIgnoreCase) == 0) { + roundInfo.Kudos += int.Parse(detail.Substring(9)); + } else if (detail.IndexOf("> Bonus Tier: ", StringComparison.OrdinalIgnoreCase) == 0 && detail.Length == 15) { + char tier = detail[14]; + roundInfo.Tier = roundInfo.Qualified ? tier - 0x30 + 1 : 0; + } else if (detail.IndexOf("> Bonus Kudos: ", StringComparison.OrdinalIgnoreCase) == 0) { + roundInfo.Kudos += int.Parse(detail.Substring(15)); + } + } else { + if (detail.IndexOf("> Kudos: ", StringComparison.OrdinalIgnoreCase) == 0) { + questKudos = int.Parse(detail.Substring(9)); + //> Fame:, > Crowns:, > CurrentCrownShards: + } + } + } + + if (round.Count > maxRound) { + return false; + } + + if (roundInfo != null) { + roundInfo.Kudos += questKudos; + } + + DateTime showEnd = logRound.Info.End; + for (int i = 0; i < round.Count; i++) { + round[i].ShowEnd = showEnd; + } + + if (logRound.Info.Qualified) { + logRound.Info.Crown = true; + logRound.InLoadingGameScreen = false; + logRound.CountingPlayers = false; + logRound.GetCurrentPlayerID = false; + logRound.FindingPosition = false; + } + this.StatsForm.UpdateServerConnectionLog(logRound.Info.SessionId, false); + logRound.Info = null; + return true; + } + return false; + } + } +} diff --git a/Entities/Multilingual.cs b/Entities/Multilingual.cs new file mode 100644 index 000000000..9c18c62c7 --- /dev/null +++ b/Entities/Multilingual.cs @@ -0,0 +1,23988 @@ +using System; +using System.Collections.Generic; +namespace FallGuysStats { + public static class Multilingual { + private static readonly Dictionary> MultilingualDictionary = new Dictionary> { + { Language.English, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "author", "Eunma" }, + { "main_by", "by" }, + { "main_on_twitch", "on Twitch" }, + { "main_multilingual", "Multilingual" }, + { "main_fall_guys_stats", "Fall Guys Stats" }, + { "main_settings", "Settings" }, + { "main_filters", "Filters" }, + { "main_stats", "Stats" }, + { "main_all", "All" }, + { "main_season", "Season" }, + { "main_week", "Week" }, + { "main_day", "Day" }, + { "main_session", "Session" }, + { "main_custom_range", "Custom" }, + { "main_party_type", "Party" }, + { "main_party", "Party" }, + { "main_solo", "Solo" }, + { "main_profile", "Profile" }, + { "main_profile_setting", "Profile Settings" }, + { "main_show_overlay", "Show Overlay" }, + { "main_hide_overlay", "Hide Overlay" }, + { "main_update", "Update" }, + { "main_manual_update_version", "Manual Update Version" }, + { "main_help", "Help" }, + { "main_launch_fall_guys", "Launch Fall Guys" }, + { "main_useful_things", "Useful things!" }, + { "main_fall_guys_wiki", "Fall Guys Wiki" }, + { "main_fall_guys_reddit", "Fall Guys Reddit" }, + { "main_fallalytics", "Fallalytics" }, + { "main_fallalytics_main", "Main Page" }, + { "main_fallalytics_find_player", "Find Player" }, + { "main_fallalytics_overall_rankings", "Overall Ranking" }, + { "main_fallalytics_level_rankings", "Level Rakings" }, + { "main_fallalytics_weekly_crown_league", "Weekly Crown League" }, + { "main_fallalytics_round_statistics", "Round Statistics" }, + { "main_fallalytics_show_statistics", "Show Statistics" }, + { "main_fallalytics_news", "News" }, + { "main_roll_off_club", "Roll Off Club" }, + { "main_lost_temple_analyzer", "Lost Temple Analyzer" }, + { "main_fall_guys_db", "FallGuys DB" }, + { "main_fall_guys_db_main", "Main Page" }, + { "main_fall_guys_db_shows", "Shows List" }, + { "main_fall_guys_db_discovery", "Discovery" }, + { "main_fall_guys_db_shop", "Item Shop" }, + { "main_fall_guys_db_newsfeeds", "Newsfeeds" }, + { "main_fall_guys_db_strings", "Localized Strings" }, + { "main_fall_guys_db_cosmetics", "All Cosmetics" }, + { "main_fall_guys_db_crown_ranks", "Crown Ranks" }, + { "main_fall_guys_db_live_events", "Live Events" }, + { "main_fall_guys_db_daily_shop", "Daily Items" }, + { "main_fall_guys_db_creative", "Creative Level Lookup" }, + { "main_fall_guys_db_faq", "FAQ" }, + { "main_fall_guys_official", "Fall Guys Official" }, + { "main_fall_guys_wiki_tooltip", "The ultimate wiki guide for Fall Guys, written and maintained by the players" }, + { "main_fall_guys_reddit_tooltip", "The community-run and developer-supported subreddit dedicated to Fall Guys" }, + { "main_fallalytics_tooltip", "Fallalytics is a tool to explore data collected about round distribution in Fall Guys" }, + { "main_roll_off_club_tooltip", "Become a roll off pro!" }, + { "main_lost_temple_analyzer_tooltip", "Complete visual analysis of lost temples" }, + { "main_todays_show_tooltip", "See what shows are currently available" }, + { "main_fall_guys_official_tooltip", "Fall Guys (formerly known as Fall Guys: Ultimate Knockout) is a free-to-play platform battle royale game developed by Mediatonic and published by Epic Games" }, + { "main_overlay_show_tooltip", " Press (Ctrl + O) to show the overlay." }, + { "main_overlay_hide_tooltip", " Press (Ctrl + O) to hide the overlay." }, + { "main_overlay_shortcut_tooltip", " Press (Ctrl + M) to overlay always show on top.\n Press (Ctrl + T) to toggle background colors.\n Press (Ctrl + F) to flip the display.\n Press (Ctrl + C) to shows the number of users by platform.\n Press (Ctrl + R) to the round name shows the colored badge for the round type.\n Press (Ctrl + Shift + ↑ or ↓) to adjust the transparency of the overlay.\n Press (Ctrl + Shift + Z) to automatically change to linked profile.\n Press (Ctrl + Shift + X) to reset the overlay size.\n Press (Ctrl + Shift + C) to reset the position of the overlay." }, + { "main_update_prefix_tooltip", " If you want FallGuysStats to continue to be updated," }, + { "main_update_suffix_tooltip", "don't forget to star the GitHub repo!" }, + { "main_you_can_update_new_version_prefix_tooltip", " You can update to the new version ⟦ " }, + { "main_you_can_update_new_version_suffix_tooltip", " ⟧ ! " }, + { "main_exit_program", "Exit" }, + { "main_plays", "Time Played" }, + { "main_shows", "Shows" }, + { "main_inning", ""}, + { "main_rounds", "Rounds" }, + { "main_round", ""}, + { "main_wins", "Wins" }, + { "main_win", ""}, + { "main_finals", "Finals" }, + { "main_kudos", "Kudos" }, + { "main_hour", " h " }, + { "main_min", " m " }, + { "main_sec", " s" }, + { "main_round_name", "Round Name" }, + { "main_played", "Played" }, + { "main_qualified", "Qualified" }, + { "main_gold", "Gold" }, + { "main_silver", "Silver" }, + { "main_bronze", "Bronze" }, + { "main_fastest", "Fastest" }, + { "main_longest", "Longest" }, + { "main_ave_finish", "Average" }, + { "main_hoopsie_legends", "Hoopsie Legends" }, + { "main_hoopsie_heroes", "Hoopsie Heroes" }, + { "main_profile_solo", "Solo" }, + { "main_profile_ranked_solo", "Ranked Solo" }, + { "main_profile_duo", "Duo" }, + { "main_profile_ranked_duo", "Ranked Duo" }, + { "main_profile_trio", "Trio" }, + { "main_profile_ranked_trio", "Ranked Trio" }, + { "main_profile_squad", "Squad" }, + { "main_profile_ranked_squad", "Ranked Squad" }, + { "main_profile_custom", "Custom" }, + { "main_profile_creative", "Creative" }, + { "main_custom_and_casual_shows", "Custom/Explore" }, + { "main_export_csv", "Export CSV" }, + { "main_export_html", "Export HTML" }, + { "main_export_bbcode", "Export BBCode" }, + { "main_export_markdown", "Export MarkDown" }, + { "main_delete_shows", "Delete" }, + { "main_move_shows", "Move Show Data" }, + { "main_delete_finish_time", "Delete \"Finish\" Time" }, + { "main_update_creative_map_infos", "Update Map Infos" }, + { "main_update_program", "Update Fall Guys Stats" }, + { "main_updating_program", "Downloading..." }, + { "main_update_complete", "Update Completed" }, + + { "level_detail_medal", "Medal" }, + { "level_detail_is_final", "Final" }, + { "level_detail_show_id", "Show No." }, + { "level_detail_show_name_id", "Show Name" }, + { "level_detail_round", "Round" }, + { "level_detail_round_suffix", "(s)" }, + { "level_detail_name", "Level" }, + { "level_detail_players", "Players" }, + { "level_detail_playersPs4", "PS4" }, + { "level_detail_playersPs4_desc", "Play Station 4" }, + { "level_detail_playersPs5", "PS5" }, + { "level_detail_playersPs5_desc", "Play Station 5" }, + { "level_detail_playersXb1", "Xbox One" }, + { "level_detail_playersXb1_desc", "Xbox One" }, + { "level_detail_playersXsx", "Xbox Series X" }, + { "level_detail_playersXsx_desc", "Xbox Series X" }, + { "level_detail_playersSw", "Switch" }, + { "level_detail_playersSw_desc", "Nintendo Switch" }, + { "level_detail_playersPc", "PC" }, + { "level_detail_playersPc_desc", "Personal Computer" }, + { "level_detail_playersAndroid", "Android" }, + { "level_detail_playersAndroid_desc", "Android" }, + { "level_detail_playersIos", "iOS" }, + { "level_detail_playersIos_desc", "iOS" }, + { "level_detail_playersBots", "Bots" }, + { "level_detail_playersBots_desc", "Bots" }, + { "level_detail_start", "Start" }, + { "level_detail_end", "Duration" }, + { "level_detail_finish", "Finish" }, + { "level_detail_position", "Position" }, + { "level_detail_score", "Score" }, + { "level_detail_kudos", "Kudos" }, + { "level_detail_gold", "Gold" }, + { "level_detail_silver", "Silver" }, + { "level_detail_bronze", "Bronze" }, + { "level_detail_pink", "Pink" }, + { "level_detail_eliminated", "Eliminated" }, + { "level_detail_round_summary", "Rounds Summary List" }, + { "level_detail_show_stats", "Shows Stats List" }, + { "level_detail_round_stats", "Rounds Stats List" }, + { "level_detail_final_stats", "Rounds (reached finals only) Stats List" }, + { "level_detail_level_stats", "Levels Stats List" }, + { "level_detail_wins_per_day", "Wins Per Day" }, + { "level_detail_stats_by_round", "Statistics Graph by Round" }, + { "level_detail_success_reaching_finals", "success in reaching the finals" }, + { "level_detail_failure_reaching_finals", "failure in reaching the finals" }, + { "level_detail_shows", "Shows" }, + { "level_detail_finals", "Finals" }, + { "level_detail_wins", "Wins" }, + { "level_detail_losses", "Losses" }, + { "level_detail_date", "Date" }, + { "level_detail_finals_stats", "Finals stats" }, + { "level_detail_tooltiptext_prefix", "Click to view " }, + { "level_detail_tooltiptext_suffix", "'s level stats" }, + { "level_date_format", "MMM d, yyyy (ddd)" }, + { "level_grid_date_format", "MMM d, yyyy HH:mm (ddd)" }, + { "level_detail_no_data", "The data does not exist." }, + { "level_detail_no_data_caption", "No data" }, + { "level_detail_share_code_copied", "Share code has been copied !" }, + { "level_detail_share_code_copied_tooltip", "Double-click to copy the share code." }, + { "level_detail_creative_author", "Author" }, + { "level_detail_creative_likes", "Likes:" }, + { "level_detail_creative_dislikes", "Dislikes:" }, + { "level_detail_creative_share_code", "Share Code" }, + { "level_detail_creative_version", "Version" }, + { "level_detail_creative_max_players", "Max Players" }, + { "level_detail_creative_time_limit", "Time Limit" }, + { "level_detail_creative_platform", "Creative Platform" }, + { "level_detail_creative_last_modified", "Last Modified" }, + { "level_detail_creative_play_count", "Qualified Count" }, + { "level_detail_creative_inning", ""}, + { "level_detail_creative_player_suffix", ""}, + { "level_detail_online_platform_eos", "Epic Games" }, + { "level_detail_online_platform_steam", "Steam" }, + { "level_detail_online_platform_psn", "PSN" }, + { "level_detail_online_platform_xbl", "Xbox Live" }, + { "level_detail_online_platform_nso", "Nintendo Switch Online" }, + { "level_detail_race", "Race" }, + { "level_detail_hunt", "Points" }, + { "level_detail_survival", "Survival" }, + { "level_detail_logic", "Logic" }, + { "level_detail_team", "Team" }, + { "level_detail_invisibeans", "Invisibeans" }, + { "level_detail_final", "Final" }, + + { "level_round_played_prefix", "Played for" }, + { "level_round_played_suffix", ""}, + { "level_win_suffix", " win" }, + { "level_wins_suffix", " wins" }, + { "level_loss_suffix", " loss" }, + { "level_losses_suffix", " losses" }, + { "level_no_statistical_data", " No statistical data" }, + + { "leaderboard_menu_title", "Leaderboard" }, + { "leaderboard_report_cheater", "Report a Cheater" }, + { "leaderboard_choose_a_round", "Choose a round" }, + { "leaderboard_overall_rank", "🏆 Overall Rank" }, + { "leaderboard_search_players", "🔎 Search for players" }, + { "leaderboard_search_players_WaterMark", "🔎 My awesome nickname" }, + { "leaderboard_weekly_crown_league", "👑 Weekly Crown League" }, + { "leaderboard_total_players_prefix", ""}, + { "leaderboard_total_players_suffix", " total player(s)" }, + { "leaderboard_see_full_rankings_in_fallalytics", "See full rankings in FALLALYTICS" }, + { "leaderboard_grid_header_rank", "#" }, + { "leaderboard_grid_header_show", "Show" }, + { "leaderboard_grid_header_player", "Player" }, + { "leaderboard_grid_header_record", "Record" }, + { "leaderboard_grid_header_finish", "Date" }, + { "leaderboard_grid_header_score", "Score" }, + { "leaderboard_grid_header_period", "Period" }, + { "leaderboard_grid_header_first_places", "WRs(*)" }, + { "leaderboard_grid_anonymous", "Anonymous" }, + { "leaderboard_grid_just_before", "Just now" }, + { "leaderboard_grid_today", "Today" }, + { "leaderboard_grid_yesterday", "Yesterday" }, + { "leaderboard_grid_the_day_before_yesterday", "The day before yesterday" }, + { "leaderboard_grid_n_days_ago_prefix", ""}, + { "leaderboard_grid_n_days_ago_suffix", " days ago" }, + { "leaderboard_grid_n_weeks_ago_prefix", ""}, + { "leaderboard_grid_n_weeks_ago_suffix", " week(s) ago" }, + { "leaderboard_grid_n_months_ago_prefix", ""}, + { "leaderboard_grid_n_months_ago_suffix", " month(s) ago" }, + { "leaderboard_grid_n_years_ago_prefix", ""}, + { "leaderboard_grid_n_years_ago_suffix", " year(s) ago" }, + { "leaderboard_grid_time_prefix", " min" }, + { "leaderboard_grid_time_suffix", " s" }, + { "leaderboard_grid_header_crowns", "Crowns" }, + { "leaderboard_grid_header_shards", "Shards" }, + { "leaderboard_grid_header_country", "Country" }, + + { "profile_icon_enable_tooltip", "Click to not automatically change to a linked profile" }, + { "profile_icon_disable_tooltip", "Click to automatically change to the linked profile" }, + { "profile_change_tooltip", "Change the current profile with a left or right click" }, + { "shows_detail_tooltip", "Click to view shows stats" }, + { "rounds_detail_tooltip", "Click to view rounds stats" }, + { "wins_detail_tooltip", "Click to view wins stats" }, + { "finals_detail_tooltip", "Click to view rounds (reached finals only) stats" }, + { "stats_detail_tooltip", "Click to view statistics graph by round" }, + + { "message_already_running_caption", "Launching Error" }, + { "message_fall_guys_already_running", "Fall Guys is already running." }, + { "message_tracker_already_running", "Tracker is already running." }, + { "message_register_shortcut_caption", "Need to set shortcut file path" }, + { "message_register_shortcut", "Please set the shortcut file path of the Fall Guys." }, + { "message_register_exe_caption", "Need to set exe file path" }, + { "message_register_exe", "Please set the exe file path of the Fall Guys." }, + { "message_wrong_selected_file_caption", "Wrong File Selected" }, + { "message_wrong_selected_file_epicgames", "Please select the Fall Guys client's shortcut file." }, + { "message_wrong_selected_file_steam", "Please select \"FallGuys_client_game.exe\" in the install folder." }, + { "message_not_installed_steam_caption", "Not Installed" }, + { "message_not_installed_steam", "The Steam version of Fall Guys is not installed." }, + { "message_not_installed_epicGames_caption", "Not Installed" }, + { "message_not_installed_epicGames", "The Epic Games version of Fall Guys is not installed." }, + { "message_save_csv_caption", "Export as CSV File" }, + { "message_save_csv", "Saved CSV to file." }, + { "message_save_html_caption", "Export as HTML" }, + { "message_save_html", "Saved Html to clipboard." }, + { "message_save_bbcode_caption", "Export as BBCode" }, + { "message_save_bbcode", "Saved BBCode to clipboard." }, + { "message_save_markdown_caption", "Export as Markdown" }, + { "message_save_markdown", "Saved MarkDown to clipboard." }, + { "message_save_data_caption", "Save Data" }, + { "message_save_data_linked_profiles", "Do you want to save data to linked profiles?" }, + { "message_save_data_linked_profiles_info_prefix", "NOTE: Default profile is" }, + { "message_save_data_linked_profiles_info_suffix", ""}, + { "message_delete_show_caption", "Remove Shows" }, + { "message_delete_show_prefix", "Are you sure you want to remove the selected" }, + { "message_delete_show_suffix", "shows?" }, + { "message_create_profile_caption", "Create Profile" }, + { "message_create_profile_prefix", "Do you want to create a profile with" }, + { "message_create_profile_suffix", ""}, + { "message_same_profile_name_exists", "The same profile name exists among registered profiles" }, + { "message_rename_profile_caption", "Rename Profile" }, + { "message_rename_profile_prefix", ""}, + { "message_rename_profile_infix", "to" }, + { "message_rename_profile_suffix", "Do you want to change the profile name from" }, + { "message_move_profile_caption", "Move Profile Data" }, + { "message_move_profile_prefix", "Do you want to move profile data from" }, + { "message_move_profile_infix", "to" }, + { "message_move_profile_suffix", ""}, + { "message_delete_profile_caption", "Delete Profile" }, + { "message_delete_profile_prefix", "All data of the" }, + { "message_delete_profile_infix", "profile you have played so far will be deleted." }, + { "message_delete_profile_suffix", "Are you sure you want to delete?" }, + { "message_save_profile_caption", "Save Profile" }, + { "message_save_profile_prefix", "Do you want to save current data to" }, + { "message_save_profile_suffix", "profile?" }, + { "message_execution_caption", "Running Fall Guys" }, + { "message_execution_question", "Do you want to run the Fall Guys client?" }, + { "message_update_question_caption", "Update Program" }, + { "message_update_question_prefix", "There is a new version of Fall Guys Stats available" }, + { "message_update_question_suffix", "- Do you wish to update now?" }, + { "message_update_latest_version", "You are at the latest version." }, + { "message_update_not_determine_version", "Could not determine version." }, + { "message_save_csv_file_caption", "Save as CSV file" }, + { "message_update_error_caption", "Update error" }, + { "message_update_error", "Unable to check for update." }, + { "message_program_error_caption", "Program Error" }, + { "message_delete_finish_time_caption", "Delete \"Finish\" Time" }, + { "message_delete_finish_time", "Are you sure you want to delete the \"Finish\" time of this round?" }, + { "message_update_creative_map_caption", "Update creative map informations" }, + { "message_update_creative_map_with_sharecode_prefix", "Would you like to update map infos with the share code \"" }, + { "message_update_creative_map_with_sharecode_suffix", "\"?" }, + { "message_update_creative_map_with_title_prefix", "Would you like to update map infos of \"" }, + { "message_update_creative_map_with_title_suffix", "\"?" }, + { "message_update_creative_map_error", "An error occurred while looking up the creative level." }, + { "message_new_personal_best_caption", "⏱️ New personal best" }, + { "message_new_personal_best_prefix", "You've set a new personal best in " }, + { "message_new_personal_best_suffix", "." }, + { "message_new_personal_best_timediff_by_minute_prefix", ""}, + { "message_new_personal_best_timediff_by_minute_infix", " min.," }, + { "message_new_personal_best_timediff_by_minute_suffix", " sec. less!" }, + { "message_new_personal_best_timediff_by_second", " sec. shortened!" }, + { "message_test_notifications_caption", "🔔 Test notification" }, + { "message_connected_to_server_caption", "🔔 Connected to a server" }, + { "message_connected_to_server_prefix", "You are connected to a server \"" }, + { "message_connected_to_server_suffix", "\"." }, + { "message_check_internet_connection_caption", "Network error" }, + { "message_check_internet_connection", "Please check your internet connection." }, + { "message_changelog_caption", "Changelog" }, + { "message_changelog_bugfix_and_program_optimization", "Bugfix and program optimization" }, + { "message_changelog_updated_new_show_and_round_names", "Updated new show and round names" }, + { "message_changelog_overlay_display_improvements", "Overlay display improvements" }, + { "message_changelog_added_and_improved_win_per_day_graph_feature", "Added and improved win per day graph feature" }, + { "message_changelog_released_the_fallalytics_speedrun_leaderboard", "Released the FALLALYTICS Speedrun Leaderboard" }, + { "message_changelog_weekly_crown_league_is_now_open_on_fallalytics", "Weekly Crown League is now open on Fallalytics" }, + { "message_changelog_banning_users_using_hacking_programs", "Banning users using hacking programs" }, + { "message_changelog_add_proxy_settings", "Add proxy settings" }, + + { "numeric_suffix", ""}, + { "message_question_mark", "?" }, + { "message_full_stop", "." }, + { "message_exclamation_mark", "!" }, + { "message_comma", "," }, + + { "settings_title", "Settings" }, + { "settings_program", "Program" }, + { "settings_display", "Display" }, + { "settings_launch_fallguys", "Launch Fall Guys" }, + { "settings_fallalytics", "Fallalytics" }, + { "settings_proxy_settings", "Proxy Settings" }, + { "settings_use_a_proxy_server", "Use a proxy server" }, + { "settings_proxy_address", "Address" }, + { "settings_proxy_port", "Port" }, + { "settings_enable_proxy_authentication", "Enable Proxy authentication" }, + { "settings_proxy_user_name", "User name" }, + { "settings_proxy_password", "Password" }, + { "settings_test_proxy_connection", "Test Proxy Connection" }, + { "settings_enter_fallalytics_api_key", "(Optional) Enter Fallalytics API key" }, + { "settings_sends_info_about_rounds_played_to_fallalytics", "Send information about rounds played and personal best times for race rounds to Fallalytics" }, + { "settings_join_a_weekly_crown_league", "Join a weekly crown league" }, + { "settings_sends_anonymously_to_fallalytics", "👻 Send anonymously" }, + { "settings_fallalytics_desc", "ℹ️ Fallalytics is a tool to explore data collected about round distribution in Fall Guys." }, + { "settings_visit_fallalytics", "Visit Fallalytics" }, + { "settings_about", "About" }, + { "settings_log_path", "📁 Log File Path" }, + { "settings_log_path_description", "🏷️ You should not need to set this. Only use when the program is not reading the correct location." }, + { "settings_stats", "Stats" }, + { "settings_theme", "Theme" }, + { "settings_theme_light", "☀️ Light" }, + { "settings_theme_dark", "🌑 Dark" }, + { "settings_preferred_ip_geolocation_service", "Preferred IP geolocation service" }, + { "settings_auto_selected", "Auto" }, + { "settings_ipinfo_token", "Token" }, + { "settings_enter_ipinfo_token", "(Optional)" }, + { "settings_link_to_get_ipinfo_token", "Create an account to get a token" }, + { "settings_previous_win", "Previous Win(s)" }, + { "settings_before_using_tracker", "(before using tracker)" }, + { "settings_auto_update_program", "🔄️ Check update on startup" }, + { "settings_rename_hoopsie_legends_to_hoopsie_heroes", "Rename Hoopsie Legends to Hoopsie Heroes" }, + { "settings_overlay", "Overlay" }, + { "settings_hide_wins_info", "Hide Wins info" }, + { "settings_hide_round_info", "Hide Round info" }, + { "settings_hide_time_info", "Hide Time info" }, + { "settings_hide_percentages", "Hide Percentages" }, + { "settings_show_tab_for_currnet_filter__profile", "Show Tab for current filter and profile" }, + { "settings_wins__final_filter", "Wins / Final Filter" }, + { "settings_qualify__gold_filter", "Qualify / Gold Filter" }, + { "settings_fastest__longest_filter", "Fastest / Longest Filter" }, + { "settings_all_time_stats", "All Time Stats" }, + { "settings_stats_and_party_filter", "Stats and Party Filter" }, + { "settings_season_stats", "Season Stats" }, + { "settings_week_stats", "Week Stats" }, + { "settings_day_stats", "Day Stats" }, + { "settings_session_stats", "Session Stats" }, + { "settings_cycle_time", "Cycle Time:" }, + { "settings_sec", "sec" }, + { "settings_background_image", "Background Image" }, + { "settings_background", "Background" }, + { "settings_background_opacity", "Background Opacity" }, + { "settings_lock_button_location", "Lock Button Location" }, + { "settings_lock_button_location_top", "Top" }, + { "settings_lock_button_location_bottom", "Bottom" }, + { "settings_transparent", "Transparent" }, + { "settings_magenta", "Magenta" }, + { "settings_red", "Red" }, + { "settings_green", "Green" }, + { "settings_blue", "Blue" }, + { "settings_black", "Black" }, + { "settings_white", "White" }, + { "settings_cycle_qualify__gold", "Cycle Qualify / Gold" }, + { "settings_qualify_only", "Qualify Only" }, + { "settings_gold_only", "Gold Only" }, + { "settings_cycle_best__lowest", "Cycle Best / Lowest" }, + { "settings_personal_best_only", "Personal Best Only" }, + { "settings_personal_lowest_only", "Personal Lowest Only" }, + { "settings_cycle_win__final_streak", "Cycle Win / Final Streak" }, + { "settings_win_streak_only", "Win Streak Only" }, + { "settings_final_streak_only", "Final Streak Only" }, + { "settings_cycle_players__ping", "Cycle Players / Ping" }, + { "settings_players_only", "Players Only" }, + { "settings_ping_only", "Ping Only" }, + { "settings_flip_display_horizontally", "Flip display horizontally (Ctrl + F)" }, + { "settings_always_show_on_top", "📌 Always show on top (Ctrl + M)" }, + { "settings_display_players_based_on_platform", "🚹 Display players based on platform (Ctrl + C)" }, + { "settings_color_round_name_based_on_round_type", "🏳️‍🌈 Color round name based on round type (Ctrl + R)" }, + { "settings_auto_change_profile", "🔃 Automatically change to linked profile (Ctrl + Shift + Z)" }, + { "settings_shade_the_flag_image", "🏁 Shading the server's flag image to display" }, + { "settings_diaplay_current_time", "🕓 Display the current time while waiting" }, + { "settings_diaplay_game_played_info", "ℹ️ Display game played information at the end of a round (Rank, Survived, Win, etc.)" }, + { "settings_count_players_during_the_level", "Count players who pass or are eliminated during the game" }, + { "settings_custom_overlay_font", "🅰️ Custom Overlay Font" }, + { "settings_select_font", "Select Font" }, + { "settings_reset_font", "Reset Font" }, + { "settings_font_example", "Example" }, + { "settings_round_example", "Round 3 : Freezy Peak" }, + { "settings_sorting_options", "Sorting Options" }, + { "settings_ignore_level_type_when_sorting", "📶 Ignore Level Type when sorting" }, + { "settings_grouping_creative_round_levels", "🛠️ Grouping creative round levels into one category" }, + { "settings_record_escape_during_a_game", "👻 If you escape during a game, record it as a loss" }, + { "settings_game_options", "Game Options" }, + { "settings_game_options_platform", "Platform" }, + { "settings_fall_guys_exe_location", "↗️ Game EXE Location" }, + { "settings_fall_guys_exe_openfile_title", "Select the Fall Guys Client EXE file" }, + { "settings_fall_guys_exe_openfile_name", "FallGuys_client_game.exe" }, + { "settings_fall_guys_exe_openfile_filter", "EXE files (*.exe)|*.exe" }, + { "settings_fall_guys_shortcut_location", "↗️ Game Shortcut Location" }, + { "settings_fall_guys_shortcut_openfile_title", "Select the Fall Guys Client shortcut file" }, + { "settings_fall_guys_shortcut_openfile_name", ""}, + { "settings_fall_guys_shortcut_openfile_filter", "URL Files (*.url)|*.url" }, + { "settings_browse", "Browse" }, + { "settings_launch_fall_guys_on_tracker_launch", "Launch Fall Guys on tracker launch" }, + { "settings_language", "Language" }, + { "settings_new_update_prefix", "New update" }, + { "settings_new_update_suffix", "is available" }, + { "settings_save", "Save" }, + { "settings_cancel", "Cancel" }, + { "settings_select_language_title", "Select your language" }, + { "settings_auto_generate_profiles", "Auto-generate profiles" }, + { "settings_select_language_button", "Confirm" }, + { "settings_system_tray_icon", "📍 Use the system tray icon" }, + { "settings_notify_personal_best", "🔔 Windows notification when you break your personal best during a race round" }, + { "settings_notify_server_connected", "🔔 Windows notification with the country name of the server when the server is connected" }, + { "settings_mute_notification_sounds", "🔇 Mute notification sounds" }, + { "settings_notification_sounds_01", "🔊 01" }, + { "settings_notification_sounds_02", "🔊 02" }, + { "settings_notification_sounds_03", "🔊 03" }, + { "settings_notification_sounds_04", "🔊 04" }, + { "settings_notification_window_bottom_left", "Bottom Left" }, + { "settings_notification_window_bottom_right", "Bottom Right" }, + { "settings_notification_window_top_left", "Top Left" }, + { "settings_notification_window_top_right", "Top Right" }, + { "settings_prevent_overlay_mouse_clicks", "🖱️ Prevent overlay mouse clicks" }, + { "settings_github", "GitHub (ShootMe/FallGuysStats)" }, + { "settings_issue_traker", "Issue Tracker" }, + { "settings_translation", "Translation" }, + { "settings_font_need_to_be_installed_caption", "Fonts need to be installed" }, + { "settings_font_need_to_be_installed_message", "Install the font files found in the Fall Guys Stats folder." }, + { "settings_checking_for_updates", "Checking for updates..." }, + + { "overlay_streak", "WIN STREAK" }, + { "overlay_streak_suffix", ""}, + { "overlay_streak_finals", "FINAL STREAK" }, + { "overlay_finals", "FINALS" }, + { "overlay_qualify_chance", "QUALIFY" }, + { "overlay_qualify_gold", "GOLD" }, + { "overlay_longest", "LONGEST" }, + { "overlay_fastest", "FASTEST" }, + { "overlay_personal_best", "PB" }, + { "overlay_high_score", "HIGH SCORE" }, + { "overlay_low_score", "LOW SCORE" }, + { "overlay_duration", "TIME" }, + { "overlay_players", "PLAYERS" }, + { "overlay_current_time", "CURRENT TIME" }, + { "overlay_round_prefix", "ROUND " }, + { "overlay_round_suffix", ""}, + { "overlay_round_abbreviation_prefix", "R " }, + { "overlay_round_abbreviation_suffix", ""}, + { "overlay_wins", "WINS" }, + { "overlay_win", ""}, + { "overlay_finish", "FINISH" }, + { "overlay_queued_players", "QUEUED PLAYERS" }, + { "overlay_ping", "PING" }, + { "overlay_best", ""}, + { "overlay_inning", ""}, + { "overlay_position_prefix", ""}, + { "overlay_position_suffix", ""}, + { "overlay_position_win", "WIN" }, + { "overlay_position_survived", "SURVIVED" }, + { "overlay_position_qualified", "PASS" }, + { "overlay_position_eliminated", "ELIMINATED" }, + { "overlay_picPositionLock_tooltip", "Pin the overlay to its current position" }, + { "overlay_picPositionNE_tooltip", "Pin the overlay to the top-left corner of the screen" }, + { "overlay_picPositionNW_tooltip", "Pin the overlay to the top-right corner of the screen" }, + { "overlay_picPositionSE_tooltip", "Pin the overlay to the bottom-left corner of the screen" }, + { "overlay_picPositionSW_tooltip", "Pin the overlay to the bottom-right corner of the screen" }, + + { "profile_title", "Profile Settings" }, + { "profile_list", "Profile List" }, + { "profile_add_tab", "Add" }, + { "profile_add_tab_label1", "Profile Name" }, + { "profile_add_tab_button", "Add" }, + { "profile_rename_tab", "Rename" }, + { "profile_rename_tab_label1", "Profile" }, + { "profile_rename_tab_label2", "New Name" }, + { "profile_rename_tab_button", "Rename" }, + { "profile_move_tab", "Move" }, + { "profile_move_tab_label1", "From" }, + { "profile_move_tab_label2", "To" }, + { "profile_move_tab_button", "Move" }, + { "profile_remove_tab", "Remove" }, + { "profile_remove_tab_label1", "Profile" }, + { "profile_remove_tab_label2", "* You can only delete profile with no data" }, + { "profile_remove_tab_button", "Remove" }, + { "profile_rounds_suffix", "Rounds" }, + { "profile_apply_change_button", "Save" }, + { "profile_undo_change_button", "Cancel" }, + { "profile_add_select_title", "Add Shows" }, + { "profile_add_select_question_prefix", "There are previous shows not in your current stats." }, + { "profile_add_select_question_suffix", "Select a profile below to add your data." }, + { "profile_add_select_question_suffix_linked_profiles", "Data will be added in linked profiles." }, + { "profile_add_select_use_linked_profiles", "Use linked profiles" }, + { "profile_move_select_title", "Move Show Data" }, + { "profile_move_select_description_prefix", "Select a profile below to move your show data." }, + { "profile_move_select_description_suffix", "Number of selected show data" }, + { "profile_move_select_question_prefix", "Would you like to move the" }, + { "profile_move_select_question_infix", "selected shows to the" }, + { "profile_move_select_question_suffix", "profile?" }, + { "profile_move_select_button", "Move" }, + + { "custom_range_range", "Custom period" }, + { "custom_range_templates", "Templates" }, + { "custom_range_legacy_season", "Season" }, + { "custom_range_ffa_season", "Season" }, + { "custom_range_season", "Season" }, + { "custom_range_legacy", "Legacy" }, + { "custom_range_ffa", "FFA" }, + { "custom_range_not_set", "Not Set" }, + { "custom_range_filter", "Filter" }, + } + }, + { Language.French, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "author", "Micdu70 & Eunma" }, + { "main_by", "par" }, + { "main_on_twitch", "sur Twitch" }, + { "main_multilingual", "Multilingue" }, + { "main_settings", "Configuration" }, + { "main_fall_guys_stats", "Tracker Fall Guys" }, + { "main_filters", "Filtres" }, + { "main_stats", "Stats" }, + { "main_all", "Toutes" }, + { "main_season", "Saison" }, + { "main_week", "Semaine" }, + { "main_day", "Jour" }, + { "main_session", "Session" }, + { "main_custom_range", "Personnalisée" }, + { "main_party_type", "Parties" }, + { "main_party", "en Groupe" }, + { "main_solo", "en Solo" }, + { "main_profile", "Profil" }, + { "main_profile_setting", "Gestion des Profils" }, + { "main_show_overlay", "Afficher l'overlay" }, + { "main_hide_overlay", "Masquer l'overlay" }, + { "main_update", "Rechercher une MAJ" }, + { "main_manual_update_version", "version sans MAJ auto" }, + { "main_help", "Aide" }, + { "main_launch_fall_guys", "Lancer Fall Guys" }, + { "main_useful_things", "Des choses utiles !" }, + { "main_fall_guys_wiki", "Fall Guys Wiki" }, + { "main_fall_guys_reddit", "Reddit de Fall Guys" }, + { "main_fallalytics", "Fallalytics" }, + { "main_fallalytics_main", "Main Page" }, + { "main_fallalytics_find_player", "Find Player" }, + { "main_fallalytics_overall_rankings", "Overall Ranking" }, + { "main_fallalytics_level_rankings", "Level Rakings" }, + { "main_fallalytics_weekly_crown_league", "Weekly Crown League" }, + { "main_fallalytics_round_statistics", "Round Statistics" }, + { "main_fallalytics_show_statistics", "Show Statistics" }, + { "main_fallalytics_news", "News" }, + { "main_roll_off_club", "Roll Off Club" }, + { "main_lost_temple_analyzer", "Analyseur de Temple Perdu" }, + { "main_fall_guys_db", "FallGuys DB" }, + { "main_fall_guys_db_main", "Main Page" }, + { "main_fall_guys_db_shows", "Shows List" }, + { "main_fall_guys_db_discovery", "Discovery" }, + { "main_fall_guys_db_shop", "Item Shop" }, + { "main_fall_guys_db_newsfeeds", "Newsfeeds" }, + { "main_fall_guys_db_strings", "Localized Strings" }, + { "main_fall_guys_db_cosmetics", "All Cosmetics" }, + { "main_fall_guys_db_crown_ranks", "Crown Ranks" }, + { "main_fall_guys_db_live_events", "Live Events" }, + { "main_fall_guys_db_daily_shop", "Daily Items" }, + { "main_fall_guys_db_creative", "Creative Level Lookup" }, + { "main_fall_guys_db_faq", "FAQ" }, + { "main_fall_guys_official", "Site Officiel de Fall Guys" }, + { "main_fall_guys_wiki_tooltip", "Le wiki ultime sur Fall Guys, écrit et maintenu par les joueurs" }, + { "main_fall_guys_reddit_tooltip", "Le subreddit dédié à Fall Guys qui est géré par la communauté et soutenu par les développeurs" }, + { "main_fallalytics_tooltip", "Fallalytics est un outil permettant d'explorer les données collectées sur la distribution des manches dans Fall Guys" }, + { "main_roll_off_club_tooltip", "Devenez un pro sur \"Ça Coule\" !" }, + { "main_lost_temple_analyzer_tooltip", "Analyse visuelle complète des temples perdus" }, + { "main_todays_show_tooltip", "Connaître les émissions actuellement disponibles" }, + { "main_fall_guys_official_tooltip", "Fall Guys, anciennement \"Fall Guys: Ultimate Knockout\", est un jeu vidéo multijoueur de type Battle Royale développé par Mediatonic" }, + { "main_overlay_show_tooltip", " Appuyer sur (Ctrl + O) pour afficher l'overlay." }, + { "main_overlay_hide_tooltip", " Appuyer sur (Ctrl + O) pour masquer l'overlay." }, + { "main_overlay_shortcut_tooltip", " Appuyer sur (Ctrl + M) pour que l'overlay soit toujours visible.\n Appuyer sur (Ctrl + T) pour changer la couleur de l'arrière-plan.\n Appuyer sur (Ctrl + F) pour inverser horizontalement l'affichage.\n Appuyer sur (Ctrl + C) pour afficher le nombre de joueurs par support de jeu.\n Appuyer sur (Ctrl + R) pour colorer le nom des manches selon leur type.\n Appuyer sur (Ctrl + Maj + ↑ ou ↓) pour régler la transparence de l'overlay.\n Appuyer sur (Ctrl + Maj + Z) pour passer automatiquement sur un profil lié.\n Appuyer sur (Ctrl + Maj + X) pour réinitialiser les dimensions de l'overlay.\n Appuyer sur (Ctrl + Maj + C) pour réinitialiser la position de l'overlay." }, + { "main_update_prefix_tooltip", " Si vous souhaitez que FallGuysStats continue d'être mis à jour, " }, + { "main_update_suffix_tooltip", "n'oubliez pas d'attribuer une étoile au dépôt GitHub !" }, + { "main_you_can_update_new_version_prefix_tooltip", " Vous pouvez passer à la nouvelle version ⟦ " }, + { "main_you_can_update_new_version_suffix_tooltip", " ⟧ ! " }, + { "main_exit_program", "Quitter" }, + { "main_plays", "Temps de jeu" }, + { "main_shows", "Émissions" }, + { "main_inning", ""}, + { "main_rounds", "Manches" }, + { "main_round", ""}, + { "main_wins", "Victoires" }, + { "main_win", ""}, + { "main_finals", "Finales" }, + { "main_kudos", "Kudos" }, + { "main_hour", " h " }, + { "main_min", " m " }, + { "main_sec", " s" }, + { "main_round_name", "Nom de la manche" }, + { "main_played", "Jouée" }, + { "main_qualified", "Qualif." }, + { "main_gold", "Or" }, + { "main_silver", "Argent" }, + { "main_bronze", "Bronze" }, + { "main_fastest", "Meilleur" }, + { "main_longest", "Plus long" }, + { "main_ave_finish", "Moyen" }, + { "main_hoopsie_legends", "Les Cerceaux" }, + { "main_hoopsie_heroes", "Légendes Badaboum" }, + { "main_profile_solo", "Solo" }, + { "main_profile_ranked_solo", "Solo classé" }, + { "main_profile_duo", "Duo" }, + { "main_profile_ranked_duo", "Duo classé" }, + { "main_profile_trio", "Trio" }, + { "main_profile_ranked_trio", "Trio classé" }, + { "main_profile_squad", "Groupe" }, + { "main_profile_ranked_squad", "Groupe classé" }, + { "main_profile_custom", "PP" }, + { "main_profile_creative", "Créatif" }, + { "main_custom_and_casual_shows", "PP/Explo" }, + { "main_export_csv", "Exporter en CSV" }, + { "main_export_html", "Exporter en HTML" }, + { "main_export_bbcode", "Exporter en BBCode" }, + { "main_export_markdown", "Exporter en MarkDown" }, + { "main_delete_shows", "Supprimer" }, + { "main_move_shows", "Déplacer les données" }, + { "main_delete_finish_time", "Supprimer le temps \"Finish\"" }, + { "main_update_creative_map_infos", "Mettre à jour les infos" }, + { "main_update_program", "Mise à jour du tracker" }, + { "main_updating_program", "Téléchargement..." }, + { "main_update_complete", "Mise à jour terminée" }, + + { "level_detail_medal", "Médaille" }, + { "level_detail_is_final", "Finale" }, + { "level_detail_show_id", "N° d'émission" }, + { "level_detail_show_name_id", "Nom de l'émission" }, + { "level_detail_round", "Manche" }, + { "level_detail_round_suffix", "(s)" }, + { "level_detail_name", "Nom de la manche" }, + { "level_detail_players", "Joueur(s)" }, + { "level_detail_playersPs4", "PS4" }, + { "level_detail_playersPs4_desc", "PlayStation 4" }, + { "level_detail_playersPs5", "PS5" }, + { "level_detail_playersPs5_desc", "PlayStation 5" }, + { "level_detail_playersXb1", "Xbox One" }, + { "level_detail_playersXb1_desc", "Xbox One" }, + { "level_detail_playersXsx", "Xbox Series X" }, + { "level_detail_playersXsx_desc", "Xbox Series X" }, + { "level_detail_playersSw", "Switch" }, + { "level_detail_playersSw_desc", "Nintendo Switch" }, + { "level_detail_playersPc", "PC" }, + { "level_detail_playersPc_desc", "PC" }, + { "level_detail_playersAndroid", "Android" }, + { "level_detail_playersAndroid_desc", "Android" }, + { "level_detail_playersIos", "iOS" }, + { "level_detail_playersIos_desc", "iOS" }, + { "level_detail_playersBots", "Bot(s)" }, + { "level_detail_playersBots_desc", "Bot(s)" }, + { "level_detail_start", "Début" }, + { "level_detail_end", "Durée" }, + { "level_detail_finish", "Finish" }, + { "level_detail_position", "Place" }, + { "level_detail_score", "Score" }, + { "level_detail_kudos", "Kudos" }, + { "level_detail_gold", "Or" }, + { "level_detail_silver", "Argent" }, + { "level_detail_bronze", "Bronze" }, + { "level_detail_pink", "Rose" }, + { "level_detail_eliminated", "Élimination" }, + { "level_detail_round_summary", "Liste récapitulative des manches" }, + { "level_detail_show_stats", "Liste des stats des émissions" }, + { "level_detail_round_stats", "Liste des stats des manches" }, + { "level_detail_final_stats", "Liste des stats des manches (finale atteinte seulement)" }, + { "level_detail_level_stats", "Liste des stats pour la manche" }, + { "level_detail_wins_per_day", "Nombre de victoires par jour" }, + { "level_detail_stats_by_round", "Graphique des statistiques par manche" }, + { "level_detail_success_reaching_finals", "la manche finale a été atteinte" }, + { "level_detail_failure_reaching_finals", "la manche finale n'a pas été atteinte" }, + { "level_detail_shows", "Émissions" }, + { "level_detail_finals", "Finales" }, + { "level_detail_wins", "Victoires" }, + { "level_detail_losses", "Défaites" }, + { "level_detail_date", "Date" }, + { "level_detail_finals_stats", "Statistiques des finales" }, + { "level_detail_tooltiptext_prefix", "Cliquer pour voir les stats de \"" }, + { "level_detail_tooltiptext_suffix", "\"" }, + { "level_date_format", "dd/MM/yyyy (ddd)" }, + { "level_grid_date_format", "dd/MM/yyyy HH:mm" }, + { "level_detail_no_data", "Pas de données disponibles." }, + { "level_detail_no_data_caption", "Aucune donnée" }, + { "level_detail_share_code_copied", "Le code de partage a été copié !" }, + { "level_detail_share_code_copied_tooltip", "Faites un double-clic pour copier le code de partage." }, + { "level_detail_creative_author", "Créée par" }, + { "level_detail_creative_likes", "J'aime :" }, + { "level_detail_creative_dislikes", "Je n'aime pas :" }, + { "level_detail_creative_share_code", "Code de partage" }, + { "level_detail_creative_version", "Version" }, + { "level_detail_creative_max_players", "Joueurs max." }, + { "level_detail_creative_time_limit", "Limite de temps" }, + { "level_detail_creative_platform", "Créée sur" }, + { "level_detail_creative_last_modified", "Dernière modification" }, + { "level_detail_creative_play_count", "Nombre de fois jouée" }, + { "level_detail_creative_inning", ""}, + { "level_detail_creative_player_suffix", ""}, + { "level_detail_online_platform_eos", "Epic Games" }, + { "level_detail_online_platform_steam", "Steam" }, + { "level_detail_online_platform_psn", "PSN" }, + { "level_detail_online_platform_xbl", "Xbox Live" }, + { "level_detail_online_platform_nso", "Nintendo Switch Online" }, + { "level_detail_race", "Course" }, + { "level_detail_hunt", "Points" }, + { "level_detail_survival", "Survie" }, + { "level_detail_logic", "Logique" }, + { "level_detail_team", "Équipe" }, + { "level_detail_invisibeans", "Invisibiricots" }, + { "level_detail_final", "Finale" }, + + { "level_round_played_prefix", "Jouée pendant" }, + { "level_round_played_suffix", ""}, + { "level_win_suffix", " victoire" }, + { "level_wins_suffix", " victoires" }, + { "level_loss_suffix", " défaite" }, + { "level_losses_suffix", " défaites" }, + { "level_no_statistical_data", " Aucune donnée statistique" }, + + { "leaderboard_menu_title", "Classement" }, + { "leaderboard_report_cheater", "Signaler un Tricheur" }, + { "leaderboard_choose_a_round", "Sélectionnez une manche" }, + { "leaderboard_overall_rank", "🏆 Classement général" }, + { "leaderboard_search_players", "🔎 Recherche de joueurs" }, + { "leaderboard_search_players_WaterMark", "🔎 Mon pseudo génial" }, + { "leaderboard_weekly_crown_league", "👑 Ligue de la Couronne hebdomadaire" }, + { "leaderboard_total_players_prefix", ""}, + { "leaderboard_total_players_suffix", " joueur(s) au total" }, + { "leaderboard_see_full_rankings_in_fallalytics", "Voir le classement complet sur FALLALYTICS" }, + { "leaderboard_grid_header_rank", "#" }, + { "leaderboard_grid_header_show", "Émission" }, + { "leaderboard_grid_header_player", "Joueur" }, + { "leaderboard_grid_header_record", "Record" }, + { "leaderboard_grid_header_finish", "Date" }, + { "leaderboard_grid_header_score", "Score" }, + { "leaderboard_grid_header_period", "Période" }, + { "leaderboard_grid_header_first_places", "WRs(*)" }, + { "leaderboard_grid_anonymous", "Anonyme" }, + { "leaderboard_grid_just_before", "À l'instant" }, + { "leaderboard_grid_today", "Aujourd'hui" }, + { "leaderboard_grid_yesterday", "Hier" }, + { "leaderboard_grid_the_day_before_yesterday", "Avant-hier" }, + { "leaderboard_grid_n_days_ago_prefix", "Il y a " }, + { "leaderboard_grid_n_days_ago_suffix", " jours" }, + { "leaderboard_grid_n_weeks_ago_prefix", "Il y a " }, + { "leaderboard_grid_n_weeks_ago_suffix", " semaine(s)" }, + { "leaderboard_grid_n_months_ago_prefix", "Il y a " }, + { "leaderboard_grid_n_months_ago_suffix", " mois" }, + { "leaderboard_grid_n_years_ago_prefix", "Il y a " }, + { "leaderboard_grid_n_years_ago_suffix", " an(s)" }, + { "leaderboard_grid_time_prefix", " min" }, + { "leaderboard_grid_time_suffix", " s" }, + { "leaderboard_grid_header_crowns", "Couronnes" }, + { "leaderboard_grid_header_shards", "Fragments" }, + { "leaderboard_grid_header_country", "Pays" }, + + { "profile_icon_enable_tooltip", "Cliquer pour ne pas passer automatiquement sur un profil lié" }, + { "profile_icon_disable_tooltip", "Cliquer pour passer automatiquement sur un profil lié" }, + { "profile_change_tooltip", "Changer le profil actuel avec un clic gauche ou droit" }, + { "shows_detail_tooltip", "Cliquer pour voir les stats des émissions" }, + { "rounds_detail_tooltip", "Cliquer pour voir les stats des manches" }, + { "wins_detail_tooltip", "Cliquer pour voir les stats des victoires" }, + { "finals_detail_tooltip", "Cliquer pour voir les stats des manches (finale atteinte seulement)" }, + { "stats_detail_tooltip", "Cliquer pour voir le graphique des statistiques par manche" }, + + { "message_already_running_caption", "Erreur de lancement" }, + { "message_fall_guys_already_running", "Fall Guys est déjà en cours d'exécution." }, + { "message_tracker_already_running", "Le tracker est déjà en cours d'exécution." }, + { "message_register_shortcut_caption", "Chemin d'accès au raccourci de Fall Guys non configuré" }, + { "message_register_shortcut", "Veuillez configurer le chemin d'accès au raccourci de Fall Guys" }, + { "message_register_exe_caption", "Chemin d'accès au fichier d'exécution de Fall Guys non configuré" }, + { "message_register_exe", "Veuillez configurer le chemin d'accès au fichier d'exécution de Fall Guys" }, + { "message_wrong_selected_file_caption", "Mauvais fichier sélectionné" }, + { "message_wrong_selected_file_epicgames", "Veuillez sélectionner le raccourci qui permet de lancer Fall Guys" }, + { "message_wrong_selected_file_steam", "Veuillez sélectionner le fichier \"FallGuys_client_game.exe\" dans le dossier d'installation de Fall Guys" }, + { "message_not_installed_steam_caption", "Version Steam introuvable" }, + { "message_not_installed_steam", "La version Steam de Fall Guys n'est pas installée" }, + { "message_not_installed_epicGames_caption", "Version Epic Games introuvable" }, + { "message_not_installed_epicGames", "La version Epic Games de Fall Guys n'est pas installée" }, + { "message_save_csv_caption", "Exporter en CSV" }, + { "message_save_csv", "Enregistré dans un fichier CSV" }, + { "message_save_html_caption", "Exporter en HTML" }, + { "message_save_html", "Code HTML copié dans le presse-papiers" }, + { "message_save_bbcode_caption", "Exporter en BBCode" }, + { "message_save_bbcode", "Code BBCode copié dans le presse-papiers" }, + { "message_save_markdown_caption", "Exporter en Markdown" }, + { "message_save_markdown", "Code MarkDown copié dans le presse-papiers" }, + { "message_save_data_caption", "Enregistrer des données" }, + { "message_save_data_linked_profiles", "Enregistrer les données dans les profils liés ?" }, + { "message_save_data_linked_profiles_info_prefix", "INFO : Le profil par défaut est" }, + { "message_save_data_linked_profiles_info_suffix", ""}, + { "message_delete_show_caption", "Supprimer des émissions" }, + { "message_delete_show_prefix", "Voulez-vous vraiment supprimer cette sélection d'émissions" }, + { "message_delete_show_suffix", "?" }, + { "message_create_profile_caption", "Créer un profil" }, + { "message_create_profile_prefix", "Créer le profil" }, + { "message_create_profile_suffix", "?" }, + { "message_same_profile_name_exists", "Le même nom de profil existe parmi les profils enregistrés" }, + { "message_rename_profile_caption", "Renommer un profil" }, + { "message_rename_profile_prefix", "Renommer le nom du profil" }, + { "message_rename_profile_infix", "en" }, + { "message_rename_profile_suffix", "?" }, + { "message_move_profile_caption", "Déplacer des données" }, + { "message_move_profile_prefix", "Déplacer les données de" }, + { "message_move_profile_infix", "vers" }, + { "message_move_profile_suffix", "?" }, + { "message_delete_profile_caption", "Supprimer un profil" }, + { "message_delete_profile_prefix", "Toutes les données du profil" }, + { "message_delete_profile_infix", "seront définitivement supprimées." }, + { "message_delete_profile_suffix", "Êtes-vous sûr de vouloir faire ceci ?" }, + { "message_save_profile_caption", "Enregistrer des données" }, + { "message_save_profile_prefix", "Enregistrer les données dans le profil" }, + { "message_save_profile_suffix", "?" }, + { "message_execution_caption", "Lancer Fall Guys" }, + { "message_execution_question", "Voulez-vous lancer le jeu Fall Guys ?" }, + { "message_update_question_caption", "MAJ du tracker" }, + { "message_update_question_prefix", "Une nouvelle version du tracker" }, + { "message_update_question_suffix", "est disponible ! Mettre à jour maintenant ?" }, + { "message_update_latest_version", "Vous possédez déjà la dernière version du tracker." }, + { "message_update_not_determine_version", "Impossible de déterminer la version du tracker." }, + { "message_save_csv_file_caption", "Enregistrer sous un fichier CSV" }, + { "message_update_error_caption", "Erreur MAJ" }, + { "message_update_error", "Impossible de rechercher une MAJ." }, + { "message_program_error_caption", "Erreur Tracker" }, + { "message_delete_finish_time_caption", "Supprimer le temps \"Finish\"" }, + { "message_delete_finish_time", "Êtes-vous sûr de vouloir supprimer le temps \"Finish\" de cette manche ?" }, + { "message_update_creative_map_caption", "MAJ des infos de la map créative" }, + { "message_update_creative_map_with_sharecode_prefix", "Mettre à jour les infos de la map créative ayant \"" }, + { "message_update_creative_map_with_sharecode_suffix", "\" comme code de partage ?" }, + { "message_update_creative_map_with_title_prefix", "Mettre à jour les infos de la map créative \"" }, + { "message_update_creative_map_with_title_suffix", "\" ?" }, + { "message_update_creative_map_error", "Une erreur s'est produite lors de la recherche de la map créative." }, + { "message_new_personal_best_caption", "⏱️ Nouveau record perso" }, + { "message_new_personal_best_prefix", "Vous avez établi un nouveau record personnel dans " }, + { "message_new_personal_best_suffix", "." }, + { "message_new_personal_best_timediff_by_minute_prefix", ""}, + { "message_new_personal_best_timediff_by_minute_infix", " min.," }, + { "message_new_personal_best_timediff_by_minute_suffix", " sec. de moins !" }, + { "message_new_personal_best_timediff_by_second", " sec. de moins !" }, + { "message_test_notifications_caption", "🔔 Notification de test" }, + { "message_connected_to_server_caption", "🔔 Connecté(e) à un serveur" }, + { "message_connected_to_server_prefix", "Vous êtes connecté(e) à un serveur \"" }, + { "message_connected_to_server_suffix", "\"." }, + { "message_check_internet_connection_caption", "Erreur réseau" }, + { "message_check_internet_connection", "Veuillez vérifier votre connexion Internet." }, + { "message_changelog_caption", "Journal des modifications" }, + { "message_changelog_bugfix_and_program_optimization", "Correction de bugs et optimisation du programme" }, + { "message_changelog_updated_new_show_and_round_names", "Mise à jour des noms des nouvelles manches / émissions" }, + { "message_changelog_overlay_display_improvements", "Améliorations de l'affichage de l'overlay" }, + { "message_changelog_added_and_improved_win_per_day_graph_feature", "Améliorations du graphique des victoires par jour" }, + { "message_changelog_released_the_fallalytics_speedrun_leaderboard", "Disponibilité du classement des meilleurs temps sur FALLALYTICS" }, + { "message_changelog_weekly_crown_league_is_now_open_on_fallalytics", "La Ligue de la Couronne hebdomadaire est désormais ouverte sur FALLALYTICS" }, + { "message_changelog_banning_users_using_hacking_programs", "Bannissement des utilisateurs ayant utilisés des programmes de triche" }, + { "message_changelog_add_proxy_settings", "Ajout de la configuration d'un proxy" }, + + { "numeric_suffix", ""}, + { "message_question_mark", " ?" }, + { "message_full_stop", "." }, + { "message_exclamation_mark", " !" }, + { "message_comma", "," }, + + { "settings_title", "Configuration" }, + { "settings_program", "Programme" }, + { "settings_display", "Affichage" }, + { "settings_launch_fallguys", "Lancer Fall Guys" }, + { "settings_fallalytics", "Fallalytics" }, + { "settings_proxy_settings", "Configuration du proxy" }, + { "settings_use_a_proxy_server", "Utiliser un serveur proxy" }, + { "settings_proxy_address", "Adresse" }, + { "settings_proxy_port", "Port" }, + { "settings_enable_proxy_authentication", "Activer l'authentification du proxy" }, + { "settings_proxy_user_name", "Nom d'utilisateur" }, + { "settings_proxy_password", "Mot de passe" }, + { "settings_test_proxy_connection", "Tester la connexion au proxy" }, + { "settings_enter_fallalytics_api_key", "(Facultatif) Taper votre clé API de Fallalytics" }, + { "settings_sends_info_about_rounds_played_to_fallalytics", "Envoyer l'info des manches jouées ainsi que vos meilleurs temps sur les manches Course" }, + { "settings_join_a_weekly_crown_league", "Rejoindre la Ligue de la Couronne hebdomadaire" }, + { "settings_sends_anonymously_to_fallalytics", "👻 Envoyer anonymement" }, + { "settings_fallalytics_desc", "ℹ️ Fallalytics est un outil permettant d'explorer les données collectées sur\r\n la distribution des manches dans Fall Guys." }, + { "settings_visit_fallalytics", "Visiter Fallalytics" }, + { "settings_about", "À propos de l'application" }, + { "settings_log_path", "📁 Chemin vers les logs du jeu" }, + { "settings_log_path_description", "🏷️ Vous n'avez normalement pas besoin de configurer ceci. Ne le faites qu'en cas de problème." }, + { "settings_stats", "Tracker" }, + { "settings_theme", "Thème :" }, + { "settings_theme_light", "☀️ Clair" }, + { "settings_theme_dark", "🌑 Sombre" }, + { "settings_preferred_ip_geolocation_service", "Service de géolocalisation IP préféré :" }, + { "settings_auto_selected", "Auto" }, + { "settings_ipinfo_token", "Token :" }, + { "settings_enter_ipinfo_token", "(Facultatif)" }, + { "settings_link_to_get_ipinfo_token", "Créer un compte pour obtenir un token" }, + { "settings_previous_win", "Win(s) précédente(s) :" }, + { "settings_before_using_tracker", "(avant l'utilisation du tracker)" }, + { "settings_auto_update_program", "🔄️ Vérifier s'il y a une nouvelle version (au lancement du programme)" }, + { "settings_rename_hoopsie_legends_to_hoopsie_heroes", "Renommer la manche 'Les Cerceaux' en 'Légendes Badaboum'" }, + { "settings_overlay", "Overlay" }, + { "settings_hide_wins_info", "Masquer les infos concernant les wins / finales" }, + { "settings_hide_round_info", "Masquer les infos concernant la manche" }, + { "settings_hide_time_info", "Masquer les infos concernant les temps" }, + { "settings_hide_percentages", "Masquer les pourcentages" }, + { "settings_show_tab_for_currnet_filter__profile", "Afficher les onglets d'info du filtre et profil actuels" }, + { "settings_wins__final_filter", "Filtre *Wins / Finales*" }, + { "settings_qualify__gold_filter", "Filtre *Qualif. / Or*" }, + { "settings_fastest__longest_filter", "Filtre *Meilleur / Plus long*" }, + { "settings_all_time_stats", "Toutes les stats" }, + { "settings_stats_and_party_filter", "Filtre 'Stats' et 'Parties'" }, + { "settings_season_stats", "Stats de la saison" }, + { "settings_week_stats", "Stats de la semaine" }, + { "settings_day_stats", "Stats du jour" }, + { "settings_session_stats", "Stats de la session" }, + { "settings_cycle_time", "Temps du cycle d'affichage :" }, + { "settings_sec", "seconde(s)" }, + { "settings_background_image", "Arrière-plan (image)" }, + { "settings_background", "Fond (couleur)" }, + { "settings_background_opacity", "Opacité (%)" }, + { "settings_lock_button_location", "Emplacement du bouton de verrouillage :" }, + { "settings_lock_button_location_top", "En haut" }, + { "settings_lock_button_location_bottom", "En bas" }, + { "settings_transparent", "Transparent" }, + { "settings_magenta", "Rose" }, + { "settings_red", "Rouge" }, + { "settings_green", "Vert" }, + { "settings_blue", "Bleu" }, + { "settings_black", "Noir" }, + { "settings_white", "Blanc" }, + { "settings_cycle_qualify__gold", "Cycle *Qualification / Or*" }, + { "settings_qualify_only", "Qualif. seul." }, + { "settings_gold_only", "Or seul." }, + { "settings_cycle_best__lowest", "Cycle *Meilleur / Plus long*" }, + { "settings_personal_best_only", "Meilleur seul." }, + { "settings_personal_lowest_only", "Plus long seul." }, + { "settings_cycle_win__final_streak", "Cycle *Win streak / Final streak*" }, + { "settings_win_streak_only", "Win streak seul." }, + { "settings_final_streak_only", "Final streak seul." }, + { "settings_cycle_players__ping", "Cycle *Joueurs / Ping*" }, + { "settings_players_only", "Joueurs seul." }, + { "settings_ping_only", "Ping seul." }, + { "settings_flip_display_horizontally", "Inverser horizontalement l'affichage (Ctrl + F)" }, + { "settings_always_show_on_top", "📌 Toujours visible (Ctrl + M)" }, + { "settings_display_players_based_on_platform", "🚹 Afficher les joueurs par support de jeu (Ctrl + C)" }, + { "settings_color_round_name_based_on_round_type", "🏳️‍🌈 Colorer la manche selon son type (Ctrl + R)" }, + { "settings_auto_change_profile", "🔃 Passer automatiquement sur un profil lié (Ctrl + Maj + Z)" }, + { "settings_shade_the_flag_image", "🏁 Donner du relief à l'image du drapeau du serveur à afficher" }, + { "settings_diaplay_current_time", "🕓 Afficher l'heure actuelle pendant l'attente" }, + { "settings_diaplay_game_played_info", "ℹ️ Afficher des informations de jeu à la fin d'une manche (Place, En vie, Win, etc.)" }, + { "settings_count_players_during_the_level", "Compter les joueurs qui passent ou qui sont éliminés pendant la partie" }, + { "settings_custom_overlay_font", "🅰️ Police d'écriture" }, + { "settings_select_font", "Changer" }, + { "settings_reset_font", "Réinitialiser" }, + { "settings_font_example", "Exemple" }, + { "settings_round_example", "Manche 3 : Pic Glacé" }, + { "settings_sorting_options", "Options de Tri" }, + { "settings_ignore_level_type_when_sorting", "📶 Ignorer le type de la manche lors du tri" }, + { "settings_grouping_creative_round_levels", "🛠️ Regrouper les manches créatives dans une seule catégorie" }, + { "settings_record_escape_during_a_game", "👻 Si vous quittez prématurément une partie, celle-ci sera enregistrée comme une défaite" }, + { "settings_game_options", "Fall Guys" }, + { "settings_game_options_platform", "Plateforme" }, + { "settings_fall_guys_exe_location", "↗️ Fichier EXE :" }, + { "settings_fall_guys_exe_openfile_title", "Sélectionner le fichier d'exécution de Fall Guys" }, + { "settings_fall_guys_exe_openfile_name", "FallGuys_client_game.exe" }, + { "settings_fall_guys_exe_openfile_filter", "Fichiers EXE (*.exe)|*.exe" }, + { "settings_fall_guys_shortcut_location", "↗️ Raccourci URL :" }, + { "settings_fall_guys_shortcut_openfile_title", "Sélectionner le raccourci qui permet de lancer Fall Guys" }, + { "settings_fall_guys_shortcut_openfile_name", ""}, + { "settings_fall_guys_shortcut_openfile_filter", "Raccourcis URL (*.url)|*.url" }, + { "settings_browse", "Localiser" }, + { "settings_launch_fall_guys_on_tracker_launch", "Lancer Fall Guys au lancement du tracker" }, + { "settings_language", "Langue" }, + { "settings_new_update_prefix", "La nouvelle mise à jour" }, + { "settings_new_update_suffix", "est disponible" }, + { "settings_save", "Enregistrer" }, + { "settings_cancel", "Annuler" }, + { "settings_select_language_title", "Sélectionnez votre langue" }, + { "settings_auto_generate_profiles", "Créer un profil pour chaque émission" }, + { "settings_select_language_button", "Confirmer" }, + { "settings_system_tray_icon", "📍 Utiliser l'icône de la barre des tâches" }, + { "settings_notify_personal_best", "🔔 Notification Windows lorsque vous battez votre record personnel sur une course" }, + { "settings_notify_server_connected", "🔔 Notification Windows avec le nom du pays du serveur lorsque le serveur est connecté" }, + { "settings_mute_notification_sounds", "🔇 Couper le son des notifications" }, + { "settings_notification_sounds_01", "🔊 01" }, + { "settings_notification_sounds_02", "🔊 02" }, + { "settings_notification_sounds_03", "🔊 03" }, + { "settings_notification_sounds_04", "🔊 04" }, + { "settings_notification_window_bottom_left", "En bas à gauche" }, + { "settings_notification_window_bottom_right", "En bas à droite" }, + { "settings_notification_window_top_left", "En haut à gauche" }, + { "settings_notification_window_top_right", "En haut à droite" }, + { "settings_prevent_overlay_mouse_clicks", "🖱️ Empêcher les clics de souris sur l'overlay en pleine partie" }, + { "settings_github", "GitHub (ShootMe/FallGuysStats)" }, + { "settings_issue_traker", "Signalement de problèmes" }, + { "settings_translation", "d'erreurs de traduction" }, + { "settings_font_need_to_be_installed_caption", "Les polices d'écriture ont besoin d'être installées" }, + { "settings_font_need_to_be_installed_message", "Veuillez installer les polices d'écriture présentes dans le dossier où se trouve le tracker puis relancer le programme pour ne plus avoir ce message." }, + { "settings_checking_for_updates", "Recherche d'une mise à jour..." }, + + { "overlay_streak", "WIN STREAK" }, + { "overlay_streak_suffix", ""}, + { "overlay_streak_finals", "FINAL STREAK" }, + { "overlay_finals", "FINALES" }, + { "overlay_qualify_chance", "QUALIF." }, + { "overlay_qualify_gold", "OR" }, + { "overlay_longest", "PLUS LONG" }, + { "overlay_fastest", "PLUS RAPIDE" }, + { "overlay_personal_best", "PB" }, + { "overlay_high_score", "MEILLEUR SCORE" }, + { "overlay_low_score", "PIRE SCORE" }, + { "overlay_duration", "TEMPS" }, + { "overlay_players", "JOUEURS" }, + { "overlay_current_time", "HEURE ACTUELLE" }, + { "overlay_round_prefix", "MANCHE " }, + { "overlay_round_suffix", ""}, + { "overlay_round_abbreviation_prefix", "M " }, + { "overlay_round_abbreviation_suffix", ""}, + { "overlay_wins", "WINS" }, + { "overlay_win", ""}, + { "overlay_finish", "FINISH" }, + { "overlay_queued_players", "INFO DE LA FILE" }, + { "overlay_ping", "PING" }, + { "overlay_best", ""}, + { "overlay_inning", ""}, + { "overlay_position_prefix", ""}, + { "overlay_position_suffix", ""}, + { "overlay_position_win", "WIN " }, + { "overlay_position_survived", "EN VIE " }, + { "overlay_position_qualified", "QUALIF " }, + { "overlay_position_eliminated", "ÉLIMINÉ(E) " }, + { "overlay_picPositionLock_tooltip", "Épingler l'overlay" }, + { "overlay_picPositionNE_tooltip", " Épingler l'overlay dans le coin supérieur gauche de l'écran" }, + { "overlay_picPositionNW_tooltip", " Épingler l'overlay dans le coin supérieur droit de l'écran" }, + { "overlay_picPositionSE_tooltip", " Épingler l'overlay dans le coin inférieur gauche de l'écran" }, + { "overlay_picPositionSW_tooltip", " Épingler l'overlay dans le coin inférieur droit de l'écran" }, + + { "profile_title", "Gestion des Profils" }, + { "profile_list", "Profil :" }, + { "profile_add_tab", "Ajouter" }, + { "profile_add_tab_label1", "Nom du Profil" }, + { "profile_add_tab_button", "Ajouter" }, + { "profile_rename_tab", "Renommer" }, + { "profile_rename_tab_label1", "Profil" }, + { "profile_rename_tab_label2", "Nouveau Nom" }, + { "profile_rename_tab_button", "Renommer" }, + { "profile_move_tab", "Déplacer" }, + { "profile_move_tab_label1", "De" }, + { "profile_move_tab_label2", "Vers" }, + { "profile_move_tab_button", "Déplacer" }, + { "profile_remove_tab", "Supprimer" }, + { "profile_remove_tab_label1", "Profil" }, + { "profile_remove_tab_label2", "* Vous pouvez seulement supprimer un profil avec aucune donnée" }, + { "profile_remove_tab_button", "Supprimer" }, + { "profile_rounds_suffix", "Manches" }, + { "profile_apply_change_button", "Enregistrer" }, + { "profile_undo_change_button", "Annuler" }, + { "profile_add_select_title", "Stats d'émissions précédentes détectées" }, + { "profile_add_select_question_prefix", "Des stats d'émissions précédentes n'ont pas été enregistrées." }, + { "profile_add_select_question_suffix", "Sélectionner un profil ci-dessous pour enregistrer les données." }, + { "profile_add_select_question_suffix_linked_profiles", "Les données seront enregistrées dans les profils liés." }, + { "profile_add_select_use_linked_profiles", "Utiliser les profils liés" }, + { "profile_move_select_title", "Déplacer les données" }, + { "profile_move_select_description_prefix", "Sélectionner un profil ci-dessous pour déplacer les données." }, + { "profile_move_select_description_suffix", "Nombre d'émissions sélectionnées" }, + { "profile_move_select_question_prefix", "Voulez-vous déplacer la sélection" }, + { "profile_move_select_question_infix", "d'émissions vers le profil" }, + { "profile_move_select_question_suffix", "?" }, + { "profile_move_select_button", "Déplacer" }, + + { "custom_range_range", "Période personnalisée" }, + { "custom_range_templates", "Modèles" }, + { "custom_range_legacy_season", "Saison" }, + { "custom_range_ffa_season", "Saison" }, + { "custom_range_season", "Saison" }, + { "custom_range_legacy", "Legacy" }, + { "custom_range_ffa", "FFA" }, + { "custom_range_not_set", "Ne pas régler" }, + { "custom_range_filter", "Filtrer" }, + } + }, + { Language.Spanish, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "author", "CarlosAlberto1991" }, + { "main_by", "by" }, + { "main_on_twitch", "on Twitch" }, + { "main_multilingual", "Multilenguaje" }, + { "main_fall_guys_stats", "Fall Guys Estadísticas" }, + { "main_settings", "Opciones" }, + { "main_filters", "Filtros" }, + { "main_stats", "Estadísticas" }, + { "main_all", “Todos” }, + { "main_season", “Sesión” }, + { "main_week", “Semana” }, + { "main_day", “Día” }, + { "main_session", “Sesiones” }, + { "main_custom_range", “Personalizada” }, + { "main_party_type", “Fiesta” }, + { "main_party", “Fiesta” }, + { "main_solo", “Solitario” }, + { "main_profile", “Perfil” }, + { "main_profile_setting", “Opciones de perfil” }, + { "main_show_overlay", “Ver visor” }, + { "main_hide_overlay", “Ocultar visor” }, + { "main_update", “Actualizar” }, + { "main_manual_update_version", “Versión de actualización manual” }, + { "main_help", “Ayuda” }, + { "main_launch_fall_guys", “Lanzar Fall Guys” }, + { "main_useful_things", "Useful things!" }, + { "main_fall_guys_wiki", "Fall Guys Wiki" }, + { "main_fall_guys_reddit", "Fall Guys Reddit" }, + { "main_fallalytics", "Fallalytics" }, + { "main_fallalytics_main", "Main Page" }, + { "main_fallalytics_find_player", “Buscar jugadores” }, + { "main_fallalytics_overall_rankings", "Overall Ranking" }, + { "main_fallalytics_level_rankings", “Rankings de nivel” }, + { "main_fallalytics_weekly_crown_league", “Liga semanal de coronas” }, + { "main_fallalytics_round_statistics", "“Estadísticas de la ronda” }, + { "main_fallalytics_show_statistics", “Estadísticas del show” }, + { "main_fallalytics_news", “Noticias” }, + { "main_roll_off_club", “Rodado y hundido club” }, + { "main_lost_temple_analyzer", "Lost Temple Analyzer" }, + { "main_fall_guys_db", "FallGuys DB" }, + { "main_fall_guys_db_main", "Main Page" }, + { "main_fall_guys_db_shows", “Lista de shows” }, + { "main_fall_guys_db_discovery", “Descubrir” }, + { "main_fall_guys_db_shop", “Tienda de objetos” }, + { "main_fall_guys_db_newsfeeds", "Newsfeeds" }, + { "main_fall_guys_db_strings", "Localized Strings" }, + { "main_fall_guys_db_cosmetics", “Todos los cosméticos” }, + { "main_fall_guys_db_crown_ranks", “Ranking de corona” }, + { "main_fall_guys_db_live_events", “Evento en vivo” }, + { "main_fall_guys_db_daily_shop", “Objetos diarios” }, + { "main_fall_guys_db_creative", "Creative Level Lookup" }, + { "main_fall_guys_db_faq", "FAQ" }, + { "main_fall_guys_official", "Fall Guys Official" }, + { "main_fall_guys_wiki_tooltip", "The ultimate wiki guide for Fall Guys, written and maintained by the players" }, + { "main_fall_guys_reddit_tooltip", "The community-run and developer-supported subreddit dedicated to Fall Guys" }, + { "main_fallalytics_tooltip", "Fallalytics is a tool to explore data collected about round distribution in Fall Guys" }, + { "main_roll_off_club_tooltip", "Become a roll off pro!" }, + { "main_lost_temple_analyzer_tooltip", "Complete visual analysis of lost temples" }, + { "main_todays_show_tooltip", "See what shows are currently available" }, + { "main_fall_guys_official_tooltip", "Fall Guys (anteriormente conocido como Fall Guys: Ultimate Knockout) es un juego de plataformas battle royale gratuito desarrollado por Mediatonic y publicado por Epic Games".}, + { "main_overlay_show_tooltip", “Presiona (Ctrl + O) para ver el visor. “ }, + { "main_overlay_hide_tooltip", “Presiona (Ctrl + O) para ocultar el visor. “ }, + { "main_overlay_shortcut_tooltip", “Presione (Ctrl + M) para mantener el visor siempre arriba .\n Presione (Ctrl + T) para alternar los colores de fondo. Presione (Ctrl + F) para voltear la pantalla. Presione (Ctrl + C) para mostrar el número de usuarios por plataforma. Presione (Ctrl + R) para mostrar el nombre de la ronda con la insignia de color correspondiente. Presione (Ctrl + Shift + ↑ o ↓) para ajustar la transparencia de la superposición. Presione (Ctrl + Shift + Z) para cambiar automáticamente al perfil vinculado. Presione (Ctrl + Shift + X) para restablecer el tamaño de la superposición. Presione (Ctrl + Shift + C) para restablecer la posición de la superposición.}, + { "main_update_prefix_tooltip", "Si quieres que FallGuysStats siga actualizándose", }, + { "main_update_suffix_tooltip", ¡No olvides marcar como favorito el repositorio de GitHub! }, + { "main_you_can_update_new_version_prefix_tooltip", "Puedes actualizar a la nueva versión ⟦ " }, + { "main_you_can_update_new_version_suffix_tooltip", " ⟧ ! " }, + { "main_exit_program", “Salir” }, + { "main_plays", "Tiempo de juego" }, + { "main_shows", "Shows" }, + { "main_inning", ""}, + { "main_rounds", “Rondas” }, + { "main_round", ""}, + { "main_wins", “Ganadas” }, + { "main_win", ""}, + { "main_finals", “Finales” }, + { "main_kudos", "Kudos" }, + { "main_hour", " h " }, + { "main_min", " m " }, + { "main_sec", " s" }, + { "main_round_name", “Nombre de la ronda” }, + { "main_played", “Jugadas” }, + { "main_qualified", “Clasificado” }, + { "main_gold", “Oro” }, + { "main_silver", “Plata” }, + { "main_bronze", “Bronce” }, + { "main_fastest", “Mejor” }, + { "main_longest", “Más lento” }, + { "main_ave_finish", “Media” }, + { "main_hoopsie_legends", “Leyendas del aro” }, + { "main_hoopsie_heroes", “Leyendas del aro” }, + { "main_profile_solo", “Solitario” }, + { "main_profile_ranked_solo", “Solitario ranked” }, + { "main_profile_duo", “Dúos” }, + { "main_profile_ranked_duo", “Dúos ranked” }, + { "main_profile_trio", “Tríos” }, + { "main_profile_ranked_trio", “Tríos ranked” }, + { "main_profile_squad", “Escuadrones” }, + { "main_profile_ranked_squad", “Escuadrones ranked” }, + { "main_profile_custom", “Personalizada” }, + { "main_profile_creative", “Creativo” }, + { "main_custom_and_casual_shows", “Personalizada/explorar” }, + { "main_export_csv", "Exportar CSV" }, + { "main_export_html", "Exportar HTML" }, + { "main_export_bbcode", "Exportar BBCode" }, + { "main_export_markdown", "Exportar MarkDown" }, + { "main_delete_shows", “Borrar” }, + { "main_move_shows", “Mover datos de shows” }, + { "main_delete_finish_time", "Borrar \"Finalizado\"Tiempo" }, + { "main_update_creative_map_infos", "Actualizar información de los mapas" }, + { "main_update_program", “Actualizar estadísticas de Fall Guys” }, + { "main_updating_program", “Descargando” }, + { "main_update_complete", “Actualización completada” }, + { "level_detail_medal", “Medalla” }, + { "level_detail_is_final", "Finales" }, + { "level_detail_show_id", "Show No." }, + { "level_detail_show_name_id", “Nombre del show” }, + { "level_detail_round", “Ronda” }, + { "level_detail_round_suffix", "(s)" }, + { "level_detail_name", “Nivel” }, + { "level_detail_players", “Jugadores” }, + { "level_detail_playersPs4", "PS4" }, + { "level_detail_playersPs4_desc", "Play Station 4" }, + { "level_detail_playersPs5", "PS5" }, + { "level_detail_playersPs5_desc", "Play Station 5" }, + { "level_detail_playersXb1", "Xbox One" }, + { "level_detail_playersXb1_desc", "Xbox One" }, + { "level_detail_playersXsx", "Xbox Series X" }, + { "level_detail_playersXsx_desc", "Xbox Series X" }, + { "level_detail_playersSw", "Switch" }, + { "level_detail_playersSw_desc", "Nintendo Switch" }, + { "level_detail_playersPc", "PC" }, + { "level_detail_playersPc_desc", “Ordenador personal” }, + { "level_detail_playersAndroid", "Android" }, + { "level_detail_playersAndroid_desc", "Android" }, + { "level_detail_playersIos", "iOS" }, + { "level_detail_playersIos_desc", "iOS" }, + { "level_detail_playersBots", "Bots" }, + { "level_detail_playersBots_desc", "Bots" }, + { "level_detail_start", “Empezar” }, + { "level_detail_end", “Duración” }, + { "level_detail_finish", “Finalizado” }, + { "level_detail_position", “Posición” }, + { "level_detail_score", “Puntos” }, + { "level_detail_kudos", "Kudos" }, + { "level_detail_gold", “Oro” }, + { "level_detail_silver", “Plata” }, + { "level_detail_bronze", “Bronce” }, + { "level_detail_pink", "Pink" }, + { "level_detail_eliminated", “Eliminado” }, + { "level_detail_round_summary", “Lista de rondas” }, + { "level_detail_show_stats", “Lista estadísticas del show” }, + { "level_detail_round_stats", “Lista rondas del show” }, + { "level_detail_final_stats", "Lista de estadísticas de las rondas (solo las que llegaron a la final) }, + { "level_detail_level_stats", “Lista estadísticas de niveles” }, + { "level_detail_wins_per_day", “Ganadas por día” }, + { "level_detail_stats_by_round", “Gráfico estadísticas por ronda” }, + { "level_detail_success_reaching_finals", "Éxito al llegar a la final" " }, + { "level_detail_failure_reaching_finals", "fallo en llegar a la final"}, + { "level_detail_shows", "Shows" }, + { "level_detail_finals", “Finales” }, + { "level_detail_wins", “Ganadas” }, + { "level_detail_losses", “Perdidas” }, + { "level_detail_date", “Fecha” }, + { "level_detail_finals_stats", “Estadísticas de finales” }, + { "level_detail_tooltiptext_prefix", "Click para ver " }, + { "level_detail_tooltiptext_suffix", "'s Estadísticas de nivel" }, + { "level_date_format", "MMM d, yyyy (ddd)" }, + { "level_grid_date_format", "MMM d, yyyy HH:mm (ddd)" }, + { "level_detail_no_data", "Los datos no existen."}, + { "level_detail_no_data_caption", "No hay datos" }, + { "level_detail_share_code_copied", "El código compartido ha sido copiado !" }, + { "level_detail_share_code_copied_tooltip", "Haz doble clic para copiar el código para compartir."}, + { "level_detail_creative_author", "Autor" }, + { "level_detail_creative_likes", "Me gusta:" }, + { "level_detail_creative_dislikes", "No me gusta:" }, + { "level_detail_creative_share_code", "Código para compartir" }, + { "level_detail_creative_version", "Versión" }, + { "level_detail_creative_max_players", “Máximo de jugadores” }, + { "level_detail_creative_time_limit", "Tiempo límite" }, + { "level_detail_creative_platform", "Plataforma creativa" }, + { "level_detail_creative_last_modified", "Última modificación" }, + { "level_detail_creative_play_count", "Contador clasificados" }, + { "level_detail_creative_inning", ""}, + { "level_detail_creative_player_suffix", ""}, + { "level_detail_online_platform_eos", "Epic Games" }, + { "level_detail_online_platform_steam", "Steam" }, + { "level_detail_online_platform_psn", "PSN" }, + { "level_detail_online_platform_xbl", "Xbox Live" }, + { "level_detail_online_platform_nso", "Nintendo Switch Online" }, + { "level_detail_race", “Circuito” }, + { "level_detail_hunt", “Puntos” }, + { "level_detail_survival", “Supervivencia” }, + { "level_detail_logic", “Lógica” }, + { "level_detail_team", “Equipos” }, + { "level_detail_invisibeans", “Alubinvisibles” }, + { "level_detail_final", "Final" }, + { "level_round_played_prefix", “Jugado para” }, + { "level_round_played_suffix", ""}, + { "level_win_suffix", “victoria” }, + { "level_wins_suffix", " ganadas" }, + { "level_loss_suffix", " perdida" }, + { "level_losses_suffix", " perdidas" }, + { "level_no_statistical_data", "No hay datos estadísticos" }, + { "leaderboard_menu_title", "Leaderboard" }, + { "leaderboard_report_cheater", “Reportar a tramposo” }, + { "leaderboard_choose_a_round", “Elije una ronda” }, + { "leaderboard_overall_rank", "🏆 Overall Rank" }, + { "leaderboard_search_players", "🔎 Buscar por jugadores" }, + { "leaderboard_search_players_WaterMark", "🔎 Mi genial apodo " }, + { "leaderboard_weekly_crown_league", "👑 Liga semanal de coronas" }, + { "leaderboard_total_players_prefix", ""}, + { "leaderboard_total_players_suffix", " jugador total(es)" }, + { "leaderboard_see_full_rankings_in_fallalytics", ""Ver ranking de líderes en FALLALYTICS ", "Ver la clasificación completa en FALLALYTICS"" }, + { "leaderboard_grid_header_rank", "#" }, + { "leaderboard_grid_header_show", "Show" }, + { "leaderboard_grid_header_player", "Jugador" }, + { "leaderboard_grid_header_record", "Record" }, + { "leaderboard_grid_header_finish", “Fecha” }, + { "leaderboard_grid_header_score", “Puntos” }, + { "leaderboard_grid_header_period", "Periodo" }, + { "leaderboard_grid_header_first_places", "WRs(*)" }, + { "leaderboard_grid_anonymous", "Anónimo" }, + { "leaderboard_grid_just_before", "Justo ahora" }, + { "leaderboard_grid_today", "Hoy" }, + { "leaderboard_grid_yesterday", "Ayer" }, + { "leaderboard_grid_the_day_before_yesterday", "Antes de ayer" }, + { "leaderboard_grid_n_days_ago_prefix", ""}, + { "leaderboard_grid_n_days_ago_suffix", " días atrás " }, + { "leaderboard_grid_n_weeks_ago_prefix", ""}, + { "leaderboard_grid_n_weeks_ago_suffix", " semana(s) atrás" }, + { "leaderboard_grid_n_months_ago_prefix", ""}, + { "leaderboard_grid_n_months_ago_suffix", " mes(es) atrás" }, + { "leaderboard_grid_n_years_ago_prefix", ""}, + { "leaderboard_grid_n_years_ago_suffix", " año(s) atrás" }, + { "leaderboard_grid_time_prefix", " min" }, + { "leaderboard_grid_time_suffix", " s" }, + { "leaderboard_grid_header_crowns", "Coronas" }, + { "leaderboard_grid_header_shards", "Fragmentos de coroona" }, + { "leaderboard_grid_header_country", "País" }, + { "profile_icon_enable_tooltip", " Haz clic para no cambiar automáticamente a un perfil vinculado. " }, + { "profile_icon_disable_tooltip", " Haz clic para cambiar automáticamente a un perfil vinculado. " }, + { "profile_change_tooltip", " Cambia el perfil actual haciendo clic con el botón izquierdo o derecho. " }, + { "shows_detail_tooltip", "Haz clic para ver las estadísticas del show"}, + { "rounds_detail_tooltip", "Haz clic para ver las estadísticas de las rondas" }, + { "wins_detail_tooltip", " Haz clic para ver las estadísticas de victorias."}, + { "finals_detail_tooltip", " Haz clic para ver las estadísticas de las rondas (solo las que llegaron a la final)." }, + { "stats_detail_tooltip", "Haz clic para ver el gráfico estadístico por ronda"}, + { "message_already_running_caption", "Launching Error" }, + { "message_fall_guys_already_running", "Fall Guys ya está en marcha." }, + { "message_tracker_already_running", "El rastreador ya esta en marcha" }, + { "message_register_shortcut_caption", "Need to set shortcut file path" }, + { "message_register_shortcut", "Please set the shortcut file path of the Fall Guys." }, + { "message_register_exe_caption", "Need to set exe file path" }, + { "message_register_exe", "Please set the exe file path of the Fall Guys." }, + { "message_wrong_selected_file_caption", "Wrong File Selected" }, + { "message_wrong_selected_file_epicgames", "Please select the Fall Guys client's shortcut file." }, + { "message_wrong_selected_file_steam", "Please select \"FallGuys_client_game.exe\" in the install folder." }, + { "message_not_installed_steam_caption", "Not Installed" }, + { "message_not_installed_steam", "The Steam version of Fall Guys is not installed." }, + { "message_not_installed_epicGames_caption", "Not Installed" }, + { "message_not_installed_epicGames", "The Epic Games version of Fall Guys is not installed." }, + { "message_save_csv_caption", "Export as CSV File" }, + { "message_save_csv", "Saved CSV to file." }, + { "message_save_html_caption", "Export as HTML" }, + { "message_save_html", "Saved Html to clipboard." }, + { "message_save_bbcode_caption", "Export as BBCode" }, + { "message_save_bbcode", "Saved BBCode to clipboard." }, + { "message_save_markdown_caption", "Export as Markdown" }, + { "message_save_markdown", "Saved MarkDown to clipboard." }, + { "message_save_data_caption", "Save Data" }, + { "message_save_data_linked_profiles", "Do you want to save data to linked profiles?" }, + { "message_save_data_linked_profiles_info_prefix", "NOTE: Default profile is" }, + { "message_save_data_linked_profiles_info_suffix", ""}, + { "message_delete_show_caption", "Remove Shows" }, + { "message_delete_show_prefix", "Are you sure you want to remove the selected" }, + { "message_delete_show_suffix", "shows?" }, + { "message_create_profile_caption", "Create Profile" }, + { "message_create_profile_prefix", "Do you want to create a profile with" }, + { "message_create_profile_suffix", ""}, + { "message_same_profile_name_exists", "The same profile name exists among registered profiles" }, + { "message_rename_profile_caption", "Rename Profile" }, + { "message_rename_profile_prefix", ""}, + { "message_rename_profile_infix", "to" }, + { "message_rename_profile_suffix", "Do you want to change the profile name from" }, + { "message_move_profile_caption", "Move Profile Data" }, + { "message_move_profile_prefix", "Do you want to move profile data from" }, + { "message_move_profile_infix", "to" }, + { "message_move_profile_suffix", ""}, + { "message_delete_profile_caption", "Delete Profile" }, + { "message_delete_profile_prefix", "All data of the" }, + { "message_delete_profile_infix", "profile you have played so far will be deleted." }, + { "message_delete_profile_suffix", "Are you sure you want to delete?" }, + { "message_save_profile_caption", "Save Profile" }, + { "message_save_profile_prefix", "Do you want to save current data to" }, + { "message_save_profile_suffix", "profile?" }, + { "message_execution_caption", "Running Fall Guys" }, + { "message_execution_question", "Do you want to run the Fall Guys client?" }, + { "message_update_question_caption", "Update Program" }, + { "message_update_question_prefix", "There is a new version of Fall Guys Stats available" }, + { "message_update_question_suffix", "- Do you wish to update now?" }, + { "message_update_latest_version", "You are at the latest version." }, + { "message_update_not_determine_version", "Could not determine version." }, + { "message_save_csv_file_caption", "Save as CSV file" }, + { "message_update_error_caption", "Update error" }, + { "message_update_error", "Unable to check for update." }, + { "message_program_error_caption", "Program Error" }, + { "message_delete_finish_time_caption", "Delete \"Finish\" Time" }, + { "message_delete_finish_time", "Are you sure you want to delete the \"Finish\" time of this round?" }, + { "message_update_creative_map_caption", "Update creative map informations" }, + { "message_update_creative_map_with_sharecode_prefix", "Would you like to update map infos with the share code \"" }, + { "message_update_creative_map_with_sharecode_suffix", "\"?" }, + { "message_update_creative_map_with_title_prefix", "Would you like to update map infos of \"" }, + { "message_update_creative_map_with_title_suffix", "\"?" }, + { "message_update_creative_map_error", "An error occurred while looking up the creative level." }, + { "message_new_personal_best_caption", "⏱️ New personal best" }, + { "message_new_personal_best_prefix", "You've set a new personal best in " }, + { "message_new_personal_best_suffix", "." }, + { "message_new_personal_best_timediff_by_minute_prefix", ""}, + { "message_new_personal_best_timediff_by_minute_infix", " min.," }, + { "message_new_personal_best_timediff_by_minute_suffix", " sec. less!" }, + { "message_new_personal_best_timediff_by_second", " sec. shortened!" }, + { "message_test_notifications_caption", "🔔 Test notification" }, + { "message_connected_to_server_caption", "🔔 Connected to a server" }, + { "message_connected_to_server_prefix", "You are connected to a server \"" }, + { "message_connected_to_server_suffix", "\"." }, + { "message_check_internet_connection_caption", "Network error" }, + { "message_check_internet_connection", "Please check your internet connection." }, + { "message_changelog_caption", "Changelog" }, + { "message_changelog_bugfix_and_program_optimization", "Bugfix and program optimization" }, + { "message_changelog_updated_new_show_and_round_names", "Updated new show and round names" }, + { "message_changelog_overlay_display_improvements", "Overlay display improvements" }, + { "message_changelog_added_and_improved_win_per_day_graph_feature", "Added and improved win per day graph feature" }, + { "message_changelog_released_the_fallalytics_speedrun_leaderboard", "Released the FALLALYTICS Speedrun Leaderboard" }, + { "message_changelog_weekly_crown_league_is_now_open_on_fallalytics", "Weekly Crown League is now open on Fallalytics" }, + { "message_changelog_banning_users_using_hacking_programs", "Banning users using hacking programs" }, + { "message_changelog_add_proxy_settings", "Add proxy settings" }, + { "numeric_suffix", ""}, + { "message_question_mark", "?" }, + { "message_full_stop", "." }, + { "message_exclamation_mark", "!" }, + { "message_comma", "," }, + { "settings_title", "Opciones" }, + { "settings_program", "Program" }, + { "settings_display", "Display" }, + { "settings_launch_fallguys", “Lanzar Fall Guys” }, + { "settings_fallalytics", "Fallalytics" }, + { "settings_proxy_settings", "Proxy Settings" }, + { "settings_use_a_proxy_server", "Use a proxy server" }, + { "settings_proxy_address", "Address" }, + { "settings_proxy_port", "Port" }, + { "settings_enable_proxy_authentication", "Enable Proxy authentication" }, + { "settings_proxy_user_name", "User name" }, + { "settings_proxy_password", "Password" }, + { "settings_test_proxy_connection", "Test Proxy Connection" }, + { "settings_enter_fallalytics_api_key", "(Optional) Enter Fallalytics API key" }, + { "settings_sends_info_about_rounds_played_to_fallalytics", "Send information about rounds played and personal best times for race rounds to Fallalytics" }, + { "settings_join_a_weekly_crown_league", "Join a weekly crown league" }, + { "settings_sends_anonymously_to_fallalytics", "👻 Send anonymously" }, + { "settings_fallalytics_desc", "ℹ️ Fallalytics is a tool to explore data collected about round distribution in Fall Guys." }, + { "settings_visit_fallalytics", "Visit Fallalytics" }, + { "settings_about", "About" }, + { "settings_log_path", "📁 Log File Path" }, + { "settings_log_path_description", "🏷️ You should not need to set this. Only use when the program is not reading the correct location." }, + { "settings_stats", "Estadísticas" }, + { "settings_theme", "Theme" }, + { "settings_theme_light", "☀️ Light" }, + { "settings_theme_dark", "🌑 Dark" }, + { "settings_preferred_ip_geolocation_service", "Preferred IP geolocation service" }, + { "settings_auto_selected", "Auto" }, + { "settings_ipinfo_token", "Token" }, + { "settings_enter_ipinfo_token", "(Optional)" }, + { "settings_link_to_get_ipinfo_token", "Create an account to get a token" }, + { "settings_previous_win", "Previous Win(s)" }, + { "settings_before_using_tracker", "(before using tracker)" }, + { "settings_auto_update_program", "🔄️ Check update on startup" }, + { "settings_rename_hoopsie_legends_to_hoopsie_heroes", "Rename Hoopsie Legends to Hoopsie Heroes" }, + { "settings_overlay", "Overlay" }, + { "settings_hide_wins_info", "Hide Wins info" }, + { "settings_hide_round_info", "Hide Round info" }, + { "settings_hide_time_info", "Hide Time info" }, + { "settings_hide_percentages", "Hide Percentages" }, + { "settings_show_tab_for_currnet_filter__profile", "Show Tab for current filter and profile" }, + { "settings_wins__final_filter", "Wins / Final Filter" }, + { "settings_qualify__gold_filter", "Qualify / Gold Filter" }, + { "settings_fastest__longest_filter", "Fastest / Longest Filter" }, + { "settings_all_time_stats", "All Time Stats" }, + { "settings_stats_and_party_filter", "Stats and Party Filter" }, + { "settings_season_stats", "Season Stats" }, + { "settings_week_stats", "Week Stats" }, + { "settings_day_stats", "Day Stats" }, + { "settings_session_stats", "Session Stats" }, + { "settings_cycle_time", "Cycle Time:" }, + { "settings_sec", "sec" }, + { "settings_background_image", "Background Image" }, + { "settings_background", "Background" }, + { "settings_background_opacity", "Background Opacity" }, + { "settings_lock_button_location", "Lock Button Location" }, + { "settings_lock_button_location_top", "Top" }, + { "settings_lock_button_location_bottom", "Bottom" }, + { "settings_transparent", "Transparent" }, + { "settings_magenta", "Magenta" }, + { "settings_red", "Red" }, + { "settings_green", "Green" }, + { "settings_blue", "Blue" }, + { "settings_black", "Black" }, + { "settings_white", "White" }, + { "settings_cycle_qualify__gold", "Cycle Qualify / Gold" }, + { "settings_qualify_only", "Qualify Only" }, + { "settings_gold_only", "Gold Only" }, + { "settings_cycle_best__lowest", "Cycle Best / Lowest" }, + { "settings_personal_best_only", "Personal Best Only" }, + { "settings_personal_lowest_only", "Personal Lowest Only" }, + { "settings_cycle_win__final_streak", "Cycle Win / Final Streak" }, + { "settings_win_streak_only", "Win Streak Only" }, + { "settings_final_streak_only", "Final Streak Only" }, + { "settings_cycle_players__ping", "Cycle Players / Ping" }, + { "settings_players_only", "Players Only" }, + { "settings_ping_only", "Ping Only" }, + { "settings_flip_display_horizontally", "Flip display horizontally (Ctrl + F)" }, + { "settings_always_show_on_top", "📌 Always show on top (Ctrl + M)" }, + { "settings_display_players_based_on_platform", "🚹 Display players based on platform (Ctrl + C)" }, + { "settings_color_round_name_based_on_round_type", "🏳️‍🌈 Color round name based on round type (Ctrl + R)" }, + { "settings_auto_change_profile", "🔃 Automatically change to linked profile (Ctrl + Shift + Z)" }, + { "settings_shade_the_flag_image", "🏁 Shading the server's flag image to display" }, + { "settings_diaplay_current_time", "🕓 Display the current time while waiting" }, + { "settings_diaplay_game_played_info", "ℹ️ Display game played information at the end of a round (Rank, Survived, Win, etc.)" }, + { "settings_count_players_during_the_level", "Count players who pass or are eliminated during the game" }, + { "settings_custom_overlay_font", "🅰️ Custom Overlay Font" }, + { "settings_select_font", "Select Font" }, + { "settings_reset_font", "Reset Font" }, + { "settings_font_example", "Example" }, + { "settings_round_example", "Round 3 : Freezy Peak" }, + { "settings_sorting_options", "Sorting Options" }, + { "settings_ignore_level_type_when_sorting", "📶 Ignore Level Type when sorting" }, + { "settings_grouping_creative_round_levels", "🛠️ Grouping creative round levels into one category" }, + { "settings_record_escape_during_a_game", "👻 If you escape during a game, record it as a loss" }, + { "settings_game_options", "Game Options" }, + { "settings_game_options_platform", "Platform" }, + { "settings_fall_guys_exe_location", "↗️ Game EXE Location" }, + { "settings_fall_guys_exe_openfile_title", "Select the Fall Guys Client EXE file" }, + { "settings_fall_guys_exe_openfile_name", "FallGuys_client_game.exe" }, + { "settings_fall_guys_exe_openfile_filter", "EXE files (*.exe)|*.exe" }, + { "settings_fall_guys_shortcut_location", "↗️ Game Shortcut Location" }, + { "settings_fall_guys_shortcut_openfile_title", "Select the Fall Guys Client shortcut file" }, + { "settings_fall_guys_shortcut_openfile_name", ""}, + { "settings_fall_guys_shortcut_openfile_filter", "URL Files (*.url)|*.url" }, + { "settings_browse", "Browse" }, + { "settings_launch_fall_guys_on_tracker_launch", "Launch Fall Guys on tracker launch" }, + { "settings_language", "Language" }, + { "settings_new_update_prefix", "New update" }, + { "settings_new_update_suffix", "is available" }, + { "settings_save", "Save" }, + { "settings_cancel", "Cancel" }, + { "settings_select_language_title", "Select your language" }, + { "settings_auto_generate_profiles", "Auto-generate profiles" }, + { "settings_select_language_button", "Confirm" }, + { "settings_system_tray_icon", "📍 Use the system tray icon" }, + { "settings_notify_personal_best", "🔔 Windows notification when you break your personal best during a race round" }, + { "settings_notify_server_connected", "🔔 Windows notification with the country name of the server when the server is connected" }, + { "settings_mute_notification_sounds", "🔇 Mute notification sounds" }, + { "settings_notification_sounds_01", "🔊 01" }, + { "settings_notification_sounds_02", "🔊 02" }, + { "settings_notification_sounds_03", "🔊 03" }, + { "settings_notification_sounds_04", "🔊 04" }, + { "settings_notification_window_bottom_left", "Bottom Left" }, + { "settings_notification_window_bottom_right", "Bottom Right" }, + { "settings_notification_window_top_left", "Top Left" }, + { "settings_notification_window_top_right", "Top Right" }, + { "settings_prevent_overlay_mouse_clicks", "🖱️ Prevent overlay mouse clicks" }, + { "settings_github", "GitHub (ShootMe/FallGuysStats)" }, + { "settings_issue_traker", "Issue Tracker" }, + { "settings_translation", "Translation" }, + { "settings_font_need_to_be_installed_caption", "Fonts need to be installed" }, + { "settings_font_need_to_be_installed_message", "Install the font files found in the Fall Guys Stats folder." }, + { "settings_checking_for_updates", "Checking for updates..." }, + { "overlay_streak", "WIN STREAK" }, + { "overlay_streak_suffix", ""}, + { "overlay_streak_finals", "FINAL STREAK" }, + { "overlay_finals", “Finales” }, + { "overlay_qualify_chance", "QUALIFY" }, + { "overlay_qualify_gold", “Oro” }, + { "overlay_longest", “Más lento” }, + { "overlay_fastest", “Mejor” }, + { "overlay_personal_best", "PB" }, + { "overlay_high_score", "HIGH SCORE" }, + { "overlay_low_score", "LOW SCORE" }, + { "overlay_duration", "TIME" }, + { "overlay_players", “Jugadores” }, + { "overlay_current_time", "CURRENT TIME" }, + { "overlay_round_prefix", "ROUND " }, + { "overlay_round_suffix", ""}, + { "overlay_round_abbreviation_prefix", "R " }, + { "overlay_round_abbreviation_suffix", ""}, + { "overlay_wins", “Ganadas” }, + { "overlay_win", ""}, + { "overlay_finish", “Finalizado” }, + { "overlay_queued_players", "QUEUED PLAYERS" }, + { "overlay_ping", "PING" }, + { "overlay_best", ""}, + { "overlay_inning", ""}, + { "overlay_position_prefix", ""}, + { "overlay_position_suffix", ""}, + { "overlay_position_win", "WIN" }, + { "overlay_position_survived", "SURVIVED" }, + { "overlay_position_qualified", "PASS" }, + { "overlay_position_eliminated", “Eliminado” }, + { "overlay_picPositionLock_tooltip", "Pin the overlay to its current position" }, + { "overlay_picPositionNE_tooltip", "Pin the overlay to the top-left corner of the screen" }, + { "overlay_picPositionNW_tooltip", "Pin the overlay to the top-right corner of the screen" }, + { "overlay_picPositionSE_tooltip", "Pin the overlay to the bottom-left corner of the screen" }, + { "overlay_picPositionSW_tooltip", "Pin the overlay to the bottom-right corner of the screen" }, + { "profile_title", “Opciones de perfil” }, + { "profile_list", "Profile List" }, + { "profile_add_tab", "Add" }, + { "profile_add_tab_label1", "Profile Name" }, + { "profile_add_tab_button", "Add" }, + { "profile_rename_tab", "Rename" }, + { "profile_rename_tab_label1", “Perfil” }, + { "profile_rename_tab_label2", "New Name" }, + { "profile_rename_tab_button", "Rename" }, + { "profile_move_tab", "Move" }, + { "profile_move_tab_label1", "From" }, + { "profile_move_tab_label2", "To" }, + { "profile_move_tab_button", "Move" }, + { "profile_remove_tab", "Remove" }, + { "profile_remove_tab_label1", “Perfil” }, + { "profile_remove_tab_label2", "* You can only delete profile with no data" }, + { "profile_remove_tab_button", "Remove" }, + { "profile_rounds_suffix", “Rondas” }, + { "profile_apply_change_button", "Save" }, + { "profile_undo_change_button", "Cancel" }, + { "profile_add_select_title", "Add Shows" }, + { "profile_add_select_question_prefix", "There are previous shows not in your current stats." }, + { "profile_add_select_question_suffix", "Select a profile below to add your data." }, + { "profile_add_select_question_suffix_linked_profiles", "Data will be added in linked profiles." }, + { "profile_add_select_use_linked_profiles", "Use linked profiles" }, + { "profile_move_select_title", “Mover datos de shows” }, + { "profile_move_select_description_prefix", "Select a profile below to move your show data." }, + { "profile_move_select_description_suffix", "Number of selected show data" }, + { "profile_move_select_question_prefix", "Would you like to move the" }, + { "profile_move_select_question_infix", "selected shows to the" }, + { "profile_move_select_question_suffix", "profile?" }, + { "profile_move_select_button", "Move" }, + { "custom_range_range", "Custom period" }, + { "custom_range_templates", "Templates" }, + { "custom_range_legacy_season", “Sesión” }, + { "custom_range_ffa_season", “Sesión” }, + { "custom_range_season", “Sesión” }, + { "custom_range_legacy", "Legacy" }, + { "custom_range_ffa", "FFA" }, + { "custom_range_not_set", "Not Set" }, + { "custom_range_filter", "Filter" }, + } + }, + { Language.Korean, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "author", "신모씨_" }, + { "main_by", "by" }, + { "main_on_twitch", "on Twitch" }, + { "main_multilingual", "다국어" }, + { "main_settings", "설정" }, + { "main_fall_guys_stats", "폴 가이즈 스탯츠" }, + { "main_filters", "필터링" }, + { "main_stats", "통계 범위" }, + { "main_all", "전체" }, + { "main_season", "시즌" }, + { "main_week", "주간" }, + { "main_day", "일일" }, + { "main_session", "세션" }, + { "main_custom_range", "사용자 지정" }, + { "main_party_type", "파티 유형" }, + { "main_party", "파티" }, + { "main_solo", "솔로" }, + { "main_profile", "프로필" }, + { "main_profile_setting", "프로필 설정" }, + { "main_show_overlay", "통계 보이기" }, + { "main_hide_overlay", "통계 숨기기" }, + { "main_update", "업데이트" }, + { "main_manual_update_version", "수동 업데이트 버전" }, + { "main_help", "도움말" }, + { "main_launch_fall_guys", "폴 가이즈 실행" }, + { "main_useful_things", "유용한 것들!" }, + { "main_fall_guys_wiki", "폴 가이즈 위키" }, + { "main_fall_guys_reddit", "폴 가이즈 레딧" }, + { "main_fallalytics", "폴라리틱스" }, + { "main_fallalytics_main", "메인 페이지" }, + { "main_fallalytics_find_player", "플레이어 검색" }, + { "main_fallalytics_overall_rankings", "종합 순위" }, + { "main_fallalytics_level_rankings", "레벨 순위" }, + { "main_fallalytics_weekly_crown_league", "주간 크라운 리그" }, + { "main_fallalytics_round_statistics", "레벨 통계" }, + { "main_fallalytics_show_statistics", "쇼 통계" }, + { "main_fallalytics_news", "뉴스" }, + { "main_roll_off_club", "롤 오프 클럽" }, + { "main_lost_temple_analyzer", "버려진 사원 분석기" }, + { "main_fall_guys_db", "폴 가이즈 DB" }, + { "main_fall_guys_db_main", "메인 페이지" }, + { "main_fall_guys_db_shows", "쇼 목록" }, + { "main_fall_guys_db_discovery", "디스커버" }, + { "main_fall_guys_db_shop", "아이템 상점" }, + { "main_fall_guys_db_newsfeeds", "뉴스피드" }, + { "main_fall_guys_db_strings", "문자열 검색" }, + { "main_fall_guys_db_cosmetics", "커스터마이징" }, + { "main_fall_guys_db_crown_ranks", "크라운 랭크" }, + { "main_fall_guys_db_live_events", "라이브 이벤트" }, + { "main_fall_guys_db_daily_shop", "일일 아이템" }, + { "main_fall_guys_db_creative", "폴크리 조회" }, + { "main_fall_guys_db_faq", "자주 묻는 질문" }, + { "main_fall_guys_official", "폴 가이즈 공식" }, + { "main_fall_guys_wiki_tooltip", "플레이어가 작성하고 유지 관리하는 폴 가이즈를 위한 최고의 위키 가이드입니다" }, + { "main_fall_guys_reddit_tooltip", "커뮤니티가 운영하고 개발자가 지원하는 폴 가이즈 전용 하위 레딧입니다" }, + { "main_fallalytics_tooltip", "폴라리틱스는 폴 가이즈의 라운드 분포에 대해 수집된 데이터를 탐색하는 도구입니다" }, + { "main_roll_off_club_tooltip", "롤 오프의 프로가 되어보세요!" }, + { "main_lost_temple_analyzer_tooltip", "버려진 사원을 시각적으로 완벽하게 분석해보세요" }, + { "main_todays_show_tooltip", "현재 이용 가능한 쇼를 확인하세요" }, + { "main_fall_guys_official_tooltip", "폴 가이즈는 2020년 공개된 미디어토닉이 개발하고, 디볼버 디지털이 배급한 비디오 게임입니다" }, + { "main_overlay_show_tooltip", " (Ctrl + O) 키를 눌러 통계창 보이기" }, + { "main_overlay_hide_tooltip", " (Ctrl + O) 키를 눌러 통계창 숨기기" }, + { "main_overlay_shortcut_tooltip", " (Ctrl + M) 키를 누르면 통계창을 맨 위에 두는 옵션이 토글 됩니다.\n (Ctrl + T) 키를 누르면 통계창의 배경색이 전환됩니다.\n (Ctrl + F) 키를 누르면 통계창 좌우 반전 옵션이 토글 됩니다.\n (Ctrl + C) 키를 누르면 플랫폼별 사용자 수가 표시됩니다.\n (Ctrl + R) 키를 누르면 라운드 이름에 해당 라운드 유형에 대한 색상 배지 옵션이 토글 됩니다.\n (Ctrl + Shift + ↑ 또는 ↓) 키를 누르면 통계창의 투명도가 조절됩니다.\n (Ctrl + Shift + Z) 키를 누르면 연동된 프로필로 자동 변경 옵션이 토글 됩니다.\n (Ctrl + Shift + X) 키를 누르면 통계창의 크기가 재설정됩니다.\n (Ctrl + Shift + C) 키를 누르면 통계창의 위치가 재설정됩니다." }, + { "main_update_prefix_tooltip", " 폴 가이즈 스탯츠가 지속적으로 업데이트되기를 원하신다면, " }, + { "main_update_suffix_tooltip", "GitHub 저장소에 방문하셔서 별을 눌러주세요!" }, + { "main_you_can_update_new_version_prefix_tooltip", " 새로운 버전 ⟦ " }, + { "main_you_can_update_new_version_suffix_tooltip", " ⟧ 으로 업데이트할 수 있어요! " }, + { "main_exit_program", "종료" }, + { "main_plays", "플레이" }, + { "main_shows", "쇼" }, + { "main_inning", "회" }, + { "main_rounds", "라운드" }, + { "main_round", "라운드" }, + { "main_wins", "우승" }, + { "main_win", "승" }, + { "main_finals", "결승전" }, + { "main_kudos", "쿠도스" }, + { "main_hour", "시간 " }, + { "main_min", "분 " }, + { "main_sec", "초" }, + { "main_round_name", "라운드 이름" }, + { "main_played", "플레이" }, + { "main_qualified", "완주" }, + { "main_gold", "금메달" }, + { "main_silver", "은메달" }, + { "main_bronze", "동메달" }, + { "main_fastest", "최단 기록" }, + { "main_longest", "최장 기록" }, + { "main_ave_finish", "평균 기록" }, + { "main_hoopsie_legends", "후프의 전설" }, + { "main_hoopsie_heroes", "후프의 영웅" }, + { "main_profile_solo", "솔로" }, + { "main_profile_ranked_solo", "랭크 솔로" }, + { "main_profile_duo", "듀오" }, + { "main_profile_ranked_duo", "랭크 듀오" }, + { "main_profile_trio", "트리오" }, + { "main_profile_ranked_trio", "랭크 트리오" }, + { "main_profile_squad", "스쿼드" }, + { "main_profile_ranked_squad", "랭크 스쿼드" }, + { "main_profile_custom", "커스텀" }, + { "main_profile_creative", "폴크리" }, + { "main_custom_and_casual_shows", "커스텀/탐험" }, + { "main_export_csv", "CSV 파일로 내보내기" }, + { "main_export_html", "클립보드로 내보내기 (HTML)" }, + { "main_export_bbcode", "클립보드로 내보내기 (BBCode)" }, + { "main_export_markdown", "클립보드로 내보내기 (MarkDown)" }, + { "main_delete_shows", "삭제" }, + { "main_move_shows", "쇼 데이터 이동" }, + { "main_delete_finish_time", "\"도착\" 시간 삭제" }, + { "main_update_creative_map_infos", "정보 업데이트" }, + { "main_update_program", "폴 가이즈 스탯츠 업데이트" }, + { "main_updating_program", "다운로드 중..." }, + { "main_update_complete", "업데이트 완료" }, + + { "level_detail_medal", "메달" }, + { "level_detail_is_final", "결승" }, + { "level_detail_show_id", "쇼 번호" }, + { "level_detail_show_name_id", "쇼 이름" }, + { "level_detail_round", "라운드" }, + { "level_detail_round_suffix", " 수" }, + { "level_detail_name", "라운드 이름" }, + { "level_detail_players", "플레이어" }, + { "level_detail_playersPs4", "PS4" }, + { "level_detail_playersPs4_desc", "Play Station 4" }, + { "level_detail_playersPs5", "PS5" }, + { "level_detail_playersPs5_desc", "Play Station 5" }, + { "level_detail_playersXb1", "Xbox One" }, + { "level_detail_playersXb1_desc", "Xbox One" }, + { "level_detail_playersXsx", "Xbox Series X" }, + { "level_detail_playersXsx_desc", "Xbox Series X" }, + { "level_detail_playersSw", "Switch" }, + { "level_detail_playersSw_desc", "닌텐도 스위치" }, + { "level_detail_playersPc", "PC" }, + { "level_detail_playersPc_desc", "컴퓨터" }, + { "level_detail_playersAndroid", "Android" }, + { "level_detail_playersAndroid_desc", "안드로이드" }, + { "level_detail_playersIos", "iOS" }, + { "level_detail_playersIos_desc", "iOS" }, + { "level_detail_playersBots", "Bots" }, + { "level_detail_playersBots_desc", "봇" }, + { "level_detail_start", "날짜" }, + { "level_detail_end", "소요시간" }, + { "level_detail_finish", "도착" }, + { "level_detail_position", "순위" }, + { "level_detail_score", "점수" }, + { "level_detail_kudos", "쿠도스" }, + { "level_detail_gold", "금" }, + { "level_detail_silver", "은" }, + { "level_detail_bronze", "동" }, + { "level_detail_pink", "핑크" }, + { "level_detail_eliminated", "탈락" }, + { "level_detail_round_summary", "라운드 요약 목록" }, + { "level_detail_show_stats", "쇼 통계 목록" }, + { "level_detail_round_stats", "라운드 통계 목록" }, + { "level_detail_final_stats", "결승전 통계 목록" }, + { "level_detail_level_stats", "라운드 통계 목록" }, + { "level_detail_wins_per_day", "일일 승리 통계 그래프" }, + { "level_detail_stats_by_round", "라운드별 통계 그래프" }, + { "level_detail_success_reaching_finals", "결승 진출 성공" }, + { "level_detail_failure_reaching_finals", "결승 진출 실패" }, + { "level_detail_shows", "쇼" }, + { "level_detail_finals", "결승전" }, + { "level_detail_wins", "우승" }, + { "level_detail_losses", "패배" }, + { "level_detail_date", "날짜" }, + { "level_detail_finals_stats", "결승전 통계" }, + { "level_detail_tooltiptext_prefix", ""}, + { "level_detail_tooltiptext_suffix", "의 레벨 통계를 보려면 클릭하세요" }, + { "level_date_format", "yyyy년 M월 d일 (ddd)" }, + { "level_grid_date_format", "yyyy년 M월 d일 HH:mm (ddd)" }, + { "level_detail_no_data", "데이터가 존재하지 않습니다." }, + { "level_detail_no_data_caption", "데이터 없음" }, + { "level_detail_share_code_copied", "공유 코드가 복사되었습니다 !" }, + { "level_detail_share_code_copied_tooltip", "더블클릭해서 공유 코드를 복사하세요." }, + { "level_detail_creative_author", "제작자" }, + { "level_detail_creative_likes", "좋아요" }, + { "level_detail_creative_dislikes", "싫어요" }, + { "level_detail_creative_share_code", "공유 코드" }, + { "level_detail_creative_version", "버전" }, + { "level_detail_creative_max_players", "최대 인원" }, + { "level_detail_creative_time_limit", "시간 제한" }, + { "level_detail_creative_platform", "제작 플랫폼" }, + { "level_detail_creative_last_modified", "마지막 수정" }, + { "level_detail_creative_play_count", "통과 횟수" }, + { "level_detail_creative_inning", "회" }, + { "level_detail_creative_player_suffix", "명" }, + { "level_detail_online_platform_eos", "에픽게임즈" }, + { "level_detail_online_platform_steam", "스팀" }, + { "level_detail_online_platform_psn", "플레이스테이션 네트워크" }, + { "level_detail_online_platform_xbl", "엑스박스 네트워크" }, + { "level_detail_online_platform_nso", "닌텐도 스위치 온라인" }, + { "level_detail_race", "레이스" }, + { "level_detail_hunt", "점수" }, + { "level_detail_survival", "생존" }, + { "level_detail_logic", "로직" }, + { "level_detail_team", "팀" }, + { "level_detail_invisibeans", "투명젤리빈" }, + { "level_detail_final", "최종" }, + + { "level_round_played_prefix", ""}, + { "level_round_played_suffix", "플레이함" }, + { "level_win_suffix", "승" }, + { "level_wins_suffix", "승" }, + { "level_loss_suffix", "패" }, + { "level_losses_suffix", "패" }, + { "level_no_statistical_data", " 통계 데이터 없음" }, + + { "leaderboard_menu_title", "리더보드" }, + { "leaderboard_report_cheater", "부정행위자 신고" }, + { "leaderboard_choose_a_round", "라운드를 선택하세요" }, + { "leaderboard_overall_rank", "🏆 종합 순위" }, + { "leaderboard_search_players", "🔎 플레이어 검색" }, + { "leaderboard_search_players_WaterMark", "🔎 내 멋진 닉네임" }, + { "leaderboard_weekly_crown_league", "👑 주간 크라운 리그" }, + { "leaderboard_total_players_prefix", "총 " }, + { "leaderboard_total_players_suffix", " 명의 플레이어" }, + { "leaderboard_see_full_rankings_in_fallalytics", "폴라리틱스에서 전체 순위 보기" }, + { "leaderboard_grid_header_rank", "#" }, + { "leaderboard_grid_header_show", "쇼" }, + { "leaderboard_grid_header_player", "플레이어" }, + { "leaderboard_grid_header_record", "기록" }, + { "leaderboard_grid_header_finish", "날짜" }, + { "leaderboard_grid_header_score", "점수" }, + { "leaderboard_grid_header_period", "기간" }, + { "leaderboard_grid_header_first_places", "WRs(*)" }, + { "leaderboard_grid_anonymous", "익명" }, + { "leaderboard_grid_just_before", "방금" }, + { "leaderboard_grid_today", "오늘" }, + { "leaderboard_grid_yesterday", "어제" }, + { "leaderboard_grid_the_day_before_yesterday", "그저께" }, + { "leaderboard_grid_n_days_ago_prefix", ""}, + { "leaderboard_grid_n_days_ago_suffix", "일 전" }, + { "leaderboard_grid_n_weeks_ago_prefix", ""}, + { "leaderboard_grid_n_weeks_ago_suffix", "주 전" }, + { "leaderboard_grid_n_months_ago_prefix", ""}, + { "leaderboard_grid_n_months_ago_suffix", "개월 전" }, + { "leaderboard_grid_n_years_ago_prefix", ""}, + { "leaderboard_grid_n_years_ago_suffix", "년 전" }, + { "leaderboard_grid_time_prefix", "분" }, + { "leaderboard_grid_time_suffix", "초" }, + { "leaderboard_grid_header_crowns", "크라운" }, + { "leaderboard_grid_header_shards", "조각" }, + { "leaderboard_grid_header_country", "국가" }, + + { "profile_icon_enable_tooltip", "연동된 프로필로 자동 전환하지 않으려면 클릭하세요" }, + { "profile_icon_disable_tooltip", "연동된 프로필로 자동 전환하려면 클릭하세요" }, + { "profile_change_tooltip", "오른쪽 클릭 또는 왼쪽 클릭으로 현재 프로필을 변경하세요" }, + { "shows_detail_tooltip", "쇼 통계를 보려면 클릭하세요" }, + { "rounds_detail_tooltip", "라운드 통계를 보려면 클릭하세요" }, + { "wins_detail_tooltip", "우승 통계를 보려면 클릭하세요" }, + { "finals_detail_tooltip", "결승전 통계를 보려면 클릭하세요" }, + { "stats_detail_tooltip", "라운드별 통계 그래프를 보려면 클릭하세요" }, + + { "message_already_running_caption", "이미 실행 중" }, + { "message_fall_guys_already_running", "폴 가이즈 클라이언트가 이미 실행 중입니다." }, + { "message_tracker_already_running", "스탯츠가 이미 실행 중입니다." }, + { "message_register_shortcut_caption", "바로가기 파일 경로 설정 필요" }, + { "message_register_shortcut", "폴 가이즈 게임의 바로가기 파일 경로를 설정해 주세요." }, + { "message_register_exe_caption", "실행 파일 경로 설정 필요" }, + { "message_register_exe", "폴 가이즈 게임의 실행 파일 경로를 설정해 주세요." }, + { "message_wrong_selected_file_caption", "잘못된 파일 선택" }, + { "message_wrong_selected_file_epicgames", "폴 가이즈 클라이언트의 바로가기 파일을 선택해 주세요." }, + { "message_wrong_selected_file_steam", "설치 폴더에서 \"FallGuys_client_game.exe\"를 선택해 주세요." }, + { "message_not_installed_steam_caption", "설치되지 않음" }, + { "message_not_installed_steam", "스팀 버전 폴 가이즈가 설치되어 있지 않습니다." }, + { "message_not_installed_epicGames_caption", "설치되지 않음" }, + { "message_not_installed_epicGames", "에픽 게임즈 버전 폴 가이즈가 설치되어 있지 않습니다." }, + { "message_save_csv_caption", "CSV 파일로 내보내기" }, + { "message_save_csv", "CSV 파일로 저장했습니다." }, + { "message_save_html_caption", "HTML 형식으로 내보내기" }, + { "message_save_html", "HTML 형식으로 클립보드에 저장했습니다." }, + { "message_save_bbcode_caption", "BBCode 형식으로 내보내기" }, + { "message_save_bbcode", "BBCode 형식으로 클립보드에 저장했습니다." }, + { "message_save_markdown_caption", "MarkDown으로 내보내기" }, + { "message_save_markdown", "MarkDown 포맷으로 클립보드에 저장했습니다." }, + { "message_save_data_caption", "데이터 저장" }, + { "message_save_data_linked_profiles", "연동된 프로필에 데이터를 저장하시겠습니까?" }, + { "message_save_data_linked_profiles_info_prefix", "[참고] 연동되지 않은 쇼 데이터는" }, + { "message_save_data_linked_profiles_info_suffix", "프로필에 저장됩니다." }, + { "message_delete_show_caption", "쇼 삭제" }, + { "message_delete_show_prefix", "선택한" }, + { "message_delete_show_suffix", "개의 쇼를 삭제하시겠습니까?" }, + { "message_create_profile_caption", "프로필 생성" }, + { "message_create_profile_prefix", ""}, + { "message_create_profile_suffix", "로 프로필을 생성하시겠습니까?" }, + { "message_same_profile_name_exists", "등록된 프로필 중에 동일한 이름이 존재합니다." }, + { "message_rename_profile_caption", "프로필명 변경" }, + { "message_rename_profile_prefix", ""}, + { "message_rename_profile_infix", "에서" }, + { "message_rename_profile_suffix", "로 프로필명을 변경하시겠습니까?" }, + { "message_move_profile_caption", "프로필 데이터 옮기기" }, + { "message_move_profile_prefix", ""}, + { "message_move_profile_infix", "에서" }, + { "message_move_profile_suffix", "로 프로필 데이터를 옮기시겠습니까?" }, + { "message_delete_profile_caption", "프로필 삭제" }, + { "message_delete_profile_prefix", "지금까지 플레이하셨던" }, + { "message_delete_profile_infix", "프로필의 모든 데이터가 삭제됩니다." }, + { "message_delete_profile_suffix", "정말 삭제하시겠습니까?" }, + { "message_save_profile_caption", "프로필 저장" }, + { "message_save_profile_prefix", "현재 데이터를" }, + { "message_save_profile_suffix", "프로필에 저장하시겠습니까?" }, + { "message_execution_caption", "Fall Guys 실행" }, + { "message_execution_question", "Fall Guys 클라이언트를 실행하시겠습니까?" }, + { "message_update_question_caption", "프로그램 업데이트" }, + { "message_update_question_prefix", "폴 가이즈 스탯츠의 새로운 버전" }, + { "message_update_question_suffix", "이 릴리즈되었습니다. 지금 업데이트하시겠습니까?" }, + { "message_update_latest_version", "현재 최신 버전입니다." }, + { "message_update_not_determine_version", "버전을 확인할 수 없습니다." }, + { "message_save_csv_file_caption", "CSV 파일로 저장" }, + { "message_update_error_caption", "업데이트 오류" }, + { "message_update_error", "업데이트를 확인할 수 없습니다." }, + { "message_program_error_caption", "프로그램 오류" }, + { "message_delete_finish_time_caption", "\"도착\" 시간 삭제" }, + { "message_delete_finish_time", "정말 삭제하시겠습니까?" }, + { "message_update_creative_map_caption", "폴크리 맵 정보 업데이트" }, + { "message_update_creative_map_with_sharecode_prefix", "공유 코드 \"" }, + { "message_update_creative_map_with_sharecode_suffix", "\"로 맵 정보를 업데이트하시겠습니까?" }, + { "message_update_creative_map_with_title_prefix", "\"" }, + { "message_update_creative_map_with_title_suffix", "\"의 맵 정보를 업데이트 하시겠습니까?" }, + { "message_update_creative_map_error", "폴크리 맵을 조회하는 동안 오류가 발생했습니다." }, + { "message_new_personal_best_caption", "⏱️ 개인 최고 기록 경신" }, + { "message_new_personal_best_prefix", ""}, + { "message_new_personal_best_suffix", " 에서 새로운 개인 최고 기록을 세웠습니다." }, + { "message_new_personal_best_timediff_by_minute_prefix", ""}, + { "message_new_personal_best_timediff_by_minute_infix", "분" }, + { "message_new_personal_best_timediff_by_minute_suffix", "초 단축!" }, + { "message_new_personal_best_timediff_by_second", "초 단축!" }, + { "message_test_notifications_caption", "🔔 알림 테스트" }, + { "message_connected_to_server_caption", "🔔 서버 연결 알림" }, + { "message_connected_to_server_prefix", ""}, + { "message_connected_to_server_suffix", " 서버에 연결되었습니다." }, + { "message_check_internet_connection_caption", "네트워크 오류" }, + { "message_check_internet_connection", "인터넷 연결상태를 확인해 주세요." }, + { "message_changelog_caption", "변경 로그" }, + { "message_changelog_bugfix_and_program_optimization", "버그 수정 및 프로그램 최적화" }, + { "message_changelog_updated_new_show_and_round_names", "새로운 쇼 및 라운드 이름 업데이트" }, + { "message_changelog_overlay_display_improvements", "통계창 표시 개선" }, + { "message_changelog_added_and_improved_win_per_day_graph_feature", "일일 승리 그래프 기능 추가 및 향상" }, + { "message_changelog_released_the_fallalytics_speedrun_leaderboard", "폴라리틱스 스피드런 순위표 출시" }, + { "message_changelog_weekly_crown_league_is_now_open_on_fallalytics", "폴라리틱스 주간 크라운 리그 출시" }, + { "message_changelog_banning_users_using_hacking_programs", "해킹 프로그램 사용자 차단" }, + { "message_changelog_add_proxy_settings", "프록시 설정 추가" }, + + { "numeric_suffix", "개" }, + { "message_question_mark", ""}, + { "message_full_stop", ""}, + { "message_exclamation_mark", ""}, + { "message_comma", ""}, + + { "settings_title", "설정" }, + { "settings_program", "프로그램" }, + { "settings_display", "표시" }, + { "settings_launch_fallguys", "폴 가이즈 실행" }, + { "settings_fallalytics", "폴라리틱스" }, + { "settings_proxy_settings", "프록시 설정" }, + { "settings_use_a_proxy_server", "프록시 서버 사용" }, + { "settings_proxy_address", "주소" }, + { "settings_proxy_port", "포트" }, + { "settings_enable_proxy_authentication", "프록시 인증 사용" }, + { "settings_proxy_user_name", "사용자 이름" }, + { "settings_proxy_password", "패스워드" }, + { "settings_test_proxy_connection", "프록시 연결 테스트" }, + { "settings_enter_fallalytics_api_key", "(선택 사항) 폴라리틱스 API 키 입력" }, + { "settings_sends_info_about_rounds_played_to_fallalytics", "플레이한 라운드 정보와 레이스 라운드의 개인 최고 기록을 폴라리틱스로 전송" }, + { "settings_join_a_weekly_crown_league", "주간 크라운 리그에 참여하기" }, + { "settings_sends_anonymously_to_fallalytics", "👻 익명으로 전송" }, + { "settings_fallalytics_desc", "ℹ️ 폴라리틱스는 폴 가이즈의 라운드 분포에 대해 수집된 데이터를 탐색하는 도구입니다." }, + { "settings_visit_fallalytics", "Fallalytics 방문하기" }, + { "settings_about", "이 앱 정보" }, + { "settings_log_path", "📁 로그파일 경로" }, + { "settings_log_path_description", "🏷️ 스탯츠가 로그파일 경로를 찾지 못할 경우, 이 곳에 폴 가이즈 클라이언트의 로그파일 경로를 직접 입력해주세요." }, + { "settings_stats", "스탯츠" }, + { "settings_theme", "테마" }, + { "settings_theme_light", "☀️ 라이트" }, + { "settings_theme_dark", "🌑 다크" }, + { "settings_preferred_ip_geolocation_service", "IP 위치정보 서비스" }, + { "settings_auto_selected", "자동" }, + { "settings_ipinfo_token", "토큰" }, + { "settings_enter_ipinfo_token", "(선택 사항)" }, + { "settings_link_to_get_ipinfo_token", "IPinfo 계정을 생성하고 토큰 받기" }, + { "settings_previous_win", "이전 우승 횟수" }, + { "settings_before_using_tracker", "(트래커를 사용하기 전)" }, + { "settings_auto_update_program", "🔄️ 스탯츠를 실행할 때 새로운 업데이트 확인하기" }, + { "settings_rename_hoopsie_legends_to_hoopsie_heroes", "후프의 전설을 후프의 영웅으로 표시하기" }, + { "settings_overlay", "통계표시 설정" }, + { "settings_hide_wins_info", "우승 정보 숨기기" }, + { "settings_hide_round_info", "라운드 정보 숨기기" }, + { "settings_hide_time_info", "시간 정보 숨기기" }, + { "settings_hide_percentages", "백분율(%) 정보 숨기기" }, + { "settings_show_tab_for_currnet_filter__profile", "필터링 / 프로필 표시하기" }, + { "settings_wins__final_filter", "우승 / 결승 진출 필터" }, + { "settings_qualify__gold_filter", "완주 / 금메달 필터" }, + { "settings_fastest__longest_filter", "최단 기록 / 최장 기록 필터" }, + { "settings_all_time_stats", "전체 통계" }, + { "settings_stats_and_party_filter", "통계 범위 및 파티 유형" }, + { "settings_season_stats", "시즌 통계" }, + { "settings_week_stats", "주간 통계" }, + { "settings_day_stats", "일일 통계" }, + { "settings_session_stats", "세션 통계" }, + { "settings_cycle_time", "순환 주기" }, + { "settings_sec", "초" }, + { "settings_background_image", "통계창 배경 이미지" }, + { "settings_background", "통계창 배경 색상" }, + { "settings_background_opacity", "통계창 배경 불투명도" }, + { "settings_lock_button_location", "잠금 버튼 위치" }, + { "settings_lock_button_location_top", "상단" }, + { "settings_lock_button_location_bottom", "하단" }, + { "settings_transparent", "투명하게" }, + { "settings_magenta", "마젠타" }, + { "settings_red", "빨강색" }, + { "settings_green", "초록색" }, + { "settings_blue", "파랑색" }, + { "settings_black", "검정색" }, + { "settings_white", "흰색" }, + { "settings_cycle_qualify__gold", "완주 / 금메달 순환 표시" }, + { "settings_qualify_only", "완주만 표시" }, + { "settings_gold_only", "금메달만 표시" }, + { "settings_cycle_best__lowest", "최고 기록 / 최저 기록 순환 표시" }, + { "settings_personal_best_only", "최고 기록만 표시" }, + { "settings_personal_lowest_only", "최저 기록만 표시" }, + { "settings_cycle_win__final_streak", "연승 / 연속결승 진출 순환 표시" }, + { "settings_win_streak_only", "연승만 표시" }, + { "settings_final_streak_only", "연속결승 진출만 표시" }, + { "settings_cycle_players__ping", "인원 수 / Ping 순환 표시" }, + { "settings_players_only", "인원 수만 표시" }, + { "settings_ping_only", "Ping만 표시" }, + { "settings_flip_display_horizontally", "통계창 좌우 반전 (Ctrl + F)" }, + { "settings_always_show_on_top", "📌 통계창을 항상 맨 위에 두기 (Ctrl + M)" }, + { "settings_display_players_based_on_platform", "🚹 플랫폼별 인원 표시 (Ctrl + C)" }, + { "settings_color_round_name_based_on_round_type", "🏳️‍🌈 라운드 유형별 색상 배지 표시 (Ctrl + R)" }, + { "settings_auto_change_profile", "🔃 연동된 프로필로 자동 변경 (Ctrl + Shift + Z)" }, + { "settings_shade_the_flag_image", "🏁 서버의 국기 이미지를 음영 처리해서 표시" }, + { "settings_diaplay_current_time", "🕓 대기하는 동안 현재 시간을 표시" }, + { "settings_diaplay_game_played_info", "ℹ️ 라운드가 종료되면 게임 플레이 정보 표시 (순위, 생존수, 승리, 탈락 등)" }, + { "settings_count_players_during_the_level", "게임중 통과하거나 탈락한 플레이어 카운트" }, + { "settings_custom_overlay_font", "🅰️ 사용자 정의 글꼴" }, + { "settings_select_font", "글꼴 선택" }, + { "settings_reset_font", "글꼴 초기화" }, + { "settings_font_example", "글꼴 예시" }, + { "settings_round_example", "3 라운드 : 바닥 떨어져유" }, + { "settings_sorting_options", "통계표 정렬 옵션" }, + { "settings_ignore_level_type_when_sorting", "📶 라운드 유형에 상관 없이 정렬" }, + { "settings_grouping_creative_round_levels", "🛠️ 폴크리 라운드를 하나의 카테고리로 묶기" }, + { "settings_record_escape_during_a_game", "👻 게임 도중 탈주하면 패배로 기록하기" }, + { "settings_game_options", "실행 옵션" }, + { "settings_game_options_platform", "플랫폼" }, + { "settings_fall_guys_exe_location", "↗️ 게임 실행 파일 경로" }, + { "settings_fall_guys_exe_openfile_title", "게임 실행 파일 선택" }, + { "settings_fall_guys_exe_openfile_name", "FallGuys_client_game.exe" }, + { "settings_fall_guys_exe_openfile_filter", "EXE Files (*.exe)|*.exe" }, + { "settings_fall_guys_shortcut_location", "↗️ 게임 바로가기 파일 경로" }, + { "settings_fall_guys_shortcut_openfile_title", "게임 바로가기 파일 선택" }, + { "settings_fall_guys_shortcut_openfile_name", ""}, + { "settings_fall_guys_shortcut_openfile_filter", "URL Files (*.url)|*.url" }, + { "settings_browse", "찾아보기" }, + { "settings_launch_fall_guys_on_tracker_launch", "스탯츠가 실행되면 폴 가이즈 클라이언트도 함께 실행" }, + { "settings_language", "표시 언어" }, + { "settings_new_update_prefix", "새로운 업데이트" }, + { "settings_new_update_suffix", "사용 가능" }, + { "settings_save", "저장" }, + { "settings_cancel", "취소" }, + { "settings_select_language_title", "언어 선택" }, + { "settings_auto_generate_profiles", "프로필 자동 생성" }, + { "settings_select_language_button", "확인" }, + { "settings_system_tray_icon", "📍 작업 표시줄 아이콘 사용" }, + { "settings_notify_personal_best", "🔔 레이스 라운드에서 개인 최고 기록을 경신하면 팝업 알림" }, + { "settings_notify_server_connected", "🔔 서버가 연결되면 서버가 위치한 나라의 이름을 팝업 알림" }, + { "settings_mute_notification_sounds", "🔇 알림 소리 음소거" }, + { "settings_notification_sounds_01", "🔊 01" }, + { "settings_notification_sounds_02", "🔊 02" }, + { "settings_notification_sounds_03", "🔊 03" }, + { "settings_notification_sounds_04", "🔊 04" }, + { "settings_notification_window_bottom_left", "왼쪽 하단" }, + { "settings_notification_window_bottom_right", "오른쪽 하단" }, + { "settings_notification_window_top_left", "왼쪽 상단" }, + { "settings_notification_window_top_right", "오른쪽 상단" }, + { "settings_prevent_overlay_mouse_clicks", "🖱️ 오버레이 마우스 클릭 방지" }, + { "settings_github", "깃허브 (ShootMe/FallGuysStats)" }, + { "settings_issue_traker", "이슈 추적" }, + { "settings_translation", "번역" }, + { "settings_font_need_to_be_installed_caption", "폰트 파일 설치 필요함" }, + { "settings_font_need_to_be_installed_message", "폴 가이즈 스탯츠 폴더에 있는 폰트 파일을 설치해 주세요." }, + { "settings_checking_for_updates", "업데이트 확인 중..." }, + + { "overlay_streak", "연승" }, + { "overlay_streak_suffix", "연승" }, + { "overlay_streak_finals", "연속결승" }, + { "overlay_finals", "결승전" }, + { "overlay_qualify_chance", "완주" }, + { "overlay_qualify_gold", "금메달" }, + { "overlay_longest", "최장 기록" }, + { "overlay_fastest", "최단 기록" }, + { "overlay_personal_best", "개인 최고 기록" }, + { "overlay_high_score", "최고 점수" }, + { "overlay_low_score", "최저 점수" }, + { "overlay_duration", "시간" }, + { "overlay_players", "플레이어" }, + { "overlay_current_time", "현재 시간" }, + { "overlay_round_prefix", ""}, + { "overlay_round_suffix", " 라운드" }, + { "overlay_round_abbreviation_prefix", ""}, + { "overlay_round_abbreviation_suffix", " R" }, + { "overlay_wins", "우승" }, + { "overlay_win", "승" }, + { "overlay_finish", "기록" }, + { "overlay_queued_players", "대기 중인 인원" }, + { "overlay_ping", "Ping" }, + { "overlay_best", "최대 " }, + { "overlay_inning", "회" }, + { "overlay_position_prefix", ""}, + { "overlay_position_suffix", "등" }, + { "overlay_position_win", "우승" }, + { "overlay_position_survived", "명 생존" }, + { "overlay_position_qualified", "통과" }, + { "overlay_position_eliminated", "탈락" }, + { "overlay_picPositionLock_tooltip", "통계창을 현재 위치에 고정합니다" }, + { "overlay_picPositionNE_tooltip", "통계창을 화면 왼쪽 상단에 고정합니다" }, + { "overlay_picPositionNW_tooltip", "통계창을 화면 오른쪽 상단에 고정합니다" }, + { "overlay_picPositionSE_tooltip", "통계창을 화면 왼쪽 하단에 고정합니다" }, + { "overlay_picPositionSW_tooltip", "통계창을 화면 오른쪽 하단에 고정합니다" }, + + { "profile_title", "프로필 설정" }, + { "profile_list", "프로필 목록" }, + { "profile_add_tab", "등록" }, + { "profile_add_tab_label1", "프로필 명" }, + { "profile_add_tab_button", "등록" }, + { "profile_rename_tab", "수정" }, + { "profile_rename_tab_label1", "프로필" }, + { "profile_rename_tab_label2", "프로필 명" }, + { "profile_rename_tab_button", "수정" }, + { "profile_move_tab", "옮기기" }, + { "profile_move_tab_label1", "여기에서" }, + { "profile_move_tab_label2", "여기로" }, + { "profile_move_tab_button", "데이터 옮기기" }, + { "profile_remove_tab", "삭제" }, + { "profile_remove_tab_label1", "프로필" }, + { "profile_remove_tab_label2", "* 라운드 수가 0개인 프로필만 삭제할 수 있습니다." }, + { "profile_remove_tab_button", "삭제" }, + { "profile_rounds_suffix", "라운드" }, + { "profile_apply_change_button", "저장" }, + { "profile_undo_change_button", "취소" }, + { "profile_add_select_title", "쇼 추가" }, + { "profile_add_select_question_prefix", "현재 통계에 없는 이전 쇼의 데이터가 존재합니다." }, + { "profile_add_select_question_suffix", "아래 프로필을 선택해서 데이터를 추가하세요." }, + { "profile_add_select_question_suffix_linked_profiles", "연동된 프로필에 데이터가 자동으로 추가됩니다." }, + { "profile_add_select_use_linked_profiles", "연동된 프로필에 자동 추가" }, + { "profile_move_select_title", "쇼 데이터 이동" }, + { "profile_move_select_description_prefix", "아래 프로필을 선택해서 쇼 데이터를 이동하세요." }, + { "profile_move_select_description_suffix", "선택한 쇼 데이터 개수" }, + { "profile_move_select_question_prefix", "선택한" }, + { "profile_move_select_question_infix", "개의 쇼를" }, + { "profile_move_select_question_suffix", "프로필로 이동하시겠습니까?" }, + { "profile_move_select_button", "이동" }, + + { "custom_range_range", "커스텀 기간" }, + { "custom_range_templates", "템플릿" }, + { "custom_range_legacy_season", "구시즌" }, + { "custom_range_ffa_season", "신시즌" }, + { "custom_range_legacy", "레거시" }, + { "custom_range_ffa", "FFA" }, + { "custom_range_not_set", "설정 없음" }, + { "custom_range_filter", "필터링 적용" }, + } + }, + { Language.Japanese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "author", "Eunma" }, + { "main_by", "by" }, + { "main_on_twitch", "on Twitch" }, + { "main_multilingual", "多言語" }, + { "main_settings", "設定" }, + { "main_fall_guys_stats", "Fall Guys Stats" }, + { "main_filters", "フィルタ" }, + { "main_stats", "期間" }, + { "main_all", "すべて" }, + { "main_season", "シーズン" }, + { "main_week", "1週間" }, + { "main_day", "1日間" }, + { "main_session", "セッション" }, + { "main_custom_range", "カスタマイズ" }, + { "main_party_type", "パーティータイプ" }, + { "main_party", "パーティー" }, + { "main_solo", "ソロ" }, + { "main_profile", "プロファイル" }, + { "main_profile_setting", "プロファイル設定" }, + { "main_show_overlay", "オーバーレイを表示" }, + { "main_hide_overlay", "オーバーレイを隠す" }, + { "main_update", "更新" }, + { "main_manual_update_version", "手動更新版" }, + { "main_help", "ヘルプ" }, + { "main_launch_fall_guys", "Fall Guysを起動" }, + { "main_useful_things", "便利なもの!" }, + { "main_fall_guys_wiki", "Fall Guys Wiki" }, + { "main_fall_guys_reddit", "Fall Guys Reddit" }, + { "main_fallalytics", "Fallalytics" }, + { "main_fallalytics_main", "Main Page" }, + { "main_fallalytics_find_player", "Find Player" }, + { "main_fallalytics_overall_rankings", "Overall Ranking" }, + { "main_fallalytics_level_rankings", "Level Rakings" }, + { "main_fallalytics_weekly_crown_league", "Weekly Crown League" }, + { "main_fallalytics_round_statistics", "Round Statistics" }, + { "main_fallalytics_show_statistics", "Show Statistics" }, + { "main_fallalytics_news", "News" }, + { "main_roll_off_club", "Roll Off Club" }, + { "main_lost_temple_analyzer", "ロストテンプルアナライザ" }, + { "main_fall_guys_db", "FallGuys DB" }, + { "main_fall_guys_db_main", "Main Page" }, + { "main_fall_guys_db_shows", "Shows List" }, + { "main_fall_guys_db_discovery", "Discovery" }, + { "main_fall_guys_db_shop", "Item Shop" }, + { "main_fall_guys_db_newsfeeds", "Newsfeeds" }, + { "main_fall_guys_db_strings", "Localized Strings" }, + { "main_fall_guys_db_cosmetics", "All Cosmetics" }, + { "main_fall_guys_db_crown_ranks", "Crown Ranks" }, + { "main_fall_guys_db_live_events", "Live Events" }, + { "main_fall_guys_db_daily_shop", "Daily Items" }, + { "main_fall_guys_db_creative", "Creative Level Lookup" }, + { "main_fall_guys_db_faq", "FAQ" }, + { "main_fall_guys_official", "Fall Guys 公式" }, + { "main_fall_guys_wiki_tooltip", "プレイヤーによって作成および管理されている、Fall Guys の究極の Wiki ガイド。" }, + { "main_fall_guys_reddit_tooltip", "コミュニティが運営し、開発者がサポートする Fall Guys 専用のサブレディットです。" }, + { "main_fallalytics_tooltip", "Fallalytics は、Fall Guys のラウンド分布に関して収集されたデータを調査するツールです。" }, + { "main_roll_off_club_tooltip", "ロールオフのプロになろう!" }, + { "main_lost_temple_analyzer_tooltip", "ロストテンプルを視覚的に完璧に分析してみましょう。" }, + { "main_todays_show_tooltip", "現在プレイできるショーを確認できます。" }, + { "main_fall_guys_official_tooltip", "『Fall Guys』(フォールガイズ)は、2020年8月4日に発売されたコンピュータゲームソフト。" }, + { "main_overlay_show_tooltip", "(Ctrl + O) オーバーレイを表示" }, + { "main_overlay_hide_tooltip", "(Ctrl + O) オーバーレイを非表示" }, + { "main_overlay_shortcut_tooltip", "(Ctrl + M) 常に一番上に表示する\n(Ctrl + T) 背景色を変更する\n(Ctrl + F) 向きを変更する\n(Ctrl + C) プラットフォーム別の人数を表示する\n(Ctrl + R) ラウンドタイプ別に色を変更する\n(Ctrl + Shift + ↑ または ↓) オーバーレイの透明度を調整する\n(Ctrl + Shift + Z) リンク先のプロファイルに自動で変更する\n(Ctrl + Shift + X) オーバーレイのサイズがリセットする\n(Ctrl + Shift + C) オーバーレイの位置をリセットする" }, + { "main_update_prefix_tooltip", "FallGuysStatsが絶えず更新されるようにしたい場合は、" }, + { "main_update_suffix_tooltip", " GitHubリポジトリにアクセスして星を押してください! " }, + { "main_you_can_update_new_version_prefix_tooltip", " 新バージョン(" }, + { "main_you_can_update_new_version_suffix_tooltip", ")にアップデートできます! " }, + { "main_exit_program", "終了" }, + { "main_plays", "プレイ時間" }, + { "main_shows", "ショー" }, + { "main_inning", "回" }, + { "main_rounds", "ラウンド" }, + { "main_round", "ラウンド" }, + { "main_wins", "勝利" }, + { "main_win", "勝" }, + { "main_finals", "決勝戦" }, + { "main_kudos", "Kudos" }, + { "main_hour", "時間 " }, + { "main_min", "分 " }, + { "main_sec", "秒" }, + { "main_round_name", "ラウンド名" }, + { "main_played", "プレイ回数" }, + { "main_qualified", "完走" }, + { "main_gold", "金メダル" }, + { "main_silver", "銀メダル" }, + { "main_bronze", "銅メダル" }, + { "main_fastest", "最短記録" }, + { "main_longest", "最長記録" }, + { "main_ave_finish", "平均記録" }, + { "main_hoopsie_legends", "フープ・ループ・レジェンド" }, + { "main_hoopsie_heroes", "フープ・ループ・ヒーロー" }, + { "main_profile_solo", "ソロ" }, + { "main_profile_ranked_solo", "ランク戦ソロ" }, + { "main_profile_duo", "デュオ" }, + { "main_profile_ranked_duo", "ランク戦デュオ" }, + { "main_profile_trio", "トリオ" }, + { "main_profile_ranked_trio", "ランク戦トリオ" }, + { "main_profile_squad", "スクワッド" }, + { "main_profile_ranked_squad", "ランク戦スクワッド" }, + { "main_profile_custom", "カスタム" }, + { "main_profile_creative", "クリエイティブ" }, + { "main_custom_and_casual_shows", "カスタム/自由探索" }, + { "main_export_csv", "CSVファイルにエクスポート" }, + { "main_export_html", "クリップボードにコピー (HTML)" }, + { "main_export_bbcode", "クリップボードにコピー (BBCode)" }, + { "main_export_markdown", "クリップボードにコピー (MarkDown)" }, + { "main_delete_shows", "ショーを削除" }, + { "main_move_shows", "ショーデータの移動" }, + { "main_delete_finish_time", "「到着」時間を削除する" }, + { "main_update_creative_map_infos", "情報の更新" }, + { "main_update_program", "Fall Guys Stats アップデート" }, + { "main_updating_program", "ダウンロード中..." }, + { "main_update_complete", "アップデート完了" }, + + { "level_detail_medal", "メダル" }, + { "level_detail_is_final", "決勝" }, + { "level_detail_show_id", "ショー番号" }, + { "level_detail_show_name_id", "ショー名" }, + { "level_detail_round", "ラウンド" }, + { "level_detail_round_suffix", "数" }, + { "level_detail_name", "ラウンド名" }, + { "level_detail_players", "人数" }, + { "level_detail_playersPs4", "PS4" }, + { "level_detail_playersPs4_desc", "Play Station 4" }, + { "level_detail_playersPs5", "PS5" }, + { "level_detail_playersPs5_desc", "Play Station 5" }, + { "level_detail_playersXb1", "Xbox One" }, + { "level_detail_playersXb1_desc", "Xbox One" }, + { "level_detail_playersXsx", "Xbox Series X" }, + { "level_detail_playersXsx_desc", "Xbox Series X" }, + { "level_detail_playersSw", "Switch" }, + { "level_detail_playersSw_desc", "Nintendo Switch" }, + { "level_detail_playersPc", "PC" }, + { "level_detail_playersPc_desc", "PC" }, + { "level_detail_playersAndroid", "Android" }, + { "level_detail_playersAndroid_desc", "Android" }, + { "level_detail_playersIos", "iOS" }, + { "level_detail_playersIos_desc", "iOS" }, + { "level_detail_playersBots", "Bots" }, + { "level_detail_playersBots_desc", "ボット" }, + { "level_detail_start", "日付" }, + { "level_detail_end", "所要時間" }, + { "level_detail_finish", "到着" }, + { "level_detail_position", "順位" }, + { "level_detail_score", "スコア" }, + { "level_detail_kudos", "Kudos" }, + { "level_detail_gold", "金" }, + { "level_detail_silver", "銀" }, + { "level_detail_bronze", "銅" }, + { "level_detail_pink", "ピンク" }, + { "level_detail_eliminated", "脱落" }, + { "level_detail_round_summary", "ラウンド概要一覧" }, + { "level_detail_show_stats", "全てのショーの記録" }, + { "level_detail_round_stats", "全てのラウンドの記録" }, + { "level_detail_final_stats", "決勝戦の記録" }, + { "level_detail_level_stats", "ラウンドの記録" }, + { "level_detail_wins_per_day", "日ごとの勝利数推移" }, + { "level_detail_stats_by_round", "ラウンド別統計グラフ" }, + { "level_detail_success_reaching_finals", "決勝進出成功" }, + { "level_detail_failure_reaching_finals", "決勝進出失敗" }, + { "level_detail_shows", "ショー" }, + { "level_detail_finals", "決勝戦" }, + { "level_detail_wins", "優勝" }, + { "level_detail_losses", "敗北" }, + { "level_detail_date", "日付" }, + { "level_detail_finals_stats", "決勝戦の統計" }, + { "level_detail_tooltiptext", "クリックしてラウンド統計を表示。" }, + { "level_detail_tooltiptext_prefix", "クリックすると、" }, + { "level_detail_tooltiptext_suffix", " のラウンド統計が表示されます。" }, + { "level_date_format", "yyyy\\/M\\/d (ddd)" }, + { "level_grid_date_format", "yyyy\\/M\\/d HH:mm (ddd)" }, + { "level_detail_no_data", "データが存在しません。" }, + { "level_detail_no_data_caption", "データなし" }, + { "level_detail_share_code_copied", " 共有コードがコピーされました ! " }, + { "level_detail_share_code_copied_tooltip", "ダブルクリックして共有コードをコピーする。" }, + { "level_detail_creative_author", "製作者" }, + { "level_detail_creative_likes", "高評価" }, + { "level_detail_creative_dislikes", "低評価" }, + { "level_detail_creative_share_code", "共有コード" }, + { "level_detail_creative_version", "バージョン" }, + { "level_detail_creative_max_players", "最大プレイヤー数" }, + { "level_detail_creative_time_limit", "制限時間" }, + { "level_detail_creative_platform", "クリエイティブラウンド" }, + { "level_detail_creative_last_modified", "最終更新日" }, + { "level_detail_creative_play_count", "プレイ回数" }, + { "level_detail_creative_inning", "回" }, + { "level_detail_creative_player_suffix", "人" }, + { "level_detail_online_platform_eos", "Epic Games" }, + { "level_detail_online_platform_steam", "Steam" }, + { "level_detail_online_platform_psn", "PSN" }, + { "level_detail_online_platform_xbl", "Xbox Live" }, + { "level_detail_online_platform_nso", "Nintendo Switch Online" }, + { "level_detail_race", "レース" }, + { "level_detail_hunt", "ポイント" }, + { "level_detail_survival", "サバイバル" }, + { "level_detail_logic", "ロジック" }, + { "level_detail_team", "チーム" }, + { "level_detail_invisibeans", "かくれんビーンズ" }, + { "level_detail_final", "ファイナル" }, + + { "level_round_played_prefix", ""}, + { "level_round_played_suffix", "プレイする。" }, + { "level_win_suffix", "勝" }, + { "level_wins_suffix", "勝" }, + { "level_loss_suffix", "敗" }, + { "level_losses_suffix", "敗" }, + { "level_no_statistical_data", " 統計データなし" }, + + { "leaderboard_menu_title", "リーダーボード" }, + { "leaderboard_report_cheater", "不正行為者を通報" }, + { "leaderboard_choose_a_round", "ラウンドを選択してください。" }, + { "leaderboard_overall_rank", "🏆 総合ランク" }, + { "leaderboard_search_players", "🔎 プレイヤー検索" }, + { "leaderboard_search_players_WaterMark", "🔎 私の素晴らしいニックネーム" }, + { "leaderboard_weekly_crown_league", "👑 週刊クラウンリーグ" }, + { "leaderboard_total_players_prefix", "合計" }, + { "leaderboard_total_players_suffix", "人のプレイヤー" }, + { "leaderboard_see_full_rankings_in_fallalytics", "FALLALYTICS で完全なランキングを見る" }, + { "leaderboard_grid_header_rank", "#" }, + { "leaderboard_grid_header_show", "ショー" }, + { "leaderboard_grid_header_player", "プレイヤー" }, + { "leaderboard_grid_header_record", "記録" }, + { "leaderboard_grid_header_finish", "日付" }, + { "leaderboard_grid_header_score", "スコア" }, + { "leaderboard_grid_header_period", "期間" }, + { "leaderboard_grid_header_first_places", "WRs(*)" }, + { "leaderboard_grid_anonymous", "匿名" }, + { "leaderboard_grid_just_before", "たった今" }, + { "leaderboard_grid_today", "今日" }, + { "leaderboard_grid_yesterday", "昨日" }, + { "leaderboard_grid_the_day_before_yesterday", "一昨日" }, + { "leaderboard_grid_n_days_ago_prefix", ""}, + { "leaderboard_grid_n_days_ago_suffix", "日前" }, + { "leaderboard_grid_n_weeks_ago_prefix", ""}, + { "leaderboard_grid_n_weeks_ago_suffix", "週間前" }, + { "leaderboard_grid_n_months_ago_prefix", ""}, + { "leaderboard_grid_n_months_ago_suffix", "ヶ月前" }, + { "leaderboard_grid_n_years_ago_prefix", ""}, + { "leaderboard_grid_n_years_ago_suffix", "年前" }, + { "leaderboard_grid_time_prefix", " 分" }, + { "leaderboard_grid_time_suffix", " 秒" }, + { "leaderboard_grid_header_crowns", "クラウン" }, + { "leaderboard_grid_header_shards", "破片" }, + { "leaderboard_grid_header_country", "国名" }, + + { "profile_icon_enable_tooltip", "クリックすると、リンクされたプロファイルに自動的に切り替えられません" }, + { "profile_icon_disable_tooltip", "クリックすると、リンクされたプロファイルに自動的に切り替えられます" }, + { "profile_change_tooltip", "右クリックまたは左クリックで現在のプロファイルを変更します" }, + { "shows_detail_tooltip", "クリックして全てのショーの記録を見る" }, + { "rounds_detail_tooltip", "クリックして全てのラウンドの記録を見る" }, + { "wins_detail_tooltip", "クリックして勝利の記録を見る" }, + { "finals_detail_tooltip", "クリックして決勝戦の記録を見る" }, + { "stats_detail_tooltip", "クリックしてラウンド別統計を見る" }, + + { "message_already_running_caption", "既に実行中" }, + { "message_fall_guys_already_running", "Fall Guysは既に実行中です。" }, + { "message_tracker_already_running", "Statsは既に実行中です。" }, + { "message_register_shortcut_caption", "ショートカットファイルパスの設定が必要です" }, + { "message_register_shortcut", "Fall Guysのショートカットファイルパスを設定してください。" }, + { "message_register_exe_caption", "実行可能ファイルのパス設定が必要です" }, + { "message_register_exe", "Fall Guysの実行可能ファイルのパスを設定します。" }, + { "message_wrong_selected_file_caption", "無効なファイルが選択されました" }, + { "message_wrong_selected_file_epicgames", "Fall Guysのショートカットファイルを選択してください。" }, + { "message_wrong_selected_file_steam", "インストールフォルダから \"FallGuys_client_game.exe\" を選択してください。" }, + { "message_not_installed_steam_caption", "Steam版Fall Guysがインストールされていません" }, + { "message_not_installed_steam", "Steam版Fall Guysがインストールされていません。" }, + { "message_not_installed_epicGames_caption", "Epic Games版Fall Guysがインストールされていません" }, + { "message_not_installed_epicGames", "Epic Games版Fall Guysがインストールされていません。" }, + { "message_save_csv_caption", "CSVファイルにエクスポート" }, + { "message_save_csv", "CSVファイルとして保存しました。" }, + { "message_save_html_caption", "HTMLにエクスポート" }, + { "message_save_html", "HTML形式でクリップボードに保存しました。" }, + { "message_save_bbcode_caption", "BBCodeにエクスポート" }, + { "message_save_bbcode", "BBCode形式でクリップボードに保存しました。" }, + { "message_save_markdown_caption", "MarkDownにエクスポート" }, + { "message_save_markdown", "MarkDown形式でクリップボードに保存しました。" }, + { "message_save_data_caption", "データを保存" }, + { "message_save_data_linked_profiles", "連動したプロファイルにデータを保存しますか?" }, + { "message_save_data_linked_profiles_info_prefix", "[注] 連動していない番組のデータは" }, + { "message_save_data_linked_profiles_info_suffix", "プロファイルに保存されます。" }, + { "message_delete_show_caption", "ショーを削除" }, + { "message_delete_show_prefix", "選択した" }, + { "message_delete_show_suffix", "つのショーを削除しますか?" }, + { "message_create_profile_caption", "プロファイルの作成" }, + { "message_create_profile_prefix", "プロファイル" }, + { "message_create_profile_suffix", "を作成しますか?" }, + { "message_same_profile_name_exists", "登録されたプロファイル中に同じ名前が存在します。" }, + { "message_rename_profile_caption", "プロファイル名の変更" }, + { "message_rename_profile_prefix", "プロファイル" }, + { "message_rename_profile_infix", "の名前を" }, + { "message_rename_profile_suffix", "に変更しますか?" }, + { "message_move_profile_caption", "プロファイルデータの移動" }, + { "message_move_profile_prefix", ""}, + { "message_move_profile_infix", "から" }, + { "message_move_profile_suffix", "にプロファイルデータを移動しますか?" }, + { "message_delete_profile_caption", "プロファイルの削除" }, + { "message_delete_profile_prefix", "これまでプレイしていたプロファイル" }, + { "message_delete_profile_infix", "のすべてのデータが削除されます。" }, + { "message_delete_profile_suffix", "本当に削除しますか?" }, + { "message_save_profile_caption", "プロファイルを保存" }, + { "message_save_profile_prefix", "現在のデータをプロファイル" }, + { "message_save_profile_suffix", "に保存しますか?" }, + { "message_execution_caption", "Fall Guysを実行" }, + { "message_execution_question", "Fall Guysクライアントを実行しますか?" }, + { "message_update_question_caption", "プログラムの更新" }, + { "message_update_question_prefix", "Fall Guys Statsの新しいバージョン" }, + { "message_update_question_suffix", "がリリースされました。すぐに更新しますか?" }, + { "message_update_latest_version", "現在、最新バージョンを使用しています。" }, + { "message_update_not_determine_version", "バージョンを確認できません。" }, + { "message_save_csv_file_caption", "CSVファイルとして保存" }, + { "message_update_error_caption", "アップデートエラー" }, + { "message_update_error", "アップデートを確認できません。" }, + { "message_program_error_caption", "プログラムエラー" }, + { "message_delete_finish_time_caption", "「到着」時間を削除する" }, + { "message_delete_finish_time", "本当に削除しますか?" }, + { "message_update_creative_map_caption", "クリエイティブマップ情報を更新" }, + { "message_update_creative_map_with_sharecode_prefix", "共有コード「" }, + { "message_update_creative_map_with_sharecode_suffix", "」でマップ情報を更新しますか?" }, + { "message_update_creative_map_with_title_prefix", "「" }, + { "message_update_creative_map_with_title_suffix", "」のマップ情報を更新しますか?" }, + { "message_update_creative_map_error", "クリエイティブ・レベルの検索中にエラーが発生しました。" }, + { "message_new_personal_best_caption", "⏱️ 個人的な最高記録更新" }, + { "message_new_personal_best_prefix", ""}, + { "message_new_personal_best_suffix", " の新個人最高記録を立てました。" }, + { "message_new_personal_best_timediff_by_minute_prefix", ""}, + { "message_new_personal_best_timediff_by_minute_infix", "分" }, + { "message_new_personal_best_timediff_by_minute_suffix", "秒短縮!" }, + { "message_new_personal_best_timediff_by_second", " 秒短縮!" }, + { "message_test_notifications_caption", "🔔 通知テスト" }, + { "message_connected_to_server_caption", "🔔 サーバー接続通知" }, + { "message_connected_to_server_prefix", "あなたは " }, + { "message_connected_to_server_suffix", " サーバーに接続しています。" }, + { "message_check_internet_connection_caption", "ネットワークエラー" }, + { "message_check_internet_connection", "インターネット接続状態を確認してください。" }, + { "message_changelog_caption", "変更履歴" }, + { "message_changelog_bugfix_and_program_optimization", "バグを修正しプログラムを最適化しました。" }, + { "message_changelog_updated_new_show_and_round_names", "新しいショーとラウンド名を更新しました。" }, + { "message_changelog_overlay_display_improvements", "オーバーレイ表示を改善しました。" }, + { "message_changelog_added_and_improved_win_per_day_graph_feature", "日ごとの勝利数推移グラフ機能を追加・改善しました。" }, + { "message_changelog_released_the_fallalytics_speedrun_leaderboard", "FALLALYTICSスピードランリーダーボード発売" }, + { "message_changelog_weekly_crown_league_is_now_open_on_fallalytics", "ウィークリー クラウン リーグが FALLALYTICS で公開されました。" }, + { "message_changelog_banning_users_using_hacking_programs", "ハッキングプログラムのユーザーブロック" }, + { "message_changelog_add_proxy_settings", "プロキシ設定を追加する" }, + + { "numeric_suffix", "つ" }, + { "message_question_mark", ""}, + { "message_full_stop", ""}, + { "message_exclamation_mark", ""}, + { "message_comma", ""}, + + { "settings_title", "設定" }, + { "settings_program", "プログラム" }, + { "settings_display", "表示" }, + { "settings_launch_fallguys", "Fall Guysを起動" }, + { "settings_fallalytics", "Fallalytics" }, + { "settings_proxy_settings", "プロキシ設定" }, + { "settings_use_a_proxy_server", "プロキシサーバーを使用する" }, + { "settings_proxy_address", "住所" }, + { "settings_proxy_port", "ポート" }, + { "settings_enable_proxy_authentication", "プロキシ認証を有効にする" }, + { "settings_proxy_user_name", "ユーザー名" }, + { "settings_proxy_password", "パスワード" }, + { "settings_test_proxy_connection", "プロキシ接続のテスト" }, + { "settings_enter_fallalytics_api_key", "(任意) Fallalytics APIキー" }, + { "settings_sends_info_about_rounds_played_to_fallalytics", "プレイしたラウンド情報とレースラウンドの個人最高記録を Fallalytics に送信する" }, + { "settings_join_a_weekly_crown_league", "毎週クラウンリーグに参加する" }, + { "settings_sends_anonymously_to_fallalytics", "👻 匿名で送信する" }, + { "settings_fallalytics_desc", "ℹ️ Fallalytics は、Fall Guysのラウンド分布に関するデータを収集し、調査するツールです。" }, + { "settings_visit_fallalytics", "Fallalyticsにアクセスする" }, + { "settings_about", "このアプリについて" }, + { "settings_log_path", "📁 ログファイルパス" }, + { "settings_log_path_description", "🏷️ これを設定する必要はありません。 プログラムが正しい位置を読み取らない場合にのみ使用してください。" }, + { "settings_stats", "プログラム設定" }, + { "settings_theme", "テーマ" }, + { "settings_theme_light", "☀️ ライト" }, + { "settings_theme_dark", "🌑 ダーク" }, + { "settings_preferred_ip_geolocation_service", "優先IP地理位置情報サービス" }, + { "settings_auto_selected", "自動" }, + { "settings_ipinfo_token", "トークン" }, + { "settings_enter_ipinfo_token", "(任意)" }, + { "settings_link_to_get_ipinfo_token", " IPinfoアカウントを作成してトークンを取得する " }, + { "settings_previous_win", "以前の優勝回数" }, + { "settings_before_using_tracker", "(Statsを使用する前の回数)" }, + { "settings_auto_update_program", "🔄️ Statsを実行すると、新しいアップデートを確認する" }, + { "settings_rename_hoopsie_legends_to_hoopsie_heroes", "フープ・ループ・レジェンドをフープ・ループ・ヒーローで表示する" }, + { "settings_overlay", "オーバーレイ" }, + { "settings_hide_wins_info", "優勝情報を隠す" }, + { "settings_hide_round_info", "ラウンド情報を隠す" }, + { "settings_hide_time_info", "時間情報を隠す" }, + { "settings_hide_percentages", "パーセント(%)情報を隠す" }, + { "settings_show_tab_for_currnet_filter__profile", "フィルタ / プロファイルを表示する" }, + { "settings_wins__final_filter", "優勝 / 決勝進出フィルター" }, + { "settings_qualify__gold_filter", "完走 / 金メダルフィルター" }, + { "settings_fastest__longest_filter", "最短記録 / 最長記録フィルター" }, + { "settings_all_time_stats", "全時間の記録" }, + { "settings_stats_and_party_filter", "統計とパーティーフィルター" }, + { "settings_season_stats", "今シーズンの記録" }, + { "settings_week_stats", "1週間の記録" }, + { "settings_day_stats", "1日間の記録" }, + { "settings_session_stats", "現在のセッションの記録" }, + { "settings_cycle_time", "循環サイクル" }, + { "settings_sec", "秒" }, + { "settings_background_image", "オーバーレイの画像" }, + { "settings_background", "オーバーレイの背景色" }, + { "settings_background_opacity", "オーバーレイの背景不透明度" }, + { "settings_lock_button_location", "ロックボタンの位置" }, + { "settings_lock_button_location_top", "上" }, + { "settings_lock_button_location_bottom", "下" }, + { "settings_transparent", "透明" }, + { "settings_magenta", "マゼンタ" }, + { "settings_red", "赤" }, + { "settings_green", "緑" }, + { "settings_blue", "青" }, + { "settings_black", "黒" }, + { "settings_white", "白" }, + { "settings_cycle_qualify__gold", "完走 / 金メダルを循環" }, + { "settings_qualify_only", "完走のみ" }, + { "settings_gold_only", "金メダルのみ" }, + { "settings_cycle_best__lowest", "最高記録 / 最低記録を循環" }, + { "settings_personal_best_only", "個人最高記録のみ" }, + { "settings_personal_lowest_only", "個人最低記録のみ" }, + { "settings_cycle_win__final_streak", "連勝 / 連続決勝進出を循環" }, + { "settings_win_streak_only", "連勝のみ" }, + { "settings_final_streak_only", "連続決勝進出のみ" }, + { "settings_cycle_players__ping", "人数 / Pingを循環" }, + { "settings_players_only", "人数のみ" }, + { "settings_ping_only", "Pingのみ" }, + { "settings_flip_display_horizontally", "オーバーレイを水平に反転 (Ctrl + F)" }, + { "settings_always_show_on_top", "📌 オーバーレイを常に一番上に置く (Ctrl + M)" }, + { "settings_display_players_based_on_platform", "🚹 機種別の人数を表示する (Ctrl + C)" }, + { "settings_color_round_name_based_on_round_type", "🏳️‍🌈 ラウンドタイプ別に色を変更する (Ctrl + R)" }, + { "settings_auto_change_profile", "🔃 リンク先のプロファイルに自動で変更する (Ctrl + Shift + Z)" }, + { "settings_shade_the_flag_image", "🏁 サーバーの旗のイメージを網掛けして表示する" }, + { "settings_diaplay_current_time", "🕓 待機中に現在時刻を表示する" }, + { "settings_diaplay_game_played_info", "ℹ️ ラウンド終了後にゲームプレイ情報を表示する (順位、生存者数、勝利、脱落など)" }, + { "settings_count_players_during_the_level", "ゲーム中に合格または脱落したプレイヤーをカウントする" }, + { "settings_custom_overlay_font", "🅰️ カスタムフォント" }, + { "settings_select_font", "フォント選択" }, + { "settings_reset_font", "リセット" }, + { "settings_font_example", "表示例" }, + { "settings_round_example", "ラウンド 3 : ロールオフ" }, + { "settings_sorting_options", "統計表の並べ替え設定" }, + { "settings_ignore_level_type_when_sorting", "📶 ラウンドタイプに関係なく並べ替える" }, + { "settings_grouping_creative_round_levels", "🛠️ クリエイティブ・ラウンドのレベルを1つのカテゴリーにまとめる" }, + { "settings_record_escape_during_a_game", "👻 試合中に逃げたら負けとして記録" }, + { "settings_game_options", "実行オプション" }, + { "settings_game_options_platform", "プラットフォーム" }, + { "settings_fall_guys_exe_location", "↗️ ゲーム実行ファイルパス" }, + { "settings_fall_guys_exe_openfile_title", "ゲーム実行ファイルを選択" }, + { "settings_fall_guys_exe_openfile_name", "FallGuys_client_game.exe" }, + { "settings_fall_guys_exe_openfile_filter", "EXE Files (*.exe)|*.exe" }, + { "settings_fall_guys_shortcut_location", "↗️ ゲームショートカットパス" }, + { "settings_fall_guys_shortcut_openfile_title", "ゲームのショートカットファイルを選択" }, + { "settings_fall_guys_shortcut_openfile_name", ""}, + { "settings_fall_guys_shortcut_openfile_filter", "URL Files (*.url)|*.url" }, + { "settings_browse", "選択" }, + { "settings_launch_fall_guys_on_tracker_launch", "Statsを実行するときにFallGuysも一緒に実行する" }, + { "settings_language", "表示言語" }, + { "settings_new_update_prefix", "新しいバージョン" }, + { "settings_new_update_suffix", "にアップデートできます" }, + { "settings_save", "保存" }, + { "settings_cancel", "キャンセル" }, + { "settings_select_language_title", "言語を選択" }, + { "settings_auto_generate_profiles", "プロファイルの自動生成" }, + { "settings_select_language_button", "保存" }, + { "settings_system_tray_icon", "📍 システムトレイアイコンを使用する" }, + { "settings_notify_personal_best", "🔔 レースラウンドで個人トップ記録更新時にWindows通知を送信する" }, + { "settings_notify_server_connected", "🔔 サーバー接続時にサーバーの国名を含む Windows 通知を送信する" }, + { "settings_mute_notification_sounds", "🔇 通知音をミュート" }, + { "settings_notification_sounds_01", "🔊 01" }, + { "settings_notification_sounds_02", "🔊 02" }, + { "settings_notification_sounds_03", "🔊 03" }, + { "settings_notification_sounds_04", "🔊 04" }, + { "settings_notification_window_bottom_left", "左下" }, + { "settings_notification_window_bottom_right", "右下" }, + { "settings_notification_window_top_left", "左上" }, + { "settings_notification_window_top_right", "右上" }, + { "settings_prevent_overlay_mouse_clicks", "🖱️ マウスカーソルの不具合を防ぐ" }, + { "settings_github", "GitHub (ShootMe/FallGuysStats)" }, + { "settings_issue_traker", "バグトラッカー" }, + { "settings_translation", "翻訳" }, + { "settings_font_need_to_be_installed_caption", "フォントのインストールが必要です。" }, + { "settings_font_need_to_be_installed_message", "Fall Guys Stats フォルダのフォントファイルをインストールしてください。" }, + { "settings_checking_for_updates", "アップデートの確認..." }, + + { "overlay_streak", "連勝" }, + { "overlay_streak_suffix", "勝" }, + { "overlay_streak_finals", "連続決勝" }, + { "overlay_finals", "決勝戦" }, + { "overlay_qualify_chance", "完走" }, + { "overlay_qualify_gold", "金メダル" }, + { "overlay_longest", "最長記録" }, + { "overlay_fastest", "最短記録" }, + { "overlay_personal_best", "自己最高記録" }, + { "overlay_high_score", "ベストスコア" }, + { "overlay_low_score", "ワーストスコア" }, + { "overlay_duration", "時間" }, + { "overlay_players", "人数" }, + { "overlay_current_time", "現在の時刻" }, + { "overlay_round_prefix", "ラウンド " }, + { "overlay_round_suffix", ""}, + { "overlay_round_abbreviation_prefix", "R " }, + { "overlay_round_abbreviation_suffix", ""}, + { "overlay_wins", "優勝" }, + { "overlay_win", "勝" }, + { "overlay_finish", "記録" }, + { "overlay_queued_players", "待機中のプレイヤー" }, + { "overlay_ping", "Ping" }, + { "overlay_best", "最大 " }, + { "overlay_inning", "回" }, + { "overlay_position_prefix", ""}, + { "overlay_position_suffix", "位" }, + { "overlay_position_win", "優勝" }, + { "overlay_position_survived", "人生存" }, + { "overlay_position_qualified", "クリア" }, + { "overlay_position_eliminated", "脱落" }, + { "overlay_picPositionLock_tooltip", " オーバーレイを現在の位置に固定します。 " }, + { "overlay_picPositionNE_tooltip", " オーバーレイを画面の左上に固定します。 " }, + { "overlay_picPositionNW_tooltip", " オーバーレイを画面の右上に固定します。 " }, + { "overlay_picPositionSE_tooltip", " オーバーレイを画面の左下に固定します。 " }, + { "overlay_picPositionSW_tooltip", " オーバーレイを画面の右下に固定します。 " }, + + { "profile_title", "プロファイル設定" }, + { "profile_list", "プロファイル一覧" }, + { "profile_add_tab", "追加" }, + { "profile_add_tab_label1", "プロファイル名" }, + { "profile_add_tab_button", "追加" }, + { "profile_rename_tab", "名前を変更" }, + { "profile_rename_tab_label1", "プロファイル" }, + { "profile_rename_tab_label2", "プロファイル名" }, + { "profile_rename_tab_button", "変更" }, + { "profile_move_tab", "データを移動" }, + { "profile_move_tab_label1", "ここから" }, + { "profile_move_tab_label2", "ここで" }, + { "profile_move_tab_button", "データを移動" }, + { "profile_remove_tab", "削除" }, + { "profile_remove_tab_label1", "プロファイル" }, + { "profile_remove_tab_label2", "* データがないプロファイルのみを削除できます。" }, + { "profile_remove_tab_button", "削除" }, + { "profile_rounds_suffix", "ラウンド" }, + { "profile_apply_change_button", "保存" }, + { "profile_undo_change_button", "キャンセル" }, + { "profile_add_select_title", "ショーを追加" }, + { "profile_add_select_question_prefix", "統計に記録されていないショーのデータがログに残っています。" }, + { "profile_add_select_question_suffix", "以下からプロファイルを選択してデータを追加してください。" }, + { "profile_add_select_question_suffix_linked_profiles", "リンクされたプロファイルにデータが自動的に追加されます。" }, + { "profile_add_select_use_linked_profiles", "リンクされたプロファイルに自動追加" }, + { "profile_move_select_title", "ショーデータの移動" }, + { "profile_move_select_description_prefix", "移動先のプロファイルを選択してください。" }, + { "profile_move_select_description_suffix", "選択したショーデータ数" }, + { "profile_move_select_question_prefix", "選択した" }, + { "profile_move_select_question_infix", "つのショーをプロファイル" }, + { "profile_move_select_question_suffix", "に移動しますか?" }, + { "profile_move_select_button", "移動" }, + + { "custom_range_range", "範囲" }, + { "custom_range_templates", "テンプレート" }, + { "custom_range_legacy_season", "シーズン" }, + { "custom_range_ffa_season", "シーズン" }, + { "custom_range_season", "シーズン" }, + { "custom_range_legacy", "旧" }, + { "custom_range_ffa", "FFA" }, + { "custom_range_not_set", "設定しない" }, + { "custom_range_filter", "フィルタ" }, + } + }, + { Language.SimplifiedChinese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "author", "Eunma" }, + { "main_by", "by" }, + { "main_on_twitch", "on Twitch" }, + { "main_multilingual", "多语言" }, + { "main_settings", "设置" }, + { "main_fall_guys_stats", "Fall Guys Stats" }, + { "main_filters", "筛选" }, + { "main_stats", "统计" }, + { "main_all", "全部" }, + { "main_season", "赛季" }, + { "main_week", "周" }, + { "main_day", "天" }, + { "main_session", "次" }, + { "main_custom_range", "自定" }, + { "main_party_type", "组队" }, + { "main_party", "组队" }, + { "main_solo", "单人" }, + { "main_profile", "个人资料" }, + { "main_profile_setting", "个人资料设置" }, + { "main_show_overlay", "显示浮窗" }, + { "main_hide_overlay", "隐藏浮窗" }, + { "main_update", "升级" }, + { "main_manual_update_version", "手动更新版本" }, + { "main_help", "帮助" }, + { "main_launch_fall_guys", "启动糖豆人" }, + { "main_useful_things", "有用的东西!" }, + { "main_fall_guys_wiki", "Fall Guys Wiki" }, + { "main_fall_guys_reddit", "Fall Guys Reddit" }, + { "main_fallalytics", "Fallalytics" }, + { "main_fallalytics_main", "Main Page" }, + { "main_fallalytics_find_player", "Find Player" }, + { "main_fallalytics_overall_rankings", "Overall Ranking" }, + { "main_fallalytics_level_rankings", "Level Rakings" }, + { "main_fallalytics_weekly_crown_league", "Weekly Crown League" }, + { "main_fallalytics_round_statistics", "Round Statistics" }, + { "main_fallalytics_show_statistics", "Show Statistics" }, + { "main_fallalytics_news", "News" }, + { "main_roll_off_club", "滚轮俱乐部" }, + { "main_lost_temple_analyzer", "失落的神庙分析器" }, + { "main_fall_guys_db", "FallGuys DB" }, + { "main_fall_guys_db_main", "Main Page" }, + { "main_fall_guys_db_shows", "Shows List" }, + { "main_fall_guys_db_discovery", "Discovery" }, + { "main_fall_guys_db_shop", "Item Shop" }, + { "main_fall_guys_db_newsfeeds", "Newsfeeds" }, + { "main_fall_guys_db_strings", "Localized Strings" }, + { "main_fall_guys_db_cosmetics", "All Cosmetics" }, + { "main_fall_guys_db_crown_ranks", "Crown Ranks" }, + { "main_fall_guys_db_live_events", "Live Events" }, + { "main_fall_guys_db_daily_shop", "Daily Items" }, + { "main_fall_guys_db_creative", "Creative Level Lookup" }, + { "main_fall_guys_db_faq", "FAQ" }, + { "main_fall_guys_official", "Fall Guys Official" }, + { "main_fall_guys_wiki_tooltip", "Fall Guys 的终极维基指南,由玩家编写和维护。" }, + { "main_fall_guys_reddit_tooltip", "由社区运营和开发者支持的 Reddit 子版块,专门针对 Fall Guys。" }, + { "main_fallalytics_tooltip", "Fallalytics 是一个工具,用于探索收集到的有关 Fall Guys 回合分布的数据。" }, + { "main_roll_off_club_tooltip", "成为滚滚专家!" }, + { "main_lost_temple_analyzer_tooltip", "对失落的寺庙进行完整的视觉分析。" }, + { "main_todays_show_tooltip", "看看目前有哪些节目。" }, + { "main_fall_guys_official_tooltip", "Fall Guys(以前称为 Fall Guys: Ultimate Knockout)是一款由 Mediatonic 开发并由 Epic Games 发行的免费平台大逃杀游戏。" }, + { "main_overlay_show_tooltip", " 按 (Ctrl + O) 显示叠加层。" }, + { "main_overlay_hide_tooltip", " 按 (Ctrl + O) 隐藏叠加层。" }, + { "main_overlay_shortcut_tooltip", " 按 (Ctrl + M) 可叠加始终显示在顶部。\n 按 (Ctrl + T) 切换背景颜色。\n 按 (Ctrl + F) 翻转显示。\n 按 (Ctrl + C) 可按平台显示用户数量。\n 按 (Ctrl + R) 圆形名称会显示圆形类型的彩色徽章。\n 按 (Ctrl + Shift + ↑ 或 ↓) 调整叠加的透明度。\n 按 (Ctrl + Shift + Z) 自动改变为链接的个人资料。\n 按 (Ctrl + Shift + X) 重置叠加大小。\n 按 (Ctrl + Shift + C) 重置叠加层的位置。" }, + { "main_update_prefix_tooltip", "如果您希望 FallGuysStats 继续更新," }, + { "main_update_suffix_tooltip", " 请不要忘记为 GitHub 存储库加注星标! " }, + { "main_you_can_update_new_version_prefix_tooltip", " 您可以更新到新版本(" }, + { "main_you_can_update_new_version_suffix_tooltip", ")! " }, + { "main_exit_program", "退出程序" }, + { "main_plays", "游玩时长" }, + { "main_shows", "节目" }, + { "main_inning", ""}, + { "main_rounds", "轮" }, + { "main_round", ""}, + { "main_wins", "获胜" }, + { "main_win", ""}, + { "main_finals", "决赛" }, + { "main_kudos", "荣耀值" }, + { "main_hour", " h " }, + { "main_min", " m " }, + { "main_sec", " s" }, + { "main_round_name", "关卡名" }, + { "main_played", "游玩" }, + { "main_qualified", "达标" }, + { "main_gold", "金牌" }, + { "main_silver", "银牌" }, + { "main_bronze", "铜牌" }, + { "main_fastest", "最快" }, + { "main_longest", "最长" }, + { "main_ave_finish", "平均" }, + { "main_hoopsie_legends", "钻圈王者" }, + { "main_hoopsie_heroes", "钻圈英雄" }, + { "main_profile_solo", "单人" }, + { "main_profile_ranked_solo", "排位单人" }, + { "main_profile_duo", "双人" }, + { "main_profile_ranked_duo", "排位双人" }, + { "main_profile_trio", "三人" }, + { "main_profile_ranked_trio", "排位三人" }, + { "main_profile_squad", "四人" }, + { "main_profile_ranked_squad", "排位四人" }, + { "main_profile_custom", "风俗" }, + { "main_profile_creative", "Creative" }, + { "main_custom_and_casual_shows", "风俗/探索" }, + { "main_export_csv", "导出 CSV" }, + { "main_export_html", "导出 HTML" }, + { "main_export_bbcode", "导出 BBCode" }, + { "main_export_markdown", "导出 MarkDown" }, + { "main_delete_shows", "删除" }, + { "main_move_shows", "移动游玩场次数据" }, + { "main_delete_finish_time", "删除“结束”时间" }, + { "main_update_creative_map_infos", "更新信息" }, + { "main_update_program", "更新 Fall Guys Stats" }, + { "main_updating_program", "正在下载..." }, + { "main_update_complete", "更新完成" }, + + { "level_detail_medal", "勋章" }, + { "level_detail_is_final", "决赛" }, + { "level_detail_show_id", "节目场次" }, + { "level_detail_show_name_id", "节目名" }, + { "level_detail_round", "轮次" }, + { "level_detail_round_suffix", ""}, + { "level_detail_name", "关卡" }, + { "level_detail_players", "玩家" }, + { "level_detail_playersPs4", "PS4" }, + { "level_detail_playersPs4_desc", "Play Station 4" }, + { "level_detail_playersPs5", "PS5" }, + { "level_detail_playersPs5_desc", "Play Station 5" }, + { "level_detail_playersXb1", "Xbox One" }, + { "level_detail_playersXb1_desc", "Xbox One" }, + { "level_detail_playersXsx", "Xbox Series X" }, + { "level_detail_playersXsx_desc", "Xbox Series X" }, + { "level_detail_playersSw", "Switch" }, + { "level_detail_playersSw_desc", "Nintendo Switch" }, + { "level_detail_playersPc", "电脑" }, + { "level_detail_playersPc_desc", "电脑" }, + { "level_detail_playersAndroid", "Android" }, + { "level_detail_playersAndroid_desc", "Android" }, + { "level_detail_playersIos", "iOS" }, + { "level_detail_playersIos_desc", "iOS" }, + { "level_detail_playersBots", "机器人" }, + { "level_detail_playersBots_desc", "机器人" }, + { "level_detail_start", "开始" }, + { "level_detail_end", "时长" }, + { "level_detail_finish", "结束" }, + { "level_detail_position", "名次" }, + { "level_detail_score", "分数" }, + { "level_detail_kudos", "荣耀值" }, + { "level_detail_gold", "金牌" }, + { "level_detail_silver", "银牌" }, + { "level_detail_bronze", "铜牌" }, + { "level_detail_pink", "合格" }, + { "level_detail_eliminated", "淘汰" }, + { "level_detail_round_summary", "每轮统计信息" }, + { "level_detail_show_stats", "显示统计列表" }, + { "level_detail_round_stats", "每轮统计列表" }, + { "level_detail_final_stats", "决赛统计列表" }, + { "level_detail_level_stats", "关卡统计列表" }, + { "level_detail_wins_per_day", "每日获胜数" }, + { "level_detail_stats_by_round", "回合统计图" }, + { "level_detail_success_reaching_finals", "成功进入决赛" }, + { "level_detail_failure_reaching_finals", "未进入决赛" }, + { "level_detail_shows", "场" }, + { "level_detail_finals", "决赛" }, + { "level_detail_wins", "冠军" }, + { "level_detail_losses", "失败" }, + { "level_detail_date", "日期" }, + { "level_detail_finals_stats", "总决赛统计" }, + { "level_detail_tooltiptext_prefix", "点击查看" }, + { "level_detail_tooltiptext_suffix", "的等级统计。" }, + { "level_date_format", "yyyy年 M月 d日 (ddd)" }, + { "level_grid_date_format", "yyyy年 M月 d日 HH:mm (ddd)" }, + { "level_detail_no_data", "数据不存在。" }, + { "level_detail_no_data_caption", "没有数据" }, + { "level_detail_share_code_copied", " 分享代码已复制。" }, + { "level_detail_share_code_copied_tooltip", "双击来复制共享代码。" }, + { "level_detail_creative_author", "作者" }, + { "level_detail_creative_likes", "赞" }, + { "level_detail_creative_dislikes", "踩" }, + { "level_detail_creative_share_code", "分享代码" }, + { "level_detail_creative_version", "版本" }, + { "level_detail_creative_max_players", "最多玩家" }, + { "level_detail_creative_time_limit", "时限" }, + { "level_detail_creative_platform", "平台" }, + { "level_detail_creative_last_modified", "上一次更改" }, + { "level_detail_creative_play_count", "播放计数" }, + { "level_detail_creative_inning", ""}, + { "level_detail_creative_player_suffix", "人" }, + { "level_detail_online_platform_eos", "Epic Games" }, + { "level_detail_online_platform_steam", "Steam" }, + { "level_detail_online_platform_psn", "PSN" }, + { "level_detail_online_platform_xbl", "Xbox Live" }, + { "level_detail_online_platform_nso", "Nintendo Switch Online" }, + { "level_detail_race", "Race" }, + { "level_detail_hunt", "Hunt" }, + { "level_detail_survival", "Survival" }, + { "level_detail_logic", "Logic" }, + { "level_detail_team", "Team" }, + { "level_detail_invisibeans", "Invisibeans" }, + { "level_detail_final", "Final" }, + + { "level_round_played_prefix", "播放了" }, + { "level_round_played_suffix", ""}, + { "level_win_suffix", "胜" }, + { "level_wins_suffix", "胜" }, + { "level_loss_suffix", "负" }, + { "level_losses_suffix", "负" }, + { "level_no_statistical_data", " 无统计数据" }, + + { "leaderboard_menu_title", "排行榜" }, + { "leaderboard_report_cheater", "举报作弊者" }, + { "leaderboard_choose_a_round", "选择一轮。" }, + { "leaderboard_overall_rank", "🏆 总排名" }, + { "leaderboard_search_players", "🔎 搜索球员" }, + { "leaderboard_search_players_WaterMark", "🔎 我真棒的昵称" }, + { "leaderboard_weekly_crown_league", "👑 每周皇冠联赛" }, + { "leaderboard_total_players_prefix", "总共 " }, + { "leaderboard_total_players_suffix", " 名玩家" }, + { "leaderboard_see_full_rankings_in_fallalytics", "请参阅 FALLALYTICS 中的完整排名" }, + { "leaderboard_grid_header_rank", "#" }, + { "leaderboard_grid_header_show", "节目" }, + { "leaderboard_grid_header_player", "球员" }, + { "leaderboard_grid_header_record", "记录" }, + { "leaderboard_grid_header_finish", "日期" }, + { "leaderboard_grid_header_score", "得分" }, + { "leaderboard_grid_header_period", "时期" }, + { "leaderboard_grid_header_first_places", "WRs(*)" }, + { "leaderboard_grid_anonymous", "匿名" }, + { "leaderboard_grid_just_before", "刚刚" }, + { "leaderboard_grid_today", "今天" }, + { "leaderboard_grid_yesterday", "昨天" }, + { "leaderboard_grid_the_day_before_yesterday", "前天" }, + { "leaderboard_grid_n_days_ago_prefix", ""}, + { "leaderboard_grid_n_days_ago_suffix", " 天前" }, + { "leaderboard_grid_n_weeks_ago_prefix", ""}, + { "leaderboard_grid_n_weeks_ago_suffix", " 周前" }, + { "leaderboard_grid_n_months_ago_prefix", ""}, + { "leaderboard_grid_n_months_ago_suffix", " 月前" }, + { "leaderboard_grid_n_years_ago_prefix", ""}, + { "leaderboard_grid_n_years_ago_suffix", " 年前" }, + { "leaderboard_grid_time_prefix", " 分" }, + { "leaderboard_grid_time_suffix", " 秒" }, + { "leaderboard_grid_header_crowns", "Crowns" }, + { "leaderboard_grid_header_shards", "Shards" }, + { "leaderboard_grid_header_country", "国家" }, + + { "profile_icon_enable_tooltip", "单击可不自动更改为链接的配置文件" }, + { "profile_icon_disable_tooltip", "按一下可不自動變更為連結的設定檔" }, + { "profile_change_tooltip", "通过左键或右键单击更改当前配置文件" }, + { "shows_detail_tooltip", "点击查看每场统计信息" }, + { "rounds_detail_tooltip", "点击查看每轮统计信息" }, + { "wins_detail_tooltip", "点击查看获胜统计信息" }, + { "finals_detail_tooltip", "点击查看决赛统计信息" }, + { "stats_detail_tooltip", "点击查看各轮的统计信息" }, + + { "message_already_running_caption", "已在运行" }, + { "message_fall_guys_already_running", "糖豆人已在运行。" }, + { "message_tracker_already_running", "统计已在运行。" }, + { "message_register_shortcut_caption", "需要设置快捷方式路径" }, + { "message_register_shortcut", "请设置糖豆人的快捷方式路径。" }, + { "message_register_exe_caption", "需要设置exe路径" }, + { "message_register_exe", "请为糖豆人设置一个exe路径。" }, + { "message_wrong_selected_file_caption", "错误文件" }, + { "message_wrong_selected_file_epicgames", "请选择糖豆人客户端的快捷方式。" }, + { "message_wrong_selected_file_steam", "请选择安装文件夹中的 \"FallGuys_client_game.exe\"。" }, + { "message_not_installed_steam_caption", "未安装" }, + { "message_not_installed_steam", "你没有安装Steam版的《Fall Guys》。" }, + { "message_not_installed_epicGames_caption", "未安装" }, + { "message_not_installed_epicGames", "你没有安装Epic Games版的《Fall Guys》。" }, + { "message_save_csv_caption", "导出 CSV" }, + { "message_save_csv", "CSV 文件已保存。" }, + { "message_save_html_caption", "导出 HTML" }, + { "message_save_html", "Html 已保存至剪贴板。" }, + { "message_save_bbcode_caption", "导出 BBCode" }, + { "message_save_bbcode", "BBCode 已保存至剪贴板。" }, + { "message_save_markdown_caption", "导出 Markdown" }, + { "message_save_markdown", "MarkDown 已保存至剪贴板。" }, + { "message_save_data_caption", "保存数据" }, + { "message_save_data_linked_profiles", "你想把数据保存到链接的配置文件中吗?" }, + { "message_save_data_linked_profiles_info_prefix", "注:默认配置文件为" }, + { "message_save_data_linked_profiles_info_suffix", ""}, + { "message_delete_show_caption", "移除场次" }, + { "message_delete_show_prefix", "确定要移除已选中的" }, + { "message_delete_show_suffix", "场次吗?" }, + { "message_create_profile_caption", "创建个人资料" }, + { "message_create_profile_prefix", "是否要创建个人资料 " }, + { "message_create_profile_suffix", ""}, + { "message_same_profile_name_exists", "已注册的配置文件之间存在相同的配置文件名称。" }, + { "message_rename_profile_caption", "重命名个人资料" }, + { "message_rename_profile_prefix", "确定要将个人资料从 " }, + { "message_rename_profile_infix", " 更名到 " }, + { "message_rename_profile_suffix", "?" }, + { "message_move_profile_caption", "移动个人资料" }, + { "message_move_profile_prefix", "确定要将个人资料数据从 " }, + { "message_move_profile_infix", " 移动到 " }, + { "message_move_profile_suffix", "?" }, + { "message_delete_profile_caption", "删除个人资料" }, + { "message_delete_profile_prefix", ""}, + { "message_delete_profile_infix", " 中游玩至今的全部个人资料将会被删除。" }, + { "message_delete_profile_suffix", "确定要继续吗?" }, + { "message_save_profile_caption", "保存个人资料" }, + { "message_save_profile_prefix", "确定保存当前资料至 " }, + { "message_save_profile_suffix", " 个人资料中吗?" }, + { "message_execution_caption", "启动糖豆人" }, + { "message_execution_question", "确定要启动糖豆人吗?" }, + { "message_update_question_caption", "升级程序" }, + { "message_update_question_prefix", "Fall Guys Stats 有新版本。" }, + { "message_update_question_suffix", "是否要立刻升级?" }, + { "message_update_latest_version", "已更新至最新版本。" }, + { "message_update_not_determine_version", "无法检测版本号。" }, + { "message_save_csv_file_caption", "保存为 CSV" }, + { "message_update_error_caption", "更新错误" }, + { "message_update_error", "无法检查更新。" }, + { "message_program_error_caption", "程序错误" }, + { "message_delete_finish_time_caption", "删除“结束”时间" }, + { "message_delete_finish_time", "确定要继续吗?" }, + { "message_update_creative_map_caption", "更新创意地图信息" }, + { "message_update_creative_map_with_sharecode_prefix", "您想更新带有共享代码 \"" }, + { "message_update_creative_map_with_sharecode_suffix", "\"的地图信息吗?" }, + { "message_update_creative_map_with_title_prefix", "您希望更新 \"" }, + { "message_update_creative_map_with_title_suffix", "\"的地图信息吗?" }, + { "message_update_creative_map_error", "查找广告素材级别时出错。" }, + { "message_new_personal_best_caption", "⏱️ 新个人最佳成绩" }, + { "message_new_personal_best_prefix", "您在 " }, + { "message_new_personal_best_suffix", " 中创造了新的个人最好成绩。" }, + { "message_new_personal_best_timediff_by_minute_prefix", "少了 " }, + { "message_new_personal_best_timediff_by_minute_infix", " 分 " }, + { "message_new_personal_best_timediff_by_minute_suffix", " 秒!" }, + { "message_new_personal_best_timediff_by_second", " 秒缩短!" }, + { "message_test_notifications_caption", "🔔 测试通知" }, + { "message_connected_to_server_caption", "🔔 服务器连接通知" }, + { "message_connected_to_server_prefix", "您已连接到 " }, + { "message_connected_to_server_suffix", " 服务器。" }, + { "message_check_internet_connection_caption", "网络错误" }, + { "message_check_internet_connection", "请检查您的互联网连接。" }, + { "message_changelog_caption", "变更日志" }, + { "message_changelog_bugfix_and_program_optimization", "Bug修复和程序优化。" }, + { "message_changelog_updated_new_show_and_round_names", "更新了新的节目和回合名称。" }, + { "message_changelog_overlay_display_improvements", "叠加显示改进。" }, + { "message_changelog_added_and_improved_win_per_day_graph_feature", "添加并改进了每日获胜图表功能。" }, + { "message_changelog_released_the_fallalytics_speedrun_leaderboard", "发布《FALLALYTICS》竞速排行榜" }, + { "message_changelog_weekly_crown_league_is_now_open_on_fallalytics", "每周皇冠联赛现已在 FALLALYTICS 上开放。" }, + { "message_changelog_banning_users_using_hacking_programs", "禁止使用黑客程序的用户。" }, + { "message_changelog_add_proxy_settings", "添加代理设置" }, + + { "numeric_suffix", ""}, + { "message_question_mark", "?" }, + { "message_full_stop", "。" }, + { "message_exclamation_mark", "!" }, + { "message_comma", "," }, + + { "settings_title", "设置" }, + { "settings_program", "可用" }, + { "settings_display", "展示" }, + { "settings_launch_fallguys", "启动糖豆人" }, + { "settings_fallalytics", "Fallalytics" }, + { "settings_proxy_settings", "代理设置" }, + { "settings_use_a_proxy_server", "使用代理服务器" }, + { "settings_proxy_address", "地址" }, + { "settings_proxy_port", "港口" }, + { "settings_enable_proxy_authentication", "启用代理身份验证" }, + { "settings_proxy_user_name", "用户名" }, + { "settings_proxy_password", "密码" }, + { "settings_test_proxy_connection", "测试代理连接" }, + { "settings_enter_fallalytics_api_key", "(可选)输入Fallalytics的API密钥" }, + { "settings_sends_info_about_rounds_played_to_fallalytics", "将有关比赛回合和个人最好成绩的信息发送至 Fallalytics" }, + { "settings_join_a_weekly_crown_league", "参加每周一次的皇冠联赛" }, + { "settings_sends_anonymously_to_fallalytics", "👻 匿名发送" }, + { "settings_fallalytics_desc", "ℹ️ Fallalytics 是一个工具,用于探索收集到的有关 Fall Guys 回合分布的数据。" }, + { "settings_visit_fallalytics", "访问Fallalytics" }, + { "settings_about", "关于这个应用程序" }, + { "settings_log_path", "📁 日志文件路径" }, + { "settings_log_path_description", "🏷️ 仅在程序无法正确读取日志地址时才改动此设置。" }, + { "settings_stats", "统计" }, + { "settings_theme", "主题" }, + { "settings_theme_light", "☀️ 轻" }, + { "settings_theme_dark", "🌑 深色" }, + { "settings_preferred_ip_geolocation_service", "首选IP地理定位服务" }, + { "settings_auto_selected", "自动" }, + { "settings_ipinfo_token", "Token" }, + { "settings_enter_ipinfo_token", "(可选)" }, + { "settings_link_to_get_ipinfo_token", "创建账户获取token" }, + { "settings_previous_win", "之前获胜次数" }, + { "settings_before_using_tracker", "(使用此软件前)" }, + { "settings_auto_update_program", "🔄️ 启动时检查更新" }, + { "settings_rename_hoopsie_legends_to_hoopsie_heroes", "将 钻圈王者 重命名为 钻圈英雄" }, + { "settings_overlay", "浮窗" }, + { "settings_hide_wins_info", "隐藏获胜信息" }, + { "settings_hide_round_info", "隐藏关卡信息" }, + { "settings_hide_time_info", "隐藏时间信息" }, + { "settings_hide_percentages", "隐藏百分比" }, + { "settings_show_tab_for_currnet_filter__profile", "为当前的筛选器和个人资料显示标签" }, + { "settings_wins__final_filter", "获胜 / 决赛筛选" }, + { "settings_qualify__gold_filter", "达标 / 第一筛选" }, + { "settings_fastest__longest_filter", "最快 / 最久筛选" }, + { "settings_all_time_stats", "全部时间统计" }, + { "settings_stats_and_party_filter", "统计和组队筛选" }, + { "settings_season_stats", "赛季统计" }, + { "settings_week_stats", "周统计" }, + { "settings_day_stats", "日统计" }, + { "settings_session_stats", "场次统计" }, + { "settings_cycle_time", "循环时间" }, + { "settings_sec", "秒" }, + { "settings_background_image", "背景图" }, + { "settings_background", "背景" }, + { "settings_background_opacity", "背景不透明度" }, + { "settings_lock_button_location", "锁定按钮位置" }, + { "settings_lock_button_location_top", "顶部" }, + { "settings_lock_button_location_bottom", "底部" }, + { "settings_transparent", "透明" }, + { "settings_magenta", "洋红" }, + { "settings_red", "红" }, + { "settings_green", "绿" }, + { "settings_blue", "蓝" }, + { "settings_black", "黑" }, + { "settings_white", "白" }, + { "settings_cycle_qualify__gold", "循环 达标 / 第一" }, + { "settings_qualify_only", "仅 达标" }, + { "settings_gold_only", "仅 第一" }, + { "settings_cycle_best__lowest", "循环 最佳 / 最低" }, + { "settings_personal_best_only", "仅限个人最佳纪录" }, + { "settings_personal_lowest_only", "仅限个人最低记录" }, + { "settings_cycle_win__final_streak", "循环 连胜 / 连续晋级决赛" }, + { "settings_win_streak_only", "仅 连胜" }, + { "settings_final_streak_only", "仅 连续晋级决赛" }, + { "settings_cycle_players__ping", "循环 玩家数 / 延迟" }, + { "settings_players_only", "仅 玩家数" }, + { "settings_ping_only", "仅 延迟" }, + { "settings_flip_display_horizontally", "水平翻转 (Ctrl + F)" }, + { "settings_always_show_on_top", "📌 置顶显示 (Ctrl + M)" }, + { "settings_display_players_based_on_platform", "🚹 按照平台显示玩家 (Ctrl + C)" }, + { "settings_color_round_name_based_on_round_type", "🏳️‍🌈 按照关卡类型显示颜色 (Ctrl + R)" }, + { "settings_auto_change_profile", "🔃 自动改变为链接的个人资料 (Ctrl + Shift + Z)" }, + { "settings_shade_the_flag_image", "🏁 对要显示的服务器标志图像进行着色" }, + { "settings_diaplay_current_time", "🕓 等待时显示当前时间" }, + { "settings_diaplay_game_played_info", "ℹ️ 在一轮游戏结束时显示已进行的游戏信息 (排名、幸存者数量、胜利、淘汰等)" }, + { "settings_count_players_during_the_level", "计算游戏过程中通过或被淘汰的玩家数量" }, + { "settings_custom_overlay_font", "🅰️ 自定义浮窗字体" }, + { "settings_select_font", "选择字体" }, + { "settings_reset_font", "重置字体" }, + { "settings_font_example", "示例" }, + { "settings_round_example", "第 3 轮:水涨爬高" }, + { "settings_sorting_options", "排序选项" }, + { "settings_ignore_level_type_when_sorting", "📶 排序时忽略关卡类型" }, + { "settings_grouping_creative_round_levels", "🛠️ 将创意回合级别分组为一类" }, + { "settings_record_escape_during_a_game", "👻 如果你在比赛中逃跑,记录为失败" }, + { "settings_game_options", "游戏选项" }, + { "settings_game_options_platform", "平台" }, + { "settings_fall_guys_exe_location", "↗️ 游戏可执行路径" }, + { "settings_fall_guys_exe_openfile_title", "选择游戏可执行文件" }, + { "settings_fall_guys_exe_openfile_name", "FallGuys_client_game.exe" }, + { "settings_fall_guys_exe_openfile_filter", "EXE Files (*.exe)|*.exe" }, + { "settings_fall_guys_shortcut_location", "↗️ 游戏快捷键文件路径" }, + { "settings_fall_guys_shortcut_openfile_title", "选择一个游戏快捷方式文件" }, + { "settings_fall_guys_shortcut_openfile_name", ""}, + { "settings_fall_guys_shortcut_openfile_filter", "URL Files (*.url)|*.url" }, + { "settings_browse", "浏览" }, + { "settings_launch_fall_guys_on_tracker_launch", "启动统计器时启动游戏" }, + { "settings_language", "语言" }, + { "settings_new_update_prefix", "新更新" }, + { "settings_new_update_suffix", "可用" }, + { "settings_save", "保存" }, + { "settings_cancel", "取消" }, + { "settings_select_language_title", "选择你的语言" }, + { "settings_auto_generate_profiles", "自动生成配置文件" }, + { "settings_select_language_button", "选择" }, + { "settings_system_tray_icon", "📍 使用系统托盘图标" }, + { "settings_notify_personal_best", "🔔 当您在比赛中打破个人最好成绩时,会收到 Windows 通知" }, + { "settings_notify_server_connected", "🔔 连接服务器时,带有服务器国家/地区名称的 Windows 通知" }, + { "settings_mute_notification_sounds", "🔇 将通知声音静音" }, + { "settings_notification_sounds_01", "🔊 01" }, + { "settings_notification_sounds_02", "🔊 02" }, + { "settings_notification_sounds_03", "🔊 03" }, + { "settings_notification_sounds_04", "🔊 04" }, + { "settings_notification_window_bottom_left", "左下方" }, + { "settings_notification_window_bottom_right", "右下角" }, + { "settings_notification_window_top_left", "左上方" }, + { "settings_notification_window_top_right", "右上角" }, + { "settings_prevent_overlay_mouse_clicks", "🖱️ 防止鼠标光标错误" }, + { "settings_github", "GitHub (ShootMe/FallGuysStats)" }, + { "settings_issue_traker", "问题追踪器" }, + { "settings_translation", "翻译" }, + { "settings_font_need_to_be_installed_caption", "需要安装字体" }, + { "settings_font_need_to_be_installed_message", "安装 Fall Guys Stats 文件夹中的字体文件。" }, + { "settings_checking_for_updates", "查询更新..." }, + + { "overlay_streak", "连胜" }, + { "overlay_streak_suffix", ""}, + { "overlay_streak_finals", "连续晋级决赛" }, + { "overlay_finals", "决赛" }, + { "overlay_qualify_chance", "达标" }, + { "overlay_qualify_gold", "第一" }, + { "overlay_longest", "最久" }, + { "overlay_fastest", "最快" }, + { "overlay_personal_best", "个人最佳得分" }, + { "overlay_high_score", "最高分" }, + { "overlay_low_score", "最低分" }, + { "overlay_duration", "时间" }, + { "overlay_players", "玩家" }, + { "overlay_current_time", "当前时间" }, + { "overlay_round_prefix", "回合 " }, + { "overlay_round_suffix", ""}, + { "overlay_round_abbreviation_prefix", "回合 " }, + { "overlay_round_abbreviation_suffix", ""}, + { "overlay_wins", "获胜" }, + { "overlay_win", ""}, + { "overlay_finish", "结束" }, + { "overlay_queued_players", "排队的玩家" }, + { "overlay_ping", "延迟" }, + { "overlay_best", ""}, + { "overlay_inning", ""}, + { "overlay_position_prefix", "第" }, + { "overlay_position_suffix", "名" }, + { "overlay_position_win", "赢" }, + { "overlay_position_survived", "幸存者" }, + { "overlay_position_qualified", "过关" }, + { "overlay_position_eliminated", "被淘汰" }, + { "overlay_picPositionLock_tooltip", " 将叠加层固定到其当前位置。" }, + { "overlay_picPositionNE_tooltip", " 将叠加层固定到屏幕的左上角。" }, + { "overlay_picPositionNW_tooltip", " 将叠加层固定到屏幕的右上角。" }, + { "overlay_picPositionSE_tooltip", " 将叠加层固定到屏幕的左下角。" }, + { "overlay_picPositionSW_tooltip", " 将叠加层固定到屏幕的右下角。" }, + + { "profile_title", "个人资料设置" }, + { "profile_list", "个人资料列表" }, + { "profile_add_tab", "添加" }, + { "profile_add_tab_label1", "个人资料名称" }, + { "profile_add_tab_button", "添加" }, + { "profile_rename_tab", "重命名" }, + { "profile_rename_tab_label1", "个人资料" }, + { "profile_rename_tab_label2", "个人资料名称" }, + { "profile_rename_tab_button", "重命名" }, + { "profile_move_tab", "移动" }, + { "profile_move_tab_label1", "从" }, + { "profile_move_tab_label2", "至" }, + { "profile_move_tab_button", "移动" }, + { "profile_remove_tab", "移除" }, + { "profile_remove_tab_label1", "个人资料" }, + { "profile_remove_tab_label2", "* 只能删除不包含数据的个人资料" }, + { "profile_remove_tab_button", "移除" }, + { "profile_rounds_suffix", "轮次" }, + { "profile_apply_change_button", "保存" }, + { "profile_undo_change_button", "取消" }, + { "profile_add_select_title", "添加场次" }, + { "profile_add_select_question_prefix", "存在尚未导入的比赛记录。" }, + { "profile_add_select_question_suffix", "选择一个个人资料来导入。" }, + { "profile_add_select_question_suffix_linked_profiles", "数据将被添加到链接的配置文件中。" }, + { "profile_add_select_use_linked_profiles", "使用链接的个人资料" }, + { "profile_move_select_title", "移动游玩场次数据" }, + { "profile_move_select_description_prefix", "选择一个个人资料来移动游玩数据。" }, + { "profile_move_select_description_suffix", "选中的游玩数据" }, + { "profile_move_select_question_prefix", "是否要移动选中的 " }, + { "profile_move_select_question_infix", " 游玩数据到 " }, + { "profile_move_select_question_suffix", "个人资料?" }, + { "profile_move_select_button", "移动" }, + + { "custom_range_range", "范围" }, + { "custom_range_templates", "模板" }, + { "custom_range_legacy_season", "季节" }, + { "custom_range_ffa_season", "季节" }, + { "custom_range_season", "季节" }, + { "custom_range_legacy", "季节" }, + { "custom_range_ffa", "FFA" }, + { "custom_range_not_set", "没有设置" }, + { "custom_range_filter", "筛选" }, + } + }, + { Language.TraditionalChinese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "author", "Eunma" }, + { "main_by", "by" }, + { "main_on_twitch", "on Twitch" }, + { "main_multilingual", "多語言" }, + { "main_settings", "設置" }, + { "main_fall_guys_stats", "Fall Guys Stats" }, + { "main_filters", "篩選" }, + { "main_stats", "統計" }, + { "main_all", "全部" }, + { "main_season", "賽季" }, + { "main_week", "週" }, + { "main_day", "天" }, + { "main_session", "次" }, + { "main_custom_range", "自定" }, + { "main_party_type", "組隊" }, + { "main_party", "組隊" }, + { "main_solo", "單人" }, + { "main_profile", "個人資料" }, + { "main_profile_setting", "個人資料設置" }, + { "main_show_overlay", "顯示浮窗" }, + { "main_hide_overlay", "隱藏浮窗" }, + { "main_update", "升級" }, + { "main_manual_update_version", "手動更新版本" }, + { "main_help", "幫助" }, + { "main_launch_fall_guys", "啟動糖豆人" }, + { "main_useful_things", "有用的東西!" }, + { "main_fall_guys_wiki", "Fall Guys Wiki" }, + { "main_fall_guys_reddit", "Fall Guys Reddit" }, + { "main_fallalytics", "Fallalytics" }, + { "main_fallalytics_main", "Main Page" }, + { "main_fallalytics_find_player", "Find Player" }, + { "main_fallalytics_overall_rankings", "Overall Ranking" }, + { "main_fallalytics_level_rankings", "Level Rakings" }, + { "main_fallalytics_weekly_crown_league", "Weekly Crown League" }, + { "main_fallalytics_round_statistics", "Round Statistics" }, + { "main_fallalytics_show_statistics", "Show Statistics" }, + { "main_fallalytics_news", "News" }, + { "main_roll_off_club", "滾輪俱樂部" }, + { "main_lost_temple_analyzer", "失落的神廟分析器" }, + { "main_fall_guys_db", "FallGuys DB" }, + { "main_fall_guys_db_main", "Main Page" }, + { "main_fall_guys_db_shows", "Shows List" }, + { "main_fall_guys_db_discovery", "Discovery" }, + { "main_fall_guys_db_shop", "Item Shop" }, + { "main_fall_guys_db_newsfeeds", "Newsfeeds" }, + { "main_fall_guys_db_strings", "Localized Strings" }, + { "main_fall_guys_db_cosmetics", "All Cosmetics" }, + { "main_fall_guys_db_crown_ranks", "Crown Ranks" }, + { "main_fall_guys_db_live_events", "Live Events" }, + { "main_fall_guys_db_daily_shop", "Daily Items" }, + { "main_fall_guys_db_creative", "Creative Level Lookup" }, + { "main_fall_guys_db_faq", "FAQ" }, + { "main_fall_guys_official", "Fall Guys Official" }, + { "main_fall_guys_wiki_tooltip", "Fall Guys 的終極維基指南,由玩家編寫和維護。" }, + { "main_fall_guys_reddit_tooltip", "由社區運營和開發者支持的 Reddit 子版塊,專門針對 Fall Guys。" }, + { "main_fallalytics_tooltip", "Fallalytics 是一個工具,用於探索收集到的有關 Fall Guys 回合分佈的數據。" }, + { "main_roll_off_club_tooltip", "成為滾滾專家!" }, + { "main_lost_temple_analyzer_tooltip", "對失落的寺廟進行完整的視覺分析。" }, + { "main_todays_show_tooltip", "看看目前有哪些節目。" }, + { "main_fall_guys_official_tooltip", "Fall Guys(以前稱為 Fall Guys: Ultimate Knockout)是一款由 Mediatonic 開發並由 Epic Games 發行的免費平台大逃殺遊戲。" }, + { "main_overlay_show_tooltip", " 按 (Ctrl + O) 顯示疊加層。" }, + { "main_overlay_hide_tooltip", " 按 (Ctrl + O) 隱藏疊加層。" }, + { "main_overlay_shortcut_tooltip", " 按 (Ctrl + M) 可疊加始終顯示在頂部。\n 按 (Ctrl + T) 切換背景顏色。\n 按 (Ctrl + F) 翻轉顯示。\n 按 (Ctrl + C) 可按平台顯示用戶數量。\n 按 (Ctrl + R) 圓形名稱會顯示圓形類型的彩色徽章。\n 按 (Ctrl + Shift + ↑ 或 ↓) 調整疊加的透明度。\n 按 (Ctrl + Shift + Z) 自動改變為鏈接的個人資料。\n 按 (Ctrl + Shift + X) 重置疊加大小。\n 按 (Ctrl + Shift + C) 重置疊加層的位置。" }, + { "main_update_prefix_tooltip", "如果您希望 FallGuysStats 繼續更新," }, + { "main_update_suffix_tooltip", " 請不要忘記為 GitHub 存儲庫加註星標! " }, + { "main_you_can_update_new_version_prefix_tooltip", " 您可以更新到新版本(" }, + { "main_you_can_update_new_version_suffix_tooltip", ")! " }, + { "main_exit_program", "退出程序" }, + { "main_plays", "遊玩時長" }, + { "main_shows", "節目" }, + { "main_inning", ""}, + { "main_rounds", "輪" }, + { "main_round", ""}, + { "main_wins", "獲勝" }, + { "main_win", ""}, + { "main_finals", "決賽" }, + { "main_kudos", "榮耀值" }, + { "main_hour", " h " }, + { "main_min", " m " }, + { "main_sec", " s" }, + { "main_round_name", "關卡名" }, + { "main_played", "遊玩" }, + { "main_qualified", "達標" }, + { "main_gold", "金牌" }, + { "main_silver", "銀牌" }, + { "main_bronze", "銅牌" }, + { "main_fastest", "最快" }, + { "main_longest", "最長" }, + { "main_ave_finish", "平均" }, + { "main_hoopsie_legends", "鑽圈王者" }, + { "main_hoopsie_heroes", "鑽圈英雄" }, + { "main_profile_solo", "單人" }, + { "main_profile_ranked_solo", "單人排名戰" }, + { "main_profile_duo", "雙人" }, + { "main_profile_ranked_duo", "雙人排名戰" }, + { "main_profile_trio", "三人" }, + { "main_profile_ranked_trio", "三人排名戰" }, + { "main_profile_squad", "四人" }, + { "main_profile_ranked_squad", "四人排名戰" }, + { "main_profile_custom", "風俗" }, + { "main_profile_creative", "Creative" }, + { "main_custom_and_casual_shows", "風俗/探索" }, + { "main_export_csv", "導出 CSV" }, + { "main_export_html", "導出 HTML" }, + { "main_export_bbcode", "導出 BBCode" }, + { "main_export_markdown", "導出 MarkDown" }, + { "main_delete_shows", "刪除" }, + { "main_move_shows", "移動遊玩場次數據" }, + { "main_delete_finish_time", "刪除“結束”時間" }, + { "main_update_creative_map_infos", "更新信息" }, + { "main_update_program", "更新 Fall Guys Stats" }, + { "main_updating_program", "正在下載..." }, + { "main_update_complete", "更新完成" }, + + { "level_detail_medal", "勳章" }, + { "level_detail_is_final", "決賽" }, + { "level_detail_show_id", "節目場次" }, + { "level_detail_show_name_id", "節目名" }, + { "level_detail_round", "輪次" }, + { "level_detail_round_suffix", ""}, + { "level_detail_name", "關卡" }, + { "level_detail_players", "玩家" }, + { "level_detail_playersPs4", "PS4" }, + { "level_detail_playersPs4_desc", "Play Station 4" }, + { "level_detail_playersPs5", "PS5" }, + { "level_detail_playersPs5_desc", "Play Station 5" }, + { "level_detail_playersXb1", "Xbox One" }, + { "level_detail_playersXb1_desc", "Xbox One" }, + { "level_detail_playersXsx", "Xbox Series X" }, + { "level_detail_playersXsx_desc", "Xbox Series X" }, + { "level_detail_playersSw", "Switch" }, + { "level_detail_playersSw_desc", "Nintendo Switch" }, + { "level_detail_playersPc", "電腦" }, + { "level_detail_playersPc_desc", "電腦" }, + { "level_detail_playersAndroid", "Android" }, + { "level_detail_playersAndroid_desc", "Android" }, + { "level_detail_playersIos", "iOS" }, + { "level_detail_playersIos_desc", "iOS" }, + { "level_detail_playersBots", "機器人" }, + { "level_detail_playersBots_desc", "機器人" }, + { "level_detail_start", "開始" }, + { "level_detail_end", "時長" }, + { "level_detail_finish", "結束" }, + { "level_detail_position", "名次" }, + { "level_detail_score", "分數" }, + { "level_detail_kudos", "榮耀值" }, + { "level_detail_gold", "金牌" }, + { "level_detail_silver", "銀牌" }, + { "level_detail_bronze", "銅牌" }, + { "level_detail_pink", "合格" }, + { "level_detail_eliminated", "淘汰" }, + { "level_detail_round_summary", "每輪統計信息" }, + { "level_detail_show_stats", "顯示統計列表" }, + { "level_detail_round_stats", "每輪統計列表" }, + { "level_detail_final_stats", "決賽統計列表" }, + { "level_detail_level_stats", "關卡統計列表" }, + { "level_detail_wins_per_day", "每日獲勝數" }, + { "level_detail_stats_by_round", "回合統計圖" }, + { "level_detail_success_reaching_finals", "成功進入決賽" }, + { "level_detail_failure_reaching_finals", "未進入決賽" }, + { "level_detail_shows", "場" }, + { "level_detail_finals", "決賽" }, + { "level_detail_wins", "冠軍" }, + { "level_detail_losses", "失敗" }, + { "level_detail_date", "日期" }, + { "level_detail_finals_stats", "總決賽統計" }, + { "level_detail_tooltiptext_prefix", "點擊查看" }, + { "level_detail_tooltiptext_suffix", "的等級統計。" }, + { "level_date_format", "yyyy年 M月 d日 (ddd)" }, + { "level_grid_date_format", "yyyy年 M月 d日 HH:mm (ddd)" }, + { "level_detail_no_data", "數據不存在。" }, + { "level_detail_no_data_caption", "沒有數據" }, + { "level_detail_share_code_copied", " 分享代碼已復制。" }, + { "level_detail_share_code_copied_tooltip", "雙擊來複製共享代碼。" }, + { "level_detail_creative_author", "作者" }, + { "level_detail_creative_likes", "讚" }, + { "level_detail_creative_dislikes", "不喜歡" }, + { "level_detail_creative_share_code", "分享代碼" }, + { "level_detail_creative_version", "版本" }, + { "level_detail_creative_max_players", "最多玩家" }, + { "level_detail_creative_time_limit", "時限" }, + { "level_detail_creative_platform", "平台" }, + { "level_detail_creative_last_modified", "上一次更改" }, + { "level_detail_creative_play_count", "播放計數" }, + { "level_detail_creative_inning", ""}, + { "level_detail_creative_player_suffix", "人" }, + { "level_detail_online_platform_eos", "Epic Games" }, + { "level_detail_online_platform_steam", "Steam" }, + { "level_detail_online_platform_psn", "PSN" }, + { "level_detail_online_platform_xbl", "Xbox Live" }, + { "level_detail_online_platform_nso", "Nintendo Switch Online" }, + { "level_detail_race", "Race" }, + { "level_detail_hunt", "Hunt" }, + { "level_detail_survival", "Survival" }, + { "level_detail_logic", "Logic" }, + { "level_detail_team", "Team" }, + { "level_detail_invisibeans", "Invisibeans" }, + { "level_detail_final", "Final" }, + + { "level_round_played_prefix", "播放了" }, + { "level_round_played_suffix", ""}, + { "level_win_suffix", "勝" }, + { "level_wins_suffix", "勝" }, + { "level_loss_suffix", "負" }, + { "level_losses_suffix", "負" }, + { "level_no_statistical_data", " 無統計數據" }, + + { "leaderboard_menu_title", "排行榜" }, + { "leaderboard_report_cheater", "檢舉作弊者" }, + { "leaderboard_choose_a_round", "選擇一輪。" }, + { "leaderboard_overall_rank", "🏆 總排名" }, + { "leaderboard_search_players", "🔎 搜尋球員" }, + { "leaderboard_search_players_WaterMark", "🔎 我確實很美麗" }, + { "leaderboard_weekly_crown_league", "👑 每週皇冠聯賽" }, + { "leaderboard_total_players_prefix", "總共 " }, + { "leaderboard_total_players_suffix", " 名玩家" }, + { "leaderboard_see_full_rankings_in_fallalytics", "請參閱 FALLALYTICS 中的完整排名" }, + { "leaderboard_grid_header_rank", "#" }, + { "leaderboard_grid_header_show", "節目" }, + { "leaderboard_grid_header_player", "球員" }, + { "leaderboard_grid_header_record", "記錄" }, + { "leaderboard_grid_header_finish", "日期" }, + { "leaderboard_grid_header_score", "得分" }, + { "leaderboard_grid_header_period", "時期" }, + { "leaderboard_grid_header_first_places", "WRs(*)" }, + { "leaderboard_grid_anonymous", "匿名" }, + { "leaderboard_grid_just_before", "剛剛" }, + { "leaderboard_grid_today", "今天" }, + { "leaderboard_grid_yesterday", "昨天" }, + { "leaderboard_grid_the_day_before_yesterday", "前天" }, + { "leaderboard_grid_n_days_ago_prefix", ""}, + { "leaderboard_grid_n_days_ago_suffix", " 天前" }, + { "leaderboard_grid_n_weeks_ago_prefix", ""}, + { "leaderboard_grid_n_weeks_ago_suffix", " 週前" }, + { "leaderboard_grid_n_months_ago_prefix", ""}, + { "leaderboard_grid_n_months_ago_suffix", " 月前" }, + { "leaderboard_grid_n_years_ago_prefix", ""}, + { "leaderboard_grid_n_years_ago_suffix", " 年前" }, + { "leaderboard_grid_time_prefix", " 分" }, + { "leaderboard_grid_time_suffix", " 秒" }, + { "leaderboard_grid_header_crowns", "Crowns" }, + { "leaderboard_grid_header_shards", "Shards" }, + { "leaderboard_grid_header_country", "國家" }, + + { "profile_icon_enable_tooltip", ""}, + { "profile_icon_disable_tooltip", ""}, + { "profile_change_tooltip", "通過左鍵或右鍵單擊更改當前配置文件" }, + { "shows_detail_tooltip", "點擊查看每場統計信息" }, + { "rounds_detail_tooltip", "點擊查看每輪統計信息" }, + { "wins_detail_tooltip", "點擊查看獲勝統計信息" }, + { "finals_detail_tooltip", "點擊查看決賽統計信息" }, + { "stats_detail_tooltip", "點擊查看各輪的統計信息" }, + + { "message_already_running_caption", "已在運行" }, + { "message_fall_guys_already_running", "糖豆人已在運行。" }, + { "message_tracker_already_running", "統計已在運行。" }, + { "message_register_shortcut_caption", "需要設置快捷方式路徑" }, + { "message_register_shortcut", "請設置糖豆人的快捷方式路徑。" }, + { "message_register_exe_caption", "需要設置exe路徑" }, + { "message_register_exe", "請為糖豆人設置一個exe路徑。" }, + { "message_wrong_selected_file_caption", "錯誤文件" }, + { "message_wrong_selected_file_epicgames", "請選擇糖豆人客戶端的快捷方式。" }, + { "message_wrong_selected_file_steam", "請選擇安裝文件夾中的 \"FallGuys_client_game.exe\"。" }, + { "message_not_installed_steam_caption", "未安裝" }, + { "message_not_installed_steam", "你沒有安裝Steam版的《Fall Guys》。" }, + { "message_not_installed_epicGames_caption", "未安裝" }, + { "message_not_installed_epicGames", "你沒有安裝Epic Games版的《Fall Guys》。" }, + { "message_save_csv_caption", "導出 CSV" }, + { "message_save_csv", "CSV 文件已保存。" }, + { "message_save_html_caption", "導出 HTML" }, + { "message_save_html", "Html 已保存至剪貼板。" }, + { "message_save_bbcode_caption", "導出 BBCode" }, + { "message_save_bbcode", "BBCode 已保存至剪貼板。" }, + { "message_save_markdown_caption", "導出 Markdown" }, + { "message_save_markdown", "MarkDown 已保存至剪貼板。" }, + { "message_save_data_caption", "保存數據" }, + { "message_save_data_linked_profiles", "你想把數據保存到鏈接的配置文件中嗎?" }, + { "message_save_data_linked_profiles_info_prefix", "注:默認配置文件為" }, + { "message_save_data_linked_profiles_info_suffix", ""}, + { "message_delete_show_caption", "移除場次" }, + { "message_delete_show_prefix", "確定要移除已選中的" }, + { "message_delete_show_suffix", "場次嗎?" }, + { "message_create_profile_caption", "創建個人資料" }, + { "message_create_profile_prefix", "是否要創建個人資料 " }, + { "message_create_profile_suffix", ""}, + { "message_same_profile_name_exists", "已註冊的設定檔之間存在相同的設定檔名稱。" }, + { "message_rename_profile_caption", "重命名個人資料" }, + { "message_rename_profile_prefix", "確定要將個人資料從 " }, + { "message_rename_profile_infix", " 更名到 " }, + { "message_rename_profile_suffix", "?" }, + { "message_move_profile_caption", "移動個人資料" }, + { "message_move_profile_prefix", "確定要將個人資料數據從 " }, + { "message_move_profile_infix", " 移動到 " }, + { "message_move_profile_suffix", "?" }, + { "message_delete_profile_caption", "刪除個人資料" }, + { "message_delete_profile_prefix", ""}, + { "message_delete_profile_infix", " 中游玩至今的全部個人資料將會被刪除。" }, + { "message_delete_profile_suffix", "確定要繼續嗎?" }, + { "message_save_profile_caption", "保存個人資料" }, + { "message_save_profile_prefix", "確定保存當前資料至 " }, + { "message_save_profile_suffix", " 個人資料中嗎?" }, + { "message_execution_caption", "啟動糖豆人" }, + { "message_execution_question", "確定要啟動糖豆人嗎?" }, + { "message_update_question_caption", "升級程序" }, + { "message_update_question_prefix", "Fall Guys Stats 有新版本。" }, + { "message_update_question_suffix", "是否要立刻升級?" }, + { "message_update_latest_version", "已更新至最新版本。" }, + { "message_update_not_determine_version", "無法檢測版本號。" }, + { "message_save_csv_file_caption", "保存為 CSV" }, + { "message_update_error_caption", "更新錯誤" }, + { "message_update_error", "無法檢查更新。" }, + { "message_program_error_caption", "程序錯誤" }, + { "message_delete_finish_time_caption", "刪除“結束”時間" }, + { "message_delete_finish_time", "確定要繼續嗎?" }, + { "message_update_creative_map_caption", "更新創意地圖資訊" }, + { "message_update_creative_map_with_sharecode_prefix", "您想用分享代碼「" }, + { "message_update_creative_map_with_sharecode_suffix", "」更新地圖資訊嗎?" }, + { "message_update_creative_map_with_title_prefix", "您想更新「" }, + { "message_update_creative_map_with_title_suffix", "」的地圖資訊嗎?" }, + { "message_update_creative_map_error", "尋找廣告素材等級時發生錯誤。" }, + { "message_new_personal_best_caption", "⏱️ 新個人最佳成績" }, + { "message_new_personal_best_prefix", "您在 " }, + { "message_new_personal_best_suffix", " 中創造了新的個人最佳成績。" }, + { "message_new_personal_best_timediff_by_minute_prefix", "少了 " }, + { "message_new_personal_best_timediff_by_minute_infix", " 分 " }, + { "message_new_personal_best_timediff_by_minute_suffix", " 秒!" }, + { "message_new_personal_best_timediff_by_second", " 秒縮短!" }, + { "message_test_notifications_caption", "🔔 測試通知" }, + { "message_connected_to_server_caption", "🔔 服務器連接通知" }, + { "message_connected_to_server_prefix", "您已連接到 " }, + { "message_connected_to_server_suffix", " 服務器。" }, + { "message_check_internet_connection_caption", "網絡錯誤" }, + { "message_check_internet_connection", "請檢查您的互聯網連接。" }, + { "message_changelog_caption", "變更日誌" }, + { "message_changelog_bugfix_and_program_optimization", "Bug修復和程序優化。" }, + { "message_changelog_updated_new_show_and_round_names", "更新了新的節目和回合名稱。" }, + { "message_changelog_overlay_display_improvements", "疊加顯示改進。" }, + { "message_changelog_added_and_improved_win_per_day_graph_feature", "新增並改進了每日獲勝圖表功能。" }, + { "message_changelog_released_the_fallalytics_speedrun_leaderboard", "發布《FALLALYTICS》競速排行榜" }, + { "message_changelog_weekly_crown_league_is_now_open_on_fallalytics", "每週皇冠聯賽現已在 FALLALYTICS 上開放。" }, + { "message_changelog_banning_users_using_hacking_programs", "禁止使用黑客程式的用戶。" }, + { "message_changelog_add_proxy_settings", "新增代理設定" }, + + { "numeric_suffix", ""}, + { "message_question_mark", "?" }, + { "message_full_stop", "。" }, + { "message_exclamation_mark", "!" }, + { "message_comma", "," }, + + { "settings_title", "設置" }, + { "settings_program", "可用" }, + { "settings_display", "展示" }, + { "settings_launch_fallguys", "啟動糖豆人" }, + { "settings_fallalytics", "Fallalytics" }, + { "settings_proxy_settings", "代理設定" }, + { "settings_use_a_proxy_server", "使用代理伺服器" }, + { "settings_proxy_address", "地址" }, + { "settings_proxy_port", "港口" }, + { "settings_enable_proxy_authentication", "啟用代理身份驗證" }, + { "settings_proxy_user_name", "使用者名稱" }, + { "settings_proxy_password", "密碼" }, + { "settings_test_proxy_connection", "測試代理連接" }, + { "settings_enter_fallalytics_api_key", "(可選)輸入Fallalytics的API密鑰" }, + { "settings_sends_info_about_rounds_played_to_fallalytics", "將比賽回合和個人最佳成績的資訊發送至 Fallalytics" }, + { "settings_join_a_weekly_crown_league", "參加每週一次的皇冠聯賽" }, + { "settings_sends_anonymously_to_fallalytics", "👻 匿名發送" }, + { "settings_fallalytics_desc", "ℹ️ Fallalytics 是一個工具,用於探索收集到的有關 Fall Guys 回合分佈的數據。" }, + { "settings_visit_fallalytics", "訪問Fallalytics" }, + { "settings_about", "關於這個應用程序" }, + { "settings_log_path", "📁 日誌文件路徑" }, + { "settings_log_path_description", "🏷️ 僅在程序無法正確讀取日誌地址時才改動此設置。" }, + { "settings_stats", "統計" }, + { "settings_theme", "主題" }, + { "settings_theme_light", "☀️ 輕" }, + { "settings_theme_dark", "🌑 深色" }, + { "settings_preferred_ip_geolocation_service", "首選IP地理定位服務" }, + { "settings_auto_selected", "自動" }, + { "settings_ipinfo_token", "Token" }, + { "settings_enter_ipinfo_token", "(可選)" }, + { "settings_link_to_get_ipinfo_token", "建立帳戶獲取token" }, + { "settings_previous_win", "之前獲勝次數" }, + { "settings_before_using_tracker", "(使用此軟件前)" }, + { "settings_auto_update_program", "🔄️ 啟動時檢查更新" }, + { "settings_rename_hoopsie_legends_to_hoopsie_heroes", "將 鑽圈王者 重命名為 鑽圈英雄" }, + { "settings_overlay", "浮窗" }, + { "settings_hide_wins_info", "隱藏獲勝信息" }, + { "settings_hide_round_info", "隱藏關卡信息" }, + { "settings_hide_time_info", "隱藏時間信息" }, + { "settings_hide_percentages", "隱藏百分比" }, + { "settings_show_tab_for_currnet_filter__profile", "為當前的篩選器和個人資料顯示標籤" }, + { "settings_wins__final_filter", "獲勝 / 決賽篩選" }, + { "settings_qualify__gold_filter", "達標 / 第一篩選" }, + { "settings_fastest__longest_filter", "最快 / 最久篩選" }, + { "settings_all_time_stats", "全部時間統計" }, + { "settings_stats_and_party_filter", "統計和組隊篩選" }, + { "settings_season_stats", "賽季統計" }, + { "settings_week_stats", "週統計" }, + { "settings_day_stats", "日統計" }, + { "settings_session_stats", "場次統計" }, + { "settings_cycle_time", "循環時間" }, + { "settings_sec", "秒" }, + { "settings_background_image", "背景圖" }, + { "settings_background", "背景" }, + { "settings_background_opacity", "背景不透明度" }, + { "settings_lock_button_location", "鎖定按鈕位置" }, + { "settings_lock_button_location_top", "頂部" }, + { "settings_lock_button_location_bottom", "底部" }, + { "settings_transparent", "透明" }, + { "settings_magenta", "洋紅" }, + { "settings_red", "紅" }, + { "settings_green", "綠" }, + { "settings_blue", "藍" }, + { "settings_black", "黑" }, + { "settings_white", "白" }, + { "settings_cycle_qualify__gold", "循環 達標 / 第一" }, + { "settings_qualify_only", "僅 達標" }, + { "settings_gold_only", "僅 第一" }, + { "settings_cycle_best__lowest", "循環 最佳 / 最低" }, + { "settings_personal_best_only", "僅限個人最佳紀錄" }, + { "settings_personal_lowest_only", "僅限個人最低記錄`" }, + { "settings_cycle_win__final_streak", "循環 連勝 / 連續晉級決賽" }, + { "settings_win_streak_only", "僅 連勝" }, + { "settings_final_streak_only", "僅 連續晉級決賽" }, + { "settings_cycle_players__ping", "循環 玩家數 / 延遲" }, + { "settings_players_only", "僅 玩家數" }, + { "settings_ping_only", "僅 延遲" }, + { "settings_flip_display_horizontally", "水平翻轉 (Ctrl + F)" }, + { "settings_always_show_on_top", "📌 置頂顯示 (Ctrl + M)" }, + { "settings_display_players_based_on_platform", "🚹 按照平台顯示玩家 (Ctrl + C)" }, + { "settings_color_round_name_based_on_round_type", "🏳️‍🌈 按照關卡類型顯示顏色 (Ctrl + R)" }, + { "settings_auto_change_profile", "🔃 自動改變為鏈接的個人資料 (Ctrl + Shift + Z)" }, + { "settings_shade_the_flag_image", "🏁 對要顯示的服務器標誌圖像進行著色" }, + { "settings_diaplay_current_time", "🕓 等待時顯示當前時間" }, + { "settings_diaplay_game_played_info", "ℹ️ 在一輪遊戲結束時顯示已進行的遊戲訊息 (排名、倖存者數、勝利、淘汰等)" }, + { "settings_count_players_during_the_level", "統計比賽中通過或被淘汰的玩家" }, + { "settings_custom_overlay_font", "🅰️ 自定義浮窗字體" }, + { "settings_select_font", "選擇字體" }, + { "settings_reset_font", "重置字體" }, + { "settings_font_example", "示例" }, + { "settings_round_example", "第 3 輪:水漲爬高" }, + { "settings_sorting_options", "排序選項" }, + { "settings_ignore_level_type_when_sorting", "📶 排序時忽略關卡類型" }, + { "settings_grouping_creative_round_levels", "🛠️ 將創意回合級別分組為一類" }, + { "settings_record_escape_during_a_game", "👻 如果你在比賽中逃跑,記錄為失敗" }, + { "settings_game_options", "遊戲選項" }, + { "settings_game_options_platform", "平台" }, + { "settings_fall_guys_exe_location", "↗️ 遊戲可執行路徑" }, + { "settings_fall_guys_exe_openfile_title", "選擇遊戲可執行文件" }, + { "settings_fall_guys_exe_openfile_name", "FallGuys_client_game.exe" }, + { "settings_fall_guys_exe_openfile_filter", "EXE Files (*.exe)|*.exe" }, + { "settings_fall_guys_shortcut_location", "↗️ 遊戲快捷鍵文件路徑" }, + { "settings_fall_guys_shortcut_openfile_title", "選擇一個遊戲快捷方式文件" }, + { "settings_fall_guys_shortcut_openfile_name", ""}, + { "settings_fall_guys_shortcut_openfile_filter", "URL Files (*.url)|*.url" }, + { "settings_browse", "瀏覽" }, + { "settings_launch_fall_guys_on_tracker_launch", "啟動統計器時啟動遊戲" }, + { "settings_language", "語言" }, + { "settings_new_update_prefix", "新更新" }, + { "settings_new_update_suffix", "可用" }, + { "settings_save", "保存" }, + { "settings_cancel", "取消" }, + { "settings_select_language_title", "選擇你的語言" }, + { "settings_auto_generate_profiles", "自動生成配置文件" }, + { "settings_select_language_button", "選擇" }, + { "settings_system_tray_icon", "📍 使用系統托盤圖標" }, + { "settings_notify_personal_best", "🔔 當您在比賽中打破個人最佳成績時,您會收到 Windows 通知" }, + { "settings_notify_server_connected", "🔔 連接服務器時,帶有服務器國家/地區名稱的 Windows 通知" }, + { "settings_mute_notification_sounds", "🔇 將通知聲音靜音" }, + { "settings_notification_sounds_01", "🔊 01" }, + { "settings_notification_sounds_02", "🔊 02" }, + { "settings_notification_sounds_03", "🔊 03" }, + { "settings_notification_sounds_04", "🔊 04" }, + { "settings_notification_window_bottom_left", "左下方" }, + { "settings_notification_window_bottom_right", "右下角" }, + { "settings_notification_window_top_left", "左上方" }, + { "settings_notification_window_top_right", "右上角" }, + { "settings_prevent_overlay_mouse_clicks", "🖱️ 防止鼠標光標錯誤" }, + { "settings_github", "GitHub (ShootMe/FallGuysStats)" }, + { "settings_issue_traker", "問題追踪器" }, + { "settings_translation", "翻譯" }, + { "settings_font_need_to_be_installed_caption", "需要安裝字體" }, + { "settings_font_need_to_be_installed_message", "安裝 Fall Guys Stats 文件夾中的字體文件。" }, + { "settings_checking_for_updates", "查詢更新..." }, + + { "overlay_streak", "連勝" }, + { "overlay_streak_suffix", ""}, + { "overlay_streak_finals", "連續晉級決賽" }, + { "overlay_finals", "決賽" }, + { "overlay_qualify_chance", "達標" }, + { "overlay_qualify_gold", "第一" }, + { "overlay_longest", "最久" }, + { "overlay_fastest", "最快" }, + { "overlay_personal_best", "個人最佳得分" }, + { "overlay_high_score", "最高分" }, + { "overlay_low_score", "最低分" }, + { "overlay_duration", "時間" }, + { "overlay_players", "玩家" }, + { "overlay_current_time", "當前時間" }, + { "overlay_round_prefix", "回合 " }, + { "overlay_round_suffix", ""}, + { "overlay_round_abbreviation_prefix", "回合 " }, + { "overlay_round_abbreviation_suffix", ""}, + { "overlay_wins", "獲勝" }, + { "overlay_win", ""}, + { "overlay_finish", "結束" }, + { "overlay_queued_players", "排隊的玩家" }, + { "overlay_ping", "延遲" }, + { "overlay_best", ""}, + { "overlay_inning", ""}, + { "overlay_position_prefix", "第" }, + { "overlay_position_suffix", "名" }, + { "overlay_position_win", "贏" }, + { "overlay_position_survived", "倖存者" }, + { "overlay_position_qualified", "過關" }, + { "overlay_position_eliminated", "被淘汰" }, + { "overlay_picPositionLock_tooltip", " 將疊加層固定到其當前位置。" }, + { "overlay_picPositionNE_tooltip", " 將疊加層固定到屏幕的左上角。" }, + { "overlay_picPositionNW_tooltip", " 將疊加層固定到屏幕的右上角。" }, + { "overlay_picPositionSE_tooltip", " 將疊加層固定到屏幕的左下角。" }, + { "overlay_picPositionSW_tooltip", " 將疊加層固定到屏幕的右下角。" }, + + { "profile_title", "個人資料設置" }, + { "profile_list", "個人資料列表" }, + { "profile_add_tab", "添加" }, + { "profile_add_tab_label1", "個人資料名稱" }, + { "profile_add_tab_button", "添加" }, + { "profile_rename_tab", "重命名" }, + { "profile_rename_tab_label1", "個人資料" }, + { "profile_rename_tab_label2", "個人資料名稱" }, + { "profile_rename_tab_button", "重命名" }, + { "profile_move_tab", "移動" }, + { "profile_move_tab_label1", "從" }, + { "profile_move_tab_label2", "至" }, + { "profile_move_tab_button", "移動" }, + { "profile_remove_tab", "移除" }, + { "profile_remove_tab_label1", "個人資料" }, + { "profile_remove_tab_label2", "* 只能刪除不包含數據的個人資料" }, + { "profile_remove_tab_button", "移除" }, + { "profile_rounds_suffix", "輪次" }, + { "profile_apply_change_button", "保存" }, + { "profile_undo_change_button", "取消" }, + { "profile_add_select_title", "添加場次" }, + { "profile_add_select_question_prefix", "存在尚未導入的比賽記錄。" }, + { "profile_add_select_question_suffix", "選擇一個個人資料來導入。" }, + { "profile_add_select_question_suffix_linked_profiles", "數據將被添加到鏈接的配置文件中。" }, + { "profile_add_select_use_linked_profiles", "使用鏈接的個人資料" }, + { "profile_move_select_title", "移動遊玩場次數據" }, + { "profile_move_select_description_prefix", "選擇一個個人資料來移動遊玩數據。" }, + { "profile_move_select_description_suffix", "選中的遊玩數據" }, + { "profile_move_select_question_prefix", "是否要移動選中的 " }, + { "profile_move_select_question_infix", " 遊玩數據到 " }, + { "profile_move_select_question_suffix", "個人資料?" }, + { "profile_move_select_button", "移動" }, + + { "custom_range_range", "範圍" }, + { "custom_range_templates", "模板" }, + { "custom_range_legacy_season", "季節" }, + { "custom_range_ffa_season", "季節" }, + { "custom_range_season", "季節" }, + { "custom_range_legacy", "季節" }, + { "custom_range_ffa", "FFA" }, + { "custom_range_not_set", "沒有設置" }, + { "custom_range_filter", "篩選" }, + } + }, + }; + + private static readonly Dictionary> MultilingualLevelsDictionary = new Dictionary> { + { Language.English, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "round_airtime", "Airtime" }, + { "round_bluejay", "Bean Hill Zone" }, + { "round_biggestfan", "Big Fans" }, + { "round_hoops_revenge_symphony_launch_show", "Bounce Party" }, + { "round_king_of_the_hill", "Bubble Trouble" }, + { "round_1v1_button_basher", "Button Bashers" }, + { "round_satellitehoppers_almond", "Cosmic Highway" }, + { "round_door_dash", "Door Dash" }, + { "round_gauntlet_02", "Dizzy Heights" }, + { "round_ffa_button_bashers_squads_almond", "Frantic Factory" }, + { "round_iceclimb", "Freezy Peak" }, + { "round_dodge_fall", "Fruit Chute" }, + { "round_see_saw_360", "Full Tilt" }, + { "round_chompchomp", "Gate Crash" }, + { "round_gauntlet_01", "Hit Parade" }, + { "round_slippy_slide", "Hoop Chute" }, + { "round_hoops_blockade_solo", "Hoopsie Legends" }, + { "round_gauntlet_04", "Knight Fever" }, + { "round_follow-the-leader_s6_launch", "Leading Light" }, + { "round_drumtop", "Lily Leapers" }, + { "round_gauntlet_08", "Party Promenade" }, + { "round_penguin_solos", "Pegwin Pool Party" }, + { "round_pipedup_s6_launch", "Pipe Dream" }, + { "round_pixelperfect_almond", "Pixel Painters" }, + { "round_follow_the_line", "Puzzle Path" }, + { "round_tunnel_race", "Roll On" }, + { "round_see_saw", "See Saw" }, + { "round_shortcircuit", "Short Circuit" }, + { "round_skeefall", "Ski Fall" }, + { "round_gauntlet_06", "Skyline Stumble" }, + { "round_lava", "Slime Climb" }, + { "round_slimeclimb_2", "The Slimescraper" }, + { "round_gauntlet_10_almond", "Space Race" }, + { "round_slide_chute", "Speed Slider" }, + { "round_short_circuit_2_symphony_launch_show", "Speed Circuit" }, + { "round_starlink_almond", "Starchart" }, + { "round_tip_toe", "Tip Toe" }, + { "round_gauntlet_09_symphony_launch_show", "Track Attack" }, + { "round_gauntlet_07", "Treetop Tumble" }, + { "round_gauntlet_05", "Tundra Run" }, + { "round_gauntlet_03", "The Whirlygig" }, + { "round_wall_guys", "Wall Guys" }, + { "round_fruitpunch_s4_show", "Big Shots" }, + { "round_blastballruins", "Blastlantis" }, + { "round_block_party", "Block Party" }, + { "round_hoverboardsurvival_s4_show", "Hoverboard Heroes" }, + { "round_hoverboardsurvival2_almond", "Hyperdrive Heroes" }, + { "round_jump_club", "Jump Club" }, + { "round_match_fall", "Perfect Match" }, + { "round_tunnel", "Roll Out" }, + { "round_snowballsurvival", "Snowball Survival" }, + { "round_robotrampage_arena_2", "Stompin' Ground" }, + { "round_fruit_bowl", "Sum Fruit" }, + { "round_tail_tag", "Tail Tag" }, + { "round_spin_ring_symphony_launch_show", "The Swiveller" }, + { "round_1v1_volleyfall_symphony_launch_show", "Volleyfall" }, + { "round_basketfall_s4_show", "Basketfall" }, + { "round_egg_grab", "Egg Scramble" }, + { "round_egg_grab_02", "Egg Siege" }, + { "round_fall_ball_60_players", "Fall Ball" }, + { "round_ballhogs", "Hoarders" }, + { "round_hoops", "Hoopsie Daisy" }, + { "round_jinxed", "Jinxed" }, + { "round_chicken_chase", "Pegwin Pursuit" }, + { "round_territory_control_s4_show", "Power Trip" }, + { "round_rocknroll", "Rock 'n' Roll" }, + { "round_snowy_scrap", "Snowy Scrap" }, + { "round_invisibeans", "Sweet Thieves" }, + { "round_pumpkin_pie", "Treat Thieves" }, + { "round_conveyor_arena", "Team Tail Tag" }, + { "round_blastball_arenasurvival_symphony_launch_show", "Blast Ball" }, + { "round_fall_mountain_hub_complete", "Fall Mountain" }, + { "round_floor_fall", "Hex-A-Gone" }, + { "round_hexaring_symphony_launch_show", "Hex-A-Ring" }, + { "round_hexsnake_almond", "Hex-A-Terrestrial" }, + { "round_jump_showdown", "Jump Showdown" }, + { "round_kraken_attack", "Kraken Slam" }, + { "round_crown_maze", "Lost Temple" }, + { "round_tunnel_final", "Roll Off" }, + { "round_royal_rumble", "Royal Fumble" }, + { "round_thin_ice", "Thin Ice" }, + { "round_tiptoefinale_almond", "Tip Toe Finale" }, + + { "user_creative_race_round", "User Creative Race Round" }, + { "user_creative_survival_round", "User Creative Survival Round" }, + { "user_creative_hunt_round", "User Creative Points Round" }, + { "user_creative_logic_round", "User Creative Logic Round" }, + { "user_creative_team_round", "User Creative Team Round" }, + { "creative_race_round", "Creative Race Round" }, + { "creative_race_final_round", "Creative Race Final Round" }, + { "creative_survival_round", "Creative Survival Round" }, + { "creative_survival_final_round", "Creative Survival Final Round" }, + { "creative_hunt_round", "Creative Points Round" }, + { "creative_hunt_final_round", "Creative Points Final Round" }, + { "creative_logic_round", "Creative Logic Round" }, + { "creative_logic_final_round", "Creative Logic Final Round" }, + { "creative_team_round", "Creative Team Round" }, + { "creative_team_final_round", "Creative Team Final Round" }, + + // { "wle_main_filler_01", "Ruta en la selva" }, + // { "wle_main_filler_02", "ROTATION STATION" }, + // { "wle_main_filler_03", "canyon sun day" }, + // { "wle_main_opener_01", "Winter Disc-O" }, + // { "wle_main_opener_02", "Satellite Sprint" }, + // + // { "wle_s10_orig_round_001", "Beans Ahoy!" }, + // { "wle_s10_orig_round_002", "Airborne Antics" }, + // { "wle_s10_orig_round_003", "Scythes & Roundabouts" }, + // { "wle_s10_orig_round_004", "Cardio Runners" }, + // { "wle_s10_orig_round_005", "Fan Flingers" }, + // { "wle_s10_orig_round_006", "Uphill Struggle" }, + // { "wle_s10_orig_round_007", "Spinner Sprint" }, + // { "wle_s10_orig_round_008", "Lane Changers" }, + // { "wle_s10_orig_round_009", "Gentle Gauntlet" }, + // { "wle_s10_orig_round_010", "Square Up" }, + // { "wle_s10_orig_round_011", "Slide Showdown" }, + // { "wle_s10_orig_round_012", "Up & Down" }, + // { "wle_s10_orig_round_013", "Choo Choo Challenge" }, + // { "wle_s10_orig_round_014", "Runner Beans" }, + // { "wle_s10_orig_round_015", "Disc Dashers" }, + // { "wle_s10_orig_round_016", "Two Faced" }, + // { "wle_s10_orig_round_017", "Bellyflop Battlers" }, + // { "wle_s10_orig_round_018", "Apples & Oranges" }, + // { "wle_s10_orig_round_019", "Blueberry Bombardment" }, + // { "wle_s10_orig_round_020", "Chuting Stars" }, + // { "wle_s10_orig_round_021", "Slimy Slopes" }, + // { "wle_s10_orig_round_022", "Circuit Breakers" }, + // { "wle_s10_orig_round_023", "Winding Walkways" }, + // { "wle_s10_orig_round_024", "Wooseleum" }, + // { "wle_s10_orig_round_025", "Mount Boom" }, + // { "wle_s10_orig_round_026", "Hyperlink Hijinks" }, + // { "wle_s10_orig_round_027", "Fan Frolics" }, + // { "wle_s10_orig_round_028", "Windmill Road" }, + // { "wle_s10_orig_round_029", "Conveyor Clash" }, + // { "wle_s10_orig_round_030", "Mega Monument" }, + // { "wle_s10_orig_round_031", "Transfer Turnpike" }, + // { "wle_s10_orig_round_032", "Fortress Frolics" }, + // { "wle_s10_orig_round_033", "Super Door Dash" }, + // { "wle_s10_orig_round_034", "Spiral Of Woo" }, + // { "wle_s10_orig_round_035", "Tornado Trial" }, + // { "wle_s10_orig_round_036", "Hopscotch Havoc" }, + // { "wle_s10_orig_round_037", "Beat Bouncers" }, + // { "wle_s10_orig_round_038", "Blunder Bridges" }, + // { "wle_s10_orig_round_039", "Incline Rewind" }, + // { "wle_s10_orig_round_040", "Prismatic Parade" }, + // { "wle_s10_orig_round_041", "Swept Away" }, + // { "wle_s10_orig_round_042", "Balancing Act" }, + // { "wle_s10_orig_round_043", "Trouble Tower" }, + // { "wle_s10_orig_round_044", "Serpent Slalom" }, + // { "wle_s10_orig_round_045", "Floorless" }, + // { "wle_s10_orig_round_045_long", "Floorless" }, + // { "wle_s10_orig_round_046", "In The Cloud" }, + // { "wle_s10_orig_round_047", "Downstream Duel" }, + // { "wle_s10_orig_round_048", "Lost Palace" }, + // { "wle_s10_long_round_003", "Fall Speedway" }, + // { "wle_s10_long_round_004", "ZigZag Zoomies" }, + // { "wle_s10_long_round_005", "Terrabyte Trial" }, + // { "wle_s10_round_001", "Digi Trek" }, + // { "wle_s10_round_002", "Shortcut Links" }, + // { "wle_s10_round_003", "Upload Heights" }, + // { "wle_s10_round_004", "Parkour Panic" }, + // { "wle_s10_round_005", "Data Streams" }, + // { "wle_s10_round_006", "Gigabyte Gauntlet" }, + // { "wle_s10_round_007", "Cube Corruption" }, + // { "wle_s10_round_008", "Wham Bam Boom" }, + // { "wle_s10_round_009", "Firewall Finale" }, + // { "wle_s10_round_010", "Pixel Hearts" }, + // { "wle_s10_round_011", "Cyber Circuit" }, + // { "wle_s10_round_012", "Boom Blaster Trial" }, + // + // { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + // { "wle_s10_player_round_wk3_02", "Door Game" }, + // { "wle_s10_player_round_wk3_03", "Full Speed Sliding (FSS) - Jelly Road" }, + // { "wle_s10_player_round_wk3_04", "Sky High Run" }, + // { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + // { "wle_s10_player_round_wk3_07", "Descente Créative" }, + // { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + // { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + // { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + // { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + // { "wle_s10_player_round_wk3_12", "Variable Valley" }, + // { "wle_fp2_wk6_01", "Broken Course" }, + // { "wle_s10_player_round_wk3_14", "Tower of Fall" }, + // { "wle_s10_player_round_wk3_15", "Parkour Party" }, + // { "wle_s10_player_round_wk3_16", "Catastrophe Climb" }, + // { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + // { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + // { "wle_s10_player_round_wk3_19", "Sky Time" }, + // { "wle_s10_player_round_wk3_20", "EZz Map" }, + // + // { "wle_s10_player_round_wk4_01", "Slippery Stretch" }, + // { "wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + // { "wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + // { "wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + // { "wle_s10_player_round_wk4_06", "Topsie Tursie" }, + // { "wle_s10_player_round_wk4_07", "Arcade Assault" }, + // { "wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + // { "wle_s10_player_round_wk4_09", "Green Beans" }, + // { "wle_s10_player_round_wk4_10", "Hop Hill" }, + // { "wle_s10_player_round_wk4_11", "Quick Sliders" }, + // { "wle_s10_player_round_wk4_12", "Split Path" }, + // { "wle_s10_player_round_wk4_13", "Piso resbaloso" }, + // { "wle_s10_player_round_wk4_15", "Snowboard Street" }, + // { "wle_s10_player_round_wk4_18", "House Invasion" }, + // { "wle_s10_player_round_wk4_19", "SOLO FULL-TILT RAGE" }, + // { "wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + // { "wle_s10_player_round_wk4_21", "Spin" }, + // { "wle_s10_player_round_wk4_22", "Lane Changers" }, + // + // { "wle_s10_player_round_wk5_01", "Block Park" }, + // { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + // { "wle_s10_player_round_wk5_03", "Digital Temple" }, + // { "wle_s10_player_round_wk5_04", "Tower Escape" }, + // { "wle_s10_player_round_wk5_05", "Tower Dash" }, + // { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + // { "wle_s10_player_round_wk5_07", "Looooping" }, + // { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + // { "wle_s10_player_round_wk5_10", "Siank Arena" }, + // { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + // { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + // { "wle_s10_player_round_wk5_13", "Dessert Village" }, + // { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + // { "wle_s10_player_round_wk5_15", "Beast Route" }, + // { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + // { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + // { "wle_s10_player_round_wk5_18", "Digital Doom" }, + // + // { "wle_s10_player_round_wk6_01", "Hammer Heaven" }, + // { "wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + // { "wle_s10_player_round_wk6_03", "Castle Rush" }, + // { "wle_s10_player_round_wk6_04", "Chaotic Race" }, + // { "wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + // { "wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + // { "wle_s10_player_round_wk6_08", "Flower Power" }, + // { "wle_s10_player_round_wk6_09", "Dimension Explorer" }, + // { "wle_s10_player_round_wk6_10", "Forked Passage" }, + // { "wle_s10_player_round_wk6_12", "The Bee Hive" }, + // { "wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + // { "wle_s10_player_round_wk6_14", "Snek" }, + // { "wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + // { "wle_s10_player_round_wk6_17", "Slippery Helixes" }, + // { "wle_s10_player_round_wk6_18", "Recess" }, + // { "wle_s10_player_round_wk6_19", "Parrot river" }, + // { "wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + // + // { "current_wle_fp3_07_01", "Block Sledding" }, + // { "current_wle_fp3_07_02", "Layup Wallop" }, + // { "current_wle_fp3_07_03", "Minecart Mayhem" }, + // { "current_wle_fp3_07_04", "Bouncing Pass" }, + // { "current_wle_fp3_07_05", "Ball Factory" }, + // { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + // { "current_wle_fp3_07_0_02", "Woo-F-O" }, + // { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + // + // { "current_wle_fp3_08_01", "Grabbers Territory" }, + // { "current_wle_fp3_08_02", "A Way Out" }, + // { "current_wle_fp3_08_03", "Wall Block" }, + // { "current_wle_fp3_08_04", "The dream island" }, + // { "current_wle_fp3_08_05", "Rainbow pulsion" }, + // { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + // { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + // { "current_wle_fp3_08_10", "Crazy boxes" }, + // { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + // { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + // { "current_wle_fp3_08_15", "Stumble Teams" }, + // { "current_wle_fp3_08_16", "Twisting Tower" }, + // { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + // { "current_wle_fp3_08_18", "The Rising Blocks" }, + // { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + // { "current_wle_fp3_09_01", "The up tower" }, + // { "current_wle_fp3_09_02", "Short shuriken" }, + // { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + // { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + // { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + // { "current_wle_fp3_09_06", "Random Heights" }, + // { "current_wle_fp3_09_07", "Climb scramble" }, + // { "current_wle_fp3_09_08", "Collide Gaming" }, + // { "current_wle_fp3_09_09", "Very Compressed Level" }, + // { "current_wle_fp3_09_0_01", "Slippery Slope" }, + // { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + // { "current_wle_fp3_09_0_03", "Free Falling" }, + // { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + // { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + // { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + // { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + // + // { "current_wle_fp3_10_01", "When Nature Falls" }, + // { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + // { "current_wle_fp3_10_03", "The Slime Trials" }, + // { "current_wle_fp3_10_04", "Friendly Obstacles" }, + // { "current_wle_fp3_10_05", "Climb and Fall" }, + // { "current_wle_fp3_10_06", "Stairs and some other things" }, + // { "current_wle_fp3_10_07", "Meowgical World" }, + // { "current_wle_fp3_10_08", "Polluelo Speed" }, + // { "current_wle_fp3_10_09", "Pixel Parade" }, + // { "current_wle_fp3_10_10", "Total Madness" }, + // { "current_wle_fp3_10_11", "The Abstract Maze" }, + // { "current_wle_fp3_10_12", "Fan Off" }, + // { "current_wle_fp3_10_13", "cloud highway" }, + // { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + // { "current_wle_fp3_10_15", "Speedrunners be like" }, + // { "current_wle_fp3_10_16", "Tumble Tower" }, + // { "current_wle_fp3_10_17", "Silver's Snake Run" }, + // { "current_wle_fp3_10_18", "Now Boarding" }, + // { "current_wle_fp3_10_19", "Slime Scale" }, + // { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + // { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + // { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + // { "current_wle_fp3_10_23", "Controlled Chaos" }, + // { "current_wle_fp3_10_24", "Xtreme Jumping" }, + // { "current_wle_fp3_10_25", "Odin" }, + // { "current_wle_fp3_10_26", "Ciudad nube" }, + // { "current_wle_fp3_10_27", "Bean Voyage" }, + // { "current_wle_fp3_10_28", "SLIP-SAW" }, + // { "current_wle_fp3_10_29", "Bbq bacon burger" }, + // + // { "current_wle_fp4_05_01_01", "巅峰车站" }, + // { "current_wle_fp4_05_01_02", "Beba Park 7" }, + // { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + // { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + // { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + // { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + // { "current_wle_fp4_05_02", "Mini only up" }, + // { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + // { "current_wle_fp4_05_03_02", "Remote Control" }, + // { "current_wle_fp4_05_03", "Parkway Slide" }, + // { "current_wle_fp4_05_04", "Duel Dash" }, + // { "current_wle_fp4_05_05", "beaten trackless road" }, + // { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + // { "current_wle_fp4_05_2_02", "arch city" }, + // { "current_wle_fp4_05_2_03", "Desert Ruins" }, + // + // { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + // { "current_wle_fp4_06_02", "Pachislo" }, + // { "current_wle_fp4_06_0_01", "AquArsene" }, + // { "current_wle_fp4_06_0_02", "RainbowCloud" }, + // { "current_wle_fp4_06_0_03", "Pink Cascade" }, + // { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + // { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + // { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + // { "current_wle_fp4_06_1_01", "Buggin' Out" }, + // { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + // { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + // { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + // { "current_wle_fp4_06_1_05", "The climb of Trials" }, + // { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + // + // { "current_wle_fp4_07_01", "Rotational Runner" }, + // { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + // { "current_wle_fp4_07_03", "simple stage" }, + // { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + // { "current_wle_fp4_07_05", "Factory Valley" }, + // { "current_wle_fp4_07_06", "Jumpy Beans" }, + // { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + // { "current_wle_fp4_07_0_01", "Camino Ninja" }, + // + // { "current_wle_fp4_08_01", "co-op guys" }, + // { "current_wle_fp4_08_0_01", "The big slide" }, + // { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + // { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + // { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + // { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + // { "current_wle_fp4_08_0_06", "X-Course" }, + // { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + // { "current_wle_fp4_08_1_01", "Boost in Dash" }, + // { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + // { "current_wle_fp4_08_1_03", "Giddy up!" }, + // { "current_wle_fp4_08_1_04", "Mad lab" }, + // { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + // { "current_wle_fp4_08_3_01", "The Oasis" }, + // + // { "current_wle_fp4_09_01", "Crate Collector" }, + // { "current_wle_fp4_09_02", "Dribble Drills" }, + // { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + // { "current_wle_fp4_09_04", "Skyline Park" }, + // { "current_wle_fp4_09_05", "Birthday bonanza" }, + // { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + // { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + // { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + // { "current_wle_fp4_09_1_02", "Haute voltige" }, + // { "current_wle_fp4_09_2_01", "DNA Test" }, + // + // { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + // { "current_wle_fp4_10_02", "Hot Blast" }, + // { "current_wle_fp4_10_03", "Box Fan Blitz" }, + // { "current_wle_fp4_10_04", "Woo-terfall Way" }, + // { "current_wle_fp4_10_05", "Slime race" }, + // { "current_wle_fp4_10_06", "Moving Day" }, + // { "current_wle_fp4_10_07", "Birthday Dash" }, + // { "current_wle_fp4_10_08_m", "Wall Breaker" }, + // { "current_wle_fp4_10_08", "Chess History" }, + // { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + // { "current_wle_fp4_10_12", "Chickens run away" }, + // { "current_wle_fp4_10_20", "Co-op and CO" }, + // { "current_wle_fp4_10_21", "Construction Site" }, + // { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + // { "current_wle_fp4_10_0_02", "Molehills" }, + // + // { "current_wle_fp5_2_01_01", "Plummet Summit" }, + // { "current_wle_fp5_2_01_02", "タワークライム" }, + // { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + // { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + // { "current_wle_fp5_2_01", "Jabonsotes" }, + // { "current_wle_fp5_2_02_01", "のっぽタワー" }, + // { "current_wle_fp5_2_02_02", "Blaster Course" }, + // { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + // { "current_wle_fp5_2_02_04", "The hard Climb" }, + // { "current_wle_fp5_2_02_05", "sliding guys" }, + // { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + // { "current_wle_fp5_2_02", "Rainbow highway" }, + // { "current_wle_fp5_2_03", "Falligator" }, + // { "current_wle_fp5_2_04_01", "Lily Lovers" }, + // { "current_wle_fp5_2_04_02", "rainow rode" }, + // { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_04_04", "Super crazy level" }, + // { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + // { "current_wle_fp5_2_05_01", "Level XVIII" }, + // { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + // { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_05_04", "rainbow roade" }, + // { "current_wle_fp5_2_05", "The tension Parkour" }, + // { "current_wle_fp5_2_06", "Stairing Contest" }, + // { "current_wle_fp5_2_07", "Vibrant Ascension" }, + // + // { "current_wle_fp5_3_05_01", "Beany Golf!" }, + // { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + // { "current_wle_fp5_4_01_01", "Tilted Walls" }, + // { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + // { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + // { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + // { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + // + // { "current_wle_fp5_10_01", "Breezy Buddies" }, + // { "current_wle_fp5_10_0_01", "Salto Plancha" }, + // { "current_wle_fp5_10_0_02", "My house" }, + // { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + // { "current_wle_fp5_10_1_01", "Desert Ruins" }, + // { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_01", "Desert Ruins" }, + // { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_03", "Mystic River" }, + // { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + // { "current_wle_fp5_10_2_05", "Cliffside" }, + // { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + // { "current_wle_fp5_10_2_07", "The Avenue" }, + // { "current_wle_fp5_10_2_08", "Gold City" }, + // { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + // { "current_wle_fp5_10_2_10", "初心者用コース" }, + // { "current_wle_fp5_10_2_11", "Chain Reaction" }, + // + // { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + // { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + // { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + // { "current_wle_fp5_wk3_1_04", "El airecito" }, + // { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + // { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + // { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + // { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + // { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + // { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + // { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + // { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + // { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + // { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + // { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + // + // { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + // { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + // { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + // { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + // { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + // { "current_wle_fp5_falloween_1_06", "Mirage" }, + // { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + // { "current_wle_fp5_falloween_1_08", "Toon World" }, + // { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + // { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + // { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + // { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + // { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + // { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + // { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + // { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + // { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + // { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + // { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + // { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + // { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + // { "current_wle_fp5_falloween_2_03_06", "Spider" }, + // { "current_wle_fp5_falloween_2_03", "fastoween" }, + // { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + // { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + // { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + // { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + // { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + // { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + // { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + // { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + // { "current_wle_fp5_falloween_4_05", "Scary Final" }, + // { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + // { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + // { "current_wle_fp5_falloween_4_08", "Catoween" }, + // { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + // { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + // { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + // { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + // { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + // { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + // { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + // { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + // { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + // { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + // { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + // { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + // { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + // { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + // { "current_wle_fp5_falloween_5_04", "Halloween" }, + // { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + // { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + // { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + // { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + // { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + // { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + // { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + // { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + // { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + // { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + // { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + // { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + // { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + // { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + // { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + // { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + // { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + // { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + // { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + // { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + // { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + // { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + // { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + // { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + // { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + // { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + // { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + // { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + // { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + // { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + // { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + // { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + // { "current_wle_fp5_falloween_9_02", "Raveyard" }, + // { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + // { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + // { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + // { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + // { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + // { "current_wle_fp5_falloween_11_01", "Night Runners" }, + // { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + // { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + // { "current_wle_fp5_falloween_13_01", "Witch Way" }, + // { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + // { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + // + // { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + // { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + // { "current_wle_fp6_1_03", "SKULL KING" }, + // { "current_wle_fp6_1_04", "shorter circuit" }, + // { "current_wle_fp6_1_05", "be speedy" }, + // { "current_wle_fp6_1_06", "Sky-City Stumble" }, + // { "current_wle_fp6_1_07", "Wormhole Mountain" }, + // { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + // { "current_wle_fp6_1_09", "Splitspeed" }, + // { "current_wle_fp6_1_10", "Fall Canyon" }, + // { "current_wle_fp6_2_01", "Valise" }, + // { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + // { "current_wle_fp6_2_03", "Water Way" }, + // { "current_wle_fp6_2_04", "The Doors of Doom" }, + // { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + // { "current_wle_fp6_2_06", "Liana Swings" }, + // { "current_wle_fp6_2_07", "Colourful" }, + // { "current_wle_fp6_2_08", "The Heist!" }, + // { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + // { "current_wle_fp6_3_01", "Tricky Treat" }, + // { "current_wle_fp6_3_02", "The Lighthouse" }, + // { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + // { "current_wle_fp6_3_04", "The Scarescraper" }, + // { "current_wle_fp6_3_05", "Obstacle Road" }, + // { "current_wle_fp6_3_06", "Rest In Paris" }, + // { "current_wle_fp6_3_07", "Horror pumpkim" }, + // { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + // + // { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + // { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + // { "current_wle_fp6_wk2_03", "Slidy Road" }, + // { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + // { "current_wle_fp6_wk2_05", "Lost in space" }, + // { "current_wle_fp6_wk2_06", "Turbine Decline" }, + // { "current_wle_fp6_wk2_07", "Zero Displacement" }, + // { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + // { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + // { "current_wle_fp6_wk2_10", "Neoway" }, + // { "current_wle_fp6_wk2_11", "Niagara Falls" }, + // { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + // { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + // { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + // { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + // { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + // { "current_wle_fp6_wk2_1_06", "Locomoção" }, + // { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + // { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + // { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + // + // { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + // { "current_wle_fp6_wk3_02", "Compact 5" }, + // { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + // { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + // { "current_wle_fp6_wk3_05", "Alto voltaje" }, + // { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + // { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + // { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + // { "current_wle_fp6_wk3_09", "Work and Travel" }, + // { "current_wle_fp6_wk3_10", "connect the bridge" }, + // { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + // { "current_wle_fp6_wk3_2_02", "speed demon" }, + // { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + // { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + // { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + // { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + // { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + // + // { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + // { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + // { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + // { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + // { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + // { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + // { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + // { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + // { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + // { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + // { "current_wle_fp6_wk4_03_05", "Snow Style" }, + // { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + // { "current_wle_fp6_wk4_05_01", "Rebound" }, + // { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + // { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + // + // { "current_wle_community_10_5_01", "Snowy Starfall" }, + // { "current_wle_community_10_5_02", "The Earthquake" }, + // { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + // { "current_wle_community_10_5_1_04", "Garden of Woo" }, + // { "current_wle_community_10_5_1_05", "Out in the open" }, + // { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + // { "current_wle_community_10_5_1_08", "Jungle Journey" }, + // { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + // { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + // { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + // { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + // { "current_wle_community_10_5_1_15", "Three Rooms" }, + // { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + // { "current_wle_community_10_5_1_17", "Winter Slide" }, + // { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + // + // { "wle_discover_level_wk2_001", "Castle in the Clouds" }, + // { "wle_discover_level_wk2_002", "Christmas corner!" }, + // { "wle_discover_level_wk2_003", "Hot Wheels 2069" }, + // { "wle_discover_level_wk2_004", "Bounce Back Racetrack" }, + // { "wle_discover_level_wk2_005", "Space Getaway" }, + // { "wle_discover_level_wk2_006", "fall mountain (糖豆山涧)" }, + // { "wle_discover_level_wk2_007", "伝説のポケモン!" }, + // { "wle_discover_level_wk2_008", "Knight Slide" }, + // { "wle_discover_level_wk2_009", "Christmas Run" }, + // { "wle_discover_level_wk2_010", "Labyrinth (1986) Part1" }, + // { "wle_discover_level_wk2_011", "Rebound" }, + // { "wle_discover_level_wk2_012", "Trip to Santa's home" }, + // { "wle_discover_level_wk2_013", "ピッピカチュ☆彡" }, + // { "wle_discover_level_wk2_014", "Rainbow Race" }, + // { "wle_discover_level_wk2_015", "Speed Suburbs" }, + // { "wle_discover_level_wk2_016", "SUPER MARIO WONDER" }, + // { "wle_discover_level_wk2_017", "Punching Bridges" }, + // { "wle_discover_level_wk2_018", "The Slimescrapper" }, + // { "wle_discover_level_wk2_019", "Snowy Flakes" }, + // { "wle_discover_level_wk2_020", "Foggy Freeway" }, + // { "wle_discover_level_wk2_021", "Snowy Climb" }, + // { "wle_discover_level_wk2_022", "snow athletic valley" }, + // { "wle_discover_level_wk2_023", "詰め込んだだけレース4" }, + // { "wle_discover_level_wk2_024", "Winter Wonder Sprint" }, + // { "wle_discover_level_wk2_025", "Randonnée Galactique" }, + // { "wle_discover_level_wk2_026", "Cloudy with a Chance of Cannonballs" }, + // { "wle_discover_level_wk2_027", "Digital Snowland" }, + // { "wle_discover_level_wk2_028", "Shiver Beans" }, + // { "wle_discover_level_wk2_029", "SanTama Run" }, + // { "wle_discover_level_wk2_030", "Winter Run" }, + // { "wle_discover_level_wk2_031", "Jiggle Jingle" }, + // { "wle_discover_level_wk2_032", "Ice Pop Interstate" }, + // { "wle_discover_level_wk2_033", "クリエだよ全員集合" }, + // { "wle_discover_level_wk2_034", "Snow Day" }, + // { "wle_discover_level_wk2_035", "It's Tiiiiiiiimeee!" }, + // { "wle_discover_level_wk2_036", "KYOUFUU GUYS BACK" }, + // { "wle_discover_level_wk2_037", "Sonic's Sunset Adventure" }, + // { "wle_discover_level_wk2_038", "♪勝利のフォンフォーレ" }, + // { "wle_discover_level_wk2_039", "RACE ORIGINS" }, + // { "wle_discover_level_wk2_040", "Winter Wipeout" }, + // { "wle_discover_level_wk2_041", "Centripetal Circuit" }, + // { "wle_discover_level_wk2_042", "MERRY MAYHEM!" }, + // { "wle_discover_level_wk2_043", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_044", "The Scarescraper" }, + // { "wle_discover_level_wk2_045", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_046", "$$$¡The Casino Crew!$$$" }, + // { "wle_discover_level_wk2_047", "Dee's- Escape the Pirate Ship!" }, + // { "wle_discover_level_wk2_048", "ジャングル ぐるぐる" }, + // { "wle_discover_level_wk2_049", "ショートステージ" }, + // { "wle_discover_level_wk2_050", "スノーマウンテンクライム" }, + // + // { "wle_round_mrs_shuffle_discover_005", "My Melody" }, + // { "wle_round_mrs_shuffle_discover_006", "prismatic ice crystal" }, + // { "wle_round_mrs_shuffle_discover_007", "スキルアップステージ" }, + // { "wle_round_mrs_shuffle_discover_008", "WHITE TREE JUMBLE" }, + // { "wle_round_mrs_shuffle_discover_009", "Snowy Adventure" }, + // { "wle_round_mrs_shuffle_discover_010", "Happy Bean Food Fiesta" }, + // { "wle_round_mrs_shuffle_discover_011", "Belly Flop Bobsleigh" }, + // { "wle_round_mrs_shuffle_discover_012", "winter party" }, + // { "wle_round_mrs_shuffle_discover_013", "The lost keys" }, + // { "wle_round_mrs_shuffle_discover_014", "Bonk" }, + // { "wle_round_mrs_shuffle_discover_015", "Winter Disc-O" }, + // { "wle_round_mrs_shuffle_discover_016", "christmas wreath!" }, + // { "wle_round_mrs_shuffle_discover_017", "Winter BebaLand" }, + // { "wle_round_mrs_shuffle_discover_018", "Automatic FallGuys" }, + // { "wle_round_mrs_shuffle_discover_019", "Holiday Dash" }, + // { "wle_round_mrs_shuffle_discover_020", "Treetop Frost" }, + // { "wle_round_mrs_shuffle_discover_021", "Rainbow Run" }, + // { "wle_round_mrs_shuffle_discover_022", "BYE DONT HAVE A GREAT TIME PART LXIX" }, + // { "wle_round_mrs_shuffle_discover_023", "Hieroglysphinx Hurdles" }, + // { "wle_round_mrs_shuffle_discover_024", "ホなら" }, + // { "wle_round_mrs_shuffle_discover_025", "Bye have a great time part 45" }, + // { "wle_round_mrs_shuffle_discover_026", "POWDERY PEAK" }, + // { "wle_round_mrs_shuffle_discover_027", "It's Christmas Slime Climb Time!" }, + // { "wle_round_mrs_shuffle_discover_028", "MERRY CLIMBING!" }, + // { "wle_round_mrs_shuffle_discover_030", "Snow N' Speed" }, + // { "wle_round_mrs_shuffle_discover_032", "Lets Have Fun (74)" }, + // { "wle_round_mrs_shuffle_discover_033", "Concept Ladder Match (Pre-alpha)" }, + // { "wle_round_mrs_shuffle_discover_034", "Speedy City" }, + // { "wle_round_mrs_shuffle_discover_036", "Fall Village" }, + // { "wle_round_mrs_shuffle_discover_037", "超巨大な、クリスマスツリー" }, + // { "wle_round_mrs_shuffle_discover_038", "TINSELTOWN MELTDOWN!" }, + // { "wle_round_mrs_shuffle_discover_039", "Jump jar jar" }, + // { "wle_round_mrs_shuffle_discover_040", "FOOD FIESTA" }, + // { "wle_round_mrs_shuffle_discover_041", "Bye have a great time part 46" }, + // { "wle_round_mrs_shuffle_discover_044", "BEAN BALL" }, + // { "wle_round_mrs_shuffle_discover_045", "Python Pinball" }, + // { "wle_round_mrs_shuffle_discover_046", "Block Battle" }, + // { "wle_round_mrs_shuffle_discover_047", "Ice Cold Ascension" }, + // { "wle_round_mrs_shuffle_discover_048", "ボタンでGO!" }, + // { "wle_round_mrs_shuffle_discover_049", "ミクセル MIKUSERU" }, + // { "wle_round_mrs_shuffle_discover_050", "ホなら" }, + // + // { "wle_discovery_shuffle_up2_01", "The spooky trail" }, + // { "wle_discovery_shuffle_up2_05", "Balance Bean" }, + // { "wle_discovery_shuffle_up2_06", "digital slime road" }, + // { "wle_discovery_shuffle_up2_07", "The Punch Warriors! - Definitive Edition" }, + // { "wle_discovery_shuffle_up2_08", "Winter Mansion" }, + // { "wle_discovery_shuffle_up2_13", "Festive Rush" }, + // { "wle_discovery_shuffle_up2_14", "Mound Mountain" }, + // { "wle_discovery_shuffle_up2_15", "FEVER DREAM FUNHOUSE!" }, + // { "wle_discovery_shuffle_up2_17", "WinteRace" }, + // { "wle_discovery_shuffle_up2_18", "4 Seasons" }, + // { "wle_discovery_shuffle_up2_19", "WAVE RUNNERS!" }, + // { "wle_discovery_shuffle_up2_24", "Tool Up! Winter Season Fall Guys" }, + // { "wle_discovery_shuffle_up2_26", "Arctic Run" }, + // { "wle_discovery_shuffle_up2_28", "Grenouille X pinkixx" }, + // { "wle_discovery_shuffle_up2_29", "GAME OVER" }, + // { "wle_discovery_shuffle_up2_30", "Hot Wheels III" }, + // { "wle_discovery_shuffle_up2_32", "Ski Mountain" }, + // { "wle_discovery_shuffle_up2_33", "夜店" }, + // { "wle_discovery_shuffle_up2_34", "チャッキーのタイムアタックレース" }, + // { "wle_discovery_shuffle_up2_37", "Frosty run" }, + // { "wle_discovery_shuffle_up2_38", "MONUMENT FALLS!" }, + // + // { "wle_mrs_shuffle_show_roundpool_winter_01", "Spiral Trial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_02", "SNOWMAN CLIMB" }, + // { "wle_mrs_shuffle_show_roundpool_winter_03", "Perpetual motion" }, + // { "wle_mrs_shuffle_show_roundpool_winter_04", "No way to go" }, + // { "wle_mrs_shuffle_show_roundpool_winter_06", "The winter slime climb time!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_07", "The Speedy Zone" }, + // { "wle_mrs_shuffle_show_roundpool_winter_08", "The crown's race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_09", "Mitten Mountain" }, + // { "wle_mrs_shuffle_show_roundpool_winter_10", "Parcours arc en ciel" }, + // { "wle_mrs_shuffle_show_roundpool_winter_11", "forest balls" }, + // { "wle_mrs_shuffle_show_roundpool_winter_12", "FIREBALL FRENZY!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_13", "GIFT EXCHANGE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_14", "The Snowscraper" }, + // { "wle_mrs_shuffle_show_roundpool_winter_15", "roll roll bean" }, + // { "wle_mrs_shuffle_show_roundpool_winter_16", "Overclocked" }, + // { "wle_mrs_shuffle_show_roundpool_winter_17", "Spaceball Spin" }, + // { "wle_mrs_shuffle_show_roundpool_winter_18", "Winter Disc-O" }, + // { "wle_mrs_shuffle_show_roundpool_winter_19", "Chill 'n' Roll" }, + // { "wle_mrs_shuffle_show_roundpool_winter_20", "FEVER DREAM FUNHOUSE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_21", "Himalayan Railway" }, + // { "wle_mrs_shuffle_show_roundpool_winter_22", "Need for Speed" }, + // { "wle_mrs_shuffle_show_roundpool_winter_23", "Rebound" }, + // { "wle_mrs_shuffle_show_roundpool_winter_24", "スライムスクレイパー" }, + // { "wle_mrs_shuffle_show_roundpool_winter_25", "Frosty Cold Sprint" }, + // { "wle_mrs_shuffle_show_roundpool_winter_26", "Halfpipe Havoc" }, + // { "wle_mrs_shuffle_show_roundpool_winter_27", "Snowflake Wonderland" }, + // { "wle_mrs_shuffle_show_roundpool_winter_28", "Ball Guys" }, + // { "wle_mrs_shuffle_show_roundpool_winter_30", "REINDEER GAMES!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_31", "Belly Flop Bobsleigh" }, + // { "wle_mrs_shuffle_show_roundpool_winter_32", "Hot Wheels 2069" }, + // { "wle_mrs_shuffle_show_roundpool_winter_33", "Gingerbread Lane" }, + // { "wle_mrs_shuffle_show_roundpool_winter_34", "We ballin'" }, + // { "wle_mrs_shuffle_show_roundpool_winter_35", "Ice Cold Ascension" }, + // { "wle_mrs_shuffle_show_roundpool_winter_36", "étage sur étage" }, + // { "wle_mrs_shuffle_show_roundpool_winter_37", "Birthday Dash" }, + // { "wle_mrs_shuffle_show_roundpool_winter_39", "MARBLE RACE [Bean-Ball]" }, + // { "wle_mrs_shuffle_show_roundpool_winter_38", "The Jolly Express" }, + // { "wle_mrs_shuffle_show_roundpool_winter_40", "Roller Race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_41", "Return to Fall Rapids" }, + // { "wle_mrs_shuffle_show_roundpool_winter_42", "Frosty run" }, + // { "wle_mrs_shuffle_show_roundpool_winter_44", "Sirbeans garden racetrack" }, + // { "wle_mrs_shuffle_show_roundpool_winter_45", "Roll-a-Coaster" }, + // { "wle_mrs_shuffle_show_roundpool_winter_46", "Gran Glaciar Paradicial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_47", "Cave Exploration ~洞窟探検~" }, + // { "wle_mrs_shuffle_show_roundpool_winter_48", "SanTama Run" }, + // + // { "wle_shuffle_discover_fp7_1_01", "Green hill zone" }, + // { "wle_shuffle_discover_fp7_1_02", "Lost Temple" }, + // { "wle_shuffle_discover_fp7_1_03", "Champiñón Volante" }, + // { "wle_shuffle_discover_fp7_1_04", "Mitten Mountain" }, + // { "wle_shuffle_discover_fp7_1_05", "Jack-O'-Runners" }, + // { "wle_shuffle_discover_fp7_1_06", "Parcours arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_07", "Mario kart" }, + // { "wle_shuffle_discover_fp7_1_08", "A Day At The Holiday Race" }, + // { "wle_shuffle_discover_fp7_1_09", "2024 謹賀新年" }, + // { "wle_shuffle_discover_fp7_1_10", "Hustling run" }, + // { "wle_shuffle_discover_fp7_1_11", "tempête arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_12", "Wander- Weg" }, + // { "wle_shuffle_discover_fp7_1_13", "Ruta en la selva" }, + // { "wle_shuffle_discover_fp7_1_14", "Turboslide" }, + // { "wle_shuffle_discover_fp7_1_15", "A piece of cake" }, + // { "wle_shuffle_discover_fp7_1_16", "WOW" }, + // { "wle_shuffle_discover_fp7_1_18", "Magic Squirrel" }, + // { "wle_shuffle_discover_fp7_1_19", "Dinosaur Climb" }, + // { "wle_shuffle_discover_fp7_1_20", "bouing bouing" }, + // { "wle_shuffle_discover_fp7_1_21", "快感快速!!" }, + // { "wle_shuffle_discover_fp7_1_23", "challenge" }, + // { "wle_shuffle_discover_fp7_1_24", "Fnf final escape" }, + // { "wle_shuffle_discover_fp7_1_25", "Speedrun" }, + // { "wle_shuffle_discover_fp7_1_26", "AS AVENTURAS DO PIETRO" }, + // { "wle_shuffle_discover_fp7_1_27", "The Desert temple" }, + // { "wle_shuffle_discover_fp7_1_28", "Snowy Speed Sprint" }, + // { "wle_shuffle_discover_fp7_1_29", "Arcade escape" }, + // { "wle_shuffle_discover_fp7_1_30", "Guardian's Grace" }, + // { "wle_shuffle_discover_fp7_1_31", "Desertic Templus" }, + // { "wle_shuffle_discover_fp7_1_32", "Calamité arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_33", "Map Test V1" }, + // { "wle_shuffle_discover_fp7_1_34", "From A to Z" }, + // { "wle_shuffle_discover_fp7_1_35", "YULE LOG SPRINT" }, + // { "wle_shuffle_discover_fp7_1_37", "Turnaround Turnpike" }, + // { "wle_shuffle_discover_fp7_1_38", "Good morning 2024 world" }, + // { "wle_shuffle_discover_fp7_1_39", "Sirbeans garden racetrack" }, + // + // { "wle_shuffle_2_24_01", "classic sewer" }, + // { "wle_shuffle_2_24_02", "Speed Ball" }, + // { "wle_shuffle_2_24_03", "Rainbow Riser" }, + // { "wle_shuffle_2_24_04", "cave tree" }, + // { "wle_shuffle_2_24_05", "Orbital Junction" }, + // { "wle_shuffle_2_24_06", "Lily leapers remix v3" }, + // { "wle_shuffle_2_24_07", "Little Pipe Dream" }, + // { "wle_shuffle_2_24_08", "FIREBALL FRENZY!" }, + // { "wle_shuffle_2_24_09", "Ruta en la selva" }, + // { "wle_shuffle_2_24_10", "A piece of cake" }, + // { "wle_shuffle_2_24_11", "Monster Forest Road" }, + // { "wle_shuffle_2_24_12", "Slippery Stumble" }, + // { "wle_shuffle_2_24_13", "Mound Mountain" }, + // { "wle_shuffle_2_24_15", "Non-Stop Slide" }, + // { "wle_shuffle_2_24_16", "slime climb Creative" }, + // { "wle_shuffle_2_24_17", "(REBORN) WITH THE WIND OMAME-CHAN !!!" }, + // { "wle_shuffle_2_24_18", "The Desert Temple Escape" }, + // { "wle_shuffle_2_24_19", "Rebound" }, + // { "wle_shuffle_2_24_20", "Roundabout Route" }, + // { "wle_shuffle_2_24_21", "Sparkly gingerbred trail" }, + // { "wle_shuffle_2_24_22", "Ski Fall Remix" }, + // { "wle_shuffle_2_24_24", "Fan Flingers" }, + // { "wle_shuffle_2_24_25", "Ball Carnival" }, + // { "wle_shuffle_2_24_26", "Tool Up! Winter Season Fall Guys" }, + // { "wle_shuffle_2_24_27", "Trompeta Teatral" }, + // { "wle_shuffle_2_24_28", "Birthday bonanza" }, + // { "wle_shuffle_2_24_29", "BlueBlur Circuit" }, + // { "wle_shuffle_2_24_30", "Lemon Grass" }, + // { "wle_shuffle_2_24_31", "Tuyauterie au nez" }, + // { "wle_shuffle_2_24_32", "Slimey's showdown" }, + // { "wle_shuffle_2_24_33", "GOLF GUYS" }, + // { "wle_shuffle_2_24_34", "(REBORN) DIGI×2 LOVE×2 GUYS REVERSE !!!" }, + // { "wle_shuffle_2_24_35", "R" }, + // { "wle_shuffle_2_24_36", "Zelda is BANANAS!!!!" }, + // { "wle_shuffle_2_24_38", "Traffic Jamboree" }, + // { "wle_shuffle_2_24_39", "Turnaround Turnpike" }, + // { "wle_shuffle_2_24_40", "Great hunt" }, + // { "wle_shuffle_2_24_41", "HYPERSPACE HIGHWAY!" }, + // { "wle_shuffle_2_24_42", "Back in Slime" }, + // + // { "wle_shuffle_wk2405_01", "Duckling Beach" }, + // { "wle_shuffle_wk2405_02", "BUILDER GUYS" }, + // { "wle_shuffle_wk2405_03", "ヒヤヒヤハイウェイ Unstable Highway" }, + // { "wle_shuffle_wk2405_04", "Speed Ball" }, + // { "wle_shuffle_wk2405_05", "North Pole Traps" }, + // { "wle_shuffle_wk2405_06", "Volcanic Island Travel!" }, + // { "wle_shuffle_wk2405_07", "Kepler 21's town" }, + // { "wle_shuffle_wk2405_08", "Orbital Junction" }, + // { "wle_shuffle_wk2405_11", "Balance Bean" }, + // { "wle_shuffle_wk2405_12", "ťřūťű" }, + // { "wle_shuffle_wk2405_13", "Summer Vibes" }, + // { "wle_shuffle_wk2405_14", "Dee's- Pinball Lilly" }, + // { "wle_shuffle_wk2405_15", "Galactic Guys" }, + // { "wle_shuffle_wk2405_16", "Orbital Stumbling" }, + // { "wle_shuffle_wk2405_17", "Winter Mansion" }, + // { "wle_shuffle_wk2405_18", "Pole Jumper" }, + // { "wle_shuffle_wk2405_19", "Little Pipe Dream" }, + // { "wle_shuffle_wk2405_20", "FIREBALL FRENZY!" }, + // { "wle_shuffle_wk2405_21", "Ruta en la selva" }, + // { "wle_shuffle_wk2405_22", "The Spacescřaper" }, + // { "wle_shuffle_wk2405_23", "Downward Spiral! (& Beyond)" }, + // { "wle_shuffle_wk2405_24", "Slippery Swoop Showdown" }, + // { "wle_shuffle_wk2405_25", "Tunnel of tumble" }, + // { "wle_shuffle_wk2405_26", "Digital Paradise" }, + // { "wle_shuffle_wk2405_27", "Monster Forest Road" }, + // { "wle_shuffle_wk2405_28", "GALACTIC RUN" }, + // { "wle_shuffle_wk2405_29", "Non-Stop Slide" }, + // { "wle_shuffle_wk2405_30", "slime climb Creative" }, + // { "wle_shuffle_wk2405_31", "Love a day" }, + // { "wle_shuffle_wk2405_32", "serious circuit" }, + // { "wle_shuffle_wk2405_33", "Falling in Love" }, + // { "wle_shuffle_wk2405_34", "Rebound" }, + // { "wle_shuffle_wk2405_35", "Digifal Guys" }, + // { "wle_shuffle_wk2405_36", "Vaporia" }, + // { "wle_shuffle_wk2405_37", "Solar Speedway" }, + // { "wle_shuffle_wk2405_38", "Rollin' Ruins" }, + // { "wle_shuffle_wk2405_39", "The drum course" }, + // { "wle_shuffle_wk2405_40", "AX-ATTACK" }, + // { "wle_shuffle_wk2405_41", "Pipe beans" }, + // { "wle_shuffle_wk2405_42", "Ball World" }, + // { "wle_shuffle_wk2405_43", "Fan Flingers" }, + // { "wle_shuffle_wk2405_44", "Deserted Frontier" }, + // { "wle_shuffle_wk2405_45", "Torapo" }, + // { "wle_shuffle_wk2405_46", "No Name" }, + // { "wle_shuffle_wk2405_47", "Satellite Scramble" }, + // { "wle_shuffle_wk2405_48", "STATION SPRINT" }, + // { "wle_shuffle_wk2405_49", "Route 20" }, + // { "wle_shuffle_wk2405_50", "Jungle escape" }, + // { "wle_shuffle_wk2405_51", "Love at First Woo" }, + // { "wle_shuffle_wk2405_52", "Satellite Circuit" }, + // { "wle_shuffle_wk2405_53", "Round and around" }, + // { "wle_shuffle_wk2405_54", "World of rolling" }, + // { "wle_shuffle_wk2405_55", "Lemon Grass" }, + // { "wle_shuffle_wk2405_56", "Downward Spiral" }, + // { "wle_shuffle_wk2405_57", "STARS ALIGN!" }, + // { "wle_shuffle_wk2405_58", "Interstellar Sprint" }, + // { "wle_shuffle_wk2405_59", "World of cakes" }, + // { "wle_shuffle_wk2405_60", "ASTRAL AIRWAY" }, + // { "wle_shuffle_wk2405_61", "secret ways" }, + // { "wle_shuffle_wk2405_62", "No Name" }, + // { "wle_shuffle_wk2405_63", "Space adventure (part 1)" }, + // { "wle_shuffle_wk2405_64", "Rainbow Road" }, + // { "wle_shuffle_wk2405_65", "Falltropolis" }, + // + // { "wle_digishuffle_feb_01", "jungle fun run" }, + // { "wle_digishuffle_feb_02", "☆Witch Way☆" }, + // { "wle_digishuffle_feb_03", "Mushroom Mayhem" }, + // { "wle_digishuffle_feb_04", "Orbital Junction" }, + // { "wle_digishuffle_feb_06", "Day at the beach" }, + // { "wle_digishuffle_feb_07", "Summer Vibes" }, + // { "wle_digishuffle_feb_08", "Roll Asteroid Field" }, + // { "wle_digishuffle_feb_09", "Ruta en la selva" }, + // { "wle_digishuffle_feb_10", "Cosmic Dash" }, + // { "wle_digishuffle_feb_11", "Bouncing Frenzy" }, + // { "wle_digishuffle_feb_12", "Beehive Havoc" }, + // { "wle_digishuffle_feb_13", "Snowy Cave-in" }, + // { "wle_digishuffle_feb_15", "Winter Disc-O" }, + // { "wle_digishuffle_feb_16", "magician" }, + // { "wle_digishuffle_feb_17", "Love a day" }, + // { "wle_digishuffle_feb_18", "Chilly Leapers" }, + // { "wle_digishuffle_feb_19", "Colorful Year - Beans Memories" }, + // { "wle_digishuffle_feb_20", "BIPLANE BLUNDER" }, + // { "wle_digishuffle_feb_21", "Vaporia" }, + // { "wle_digishuffle_feb_22", "Satellite Sprint" }, + // { "wle_digishuffle_feb_23", "Galactic Gauntlet" }, + // { "wle_digishuffle_feb_24", "RUN COWBOY" }, + // { "wle_digishuffle_feb_25", "Breakfast Run" }, + // { "wle_digishuffle_feb_26", "Spin 'n' Swing" }, + // { "wle_digishuffle_feb_27", " Love at First Woo" }, + // { "wle_digishuffle_feb_28", "Astral Exploration" }, + // { "wle_digishuffle_feb_29", "Speedway 2069" }, + // { "wle_digishuffle_feb_30", "Data Eraser" }, + // { "wle_digishuffle_feb_31", "Mediefall Highway" }, + // { "wle_digishuffle_feb_33", "パンダフルワールド" }, + // { "wle_digishuffle_feb_34", "Celestial Tale" }, + // + // { "chill_01", "Ariko Jones" }, + // { "chill_02", "Floating island" }, + // { "chill_03", "Colorful World" }, + // { "chill_04", "Winter Wallop" }, + // { "chill_06", "Tropical Top2" }, + // { "chill_07", "rainbows and stickers" }, + // { "chill_08", "Ancient Fallstronomers" }, + // { "chill_11", "ORBITAL STUMBLE" }, + // { "chill_12", "The Bisounours" }, + // { "chill_13", "Adrenaline Force 2" }, + // { "chill_14", "Summer Vibes" }, + // { "chill_15", "Speedy Bounces" }, + // { "chill_16", "Data Dash" }, + // { "chill_17", "Snow Mountain" }, + // { "chill_18", "Monster Mayhem" }, + // { "chill_19", "Star Power!" }, + // { "chill_20", "Sketchy Sledding!" }, + // { "chill_21", "Musical Madness" }, + // { "chill_22", "BEANS ORBITAL ZONE" }, + // { "chill_23", "Safe Mode" }, + // { "chill_24", "Piste de neige" }, + // { "chill_25", "Love a day" }, + // { "chill_26", "Chilly Leapers" }, + // { "chill_27", "Passage imbroglio arc en ciel" }, + // { "chill_28", "Shogun Guys I" }, + // { "chill_29", "WINDMILL WAY" }, + // { "chill_30", "Solar Speedway" }, + // { "chill_31", "Micro Machine" }, + // { "chill_32", "Satellite Sprint" }, + // { "chill_33", "Rudinn's Garden Palace" }, + // { "chill_35", "Frosty Wonderland" }, + // { "chill_36", "Freezy Frolic" }, + // { "chill_37", "Extraterrestrial Terminal" }, + // { "chill_38", "Cluster Cosmos" }, + // { "chill_39", " Love at First Woo" }, + // { "chill_40", "A night in Paris" }, + // { "chill_41", "Float Parkour" }, + // + // { "wle_mrs_survival_showdown_opener", "Slime Surfers" }, + // { "wle_mrs_survival_showdown_opener_01", "Bean Fort" }, + // { "wle_mrs_survival_showdown_opener_02", "Back & Forth" }, + // { "wle_mrs_survival_showdown_final", "Hectic Hexagons" }, + // { "wle_mrs_survival_showdown_final_01", "Cosmic Clash" }, + // { "wle_mrs_survival_showdown_final_02", "Bouncy Castle" }, + // { "wle_mrs_survival_showdown_final_04", "Volcanic Chaos" }, + // + // { "wle_survival_shuffle_fp8_01", "More Blastball!" }, + // { "wle_survival_shuffle_fp8_02", "Rhino Runaway" }, + // { "wle_survival_shuffle_fp8_03", "Bouncy Castle" }, + // { "wle_survival_shuffle_fp8_04", "Snowy Stronghold" }, + // { "wle_survival_shuffle_fp8_05", "Hexa-Towers - Finals Arena" }, + // { "wle_survival_shuffle_fp8_06", "Satellite Delight" }, + // { "wle_survival_shuffle_fp8_07", "pacific jump" }, + // { "wle_survival_shuffle_fp8_08", "There can only be one" }, + // { "wle_survival_shuffle_fp8_09", "Ganj's Matter Baby" }, + // { "wle_survival_shuffle_fp8_10", "RHINOCHET" }, + // { "wle_survival_shuffle_fp8_11", "Rocky Rumble" }, + // { "wle_survival_shuffle_fp8_12", "Ludo War" }, + // { "wle_survival_shuffle_fp8_13", "Slimelantis" }, + // { "wle_survival_shuffle_fp8_14", "Dramatic Squirrel" }, + // { "wle_survival_shuffle_fp8_15", "HEX-A-BLAST" }, + // { "wle_survival_shuffle_fp8_16", "HEX-A-RUN" }, + // { "wle_survival_shuffle_fp8_17", "BLAST BRIDGES" }, + // { "wle_survival_shuffle_fp8_18", "HEX-A-BATTLE" }, + // { "wle_survival_shuffle_fp8_19", "Blast Ball X" }, + // { "wle_survival_shuffle_fp8_20", "Explosive Arena" }, + // { "wle_survival_shuffle_fp8_21", "Rhino Blast" }, + // { "wle_survival_shuffle_fp8_22", "Slime Surfers" }, + // { "wle_survival_shuffle_fp8_23", "Eduardo Escapades" }, + // { "wle_survival_shuffle_fp8_24", "Hex A Trouble" }, + // { "wle_survival_shuffle_fp8_25", "Roll In - Finals Arena" }, + // { "wle_survival_shuffle_fp8_26", "Back & Forth" }, + // { "wle_survival_shuffle_fp8_27", "HEXAGONAL RING BLAST" }, + // { "wle_survival_shuffle_fp8_29", "beens royal resurrection" }, + // { "wle_survival_shuffle_fp8_30", "Hexa-Toto" }, + // { "wle_survival_shuffle_fp8_31", "Blender Container" }, + // { "wle_survival_shuffle_fp8_32", "Circular Jump" }, + // { "wle_survival_shuffle_fp8_33", "hex-a-volcanic" }, + // { "wle_survival_shuffle_fp8_34", "ボマーぽよまつからの挑戦状☆ミ" }, + // { "wle_survival_shuffle_fp8_35", "Reverse Chaos" }, + // { "wle_survival_shuffle_fp8_36", "survival board" }, + // { "wle_survival_shuffle_fp8_37", "Volcanic Chaos" }, + // { "wle_survival_shuffle_fp8_38", "High-Ground Arena" }, + // { "wle_survival_shuffle_fp8_39", "rainbow convoyer" }, + // { "wle_survival_shuffle_fp8_40", "すぱいだーすっぱいんだー" }, + // { "wle_survival_shuffle_fp8_41", "HEX-A-PARTY" }, + // { "wle_survival_shuffle_fp8_42", "HEX A REBORN" }, + // { "wle_survival_shuffle_fp8_43", "CAROUSEL CHAOS" }, + // { "wle_survival_shuffle_fp8_44", "west sniper" }, + // { "wle_survival_shuffle_fp8_45", "Blast Balls Hexa Trials" }, + // { "wle_survival_shuffle_fp8_46", "自製生存關2-蹦蹦犀牛炸彈!" }, + // { "wle_survival_shuffle_fp8_47", "Hexagon Battle" }, + // { "wle_survival_shuffle_fp8_49", "Tick Tock Clock" }, + // { "wle_survival_shuffle_fp8_50", "ダイナミクスビート DYNAMICS BEAT" }, + // + // { "survival_shuffle_01", "Speed attack" }, + // { "survival_shuffle_02", "Garbage Chute V2" }, + // { "survival_shuffle_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_04", "Night Crashers" }, + // { "survival_shuffle_05", "Survival Area" }, + // { "survival_shuffle_06", "Can You Win!" }, + // { "survival_shuffle_07", "SPINNER SURVIVAL(Hard)" }, + // { "survival_shuffle_08", "NAMEK" }, + // { "survival_shuffle_09", "Hex-A-Blast" }, + // { "survival_shuffle_10", "HEX-A-JUMP" }, + // { "survival_shuffle_11", "Space Blast" }, + // { "survival_shuffle_12", "とまきけアイス" }, + // { "survival_shuffle_13", "SPINNER SURVIVAL(Very Hard)" }, + // { "survival_shuffle_14", "Caldera chaos" }, + // { "survival_shuffle_15", "hexatourne" }, + // { "survival_shuffle_16", "HEX-A-MANIA" }, + // { "survival_shuffle_17", "Slime leakage royale" }, + // { "survival_shuffle_18", "Merciless Traverse" }, + // { "survival_shuffle_19", "Stompin' Ground Challenge" }, + // { "survival_shuffle_20", "Bird is the Word" }, + // { "survival_shuffle_21", "Conflagration interstellaire" }, + // { "survival_shuffle_22", "Subzero Gale" }, + // { "survival_shuffle_23", "Piti afundando" }, + // { "survival_shuffle_24", "つかみ魔たちの祭典" }, + // { "survival_shuffle_25", "Slime Surfers" }, + // { "survival_shuffle_26", "Space Blast ball" }, + // { "survival_shuffle_27", "Fan wars survival" }, + // { "survival_shuffle_28", "World of Guys - Ultimate Shotout -" }, + // { "survival_shuffle_29", "Shogun's Arena" }, + // { "survival_shuffle_30", "Boulder Hex" }, + // { "survival_shuffle_31", "HEX-A-RENA" }, + // { "survival_shuffle_32", "BLAST BALL BASHERS" }, + // { "survival_shuffle_33", "hexa roll beta 2" }, + // { "survival_shuffle_34", "Running survivor ver1・3" }, + // { "survival_shuffle_35", "King of the Castle" }, + // { "survival_shuffle_36", "BATTLE OF SURVIVORS" }, + // { "survival_shuffle_37", "MINI STOMPIN' GROUND" }, + // { "survival_shuffle_38", "Royal Rumble" }, + // { "survival_shuffle_39", "Bataille au ²" }, + // { "survival_shuffle_40", "Hex-a-mountain" }, + // { "survival_shuffle_41", "Hex-A-Glory" }, + // { "survival_shuffle_42", "POOL PARTY" }, + // { "survival_shuffle_43", "King of the Pillar" }, + // { "survival_shuffle_44", "止まれない木" }, + // { "survival_shuffle_45", "slime battle pt2" }, + // { "survival_shuffle_46", "No Punching" }, + // { "survival_shuffle_47", "Blue and yellow showdown" }, + // { "survival_shuffle_48", "Retro Roundabout" }, + // { "survival_shuffle_49", "玉あそび" }, + // { "survival_shuffle_50", "Royal Rumble (Rofall Gumble)" }, + // { "survival_shuffle_51", "Aggressive survival" }, + // { "survival_shuffle_52", "Fight Zone" }, + // { "survival_shuffle_53", "Hex-A-Blaster" }, + // { "survival_shuffle_54", "SLIME RIOT!" }, + // { "survival_shuffle_55", "Es knallt richtig" }, + // { "survival_shuffle_56", "Super Fortress Factory" }, + // { "survival_shuffle_57", "Heavy hitters only" }, + // { "survival_shuffle_58", "へいたんバトロワ" }, + // { "survival_shuffle_59", "Volcanic Panic" }, + // { "survival_shuffle_60", "Volcanic Panic" }, + // { "survival_shuffle_61", "雷霆乱豆中心" }, + // { "survival_shuffle_62", "ブラストボール(十字形)" }, + // { "survival_shuffle_63", "Poison Pond PVP" }, + // { "survival_shuffle_64", "Puncher Brawl 2" }, + // { "survival_shuffle_65", "Atoll pétulant" }, + // { "survival_shuffle_66", "Blast Rhino" }, + // { "survival_shuffle_67", "Blast Arena" }, + // { "survival_shuffle_68", "Brewing Boxes" }, + // { "survival_shuffle_69", "The flood" }, + // { "survival_shuffle_70", "PUSHBACK" }, + // { "survival_shuffle_71", "Arena Guys" }, + // { "survival_shuffle_72", "Jungle Survival" }, + // { "survival_shuffle_73", "おしくらまんじゅうジャンプ" }, + // { "survival_shuffle_74", "blast fall X" }, + // { "survival_shuffle_75", "Tic-Tac-Blow" }, + // { "survival_shuffle_76", "CS Guys" }, + // { "survival_shuffle_77", "Bounce Battle" }, + // { "survival_shuffle_78", "Cheat's Only Fan" }, + // { "survival_shuffle_79", "Showdown Party" }, + // { "survival_shuffle_80", "Donut layers!" }, + // { "survival_shuffle_81", "パワーアップ・ノックアウト" }, + // { "survival_shuffle_82", "アップダウンバトル" }, + // { "survival_shuffle_83", "頂上対決" }, + // { "survival_shuffle_84", "Blast Ring" }, + // { "survival_shuffle_85", "Raft Rumble" }, + // { "survival_shuffle_86", "Rhino-hex-killer+invasion" }, + // { "survival_shuffle_87", "Survie des enfers" }, + // { "survival_shuffle_88", "blast ball HEXAGON" }, + // { "survival_shuffle_89", "The Bean-rena" }, + // { "survival_shuffle_90", "Lake in the mountains" }, + // { "survival_shuffle_91", "Playing area" }, + // { "survival_shuffle_92", "Hopping Party" }, + // { "survival_shuffle_93", "Shape Dimension" }, + // { "survival_shuffle_94", "Dramatic Flowers" }, + // + // { "wle_mrs_ugc_playful_01", "Neon pipe run" }, + // { "wle_mrs_ugc_playful_02", "SUNKEN CIRCUIT" }, + // { "wle_mrs_ugc_playful_03", "Blundercity Marathon" }, + // { "wle_mrs_ugc_playful_04", "Rainbow highway" }, + // { "wle_mrs_ugc_playful_05", "Rainbow Riptide" }, + // { "wle_mrs_ugc_playful_06", "Past passage" }, + // { "wle_mrs_ugc_playful_07", "Sandcastle Kingdom" }, + // { "wle_mrs_ugc_playful_08", "Jumping Season" }, + // { "wle_mrs_ugc_playful_09", "Fall Stars" }, + // { "wle_mrs_ugc_playful_10", "Medieval Sprint" }, + // { "wle_mrs_ugc_playful_11", "SPRING MOUNTAIN" }, + // { "wle_mrs_ugc_playful_12", "NAUTICAL SHAMBLE" }, + // { "wle_mrs_ugc_playful_13", "The Last Winter" }, + // + // { "playful_shuffle_01", "Fiebre medieval" }, + // { "playful_shuffle_02", "Triple Trial" }, + // { "playful_shuffle_03", "Trees (Waterfall)" }, + // { "playful_shuffle_05", "plat guys" }, + // { "playful_shuffle_06", "震えるキャベツ" }, + // { "playful_shuffle_07", "Winter Wallop" }, + // { "playful_shuffle_08", "Multi Leaper" }, + // { "playful_shuffle_09", "Golden Poodles" }, + // { "playful_shuffle_10", "ストレートスタンブル" }, + // { "playful_shuffle_11", "Easy Fun Speedrun" }, + // { "playful_shuffle_12", "RUN RUN Park" }, + // { "playful_shuffle_14", "ごちゃごちゃストリート" }, + // { "playful_shuffle_15", "Conveyors Obstacles" }, + // { "playful_shuffle_17", "Green Mountain" }, + // { "playful_shuffle_18", "Ancient Fallstronomers" }, + // { "playful_shuffle_19", "+slidin' in the air+ 10k play special" }, + // { "playful_shuffle_20", "Jumping Season" }, + // { "playful_shuffle_21", "Track attackers system" }, + // { "playful_shuffle_22", "CASTLE CLASH" }, + // { "playful_shuffle_24", "Falling Dreams" }, + // { "playful_shuffle_25", "ロケットでうちあげだ 2" }, + // { "playful_shuffle_26", "The Terrible Spiral Of Woo Remake" }, + // { "playful_shuffle_27", "Rainbow Dash" }, + // { "playful_shuffle_28", "TruPixel's Jungle Mash-up" }, + // { "playful_shuffle_30", "Monochromatic Manic" }, + // { "playful_shuffle_33", "Ramp It Up!" }, + // { "playful_shuffle_34", "Adrenaline Force 2" }, + // { "playful_shuffle_35", "DIGITAL MADNESS" }, + // { "playful_shuffle_36", "Cosmic Pipes" }, + // { "playful_shuffle_37", "Milky way" }, + // { "playful_shuffle_38", "Snow Style" }, + // { "playful_shuffle_39", "Data Dash" }, + // { "playful_shuffle_40", "Caida resbaladisa" }, + // { "playful_shuffle_41", "Frostbite Speed Fall Slider" }, + // { "playful_shuffle_42", "Snow Mountain" }, + // { "playful_shuffle_44", "Cosmic Dash" }, + // { "playful_shuffle_45", "Overclocked" }, + // { "playful_shuffle_46", " Wild Dunes" }, + // { "playful_shuffle_47", "Flutter-by!" }, + // { "playful_shuffle_48", "Blundercity Marathon" }, + // { "playful_shuffle_50", "Pixel Circuit像素环游" }, + // { "playful_shuffle_51", "Stars Guys" }, + // { "playful_shuffle_52", "SUNKEN CIRCUIT" }, + // { "playful_shuffle_54", "Pocket Summit" }, + // { "playful_shuffle_55", "Love a day" }, + // { "playful_shuffle_56", "Passage imbroglio arc en ciel" }, + // { "playful_shuffle_58", "コズミックミュージック COSMIC MUSIC" }, + // { "playful_shuffle_59", "glissoire arc en ciel" }, + // + // { "survival_shuffle_wk11_01", "Speed attack" }, + // { "survival_shuffle_wk11_02", "Garbage Chute V2" }, + // { "survival_shuffle_wk11_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_wk11_04", "Sobreviventes da Batalha" }, + // { "survival_shuffle_wk11_05", "今日の運勢サバイバル" }, + // { "survival_shuffle_wk11_06", "More Blastball!" }, + // { "survival_shuffle_wk11_07", "Hexagone Tower" }, + // { "survival_shuffle_wk11_08", "Bouncy Castle" }, + // { "survival_shuffle_wk11_09", "Snowy Stronghold" }, + // { "survival_shuffle_wk11_10", "NAMEK" }, + // { "survival_shuffle_wk11_11", "Hexa-Towers - Finals Arena" }, + // { "survival_shuffle_wk11_12", "Satellite Delight" }, + // { "survival_shuffle_wk11_13", "DEADLY VOLCANO" }, + // { "survival_shuffle_wk11_14", "Ganj's Matter Baby" }, + // { "survival_shuffle_wk11_15", "HEX-A-JUMP" }, + // { "survival_shuffle_wk11_16", "RHINOCHET" }, + // { "survival_shuffle_wk11_17", "Rocky Rumble" }, + // { "survival_shuffle_wk11_18", "Ludo War" }, + // { "survival_shuffle_wk11_19", "RING ROUND FIGHT" }, + // { "survival_shuffle_wk11_20", "Flight frenzy" }, + // { "survival_shuffle_wk11_21", "BLAST BRIDGES" }, + // { "survival_shuffle_wk11_22", "Blast Ball X" }, + // { "survival_shuffle_wk11_23", "Blast Trip" }, + // { "survival_shuffle_wk11_24", "Royal Rumble" }, + // { "survival_shuffle_wk11_25", "Bird is the Word" }, + // { "survival_shuffle_wk11_26", "The Whirligig" }, + // { "survival_shuffle_wk11_27", "Subzero Gale" }, + // { "survival_shuffle_wk11_28", "Slime Surfers" }, + // { "survival_shuffle_wk11_29", "Eduardo Escapades" }, + // { "survival_shuffle_wk11_30", "Hex A Trouble" }, + // { "survival_shuffle_wk11_31", "Back & Forth" }, + // { "survival_shuffle_wk11_32", "HEXAGONAL RING BLAST" }, + // { "survival_shuffle_wk11_33", "Carousel Mayhem" }, + // { "survival_shuffle_wk11_34", "Beens Royale RESURRECTION" }, + // { "survival_shuffle_wk11_35", "Hexa-Toto" }, + // { "survival_shuffle_wk11_36", "Blender Container" }, + // { "survival_shuffle_wk11_37", "Mid wars!" }, + // { "survival_shuffle_wk11_38", "hex-a-volcanic" }, + // { "survival_shuffle_wk11_39", "vamos rey del aire" }, + // { "survival_shuffle_wk11_40", "Shogun's Arena" }, + // { "survival_shuffle_wk11_41", "survival board" }, + // { "survival_shuffle_wk11_42", "survival factory" }, + // { "survival_shuffle_wk11_43", "rainbow convoyer" }, + // { "survival_shuffle_wk11_44", "すぱいだーすっぱいんだー" }, + // { "survival_shuffle_wk11_45", "HEX A REBORN" }, + // { "survival_shuffle_wk11_46", "The Hex-A-Gon House" }, + // { "survival_shuffle_wk11_47", "CAROUSEL CHAOS" }, + // { "survival_shuffle_wk11_48", "Ring Off" }, + // { "survival_shuffle_wk11_49", "âpre pélutant" }, + // { "survival_shuffle_wk11_50", "ダイナミクスビート DYNAMICS BEAT" }, + // { "survival_shuffle_wk11_51", "Fruit Chute Survival" }, + // { "survival_shuffle_wk11_52", "No Punching" }, + // { "survival_shuffle_wk11_53", "Hex-A-Blaster" }, + // { "survival_shuffle_wk11_54", "The Punch Warriors! - Survival Edition" }, + // { "survival_shuffle_wk11_55", "Volcanic Panic" }, + // { "survival_shuffle_wk11_56", "Hex-a-lowercase t" }, + // { "survival_shuffle_wk11_57", "Beta Jinxed" }, + // { "survival_shuffle_wk11_58", "Showdown Party" }, + // { "survival_shuffle_wk11_59", "Canyon Sand 1" }, + // { "survival_shuffle_wk11_60", "Aggro-Crag" }, + // { "survival_shuffle_wk11_61", "Bean Fort" }, + // { "survival_shuffle_wk11_62", "Tronco Gigante" }, + // { "survival_shuffle_wk11_63", "Block Battle - Survive" }, + // { "survival_shuffle_wk11_64", "Hot Shots" }, + // { "survival_shuffle_wk11_65", "blast royale" }, + // { "survival_shuffle_wk11_66", "Supervivencia del caos" }, + // { "survival_shuffle_wk11_67", "Hex-A-Mayhem" }, + // { "survival_shuffle_wk11_68", "The Falliseum" }, + // { "survival_shuffle_wk11_69", "終末列車" }, + // { "survival_shuffle_wk11_70", "O chão é lava" }, + // { "survival_shuffle_wk11_71", "Survival Carnival" }, + // { "survival_shuffle_wk11_72", "Kraken x balls x boxing" }, + // { "survival_shuffle_wk11_73", "Gum survival" }, + // { "survival_shuffle_wk11_74", "スライム研究室" }, + // { "survival_shuffle_wk11_75", "Colour switch" }, + // { "survival_shuffle_wk11_76", "Fall Royale" }, + // { "survival_shuffle_wk11_77", "Roll Out Explosion" }, + // { "survival_shuffle_wk11_78", "HELIX ROLL" }, + // { "survival_shuffle_wk11_79", "耐久出来ないサバイバル2" }, + // { "survival_shuffle_wk11_80", "detonates atlantis" }, + // { "survival_shuffle_wk11_81", "Conveyor Chaos" }, + // { "survival_shuffle_wk11_82", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_wk11_84", "Slime Crater" }, + // { "survival_shuffle_wk11_85", "Firewall Finale" }, + // { "survival_shuffle_wk11_86", "ブラストボールエンド" }, + // { "survival_shuffle_wk11_87", "ボタンコンフュージョン" }, + // { "survival_shuffle_wk11_88", "DEE'S- RHINO RUMBLE!!!!!!" }, + // { "survival_shuffle_wk11_89", "tournement de couleur" }, + // { "survival_shuffle_wk11_90", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_wk11_91", "HARD HEROES DRLVE SURVLVAL" }, + // { "survival_shuffle_wk11_92", "Jump Show Fall" }, + // { "survival_shuffle_wk11_93", "Hex-A-Lava" }, + // { "survival_shuffle_wk11_94", "Magma Meltdown" }, + // { "survival_shuffle_wk11_95", "恐怖のたまご" }, + // { "survival_shuffle_wk11_96", "Cosmic Clash" }, + // { "survival_shuffle_wk11_97", "Fall And Round" }, + // { "survival_shuffle_wk11_98", "フォールドッジブラストボール" }, + // { "survival_shuffle_wk11_99", "Sewer Stand-off" }, + // + // { "survival_shuffle_3wk3_01", "Sobreviventes da Batalha" }, + // { "survival_shuffle_3wk3_02", "Survival Festival" }, + // { "survival_shuffle_3wk3_03", "MEOW-FO ROYALE" }, + // { "survival_shuffle_3wk3_04", "Space Blast" }, + // { "survival_shuffle_3wk3_05", "meteor rain" }, + // { "survival_shuffle_3wk3_06", "Spiral-Cano" }, + // { "survival_shuffle_3wk3_07", "Bridge Island Boss" }, + // { "survival_shuffle_3wk3_08", "Caldera chaos" }, + // { "survival_shuffle_3wk3_09", "BLAST BRIDGES" }, + // { "survival_shuffle_3wk3_10", "Royal Rumble" }, + // { "survival_shuffle_3wk3_11", "flower ring" }, + // { "survival_shuffle_3wk3_12", "The Whirligig" }, + // { "survival_shuffle_3wk3_13", "?" }, + // { "survival_shuffle_3wk3_14", "熔岩蜂窝 Hex-A-Lava" }, + // { "survival_shuffle_3wk3_15", "Mid wars!" }, + // { "survival_shuffle_3wk3_16", "vamos rey del aire" }, + // { "survival_shuffle_3wk3_17", "Shogun's Arena" }, + // { "survival_shuffle_3wk3_18", "聖帝導夢ランボー!" }, + // { "survival_shuffle_3wk3_19", "Test Survival" }, + // { "survival_shuffle_3wk3_20", "Blunder Barge" }, + // { "survival_shuffle_3wk3_21", "Ring Off" }, + // { "survival_shuffle_3wk3_22", "âpre pélutant" }, + // { "survival_shuffle_3wk3_23", "Arena Nocaute Ultimate" }, + // { "survival_shuffle_3wk3_24", "Bataille au ²" }, + // { "survival_shuffle_3wk3_25", "Bom Bom Do" }, + // { "survival_shuffle_3wk3_26", "Super Smash Beans 2!" }, + // { "survival_shuffle_3wk3_27", "VOLLEY BRAWL!" }, + // { "survival_shuffle_3wk3_28", "Bamblast!" }, + // { "survival_shuffle_3wk3_29", "Extreme Block Party" }, + // { "survival_shuffle_3wk3_30", "Colisel da insegurança" }, + // { "survival_shuffle_3wk3_31", "hex-a-climb" }, + // { "survival_shuffle_3wk3_32", "Hex-a-lowercase t" }, + // { "survival_shuffle_3wk3_33", "Beta Jinxed" }, + // { "survival_shuffle_3wk3_34", "The flood" }, + // { "survival_shuffle_3wk3_35", "Explosive kraken!" }, + // { "survival_shuffle_3wk3_36", "Bean Abduction" }, + // { "survival_shuffle_3wk3_37", "blast fall X" }, + // { "survival_shuffle_3wk3_38", "HexaBoom" }, + // { "survival_shuffle_3wk3_39", "グラグラ足場" }, + // { "survival_shuffle_3wk3_40", "Floor-Fall-Survival" }, + // { "survival_shuffle_3wk3_41", "Batalha TRI-unFall" }, + // { "survival_shuffle_3wk3_42", "Détonation arc en ciel" }, + // { "survival_shuffle_3wk3_43", "Rustic Jungle" }, + // { "survival_shuffle_3wk3_44", "SLIME BLOCK PARTY" }, + // { "survival_shuffle_3wk3_45", "チーム(すもう)サバイバル!" }, + // { "survival_shuffle_3wk3_46", "Hex-apple" }, + // { "survival_shuffle_3wk3_47", "Aggro-Crag" }, + // { "survival_shuffle_3wk3_48", "Frenzied Factory" }, + // { "survival_shuffle_3wk3_49", "AIR BATTLE" }, + // { "survival_shuffle_3wk3_50", "The Bean-rena" }, + // { "survival_shuffle_3wk3_51", "Hex-A-Joust" }, + // { "survival_shuffle_3wk3_52", "Lake in the mountains" }, + // { "survival_shuffle_3wk3_53", "Tronco Gigante" }, + // { "survival_shuffle_3wk3_54", "Whirling Arena" }, + // { "survival_shuffle_3wk3_55", "Block Battle - Survive" }, + // { "survival_shuffle_3wk3_56", "Hot Shots" }, + // { "survival_shuffle_3wk3_57", "Gladiators" }, + // { "survival_shuffle_3wk3_58", "The Falliseum" }, + // { "survival_shuffle_3wk3_59", "Blast Chaos" }, + // { "survival_shuffle_3wk3_60", "Blast Ball Reveal" }, + // { "survival_shuffle_3wk3_61", "終末列車" }, + // { "survival_shuffle_3wk3_62", "Kraken x balls x boxing" }, + // { "survival_shuffle_3wk3_63", "Gum survival" }, + // { "survival_shuffle_3wk3_64", "スライム研究室" }, + // { "survival_shuffle_3wk3_65", "BEAN’S FIRST MATH TEST" }, + // { "survival_shuffle_3wk3_66", "Fight Land" }, + // { "survival_shuffle_3wk3_67", "Colour switch" }, + // { "survival_shuffle_3wk3_68", "Fall Royale" }, + // { "survival_shuffle_3wk3_69", "デジタルランティス" }, + // { "survival_shuffle_3wk3_70", "MAME RING" }, + // { "survival_shuffle_3wk3_71", "detonates atlantis" }, + // { "survival_shuffle_3wk3_72", "Flower Punch" }, + // { "survival_shuffle_3wk3_73", "Wobbly arena" }, + // { "survival_shuffle_3wk3_74", "TURMOIL--POWER UP PANIC" }, + // { "survival_shuffle_3wk3_75", "Why is it Spicy" }, + // { "survival_shuffle_3wk3_76", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_3wk3_77", "Slime Crater" }, + // { "survival_shuffle_3wk3_78", "ボタンコンフュージョン" }, + // { "survival_shuffle_3wk3_79", "tournement de couleur" }, + // { "survival_shuffle_3wk3_80", "Boxeo V69" }, + // { "survival_shuffle_3wk3_81", "fall in a storm" }, + // { "survival_shuffle_3wk3_82", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_3wk3_83", "Rebellion of block ver2" }, + // { "survival_shuffle_3wk3_86", "怒りのすとんぴんぐ・ぐらうんど" }, + // { "survival_shuffle_3wk3_87", "Jump Show Fall" }, + // { "survival_shuffle_3wk3_88", "カウントブロック" }, + // { "survival_shuffle_3wk3_89", "Hex-A-Lava" }, + // { "survival_shuffle_3wk3_90", "Mario" }, + // { "survival_shuffle_3wk3_91", "Magma Meltdown" }, + // { "survival_shuffle_3wk3_92", "ROOFTOP RUMBLE!" }, + // { "survival_shuffle_3wk3_93", "émoussement arc en ciel" }, + // { "survival_shuffle_3wk3_94", "Fall And Round" }, + // { "survival_shuffle_3wk3_95", "深空蜂窝" }, + // { "survival_shuffle_3wk3_96", "Pokémon Stadium" }, + // { "survival_shuffle_3wk3_97", "Safari survival" }, + // { "survival_shuffle_3wk3_98", "Slime Playground" }, + // { "survival_shuffle_3wk3_99", "Hexagonal Fadeout" }, + // { "survival_shuffle_3wk3_100", "ランダムエッグスイッチアクション" }, + // + // { "wle_shuggle_mwk3_01", "Ariko Jones" }, + // { "wle_shuggle_mwk3_02", "Triple Trial" }, + // { "wle_shuggle_mwk3_03", "Aerial Squirrel" }, + // { "wle_shuggle_mwk3_04", "ギリギリアウトチャレンジ公式競技場 1" }, + // { "wle_shuggle_mwk3_05", "シンスモウ(ブラストボール)" }, + // { "wle_shuggle_mwk3_06", "Winter Wallop" }, + // { "wle_shuggle_mwk3_07", "リリーリーパー再現" }, + // { "wle_shuggle_mwk3_08", "Wilderness Adventures!" }, + // { "wle_shuggle_mwk3_09", "Rets arc en ciel" }, + // { "wle_shuggle_mwk3_10", "egypt park" }, + // { "wle_shuggle_mwk3_11", "Green Mountain" }, + // { "wle_shuggle_mwk3_12", "super speedrun" }, + // { "wle_shuggle_mwk3_13", "ULTRA MEGA EXTREME HARD!!!" }, + // { "wle_shuggle_mwk3_14", "Заурядные Белки" }, + // { "wle_shuggle_mwk3_15", "Digital keyboard 😜✌️" }, + // { "wle_shuggle_mwk3_16", "artistic ELIMINATED challenge 1" }, + // { "wle_shuggle_mwk3_17", "TAKOのツボ" }, + // { "wle_shuggle_mwk3_18", "Jumping Season" }, + // { "wle_shuggle_mwk3_19", "Black" }, + // { "wle_shuggle_mwk3_20", "Digital Climb 3 ~Rainbow~" }, + // { "wle_shuggle_mwk3_21", "Volcanic Island Travel!" }, + // { "wle_shuggle_mwk3_22", "Sky Ball" }, + // { "wle_shuggle_mwk3_23", "Space Race Remake" }, + // { "wle_shuggle_mwk3_24", "危険なリス" }, + // { "wle_shuggle_mwk3_25", "Summer and the Wonder land of the Sea" }, + // { "wle_shuggle_mwk3_26", "Skim City" }, + // { "wle_shuggle_mwk3_27", "Prova do campeão (Champion Round)" }, + // { "wle_shuggle_mwk3_28", "Жёлтые Нарвалы" }, + // { "wle_shuggle_mwk3_29", "Tropical Punch" }, + // { "wle_shuggle_mwk3_30", "away from the slime" }, + // { "wle_shuggle_mwk3_31", "キョダイMAX黒き天空龍!PFNo02" }, + // { "wle_shuggle_mwk3_32", "Yellow Kingdoms" }, + // { "wle_shuggle_mwk3_33", "Milky way" }, + // { "wle_shuggle_mwk3_34", "SPACE ROUND" }, + // { "wle_shuggle_mwk3_35", "Speedy Bounces" }, + // { "wle_shuggle_mwk3_36", "Snow Style" }, + // { "wle_shuggle_mwk3_37", "bunny leapers V8" }, + // { "wle_shuggle_mwk3_38", "Mushroom" }, + // { "wle_shuggle_mwk3_39", "Data Dash" }, + // { "wle_shuggle_mwk3_40", "RUTA EN LA SELVA" }, + // { "wle_shuggle_mwk3_41", "Button infected desert temple" }, + // { "wle_shuggle_mwk3_42", "Carreira colorida" }, + // { "wle_shuggle_mwk3_43", "Cargo Drop" }, + // { "wle_shuggle_mwk3_44", "green dash" }, + // { "wle_shuggle_mwk3_45", "Jungle Guys" }, + // { "wle_shuggle_mwk3_46", "Golden gates" }, + // { "wle_shuggle_mwk3_47", "Evil Guys" }, + // { "wle_shuggle_mwk3_48", "Orange And Blue Leapers" }, + // { "wle_shuggle_mwk3_49", "Plinko Fall" }, + // { "wle_shuggle_mwk3_50", "Digital Bean Stumble (V2)" }, + // { "wle_shuggle_mwk3_51", "Estareo's Lele Lembe v9" }, + // { "wle_shuggle_mwk3_52", "THE GATE OF TRUTH" }, + // { "wle_shuggle_mwk3_53", "Flutter-by!" }, + // { "wle_shuggle_mwk3_54", "Sketchy Sledding!" }, + // { "wle_shuggle_mwk3_55", "A Cold Race" }, + // { "wle_shuggle_mwk3_56", "X-Treme MegaKaizo Ultra Fall GuysHardest" }, + // { "wle_shuggle_mwk3_57", "Snow Speed" }, + // { "wle_shuggle_mwk3_58", "Bean Fantasy" }, + // { "wle_shuggle_mwk3_59", "Runner(For Fame Pass)" }, + // { "wle_shuggle_mwk3_60", "French Station" }, + // { "wle_shuggle_mwk3_61", "slime climb Creative" }, + // { "wle_shuggle_mwk3_62", "CLASSROOM(PART 2)" }, + // { "wle_shuggle_mwk3_63", "Chilly Leapers" }, + // { "wle_shuggle_mwk3_64", "Fall Bridge" }, + // { "wle_shuggle_mwk3_65", "快感快速!!" }, + // { "wle_shuggle_mwk3_66", "Jungle Guys II" }, + // { "wle_shuggle_mwk3_67", "コズミックミュージック COSMIC MUSIC" }, + // { "wle_shuggle_mwk3_68", "Satellite Sprint" }, + // { "wle_shuggle_mwk3_69", "GROOVIN’ BANANA TEMPLE" }, + // { "wle_shuggle_mwk3_70", "Rumble Tumble" }, + // { "wle_shuggle_mwk3_71", "Fashion Show!" }, + // { "wle_shuggle_mwk3_72", "DROP TOWER 蹦极塔" }, + // { "wle_shuggle_mwk3_73", "Boggle-Bean Bridges" }, + // { "wle_shuggle_mwk3_74", "AquArsene" }, + // { "wle_shuggle_mwk3_75", "Winter Games" }, + // { "wle_shuggle_mwk3_76", "LOONEY TUNES" }, + // { "wle_shuggle_mwk3_77", "atlan-sprint" }, + // { "wle_shuggle_mwk3_78", "Koala kingdom" }, + // { "wle_shuggle_mwk3_79", "straight500" }, + // { "wle_shuggle_mwk3_80", "BIG CROWN MONUMENT" }, + // { "wle_shuggle_mwk3_81", "Lily River Run" }, + // { "wle_shuggle_mwk3_82", "Skyball" }, + // { "wle_shuggle_mwk3_83", "STARLIGHT STUMBLE" }, + // { "wle_shuggle_mwk3_84", "Speedway 2069" }, + // { "wle_shuggle_mwk3_85", "GOLD RUSH" }, + // { "wle_shuggle_mwk3_86", "Data Eraser" }, + // { "wle_shuggle_mwk3_87", "FESTIVE CROSSROADS" }, + // { "wle_shuggle_mwk3_88", "Rainbow highway" }, + // { "wle_shuggle_mwk3_89", "Candyland" }, + // { "wle_shuggle_mwk3_90", "hex-a-run" }, + // { "wle_shuggle_mwk3_91", "Rover Rumble" }, + // { "wle_shuggle_mwk3_92", "MEOW MEOW GALAXY" }, + // { "wle_shuggle_mwk3_93", "Speedy Lovers" }, + // { "wle_shuggle_mwk3_94", "THE Rivalry Game (Football)" }, + // { "wle_shuggle_mwk3_95", "MARIPEN PHOTOLOCATION(Digital)" }, + // { "wle_shuggle_mwk3_96", "Olympique Guys" }, + // { "wle_shuggle_mwk3_97", "Boo City" }, + // { "wle_shuggle_mwk3_98", "CARNIVORUS PLANTS" }, + // { "wle_shuggle_mwk3_99", "はしるまくれ!⊂{◎Å◎}⊃" }, + // { "wle_shuggle_mwk3_100", "Crazy Coaster" }, + // + // { "playful_refresh_w2_01", "Winter Wallop" }, + // { "playful_refresh_w2_02", "Multi Leaper" }, + // { "playful_refresh_w2_03", "ストレートスタンブル" }, + // { "playful_refresh_w2_04", "RUN RUN Park" }, + // { "playful_refresh_w2_05", "やってみな!" }, + // { "playful_refresh_w2_06", "ごちゃごちゃストリート" }, + // { "playful_refresh_w2_07", "Conveyors Obstacles" }, + // { "playful_refresh_w2_08", "Seeing The Bean Ball" }, + // { "playful_refresh_w2_09", "Green Mountain" }, + // { "playful_refresh_w2_10", "Ancient Fallstronomers" }, + // { "playful_refresh_w2_11", "Jumping Season" }, + // { "playful_refresh_w2_12", "Track attackers system" }, + // { "playful_refresh_w2_13", "CASTLE CLASH" }, + // { "playful_refresh_w2_14", "The Terrible Spiral Of Woo Remake" }, + // { "playful_refresh_w2_15", "Rainbow Dash" }, + // { "playful_refresh_w2_16", "TruPixel's Jungle Mash-up" }, + // { "playful_refresh_w2_17", "fall-in space" }, + // { "playful_refresh_w2_18", "Monochromatic Manic" }, + // { "playful_refresh_w2_19", "Adrenaline Force 2" }, + // { "playful_refresh_w2_20", "DIGITAL MADNESS" }, + // { "playful_refresh_w2_21", "Data Dash" }, + // { "playful_refresh_w2_22", "Caida resbaladisa" }, + // { "playful_refresh_w2_23", "Snow Mountain" }, + // { "playful_refresh_w2_24", "Orange And Blue Leapers" }, + // { "playful_refresh_w2_25", " Wild Dunes" }, + // { "playful_refresh_w2_26", "Blundercity Marathon" }, + // { "playful_refresh_w2_27", "Pocket Summit" }, + // { "playful_refresh_w2_28", "Love a day" }, + // { "playful_refresh_w2_29", "Passage imbroglio arc en ciel" }, + // { "playful_refresh_w2_30", "Fall Stars" }, + // { "playful_refresh_w2_31", "SPRING MOUNTAIN" }, + // { "playful_refresh_w2_32", "AquArsene" }, + // { "playful_refresh_w2_33", "Rainbow Riptide" }, + // { "playful_refresh_w2_34", "Cluster Cosmos" }, + // { "playful_refresh_w2_35", "Koala kingdom" }, + // { "playful_refresh_w2_36", "Fallyager 12 Repair Mission" }, + // { "playful_refresh_w2_37", "Lily River Run" }, + // { "playful_refresh_w2_38", "STARLIGHT STUMBLE" }, + // { "playful_refresh_w2_39", "Welcome to Namek" }, + // { "playful_refresh_w2_40", "Rainbow highway" }, + // { "playful_refresh_w2_41", "Past passage" }, + // { "playful_refresh_w2_42", "Neon pipe run" }, + // { "playful_refresh_w2_43", "NAUTICAL SHAMBLE" }, + // + // { "wle_mrs_winter_opener_01", "Winter Blunderland" }, + // { "wle_mrs_winter_opener_02", "Frosty fiesta" }, + // { "wle_mrs_winter_opener_03", "Knight Slide" }, + // { "wle_mrs_winter_opener_04", "Digi-Snow Stumble" }, + // { "wle_mrs_winter_opener_05", "Snowy Cave-in" }, + // { "wle_mrs_winter_opener_06", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "wle_mrs_winter_opener_07", "A Cold Race" }, + // { "wle_mrs_winter_opener_08", "Ice Rock" }, + // { "wle_mrs_winter_filler_01", "Snowy Flakes" }, + // { "wle_mrs_winter_filler_02", "Mountain of Ice" }, + // { "wle_mrs_winter_filler_03", "FROSTY FUMBLE" }, + // { "wle_mrs_winter_filler_04", "Winter Getaway" }, + // { "wle_mrs_winter_filler_05", "Snowy Speed Sprint" }, + // { "wle_mrs_winter_filler_06", "WINTER WONDERLAND" }, + // { "wle_mrs_winter_filler_07", "Gran Glaciar Paradicial" }, + // { "wle_mrs_winter_final_01", "The Ice Dragon's Lair" }, + // { "wle_mrs_winter_final_02", "Winter Wonderland" }, + // { "wle_mrs_winter_final_03", "Snowman Sprint" }, + // { "wle_mrs_winter_final_04", "MERRY CLIMBING!" }, + // { "wle_mrs_winter_final_05", "Winter Wonderland" }, + // + // { "wle_s10_cf_round_001", "Blocky Bridges" }, + // { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + // { "wle_s10_cf_round_003", "Drop n' Drag" }, + // { "wle_s10_cf_round_004", "Fun with Fans" }, + // + // { "wle_s10_bt_round_001", "Push Ups" }, + // { "wle_s10_bt_round_002", "Heave & Haul" }, + // { "wle_s10_bt_round_003", "Stepping Stones" }, + // { "wle_s10_bt_round_004", "Double Trouble" }, + // + // { "wle_mrs_bagel_opener_1", "Tunnel of Love" }, + // { "wle_mrs_bagel_opener_2", "Pink Parade" }, + // { "wle_mrs_bagel_opener_3", "Prideful Path" }, + // { "wle_mrs_bagel_opener_4", "Coming Together" }, + // { "wle_mrs_bagel_filler_1", "Clifftop Capers" }, + // { "wle_mrs_bagel_filler_2", "Waveway Splits" }, + // { "wle_mrs_bagel_filler_3", "In the Groove" }, + // { "wle_mrs_bagel_filler_4", "Heartfall Heat" }, + // { "wle_mrs_bagel_final_1", "Rainbow Rise" }, + // { "wle_mrs_bagel_final_2", "Out and About" }, + // + // { "wle_mrs_bouncy_bean_time_opener", "Frosty Frolics" }, + // { "wle_mrs_bouncy_bean_time_opener_02", "roll roll bean" }, + // { "wle_mrs_bouncy_bean_time_opener_03", "SPEEDROLLING" }, + // { "wle_mrs_bouncy_bean_time_filler", "Ball Park" }, + // { "wle_mrs_bouncy_bean_time_filler_02", "Ball Carnival" }, + // { "wle_mrs_bouncy_bean_time_filler_03", "Spiral Trial" }, + // { "wle_mrs_bouncy_bean_time_filler_04", "Golf Fall" }, + // { "wle_mrs_bouncy_bean_time_final", "Downtown Rush" }, + // { "wle_mrs_bouncy_bean_time_final_02", "Skyview Derby" }, + // { "wle_mrs_bouncy_bean_time_final_03", "Rolling Speedway" }, + // { "wle_mrs_bouncy_bean_time_final_04", "SEA FLOW!" }, + } + }, + { Language.French, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "round_airtime", "Haute Voltige" }, + { "round_bluejay", "Zone de Colline de Haricot" }, + { "round_biggestfan", "Ventilateurs d'Avion" }, + { "round_hoops_revenge_symphony_launch_show", "Rebonds en Folie" }, + { "round_king_of_the_hill", "Bulles qui s'accumulent" }, + { "round_1v1_button_basher", "Massacreurs de Boutons" }, + { "round_satellitehoppers_almond", "Autoroute Cosmique" }, + { "round_door_dash", "Percu-portes" }, + { "round_gauntlet_02", "Hauteurs Vertigineuses" }, + { "round_ffa_button_bashers_squads_almond", "Usine Urgente" }, + { "round_iceclimb", "Pic Glacé" }, + { "round_dodge_fall", "Fruits en Folie" }, + { "round_see_saw_360", "Équilibrisme" }, + { "round_chompchomp", "Perkute-Porte" }, + { "round_gauntlet_01", "Hit Parade" }, + { "round_slippy_slide", "Toboggans aux Cerceaux" }, + { "round_hoops_blockade_solo", "Les Cerceaux" }, + { "round_gauntlet_04", "Folie Médiévale" }, + { "round_follow-the-leader_s6_launch", "Les Feux de la Rampe" }, + { "round_drumtop", "Virevoltes Tropicales" }, + { "round_gauntlet_08", "Promenade Festive" }, + { "round_penguin_solos", "Pool Party des Pingouins" }, + { "round_pipedup_s6_launch", "Les Bons Tuyaux" }, + { "round_pixelperfect_almond", "Au Pixel Près" }, + { "round_follow_the_line", "Sentier des Énigmes" }, + { "round_tunnel_race", "Roulé-Boulé" }, + { "round_see_saw", "Les Bascules" }, + { "round_shortcircuit", "Long-Circuit" }, + { "round_skeefall", "Piste Folle" }, + { "round_gauntlet_06", "La Ville Vue d'en-Haut" }, + { "round_lava", "Ascension Gélatineuse" }, + { "round_slimeclimb_2", "La Tour Gélatineuse" }, + { "round_gauntlet_10_almond", "Course Spatiale" }, + { "round_slide_chute", "Glissade en Vitesse" }, + { "round_short_circuit_2_symphony_launch_show", "Circuit de Vélocité" }, + { "round_starlink_almond", "Carte Céleste" }, + { "round_tip_toe", "Sur la Pointe des Pieds" }, + { "round_gauntlet_09_symphony_launch_show", "Attaque sur Piste" }, + { "round_gauntlet_07", "Culbut'Arbre" }, + { "round_gauntlet_05", "Dans la Toundra" }, + { "round_gauntlet_03", "Le Tournenrond" }, + { "round_wall_guys", "Murs sans Frontières" }, + { "round_fruitpunch_s4_show", "Cibles Basculantes" }, + { "round_blastballruins", "Balles de l'Atlantide" }, + { "round_block_party", "Gare aux Blocs" }, + { "round_hoverboardsurvival_s4_show", "Héros de l'Hoverboard" }, + { "round_hoverboardsurvival2_almond", "Héros de l'Hypervitesse" }, + { "round_jump_club", "Les Pros du Saut" }, + { "round_match_fall", "Les Deux Font la Paire" }, + { "round_tunnel", "Ça Roule" }, + { "round_snowballsurvival", "Boules de Neige en Folie" }, + { "round_robotrampage_arena_2", "C'est du Lourd" }, + { "round_fruit_bowl", "Fruits + Fruits = Fruits" }, + { "round_tail_tag", "Attrape Queues" }, + { "round_spin_ring_symphony_launch_show", "La Toupie Infernale" }, + { "round_1v1_volleyfall_symphony_launch_show", "Volleyfall" }, + { "round_basketfall_s4_show", "Basketfall" }, + { "round_egg_grab", "Œufs Brouillés" }, + { "round_egg_grab_02", "Assaut des Œufs" }, + { "round_fall_ball_60_players", "Fall Ball" }, + { "round_ballhogs", "Les Fous du Ballon" }, + { "round_hoops", "Hop Hop Hop" }, + { "round_jinxed", "Malédiction" }, + { "round_chicken_chase", "Chasse au Pingouin" }, + { "round_territory_control_s4_show", "Puissance Électrique" }, + { "round_rocknroll", "Rock 'n' Roll" }, + { "round_snowy_scrap", "Bataille de Boules de Neige" }, + { "round_invisibeans", "Voleurs Sucrés" }, + { "round_pumpkin_pie", "Voleurs de Bonbons" }, + { "round_conveyor_arena", "Attrape Queues en Équipe" }, + { "round_blastball_arenasurvival_symphony_launch_show", "Balle Rebondissante" }, + { "round_fall_mountain_hub_complete", "La Grimpette" }, + { "round_floor_fall", "Hexagone Infernal" }, + { "round_hexaring_symphony_launch_show", "Hex-Anneau" }, + { "round_hexsnake_almond", "Hexa-Terrestre" }, + { "round_jump_showdown", "Les Rois du Saut" }, + { "round_kraken_attack", "Valse du Kraken" }, + { "round_crown_maze", "Temple Perdu" }, + { "round_tunnel_final", "Ça Coule" }, + { "round_royal_rumble", "Bazar Royal" }, + { "round_thin_ice", "Fonte des Glaces" }, + { "round_tiptoefinale_almond", "Finale sur la Pointe des Pieds" }, + + { "user_creative_race_round", "Créative des Joueurs (Course)" }, + { "user_creative_survival_round", "Créative des Joueurs (Survie)" }, + { "user_creative_hunt_round", "Créative des Joueurs (Points)" }, + { "user_creative_logic_round", "Créative des Joueurs (Logique)" }, + { "user_creative_team_round", "Créative des Joueurs (Équipe)" }, + { "creative_race_round", "Créative (Course)" }, + { "creative_race_final_round", "Finale Créative (Course)" }, + { "creative_survival_round", "Créative (Survie)" }, + { "creative_survival_final_round", "Finale Créative (Survie)" }, + { "creative_hunt_round", "Créative (Points)" }, + { "creative_hunt_final_round", "Finale Créative (Points)" }, + { "creative_logic_round", "Créative (Logique)" }, + { "creative_logic_final_round", "Finale Créative (Logique)" }, + { "creative_team_round", "Créative (Équipe)" }, + { "creative_team_final_round", "Finale Créative (Équipe)" }, + + // { "wle_main_filler_01", "Ruta en la selva" }, + // { "wle_main_filler_02", "ROTATION STATION" }, + // { "wle_main_filler_03", "canyon sun day" }, + // { "wle_main_opener_01", "Winter Disc-O" }, + // { "wle_main_opener_02", "Satellite Sprint" }, + // + // { "wle_s10_orig_round_001", "Beans Ahoy!" }, + // { "wle_s10_orig_round_002", "Airborne Antics" }, + // { "wle_s10_orig_round_003", "Scythes & Roundabouts" }, + // { "wle_s10_orig_round_004", "Cardio Runners" }, + // { "wle_s10_orig_round_005", "Fan Flingers" }, + // { "wle_s10_orig_round_006", "Uphill Struggle" }, + // { "wle_s10_orig_round_007", "Spinner Sprint" }, + // { "wle_s10_orig_round_008", "Lane Changers" }, + // { "wle_s10_orig_round_009", "Gentle Gauntlet" }, + // { "wle_s10_orig_round_010", "Square Up" }, + // { "wle_s10_orig_round_011", "Slide Showdown" }, + // { "wle_s10_orig_round_012", "Up & Down" }, + // { "wle_s10_orig_round_013", "Choo Choo Challenge" }, + // { "wle_s10_orig_round_014", "Runner Beans" }, + // { "wle_s10_orig_round_015", "Disc Dashers" }, + // { "wle_s10_orig_round_016", "Two Faced" }, + // { "wle_s10_orig_round_017", "Bellyflop Battlers" }, + // { "wle_s10_orig_round_018", "Apples & Oranges" }, + // { "wle_s10_orig_round_019", "Blueberry Bombardment" }, + // { "wle_s10_orig_round_020", "Chuting Stars" }, + // { "wle_s10_orig_round_021", "Slimy Slopes" }, + // { "wle_s10_orig_round_022", "Circuit Breakers" }, + // { "wle_s10_orig_round_023", "Winding Walkways" }, + // { "wle_s10_orig_round_024", "Wooseleum" }, + // { "wle_s10_orig_round_025", "Mount Boom" }, + // { "wle_s10_orig_round_026", "Hyperlink Hijinks" }, + // { "wle_s10_orig_round_027", "Fan Frolics" }, + // { "wle_s10_orig_round_028", "Windmill Road" }, + // { "wle_s10_orig_round_029", "Conveyor Clash" }, + // { "wle_s10_orig_round_030", "Mega Monument" }, + // { "wle_s10_orig_round_031", "Transfer Turnpike" }, + // { "wle_s10_orig_round_032", "Fortress Frolics" }, + // { "wle_s10_orig_round_033", "Super Door Dash" }, + // { "wle_s10_orig_round_034", "Spiral Of Woo" }, + // { "wle_s10_orig_round_035", "Tornado Trial" }, + // { "wle_s10_orig_round_036", "Hopscotch Havoc" }, + // { "wle_s10_orig_round_037", "Beat Bouncers" }, + // { "wle_s10_orig_round_038", "Blunder Bridges" }, + // { "wle_s10_orig_round_039", "Incline Rewind" }, + // { "wle_s10_orig_round_040", "Prismatic Parade" }, + // { "wle_s10_orig_round_041", "Swept Away" }, + // { "wle_s10_orig_round_042", "Balancing Act" }, + // { "wle_s10_orig_round_043", "Trouble Tower" }, + // { "wle_s10_orig_round_044", "Serpent Slalom" }, + // { "wle_s10_orig_round_045", "Floorless" }, + // { "wle_s10_orig_round_045_long", "Floorless" }, + // { "wle_s10_orig_round_046", "In The Cloud" }, + // { "wle_s10_orig_round_047", "Downstream Duel" }, + // { "wle_s10_orig_round_048", "Lost Palace" }, + // { "wle_s10_long_round_003", "Fall Speedway" }, + // { "wle_s10_long_round_004", "ZigZag Zoomies" }, + // { "wle_s10_long_round_005", "Terrabyte Trial" }, + // { "wle_s10_round_001", "Digi Trek" }, + // { "wle_s10_round_002", "Shortcut Links" }, + // { "wle_s10_round_003", "Upload Heights" }, + // { "wle_s10_round_004", "Parkour Panic" }, + // { "wle_s10_round_005", "Data Streams" }, + // { "wle_s10_round_006", "Gigabyte Gauntlet" }, + // { "wle_s10_round_007", "Cube Corruption" }, + // { "wle_s10_round_008", "Wham Bam Boom" }, + // { "wle_s10_round_009", "Firewall Finale" }, + // { "wle_s10_round_010", "Pixel Hearts" }, + // { "wle_s10_round_011", "Cyber Circuit" }, + // { "wle_s10_round_012", "Boom Blaster Trial" }, + // + // { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + // { "wle_s10_player_round_wk3_02", "Door Game" }, + // { "wle_s10_player_round_wk3_03", "Full Speed Sliding (FSS) - Jelly Road" }, + // { "wle_s10_player_round_wk3_04", "Sky High Run" }, + // { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + // { "wle_s10_player_round_wk3_07", "Descente Créative" }, + // { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + // { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + // { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + // { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + // { "wle_s10_player_round_wk3_12", "Variable Valley" }, + // { "wle_fp2_wk6_01", "Broken Course" }, + // { "wle_s10_player_round_wk3_14", "Tower of Fall" }, + // { "wle_s10_player_round_wk3_15", "Parkour Party" }, + // { "wle_s10_player_round_wk3_16", "Catastrophe Climb" }, + // { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + // { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + // { "wle_s10_player_round_wk3_19", "Sky Time" }, + // { "wle_s10_player_round_wk3_20", "EZz Map" }, + // + // { "wle_s10_player_round_wk4_01", "Slippery Stretch" }, + // { "wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + // { "wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + // { "wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + // { "wle_s10_player_round_wk4_06", "Topsie Tursie" }, + // { "wle_s10_player_round_wk4_07", "Arcade Assault" }, + // { "wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + // { "wle_s10_player_round_wk4_09", "Green Beans" }, + // { "wle_s10_player_round_wk4_10", "Hop Hill" }, + // { "wle_s10_player_round_wk4_11", "Quick Sliders" }, + // { "wle_s10_player_round_wk4_12", "Split Path" }, + // { "wle_s10_player_round_wk4_13", "Piso resbaloso" }, + // { "wle_s10_player_round_wk4_15", "Snowboard Street" }, + // { "wle_s10_player_round_wk4_18", "House Invasion" }, + // { "wle_s10_player_round_wk4_19", "SOLO FULL-TILT RAGE" }, + // { "wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + // { "wle_s10_player_round_wk4_21", "Spin" }, + // { "wle_s10_player_round_wk4_22", "Lane Changers" }, + // + // { "wle_s10_player_round_wk5_01", "Block Park" }, + // { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + // { "wle_s10_player_round_wk5_03", "Digital Temple" }, + // { "wle_s10_player_round_wk5_04", "Tower Escape" }, + // { "wle_s10_player_round_wk5_05", "Tower Dash" }, + // { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + // { "wle_s10_player_round_wk5_07", "Looooping" }, + // { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + // { "wle_s10_player_round_wk5_10", "Siank Arena" }, + // { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + // { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + // { "wle_s10_player_round_wk5_13", "Dessert Village" }, + // { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + // { "wle_s10_player_round_wk5_15", "Beast Route" }, + // { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + // { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + // { "wle_s10_player_round_wk5_18", "Digital Doom" }, + // + // { "wle_s10_player_round_wk6_01", "Hammer Heaven" }, + // { "wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + // { "wle_s10_player_round_wk6_03", "Castle Rush" }, + // { "wle_s10_player_round_wk6_04", "Chaotic Race" }, + // { "wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + // { "wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + // { "wle_s10_player_round_wk6_08", "Flower Power" }, + // { "wle_s10_player_round_wk6_09", "Dimension Explorer" }, + // { "wle_s10_player_round_wk6_10", "Forked Passage" }, + // { "wle_s10_player_round_wk6_12", "The Bee Hive" }, + // { "wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + // { "wle_s10_player_round_wk6_14", "Snek" }, + // { "wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + // { "wle_s10_player_round_wk6_17", "Slippery Helixes" }, + // { "wle_s10_player_round_wk6_18", "Recess" }, + // { "wle_s10_player_round_wk6_19", "Parrot river" }, + // { "wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + // + // { "current_wle_fp3_07_01", "Block Sledding" }, + // { "current_wle_fp3_07_02", "Layup Wallop" }, + // { "current_wle_fp3_07_03", "Minecart Mayhem" }, + // { "current_wle_fp3_07_04", "Bouncing Pass" }, + // { "current_wle_fp3_07_05", "Ball Factory" }, + // { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + // { "current_wle_fp3_07_0_02", "Woo-F-O" }, + // { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + // + // { "current_wle_fp3_08_01", "Grabbers Territory" }, + // { "current_wle_fp3_08_02", "A Way Out" }, + // { "current_wle_fp3_08_03", "Wall Block" }, + // { "current_wle_fp3_08_04", "The dream island" }, + // { "current_wle_fp3_08_05", "Rainbow pulsion" }, + // { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + // { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + // { "current_wle_fp3_08_10", "Crazy boxes" }, + // { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + // { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + // { "current_wle_fp3_08_15", "Stumble Teams" }, + // { "current_wle_fp3_08_16", "Twisting Tower" }, + // { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + // { "current_wle_fp3_08_18", "The Rising Blocks" }, + // { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + // { "current_wle_fp3_09_01", "The up tower" }, + // { "current_wle_fp3_09_02", "Short shuriken" }, + // { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + // { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + // { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + // { "current_wle_fp3_09_06", "Random Heights" }, + // { "current_wle_fp3_09_07", "Climb scramble" }, + // { "current_wle_fp3_09_08", "Collide Gaming" }, + // { "current_wle_fp3_09_09", "Very Compressed Level" }, + // { "current_wle_fp3_09_0_01", "Slippery Slope" }, + // { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + // { "current_wle_fp3_09_0_03", "Free Falling" }, + // { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + // { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + // { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + // { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + // + // { "current_wle_fp3_10_01", "When Nature Falls" }, + // { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + // { "current_wle_fp3_10_03", "The Slime Trials" }, + // { "current_wle_fp3_10_04", "Friendly Obstacles" }, + // { "current_wle_fp3_10_05", "Climb and Fall" }, + // { "current_wle_fp3_10_06", "Stairs and some other things" }, + // { "current_wle_fp3_10_07", "Meowgical World" }, + // { "current_wle_fp3_10_08", "Polluelo Speed" }, + // { "current_wle_fp3_10_09", "Pixel Parade" }, + // { "current_wle_fp3_10_10", "Total Madness" }, + // { "current_wle_fp3_10_11", "The Abstract Maze" }, + // { "current_wle_fp3_10_12", "Fan Off" }, + // { "current_wle_fp3_10_13", "cloud highway" }, + // { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + // { "current_wle_fp3_10_15", "Speedrunners be like" }, + // { "current_wle_fp3_10_16", "Tumble Tower" }, + // { "current_wle_fp3_10_17", "Silver's Snake Run" }, + // { "current_wle_fp3_10_18", "Now Boarding" }, + // { "current_wle_fp3_10_19", "Slime Scale" }, + // { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + // { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + // { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + // { "current_wle_fp3_10_23", "Controlled Chaos" }, + // { "current_wle_fp3_10_24", "Xtreme Jumping" }, + // { "current_wle_fp3_10_25", "Odin" }, + // { "current_wle_fp3_10_26", "Ciudad nube" }, + // { "current_wle_fp3_10_27", "Bean Voyage" }, + // { "current_wle_fp3_10_28", "SLIP-SAW" }, + // { "current_wle_fp3_10_29", "Bbq bacon burger" }, + // + // { "current_wle_fp4_05_01_01", "巅峰车站" }, + // { "current_wle_fp4_05_01_02", "Beba Park 7" }, + // { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + // { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + // { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + // { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + // { "current_wle_fp4_05_02", "Mini only up" }, + // { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + // { "current_wle_fp4_05_03_02", "Remote Control" }, + // { "current_wle_fp4_05_03", "Parkway Slide" }, + // { "current_wle_fp4_05_04", "Duel Dash" }, + // { "current_wle_fp4_05_05", "beaten trackless road" }, + // { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + // { "current_wle_fp4_05_2_02", "arch city" }, + // { "current_wle_fp4_05_2_03", "Desert Ruins" }, + // + // { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + // { "current_wle_fp4_06_02", "Pachislo" }, + // { "current_wle_fp4_06_0_01", "AquArsene" }, + // { "current_wle_fp4_06_0_02", "RainbowCloud" }, + // { "current_wle_fp4_06_0_03", "Pink Cascade" }, + // { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + // { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + // { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + // { "current_wle_fp4_06_1_01", "Buggin' Out" }, + // { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + // { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + // { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + // { "current_wle_fp4_06_1_05", "The climb of Trials" }, + // { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + // + // { "current_wle_fp4_07_01", "Rotational Runner" }, + // { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + // { "current_wle_fp4_07_03", "simple stage" }, + // { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + // { "current_wle_fp4_07_05", "Factory Valley" }, + // { "current_wle_fp4_07_06", "Jumpy Beans" }, + // { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + // { "current_wle_fp4_07_0_01", "Camino Ninja" }, + // + // { "current_wle_fp4_08_01", "co-op guys" }, + // { "current_wle_fp4_08_0_01", "The big slide" }, + // { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + // { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + // { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + // { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + // { "current_wle_fp4_08_0_06", "X-Course" }, + // { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + // { "current_wle_fp4_08_1_01", "Boost in Dash" }, + // { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + // { "current_wle_fp4_08_1_03", "Giddy up!" }, + // { "current_wle_fp4_08_1_04", "Mad lab" }, + // { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + // { "current_wle_fp4_08_3_01", "The Oasis" }, + // + // { "current_wle_fp4_09_01", "Crate Collector" }, + // { "current_wle_fp4_09_02", "Dribble Drills" }, + // { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + // { "current_wle_fp4_09_04", "Skyline Park" }, + // { "current_wle_fp4_09_05", "Birthday bonanza" }, + // { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + // { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + // { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + // { "current_wle_fp4_09_1_02", "Haute voltige" }, + // { "current_wle_fp4_09_2_01", "DNA Test" }, + // + // { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + // { "current_wle_fp4_10_02", "Hot Blast" }, + // { "current_wle_fp4_10_03", "Box Fan Blitz" }, + // { "current_wle_fp4_10_04", "Woo-terfall Way" }, + // { "current_wle_fp4_10_05", "Slime race" }, + // { "current_wle_fp4_10_06", "Moving Day" }, + // { "current_wle_fp4_10_07", "Birthday Dash" }, + // { "current_wle_fp4_10_08_m", "Wall Breaker" }, + // { "current_wle_fp4_10_08", "Chess History" }, + // { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + // { "current_wle_fp4_10_12", "Chickens run away" }, + // { "current_wle_fp4_10_20", "Co-op and CO" }, + // { "current_wle_fp4_10_21", "Construction Site" }, + // { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + // { "current_wle_fp4_10_0_02", "Molehills" }, + // + // { "current_wle_fp5_2_01_01", "Plummet Summit" }, + // { "current_wle_fp5_2_01_02", "タワークライム" }, + // { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + // { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + // { "current_wle_fp5_2_01", "Jabonsotes" }, + // { "current_wle_fp5_2_02_01", "のっぽタワー" }, + // { "current_wle_fp5_2_02_02", "Blaster Course" }, + // { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + // { "current_wle_fp5_2_02_04", "The hard Climb" }, + // { "current_wle_fp5_2_02_05", "sliding guys" }, + // { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + // { "current_wle_fp5_2_02", "Rainbow highway" }, + // { "current_wle_fp5_2_03", "Falligator" }, + // { "current_wle_fp5_2_04_01", "Lily Lovers" }, + // { "current_wle_fp5_2_04_02", "rainow rode" }, + // { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_04_04", "Super crazy level" }, + // { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + // { "current_wle_fp5_2_05_01", "Level XVIII" }, + // { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + // { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_05_04", "rainbow roade" }, + // { "current_wle_fp5_2_05", "The tension Parkour" }, + // { "current_wle_fp5_2_06", "Stairing Contest" }, + // { "current_wle_fp5_2_07", "Vibrant Ascension" }, + // + // { "current_wle_fp5_3_05_01", "Beany Golf!" }, + // { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + // { "current_wle_fp5_4_01_01", "Tilted Walls" }, + // { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + // { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + // { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + // { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + // + // { "current_wle_fp5_10_01", "Breezy Buddies" }, + // { "current_wle_fp5_10_0_01", "Salto Plancha" }, + // { "current_wle_fp5_10_0_02", "My house" }, + // { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + // { "current_wle_fp5_10_1_01", "Desert Ruins" }, + // { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_01", "Desert Ruins" }, + // { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_03", "Mystic River" }, + // { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + // { "current_wle_fp5_10_2_05", "Cliffside" }, + // { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + // { "current_wle_fp5_10_2_07", "The Avenue" }, + // { "current_wle_fp5_10_2_08", "Gold City" }, + // { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + // { "current_wle_fp5_10_2_10", "初心者用コース" }, + // { "current_wle_fp5_10_2_11", "Chain Reaction" }, + // + // { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + // { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + // { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + // { "current_wle_fp5_wk3_1_04", "El airecito" }, + // { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + // { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + // { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + // { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + // { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + // { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + // { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + // { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + // { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + // { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + // { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + // + // { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + // { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + // { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + // { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + // { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + // { "current_wle_fp5_falloween_1_06", "Mirage" }, + // { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + // { "current_wle_fp5_falloween_1_08", "Toon World" }, + // { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + // { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + // { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + // { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + // { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + // { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + // { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + // { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + // { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + // { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + // { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + // { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + // { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + // { "current_wle_fp5_falloween_2_03_06", "Spider" }, + // { "current_wle_fp5_falloween_2_03", "fastoween" }, + // { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + // { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + // { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + // { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + // { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + // { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + // { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + // { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + // { "current_wle_fp5_falloween_4_05", "Scary Final" }, + // { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + // { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + // { "current_wle_fp5_falloween_4_08", "Catoween" }, + // { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + // { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + // { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + // { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + // { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + // { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + // { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + // { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + // { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + // { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + // { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + // { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + // { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + // { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + // { "current_wle_fp5_falloween_5_04", "Halloween" }, + // { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + // { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + // { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + // { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + // { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + // { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + // { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + // { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + // { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + // { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + // { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + // { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + // { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + // { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + // { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + // { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + // { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + // { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + // { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + // { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + // { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + // { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + // { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + // { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + // { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + // { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + // { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + // { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + // { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + // { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + // { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + // { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + // { "current_wle_fp5_falloween_9_02", "Raveyard" }, + // { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + // { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + // { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + // { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + // { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + // { "current_wle_fp5_falloween_11_01", "Night Runners" }, + // { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + // { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + // { "current_wle_fp5_falloween_13_01", "Witch Way" }, + // { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + // { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + // + // { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + // { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + // { "current_wle_fp6_1_03", "SKULL KING" }, + // { "current_wle_fp6_1_04", "shorter circuit" }, + // { "current_wle_fp6_1_05", "be speedy" }, + // { "current_wle_fp6_1_06", "Sky-City Stumble" }, + // { "current_wle_fp6_1_07", "Wormhole Mountain" }, + // { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + // { "current_wle_fp6_1_09", "Splitspeed" }, + // { "current_wle_fp6_1_10", "Fall Canyon" }, + // { "current_wle_fp6_2_01", "Valise" }, + // { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + // { "current_wle_fp6_2_03", "Water Way" }, + // { "current_wle_fp6_2_04", "The Doors of Doom" }, + // { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + // { "current_wle_fp6_2_06", "Liana Swings" }, + // { "current_wle_fp6_2_07", "Colourful" }, + // { "current_wle_fp6_2_08", "The Heist!" }, + // { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + // { "current_wle_fp6_3_01", "Tricky Treat" }, + // { "current_wle_fp6_3_02", "The Lighthouse" }, + // { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + // { "current_wle_fp6_3_04", "The Scarescraper" }, + // { "current_wle_fp6_3_05", "Obstacle Road" }, + // { "current_wle_fp6_3_06", "Rest In Paris" }, + // { "current_wle_fp6_3_07", "Horror pumpkim" }, + // { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + // + // { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + // { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + // { "current_wle_fp6_wk2_03", "Slidy Road" }, + // { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + // { "current_wle_fp6_wk2_05", "Lost in space" }, + // { "current_wle_fp6_wk2_06", "Turbine Decline" }, + // { "current_wle_fp6_wk2_07", "Zero Displacement" }, + // { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + // { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + // { "current_wle_fp6_wk2_10", "Neoway" }, + // { "current_wle_fp6_wk2_11", "Niagara Falls" }, + // { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + // { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + // { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + // { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + // { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + // { "current_wle_fp6_wk2_1_06", "Locomoção" }, + // { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + // { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + // { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + // + // { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + // { "current_wle_fp6_wk3_02", "Compact 5" }, + // { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + // { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + // { "current_wle_fp6_wk3_05", "Alto voltaje" }, + // { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + // { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + // { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + // { "current_wle_fp6_wk3_09", "Work and Travel" }, + // { "current_wle_fp6_wk3_10", "connect the bridge" }, + // { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + // { "current_wle_fp6_wk3_2_02", "speed demon" }, + // { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + // { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + // { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + // { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + // { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + // + // { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + // { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + // { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + // { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + // { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + // { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + // { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + // { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + // { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + // { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + // { "current_wle_fp6_wk4_03_05", "Snow Style" }, + // { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + // { "current_wle_fp6_wk4_05_01", "Rebound" }, + // { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + // { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + // + // { "current_wle_community_10_5_01", "Snowy Starfall" }, + // { "current_wle_community_10_5_02", "The Earthquake" }, + // { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + // { "current_wle_community_10_5_1_04", "Garden of Woo" }, + // { "current_wle_community_10_5_1_05", "Out in the open" }, + // { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + // { "current_wle_community_10_5_1_08", "Jungle Journey" }, + // { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + // { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + // { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + // { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + // { "current_wle_community_10_5_1_15", "Three Rooms" }, + // { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + // { "current_wle_community_10_5_1_17", "Winter Slide" }, + // { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + // + // { "wle_discover_level_wk2_001", "Castle in the Clouds" }, + // { "wle_discover_level_wk2_002", "Christmas corner!" }, + // { "wle_discover_level_wk2_003", "Hot Wheels 2069" }, + // { "wle_discover_level_wk2_004", "Bounce Back Racetrack" }, + // { "wle_discover_level_wk2_005", "Space Getaway" }, + // { "wle_discover_level_wk2_006", "fall mountain (糖豆山涧)" }, + // { "wle_discover_level_wk2_007", "伝説のポケモン!" }, + // { "wle_discover_level_wk2_008", "Knight Slide" }, + // { "wle_discover_level_wk2_009", "Christmas Run" }, + // { "wle_discover_level_wk2_010", "Labyrinth (1986) Part1" }, + // { "wle_discover_level_wk2_011", "Rebound" }, + // { "wle_discover_level_wk2_012", "Trip to Santa's home" }, + // { "wle_discover_level_wk2_013", "ピッピカチュ☆彡" }, + // { "wle_discover_level_wk2_014", "Rainbow Race" }, + // { "wle_discover_level_wk2_015", "Speed Suburbs" }, + // { "wle_discover_level_wk2_016", "SUPER MARIO WONDER" }, + // { "wle_discover_level_wk2_017", "Punching Bridges" }, + // { "wle_discover_level_wk2_018", "The Slimescrapper" }, + // { "wle_discover_level_wk2_019", "Snowy Flakes" }, + // { "wle_discover_level_wk2_020", "Foggy Freeway" }, + // { "wle_discover_level_wk2_021", "Snowy Climb" }, + // { "wle_discover_level_wk2_022", "snow athletic valley" }, + // { "wle_discover_level_wk2_023", "詰め込んだだけレース4" }, + // { "wle_discover_level_wk2_024", "Winter Wonder Sprint" }, + // { "wle_discover_level_wk2_025", "Randonnée Galactique" }, + // { "wle_discover_level_wk2_026", "Cloudy with a Chance of Cannonballs" }, + // { "wle_discover_level_wk2_027", "Digital Snowland" }, + // { "wle_discover_level_wk2_028", "Shiver Beans" }, + // { "wle_discover_level_wk2_029", "SanTama Run" }, + // { "wle_discover_level_wk2_030", "Winter Run" }, + // { "wle_discover_level_wk2_031", "Jiggle Jingle" }, + // { "wle_discover_level_wk2_032", "Ice Pop Interstate" }, + // { "wle_discover_level_wk2_033", "クリエだよ全員集合" }, + // { "wle_discover_level_wk2_034", "Snow Day" }, + // { "wle_discover_level_wk2_035", "It's Tiiiiiiiimeee!" }, + // { "wle_discover_level_wk2_036", "KYOUFUU GUYS BACK" }, + // { "wle_discover_level_wk2_037", "Sonic's Sunset Adventure" }, + // { "wle_discover_level_wk2_038", "♪勝利のフォンフォーレ" }, + // { "wle_discover_level_wk2_039", "RACE ORIGINS" }, + // { "wle_discover_level_wk2_040", "Winter Wipeout" }, + // { "wle_discover_level_wk2_041", "Centripetal Circuit" }, + // { "wle_discover_level_wk2_042", "MERRY MAYHEM!" }, + // { "wle_discover_level_wk2_043", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_044", "The Scarescraper" }, + // { "wle_discover_level_wk2_045", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_046", "$$$¡The Casino Crew!$$$" }, + // { "wle_discover_level_wk2_047", "Dee's- Escape the Pirate Ship!" }, + // { "wle_discover_level_wk2_048", "ジャングル ぐるぐる" }, + // { "wle_discover_level_wk2_049", "ショートステージ" }, + // { "wle_discover_level_wk2_050", "スノーマウンテンクライム" }, + // + // { "wle_round_mrs_shuffle_discover_005", "My Melody" }, + // { "wle_round_mrs_shuffle_discover_006", "prismatic ice crystal" }, + // { "wle_round_mrs_shuffle_discover_007", "スキルアップステージ" }, + // { "wle_round_mrs_shuffle_discover_008", "WHITE TREE JUMBLE" }, + // { "wle_round_mrs_shuffle_discover_009", "Snowy Adventure" }, + // { "wle_round_mrs_shuffle_discover_010", "Happy Bean Food Fiesta" }, + // { "wle_round_mrs_shuffle_discover_011", "Belly Flop Bobsleigh" }, + // { "wle_round_mrs_shuffle_discover_012", "winter party" }, + // { "wle_round_mrs_shuffle_discover_013", "The lost keys" }, + // { "wle_round_mrs_shuffle_discover_014", "Bonk" }, + // { "wle_round_mrs_shuffle_discover_015", "Winter Disc-O" }, + // { "wle_round_mrs_shuffle_discover_016", "christmas wreath!" }, + // { "wle_round_mrs_shuffle_discover_017", "Winter BebaLand" }, + // { "wle_round_mrs_shuffle_discover_018", "Automatic FallGuys" }, + // { "wle_round_mrs_shuffle_discover_019", "Holiday Dash" }, + // { "wle_round_mrs_shuffle_discover_020", "Treetop Frost" }, + // { "wle_round_mrs_shuffle_discover_021", "Rainbow Run" }, + // { "wle_round_mrs_shuffle_discover_022", "BYE DONT HAVE A GREAT TIME PART LXIX" }, + // { "wle_round_mrs_shuffle_discover_023", "Hieroglysphinx Hurdles" }, + // { "wle_round_mrs_shuffle_discover_024", "ホなら" }, + // { "wle_round_mrs_shuffle_discover_025", "Bye have a great time part 45" }, + // { "wle_round_mrs_shuffle_discover_026", "POWDERY PEAK" }, + // { "wle_round_mrs_shuffle_discover_027", "It's Christmas Slime Climb Time!" }, + // { "wle_round_mrs_shuffle_discover_028", "MERRY CLIMBING!" }, + // { "wle_round_mrs_shuffle_discover_030", "Snow N' Speed" }, + // { "wle_round_mrs_shuffle_discover_032", "Lets Have Fun (74)" }, + // { "wle_round_mrs_shuffle_discover_033", "Concept Ladder Match (Pre-alpha)" }, + // { "wle_round_mrs_shuffle_discover_034", "Speedy City" }, + // { "wle_round_mrs_shuffle_discover_036", "Fall Village" }, + // { "wle_round_mrs_shuffle_discover_037", "超巨大な、クリスマスツリー" }, + // { "wle_round_mrs_shuffle_discover_038", "TINSELTOWN MELTDOWN!" }, + // { "wle_round_mrs_shuffle_discover_039", "Jump jar jar" }, + // { "wle_round_mrs_shuffle_discover_040", "FOOD FIESTA" }, + // { "wle_round_mrs_shuffle_discover_041", "Bye have a great time part 46" }, + // { "wle_round_mrs_shuffle_discover_044", "BEAN BALL" }, + // { "wle_round_mrs_shuffle_discover_045", "Python Pinball" }, + // { "wle_round_mrs_shuffle_discover_046", "Block Battle" }, + // { "wle_round_mrs_shuffle_discover_047", "Ice Cold Ascension" }, + // { "wle_round_mrs_shuffle_discover_048", "ボタンでGO!" }, + // { "wle_round_mrs_shuffle_discover_049", "ミクセル MIKUSERU" }, + // { "wle_round_mrs_shuffle_discover_050", "ホなら" }, + // + // { "wle_discovery_shuffle_up2_01", "The spooky trail" }, + // { "wle_discovery_shuffle_up2_05", "Balance Bean" }, + // { "wle_discovery_shuffle_up2_06", "digital slime road" }, + // { "wle_discovery_shuffle_up2_07", "The Punch Warriors! - Definitive Edition" }, + // { "wle_discovery_shuffle_up2_08", "Winter Mansion" }, + // { "wle_discovery_shuffle_up2_13", "Festive Rush" }, + // { "wle_discovery_shuffle_up2_14", "Mound Mountain" }, + // { "wle_discovery_shuffle_up2_15", "FEVER DREAM FUNHOUSE!" }, + // { "wle_discovery_shuffle_up2_17", "WinteRace" }, + // { "wle_discovery_shuffle_up2_18", "4 Seasons" }, + // { "wle_discovery_shuffle_up2_19", "WAVE RUNNERS!" }, + // { "wle_discovery_shuffle_up2_24", "Tool Up! Winter Season Fall Guys" }, + // { "wle_discovery_shuffle_up2_26", "Arctic Run" }, + // { "wle_discovery_shuffle_up2_28", "Grenouille X pinkixx" }, + // { "wle_discovery_shuffle_up2_29", "GAME OVER" }, + // { "wle_discovery_shuffle_up2_30", "Hot Wheels III" }, + // { "wle_discovery_shuffle_up2_32", "Ski Mountain" }, + // { "wle_discovery_shuffle_up2_33", "夜店" }, + // { "wle_discovery_shuffle_up2_34", "チャッキーのタイムアタックレース" }, + // { "wle_discovery_shuffle_up2_37", "Frosty run" }, + // { "wle_discovery_shuffle_up2_38", "MONUMENT FALLS!" }, + // + // { "wle_mrs_shuffle_show_roundpool_winter_01", "Spiral Trial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_02", "SNOWMAN CLIMB" }, + // { "wle_mrs_shuffle_show_roundpool_winter_03", "Perpetual motion" }, + // { "wle_mrs_shuffle_show_roundpool_winter_04", "No way to go" }, + // { "wle_mrs_shuffle_show_roundpool_winter_06", "The winter slime climb time!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_07", "The Speedy Zone" }, + // { "wle_mrs_shuffle_show_roundpool_winter_08", "The crown's race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_09", "Mitten Mountain" }, + // { "wle_mrs_shuffle_show_roundpool_winter_10", "Parcours arc en ciel" }, + // { "wle_mrs_shuffle_show_roundpool_winter_11", "forest balls" }, + // { "wle_mrs_shuffle_show_roundpool_winter_12", "FIREBALL FRENZY!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_13", "GIFT EXCHANGE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_14", "The Snowscraper" }, + // { "wle_mrs_shuffle_show_roundpool_winter_15", "roll roll bean" }, + // { "wle_mrs_shuffle_show_roundpool_winter_16", "Overclocked" }, + // { "wle_mrs_shuffle_show_roundpool_winter_17", "Spaceball Spin" }, + // { "wle_mrs_shuffle_show_roundpool_winter_18", "Winter Disc-O" }, + // { "wle_mrs_shuffle_show_roundpool_winter_19", "Chill 'n' Roll" }, + // { "wle_mrs_shuffle_show_roundpool_winter_20", "FEVER DREAM FUNHOUSE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_21", "Himalayan Railway" }, + // { "wle_mrs_shuffle_show_roundpool_winter_22", "Need for Speed" }, + // { "wle_mrs_shuffle_show_roundpool_winter_23", "Rebound" }, + // { "wle_mrs_shuffle_show_roundpool_winter_24", "スライムスクレイパー" }, + // { "wle_mrs_shuffle_show_roundpool_winter_25", "Frosty Cold Sprint" }, + // { "wle_mrs_shuffle_show_roundpool_winter_26", "Halfpipe Havoc" }, + // { "wle_mrs_shuffle_show_roundpool_winter_27", "Snowflake Wonderland" }, + // { "wle_mrs_shuffle_show_roundpool_winter_28", "Ball Guys" }, + // { "wle_mrs_shuffle_show_roundpool_winter_30", "REINDEER GAMES!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_31", "Belly Flop Bobsleigh" }, + // { "wle_mrs_shuffle_show_roundpool_winter_32", "Hot Wheels 2069" }, + // { "wle_mrs_shuffle_show_roundpool_winter_33", "Gingerbread Lane" }, + // { "wle_mrs_shuffle_show_roundpool_winter_34", "We ballin'" }, + // { "wle_mrs_shuffle_show_roundpool_winter_35", "Ice Cold Ascension" }, + // { "wle_mrs_shuffle_show_roundpool_winter_36", "étage sur étage" }, + // { "wle_mrs_shuffle_show_roundpool_winter_37", "Birthday Dash" }, + // { "wle_mrs_shuffle_show_roundpool_winter_39", "MARBLE RACE [Bean-Ball]" }, + // { "wle_mrs_shuffle_show_roundpool_winter_38", "The Jolly Express" }, + // { "wle_mrs_shuffle_show_roundpool_winter_40", "Roller Race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_41", "Return to Fall Rapids" }, + // { "wle_mrs_shuffle_show_roundpool_winter_42", "Frosty run" }, + // { "wle_mrs_shuffle_show_roundpool_winter_44", "Sirbeans garden racetrack" }, + // { "wle_mrs_shuffle_show_roundpool_winter_45", "Roll-a-Coaster" }, + // { "wle_mrs_shuffle_show_roundpool_winter_46", "Gran Glaciar Paradicial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_47", "Cave Exploration ~洞窟探検~" }, + // { "wle_mrs_shuffle_show_roundpool_winter_48", "SanTama Run" }, + // + // { "wle_shuffle_discover_fp7_1_01", "Green hill zone" }, + // { "wle_shuffle_discover_fp7_1_02", "Lost Temple" }, + // { "wle_shuffle_discover_fp7_1_03", "Champiñón Volante" }, + // { "wle_shuffle_discover_fp7_1_04", "Mitten Mountain" }, + // { "wle_shuffle_discover_fp7_1_05", "Jack-O'-Runners" }, + // { "wle_shuffle_discover_fp7_1_06", "Parcours arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_07", "Mario kart" }, + // { "wle_shuffle_discover_fp7_1_08", "A Day At The Holiday Race" }, + // { "wle_shuffle_discover_fp7_1_09", "2024 謹賀新年" }, + // { "wle_shuffle_discover_fp7_1_10", "Hustling run" }, + // { "wle_shuffle_discover_fp7_1_11", "tempête arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_12", "Wander- Weg" }, + // { "wle_shuffle_discover_fp7_1_13", "Ruta en la selva" }, + // { "wle_shuffle_discover_fp7_1_14", "Turboslide" }, + // { "wle_shuffle_discover_fp7_1_15", "A piece of cake" }, + // { "wle_shuffle_discover_fp7_1_16", "WOW" }, + // { "wle_shuffle_discover_fp7_1_18", "Magic Squirrel" }, + // { "wle_shuffle_discover_fp7_1_19", "Dinosaur Climb" }, + // { "wle_shuffle_discover_fp7_1_20", "bouing bouing" }, + // { "wle_shuffle_discover_fp7_1_21", "快感快速!!" }, + // { "wle_shuffle_discover_fp7_1_23", "challenge" }, + // { "wle_shuffle_discover_fp7_1_24", "Fnf final escape" }, + // { "wle_shuffle_discover_fp7_1_25", "Speedrun" }, + // { "wle_shuffle_discover_fp7_1_26", "AS AVENTURAS DO PIETRO" }, + // { "wle_shuffle_discover_fp7_1_27", "The Desert temple" }, + // { "wle_shuffle_discover_fp7_1_28", "Snowy Speed Sprint" }, + // { "wle_shuffle_discover_fp7_1_29", "Arcade escape" }, + // { "wle_shuffle_discover_fp7_1_30", "Guardian's Grace" }, + // { "wle_shuffle_discover_fp7_1_31", "Desertic Templus" }, + // { "wle_shuffle_discover_fp7_1_32", "Calamité arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_33", "Map Test V1" }, + // { "wle_shuffle_discover_fp7_1_34", "From A to Z" }, + // { "wle_shuffle_discover_fp7_1_35", "YULE LOG SPRINT" }, + // { "wle_shuffle_discover_fp7_1_37", "Turnaround Turnpike" }, + // { "wle_shuffle_discover_fp7_1_38", "Good morning 2024 world" }, + // { "wle_shuffle_discover_fp7_1_39", "Sirbeans garden racetrack" }, + // + // { "wle_shuffle_2_24_01", "classic sewer" }, + // { "wle_shuffle_2_24_02", "Speed Ball" }, + // { "wle_shuffle_2_24_03", "Rainbow Riser" }, + // { "wle_shuffle_2_24_04", "cave tree" }, + // { "wle_shuffle_2_24_05", "Orbital Junction" }, + // { "wle_shuffle_2_24_06", "Lily leapers remix v3" }, + // { "wle_shuffle_2_24_07", "Little Pipe Dream" }, + // { "wle_shuffle_2_24_08", "FIREBALL FRENZY!" }, + // { "wle_shuffle_2_24_09", "Ruta en la selva" }, + // { "wle_shuffle_2_24_10", "A piece of cake" }, + // { "wle_shuffle_2_24_11", "Monster Forest Road" }, + // { "wle_shuffle_2_24_12", "Slippery Stumble" }, + // { "wle_shuffle_2_24_13", "Mound Mountain" }, + // { "wle_shuffle_2_24_15", "Non-Stop Slide" }, + // { "wle_shuffle_2_24_16", "slime climb Creative" }, + // { "wle_shuffle_2_24_17", "(REBORN) WITH THE WIND OMAME-CHAN !!!" }, + // { "wle_shuffle_2_24_18", "The Desert Temple Escape" }, + // { "wle_shuffle_2_24_19", "Rebound" }, + // { "wle_shuffle_2_24_20", "Roundabout Route" }, + // { "wle_shuffle_2_24_21", "Sparkly gingerbred trail" }, + // { "wle_shuffle_2_24_22", "Ski Fall Remix" }, + // { "wle_shuffle_2_24_24", "Fan Flingers" }, + // { "wle_shuffle_2_24_25", "Ball Carnival" }, + // { "wle_shuffle_2_24_26", "Tool Up! Winter Season Fall Guys" }, + // { "wle_shuffle_2_24_27", "Trompeta Teatral" }, + // { "wle_shuffle_2_24_28", "Birthday bonanza" }, + // { "wle_shuffle_2_24_29", "BlueBlur Circuit" }, + // { "wle_shuffle_2_24_30", "Lemon Grass" }, + // { "wle_shuffle_2_24_31", "Tuyauterie au nez" }, + // { "wle_shuffle_2_24_32", "Slimey's showdown" }, + // { "wle_shuffle_2_24_33", "GOLF GUYS" }, + // { "wle_shuffle_2_24_34", "(REBORN) DIGI×2 LOVE×2 GUYS REVERSE !!!" }, + // { "wle_shuffle_2_24_35", "R" }, + // { "wle_shuffle_2_24_36", "Zelda is BANANAS!!!!" }, + // { "wle_shuffle_2_24_38", "Traffic Jamboree" }, + // { "wle_shuffle_2_24_39", "Turnaround Turnpike" }, + // { "wle_shuffle_2_24_40", "Great hunt" }, + // { "wle_shuffle_2_24_41", "HYPERSPACE HIGHWAY!" }, + // { "wle_shuffle_2_24_42", "Back in Slime" }, + // + // { "wle_shuffle_wk2405_01", "Duckling Beach" }, + // { "wle_shuffle_wk2405_02", "BUILDER GUYS" }, + // { "wle_shuffle_wk2405_03", "ヒヤヒヤハイウェイ Unstable Highway" }, + // { "wle_shuffle_wk2405_04", "Speed Ball" }, + // { "wle_shuffle_wk2405_05", "North Pole Traps" }, + // { "wle_shuffle_wk2405_06", "Volcanic Island Travel!" }, + // { "wle_shuffle_wk2405_07", "Kepler 21's town" }, + // { "wle_shuffle_wk2405_08", "Orbital Junction" }, + // { "wle_shuffle_wk2405_11", "Balance Bean" }, + // { "wle_shuffle_wk2405_12", "ťřūťű" }, + // { "wle_shuffle_wk2405_13", "Summer Vibes" }, + // { "wle_shuffle_wk2405_14", "Dee's- Pinball Lilly" }, + // { "wle_shuffle_wk2405_15", "Galactic Guys" }, + // { "wle_shuffle_wk2405_16", "Orbital Stumbling" }, + // { "wle_shuffle_wk2405_17", "Winter Mansion" }, + // { "wle_shuffle_wk2405_18", "Pole Jumper" }, + // { "wle_shuffle_wk2405_19", "Little Pipe Dream" }, + // { "wle_shuffle_wk2405_20", "FIREBALL FRENZY!" }, + // { "wle_shuffle_wk2405_21", "Ruta en la selva" }, + // { "wle_shuffle_wk2405_22", "The Spacescřaper" }, + // { "wle_shuffle_wk2405_23", "Downward Spiral! (& Beyond)" }, + // { "wle_shuffle_wk2405_24", "Slippery Swoop Showdown" }, + // { "wle_shuffle_wk2405_25", "Tunnel of tumble" }, + // { "wle_shuffle_wk2405_26", "Digital Paradise" }, + // { "wle_shuffle_wk2405_27", "Monster Forest Road" }, + // { "wle_shuffle_wk2405_28", "GALACTIC RUN" }, + // { "wle_shuffle_wk2405_29", "Non-Stop Slide" }, + // { "wle_shuffle_wk2405_30", "slime climb Creative" }, + // { "wle_shuffle_wk2405_31", "Love a day" }, + // { "wle_shuffle_wk2405_32", "serious circuit" }, + // { "wle_shuffle_wk2405_33", "Falling in Love" }, + // { "wle_shuffle_wk2405_34", "Rebound" }, + // { "wle_shuffle_wk2405_35", "Digifal Guys" }, + // { "wle_shuffle_wk2405_36", "Vaporia" }, + // { "wle_shuffle_wk2405_37", "Solar Speedway" }, + // { "wle_shuffle_wk2405_38", "Rollin' Ruins" }, + // { "wle_shuffle_wk2405_39", "The drum course" }, + // { "wle_shuffle_wk2405_40", "AX-ATTACK" }, + // { "wle_shuffle_wk2405_41", "Pipe beans" }, + // { "wle_shuffle_wk2405_42", "Ball World" }, + // { "wle_shuffle_wk2405_43", "Fan Flingers" }, + // { "wle_shuffle_wk2405_44", "Deserted Frontier" }, + // { "wle_shuffle_wk2405_45", "Torapo" }, + // { "wle_shuffle_wk2405_46", "No Name" }, + // { "wle_shuffle_wk2405_47", "Satellite Scramble" }, + // { "wle_shuffle_wk2405_48", "STATION SPRINT" }, + // { "wle_shuffle_wk2405_49", "Route 20" }, + // { "wle_shuffle_wk2405_50", "Jungle escape" }, + // { "wle_shuffle_wk2405_51", "Love at First Woo" }, + // { "wle_shuffle_wk2405_52", "Satellite Circuit" }, + // { "wle_shuffle_wk2405_53", "Round and around" }, + // { "wle_shuffle_wk2405_54", "World of rolling" }, + // { "wle_shuffle_wk2405_55", "Lemon Grass" }, + // { "wle_shuffle_wk2405_56", "Downward Spiral" }, + // { "wle_shuffle_wk2405_57", "STARS ALIGN!" }, + // { "wle_shuffle_wk2405_58", "Interstellar Sprint" }, + // { "wle_shuffle_wk2405_59", "World of cakes" }, + // { "wle_shuffle_wk2405_60", "ASTRAL AIRWAY" }, + // { "wle_shuffle_wk2405_61", "secret ways" }, + // { "wle_shuffle_wk2405_62", "No Name" }, + // { "wle_shuffle_wk2405_63", "Space adventure (part 1)" }, + // { "wle_shuffle_wk2405_64", "Rainbow Road" }, + // { "wle_shuffle_wk2405_65", "Falltropolis" }, + // + // { "wle_digishuffle_feb_01", "jungle fun run" }, + // { "wle_digishuffle_feb_02", "☆Witch Way☆" }, + // { "wle_digishuffle_feb_03", "Mushroom Mayhem" }, + // { "wle_digishuffle_feb_04", "Orbital Junction" }, + // { "wle_digishuffle_feb_06", "Day at the beach" }, + // { "wle_digishuffle_feb_07", "Summer Vibes" }, + // { "wle_digishuffle_feb_08", "Roll Asteroid Field" }, + // { "wle_digishuffle_feb_09", "Ruta en la selva" }, + // { "wle_digishuffle_feb_10", "Cosmic Dash" }, + // { "wle_digishuffle_feb_11", "Bouncing Frenzy" }, + // { "wle_digishuffle_feb_12", "Beehive Havoc" }, + // { "wle_digishuffle_feb_13", "Snowy Cave-in" }, + // { "wle_digishuffle_feb_15", "Winter Disc-O" }, + // { "wle_digishuffle_feb_16", "magician" }, + // { "wle_digishuffle_feb_17", "Love a day" }, + // { "wle_digishuffle_feb_18", "Chilly Leapers" }, + // { "wle_digishuffle_feb_19", "Colorful Year - Beans Memories" }, + // { "wle_digishuffle_feb_20", "BIPLANE BLUNDER" }, + // { "wle_digishuffle_feb_21", "Vaporia" }, + // { "wle_digishuffle_feb_22", "Satellite Sprint" }, + // { "wle_digishuffle_feb_23", "Galactic Gauntlet" }, + // { "wle_digishuffle_feb_24", "RUN COWBOY" }, + // { "wle_digishuffle_feb_25", "Breakfast Run" }, + // { "wle_digishuffle_feb_26", "Spin 'n' Swing" }, + // { "wle_digishuffle_feb_27", " Love at First Woo" }, + // { "wle_digishuffle_feb_28", "Astral Exploration" }, + // { "wle_digishuffle_feb_29", "Speedway 2069" }, + // { "wle_digishuffle_feb_30", "Data Eraser" }, + // { "wle_digishuffle_feb_31", "Mediefall Highway" }, + // { "wle_digishuffle_feb_33", "パンダフルワールド" }, + // { "wle_digishuffle_feb_34", "Celestial Tale" }, + // + // { "chill_01", "Ariko Jones" }, + // { "chill_02", "Floating island" }, + // { "chill_03", "Colorful World" }, + // { "chill_04", "Winter Wallop" }, + // { "chill_06", "Tropical Top2" }, + // { "chill_07", "rainbows and stickers" }, + // { "chill_08", "Ancient Fallstronomers" }, + // { "chill_11", "ORBITAL STUMBLE" }, + // { "chill_12", "The Bisounours" }, + // { "chill_13", "Adrenaline Force 2" }, + // { "chill_14", "Summer Vibes" }, + // { "chill_15", "Speedy Bounces" }, + // { "chill_16", "Data Dash" }, + // { "chill_17", "Snow Mountain" }, + // { "chill_18", "Monster Mayhem" }, + // { "chill_19", "Star Power!" }, + // { "chill_20", "Sketchy Sledding!" }, + // { "chill_21", "Musical Madness" }, + // { "chill_22", "BEANS ORBITAL ZONE" }, + // { "chill_23", "Safe Mode" }, + // { "chill_24", "Piste de neige" }, + // { "chill_25", "Love a day" }, + // { "chill_26", "Chilly Leapers" }, + // { "chill_27", "Passage imbroglio arc en ciel" }, + // { "chill_28", "Shogun Guys I" }, + // { "chill_29", "WINDMILL WAY" }, + // { "chill_30", "Solar Speedway" }, + // { "chill_31", "Micro Machine" }, + // { "chill_32", "Satellite Sprint" }, + // { "chill_33", "Rudinn's Garden Palace" }, + // { "chill_35", "Frosty Wonderland" }, + // { "chill_36", "Freezy Frolic" }, + // { "chill_37", "Extraterrestrial Terminal" }, + // { "chill_38", "Cluster Cosmos" }, + // { "chill_39", " Love at First Woo" }, + // { "chill_40", "A night in Paris" }, + // { "chill_41", "Float Parkour" }, + // + // { "wle_mrs_survival_showdown_opener", "Slime Surfers" }, + // { "wle_mrs_survival_showdown_opener_01", "Bean Fort" }, + // { "wle_mrs_survival_showdown_opener_02", "Back & Forth" }, + // { "wle_mrs_survival_showdown_final", "Hectic Hexagons" }, + // { "wle_mrs_survival_showdown_final_01", "Cosmic Clash" }, + // { "wle_mrs_survival_showdown_final_02", "Bouncy Castle" }, + // { "wle_mrs_survival_showdown_final_04", "Volcanic Chaos" }, + // + // { "wle_survival_shuffle_fp8_01", "More Blastball!" }, + // { "wle_survival_shuffle_fp8_02", "Rhino Runaway" }, + // { "wle_survival_shuffle_fp8_03", "Bouncy Castle" }, + // { "wle_survival_shuffle_fp8_04", "Snowy Stronghold" }, + // { "wle_survival_shuffle_fp8_05", "Hexa-Towers - Finals Arena" }, + // { "wle_survival_shuffle_fp8_06", "Satellite Delight" }, + // { "wle_survival_shuffle_fp8_07", "pacific jump" }, + // { "wle_survival_shuffle_fp8_08", "There can only be one" }, + // { "wle_survival_shuffle_fp8_09", "Ganj's Matter Baby" }, + // { "wle_survival_shuffle_fp8_10", "RHINOCHET" }, + // { "wle_survival_shuffle_fp8_11", "Rocky Rumble" }, + // { "wle_survival_shuffle_fp8_12", "Ludo War" }, + // { "wle_survival_shuffle_fp8_13", "Slimelantis" }, + // { "wle_survival_shuffle_fp8_14", "Dramatic Squirrel" }, + // { "wle_survival_shuffle_fp8_15", "HEX-A-BLAST" }, + // { "wle_survival_shuffle_fp8_16", "HEX-A-RUN" }, + // { "wle_survival_shuffle_fp8_17", "BLAST BRIDGES" }, + // { "wle_survival_shuffle_fp8_18", "HEX-A-BATTLE" }, + // { "wle_survival_shuffle_fp8_19", "Blast Ball X" }, + // { "wle_survival_shuffle_fp8_20", "Explosive Arena" }, + // { "wle_survival_shuffle_fp8_21", "Rhino Blast" }, + // { "wle_survival_shuffle_fp8_22", "Slime Surfers" }, + // { "wle_survival_shuffle_fp8_23", "Eduardo Escapades" }, + // { "wle_survival_shuffle_fp8_24", "Hex A Trouble" }, + // { "wle_survival_shuffle_fp8_25", "Roll In - Finals Arena" }, + // { "wle_survival_shuffle_fp8_26", "Back & Forth" }, + // { "wle_survival_shuffle_fp8_27", "HEXAGONAL RING BLAST" }, + // { "wle_survival_shuffle_fp8_29", "beens royal resurrection" }, + // { "wle_survival_shuffle_fp8_30", "Hexa-Toto" }, + // { "wle_survival_shuffle_fp8_31", "Blender Container" }, + // { "wle_survival_shuffle_fp8_32", "Circular Jump" }, + // { "wle_survival_shuffle_fp8_33", "hex-a-volcanic" }, + // { "wle_survival_shuffle_fp8_34", "ボマーぽよまつからの挑戦状☆ミ" }, + // { "wle_survival_shuffle_fp8_35", "Reverse Chaos" }, + // { "wle_survival_shuffle_fp8_36", "survival board" }, + // { "wle_survival_shuffle_fp8_37", "Volcanic Chaos" }, + // { "wle_survival_shuffle_fp8_38", "High-Ground Arena" }, + // { "wle_survival_shuffle_fp8_39", "rainbow convoyer" }, + // { "wle_survival_shuffle_fp8_40", "すぱいだーすっぱいんだー" }, + // { "wle_survival_shuffle_fp8_41", "HEX-A-PARTY" }, + // { "wle_survival_shuffle_fp8_42", "HEX A REBORN" }, + // { "wle_survival_shuffle_fp8_43", "CAROUSEL CHAOS" }, + // { "wle_survival_shuffle_fp8_44", "west sniper" }, + // { "wle_survival_shuffle_fp8_45", "Blast Balls Hexa Trials" }, + // { "wle_survival_shuffle_fp8_46", "自製生存關2-蹦蹦犀牛炸彈!" }, + // { "wle_survival_shuffle_fp8_47", "Hexagon Battle" }, + // { "wle_survival_shuffle_fp8_49", "Tick Tock Clock" }, + // { "wle_survival_shuffle_fp8_50", "ダイナミクスビート DYNAMICS BEAT" }, + // + // { "survival_shuffle_01", "Speed attack" }, + // { "survival_shuffle_02", "Garbage Chute V2" }, + // { "survival_shuffle_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_04", "Night Crashers" }, + // { "survival_shuffle_05", "Survival Area" }, + // { "survival_shuffle_06", "Can You Win!" }, + // { "survival_shuffle_07", "SPINNER SURVIVAL(Hard)" }, + // { "survival_shuffle_08", "NAMEK" }, + // { "survival_shuffle_09", "Hex-A-Blast" }, + // { "survival_shuffle_10", "HEX-A-JUMP" }, + // { "survival_shuffle_11", "Space Blast" }, + // { "survival_shuffle_12", "とまきけアイス" }, + // { "survival_shuffle_13", "SPINNER SURVIVAL(Very Hard)" }, + // { "survival_shuffle_14", "Caldera chaos" }, + // { "survival_shuffle_15", "hexatourne" }, + // { "survival_shuffle_16", "HEX-A-MANIA" }, + // { "survival_shuffle_17", "Slime leakage royale" }, + // { "survival_shuffle_18", "Merciless Traverse" }, + // { "survival_shuffle_19", "Stompin' Ground Challenge" }, + // { "survival_shuffle_20", "Bird is the Word" }, + // { "survival_shuffle_21", "Conflagration interstellaire" }, + // { "survival_shuffle_22", "Subzero Gale" }, + // { "survival_shuffle_23", "Piti afundando" }, + // { "survival_shuffle_24", "つかみ魔たちの祭典" }, + // { "survival_shuffle_25", "Slime Surfers" }, + // { "survival_shuffle_26", "Space Blast ball" }, + // { "survival_shuffle_27", "Fan wars survival" }, + // { "survival_shuffle_28", "World of Guys - Ultimate Shotout -" }, + // { "survival_shuffle_29", "Shogun's Arena" }, + // { "survival_shuffle_30", "Boulder Hex" }, + // { "survival_shuffle_31", "HEX-A-RENA" }, + // { "survival_shuffle_32", "BLAST BALL BASHERS" }, + // { "survival_shuffle_33", "hexa roll beta 2" }, + // { "survival_shuffle_34", "Running survivor ver1・3" }, + // { "survival_shuffle_35", "King of the Castle" }, + // { "survival_shuffle_36", "BATTLE OF SURVIVORS" }, + // { "survival_shuffle_37", "MINI STOMPIN' GROUND" }, + // { "survival_shuffle_38", "Royal Rumble" }, + // { "survival_shuffle_39", "Bataille au ²" }, + // { "survival_shuffle_40", "Hex-a-mountain" }, + // { "survival_shuffle_41", "Hex-A-Glory" }, + // { "survival_shuffle_42", "POOL PARTY" }, + // { "survival_shuffle_43", "King of the Pillar" }, + // { "survival_shuffle_44", "止まれない木" }, + // { "survival_shuffle_45", "slime battle pt2" }, + // { "survival_shuffle_46", "No Punching" }, + // { "survival_shuffle_47", "Blue and yellow showdown" }, + // { "survival_shuffle_48", "Retro Roundabout" }, + // { "survival_shuffle_49", "玉あそび" }, + // { "survival_shuffle_50", "Royal Rumble (Rofall Gumble)" }, + // { "survival_shuffle_51", "Aggressive survival" }, + // { "survival_shuffle_52", "Fight Zone" }, + // { "survival_shuffle_53", "Hex-A-Blaster" }, + // { "survival_shuffle_54", "SLIME RIOT!" }, + // { "survival_shuffle_55", "Es knallt richtig" }, + // { "survival_shuffle_56", "Super Fortress Factory" }, + // { "survival_shuffle_57", "Heavy hitters only" }, + // { "survival_shuffle_58", "へいたんバトロワ" }, + // { "survival_shuffle_59", "Volcanic Panic" }, + // { "survival_shuffle_60", "Volcanic Panic" }, + // { "survival_shuffle_61", "雷霆乱豆中心" }, + // { "survival_shuffle_62", "ブラストボール(十字形)" }, + // { "survival_shuffle_63", "Poison Pond PVP" }, + // { "survival_shuffle_64", "Puncher Brawl 2" }, + // { "survival_shuffle_65", "Atoll pétulant" }, + // { "survival_shuffle_66", "Blast Rhino" }, + // { "survival_shuffle_67", "Blast Arena" }, + // { "survival_shuffle_68", "Brewing Boxes" }, + // { "survival_shuffle_69", "The flood" }, + // { "survival_shuffle_70", "PUSHBACK" }, + // { "survival_shuffle_71", "Arena Guys" }, + // { "survival_shuffle_72", "Jungle Survival" }, + // { "survival_shuffle_73", "おしくらまんじゅうジャンプ" }, + // { "survival_shuffle_74", "blast fall X" }, + // { "survival_shuffle_75", "Tic-Tac-Blow" }, + // { "survival_shuffle_76", "CS Guys" }, + // { "survival_shuffle_77", "Bounce Battle" }, + // { "survival_shuffle_78", "Cheat's Only Fan" }, + // { "survival_shuffle_79", "Showdown Party" }, + // { "survival_shuffle_80", "Donut layers!" }, + // { "survival_shuffle_81", "パワーアップ・ノックアウト" }, + // { "survival_shuffle_82", "アップダウンバトル" }, + // { "survival_shuffle_83", "頂上対決" }, + // { "survival_shuffle_84", "Blast Ring" }, + // { "survival_shuffle_85", "Raft Rumble" }, + // { "survival_shuffle_86", "Rhino-hex-killer+invasion" }, + // { "survival_shuffle_87", "Survie des enfers" }, + // { "survival_shuffle_88", "blast ball HEXAGON" }, + // { "survival_shuffle_89", "The Bean-rena" }, + // { "survival_shuffle_90", "Lake in the mountains" }, + // { "survival_shuffle_91", "Playing area" }, + // { "survival_shuffle_92", "Hopping Party" }, + // { "survival_shuffle_93", "Shape Dimension" }, + // { "survival_shuffle_94", "Dramatic Flowers" }, + // + // { "wle_mrs_ugc_playful_01", "Neon pipe run" }, + // { "wle_mrs_ugc_playful_02", "SUNKEN CIRCUIT" }, + // { "wle_mrs_ugc_playful_03", "Blundercity Marathon" }, + // { "wle_mrs_ugc_playful_04", "Rainbow highway" }, + // { "wle_mrs_ugc_playful_05", "Rainbow Riptide" }, + // { "wle_mrs_ugc_playful_06", "Past passage" }, + // { "wle_mrs_ugc_playful_07", "Sandcastle Kingdom" }, + // { "wle_mrs_ugc_playful_08", "Jumping Season" }, + // { "wle_mrs_ugc_playful_09", "Fall Stars" }, + // { "wle_mrs_ugc_playful_10", "Medieval Sprint" }, + // { "wle_mrs_ugc_playful_11", "SPRING MOUNTAIN" }, + // { "wle_mrs_ugc_playful_12", "NAUTICAL SHAMBLE" }, + // { "wle_mrs_ugc_playful_13", "The Last Winter" }, + // + // { "playful_shuffle_01", "Fiebre medieval" }, + // { "playful_shuffle_02", "Triple Trial" }, + // { "playful_shuffle_03", "Trees (Waterfall)" }, + // { "playful_shuffle_05", "plat guys" }, + // { "playful_shuffle_06", "震えるキャベツ" }, + // { "playful_shuffle_07", "Winter Wallop" }, + // { "playful_shuffle_08", "Multi Leaper" }, + // { "playful_shuffle_09", "Golden Poodles" }, + // { "playful_shuffle_10", "ストレートスタンブル" }, + // { "playful_shuffle_11", "Easy Fun Speedrun" }, + // { "playful_shuffle_12", "RUN RUN Park" }, + // { "playful_shuffle_14", "ごちゃごちゃストリート" }, + // { "playful_shuffle_15", "Conveyors Obstacles" }, + // { "playful_shuffle_17", "Green Mountain" }, + // { "playful_shuffle_18", "Ancient Fallstronomers" }, + // { "playful_shuffle_19", "+slidin' in the air+ 10k play special" }, + // { "playful_shuffle_20", "Jumping Season" }, + // { "playful_shuffle_21", "Track attackers system" }, + // { "playful_shuffle_22", "CASTLE CLASH" }, + // { "playful_shuffle_24", "Falling Dreams" }, + // { "playful_shuffle_25", "ロケットでうちあげだ 2" }, + // { "playful_shuffle_26", "The Terrible Spiral Of Woo Remake" }, + // { "playful_shuffle_27", "Rainbow Dash" }, + // { "playful_shuffle_28", "TruPixel's Jungle Mash-up" }, + // { "playful_shuffle_30", "Monochromatic Manic" }, + // { "playful_shuffle_33", "Ramp It Up!" }, + // { "playful_shuffle_34", "Adrenaline Force 2" }, + // { "playful_shuffle_35", "DIGITAL MADNESS" }, + // { "playful_shuffle_36", "Cosmic Pipes" }, + // { "playful_shuffle_37", "Milky way" }, + // { "playful_shuffle_38", "Snow Style" }, + // { "playful_shuffle_39", "Data Dash" }, + // { "playful_shuffle_40", "Caida resbaladisa" }, + // { "playful_shuffle_41", "Frostbite Speed Fall Slider" }, + // { "playful_shuffle_42", "Snow Mountain" }, + // { "playful_shuffle_44", "Cosmic Dash" }, + // { "playful_shuffle_45", "Overclocked" }, + // { "playful_shuffle_46", " Wild Dunes" }, + // { "playful_shuffle_47", "Flutter-by!" }, + // { "playful_shuffle_48", "Blundercity Marathon" }, + // { "playful_shuffle_50", "Pixel Circuit像素环游" }, + // { "playful_shuffle_51", "Stars Guys" }, + // { "playful_shuffle_52", "SUNKEN CIRCUIT" }, + // { "playful_shuffle_54", "Pocket Summit" }, + // { "playful_shuffle_55", "Love a day" }, + // { "playful_shuffle_56", "Passage imbroglio arc en ciel" }, + // { "playful_shuffle_58", "コズミックミュージック COSMIC MUSIC" }, + // { "playful_shuffle_59", "glissoire arc en ciel" }, + // + // { "survival_shuffle_wk11_01", "Speed attack" }, + // { "survival_shuffle_wk11_02", "Garbage Chute V2" }, + // { "survival_shuffle_wk11_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_wk11_04", "Sobreviventes da Batalha" }, + // { "survival_shuffle_wk11_05", "今日の運勢サバイバル" }, + // { "survival_shuffle_wk11_06", "More Blastball!" }, + // { "survival_shuffle_wk11_07", "Hexagone Tower" }, + // { "survival_shuffle_wk11_08", "Bouncy Castle" }, + // { "survival_shuffle_wk11_09", "Snowy Stronghold" }, + // { "survival_shuffle_wk11_10", "NAMEK" }, + // { "survival_shuffle_wk11_11", "Hexa-Towers - Finals Arena" }, + // { "survival_shuffle_wk11_12", "Satellite Delight" }, + // { "survival_shuffle_wk11_13", "DEADLY VOLCANO" }, + // { "survival_shuffle_wk11_14", "Ganj's Matter Baby" }, + // { "survival_shuffle_wk11_15", "HEX-A-JUMP" }, + // { "survival_shuffle_wk11_16", "RHINOCHET" }, + // { "survival_shuffle_wk11_17", "Rocky Rumble" }, + // { "survival_shuffle_wk11_18", "Ludo War" }, + // { "survival_shuffle_wk11_19", "RING ROUND FIGHT" }, + // { "survival_shuffle_wk11_20", "Flight frenzy" }, + // { "survival_shuffle_wk11_21", "BLAST BRIDGES" }, + // { "survival_shuffle_wk11_22", "Blast Ball X" }, + // { "survival_shuffle_wk11_23", "Blast Trip" }, + // { "survival_shuffle_wk11_24", "Royal Rumble" }, + // { "survival_shuffle_wk11_25", "Bird is the Word" }, + // { "survival_shuffle_wk11_26", "The Whirligig" }, + // { "survival_shuffle_wk11_27", "Subzero Gale" }, + // { "survival_shuffle_wk11_28", "Slime Surfers" }, + // { "survival_shuffle_wk11_29", "Eduardo Escapades" }, + // { "survival_shuffle_wk11_30", "Hex A Trouble" }, + // { "survival_shuffle_wk11_31", "Back & Forth" }, + // { "survival_shuffle_wk11_32", "HEXAGONAL RING BLAST" }, + // { "survival_shuffle_wk11_33", "Carousel Mayhem" }, + // { "survival_shuffle_wk11_34", "Beens Royale RESURRECTION" }, + // { "survival_shuffle_wk11_35", "Hexa-Toto" }, + // { "survival_shuffle_wk11_36", "Blender Container" }, + // { "survival_shuffle_wk11_37", "Mid wars!" }, + // { "survival_shuffle_wk11_38", "hex-a-volcanic" }, + // { "survival_shuffle_wk11_39", "vamos rey del aire" }, + // { "survival_shuffle_wk11_40", "Shogun's Arena" }, + // { "survival_shuffle_wk11_41", "survival board" }, + // { "survival_shuffle_wk11_42", "survival factory" }, + // { "survival_shuffle_wk11_43", "rainbow convoyer" }, + // { "survival_shuffle_wk11_44", "すぱいだーすっぱいんだー" }, + // { "survival_shuffle_wk11_45", "HEX A REBORN" }, + // { "survival_shuffle_wk11_46", "The Hex-A-Gon House" }, + // { "survival_shuffle_wk11_47", "CAROUSEL CHAOS" }, + // { "survival_shuffle_wk11_48", "Ring Off" }, + // { "survival_shuffle_wk11_49", "âpre pélutant" }, + // { "survival_shuffle_wk11_50", "ダイナミクスビート DYNAMICS BEAT" }, + // { "survival_shuffle_wk11_51", "Fruit Chute Survival" }, + // { "survival_shuffle_wk11_52", "No Punching" }, + // { "survival_shuffle_wk11_53", "Hex-A-Blaster" }, + // { "survival_shuffle_wk11_54", "The Punch Warriors! - Survival Edition" }, + // { "survival_shuffle_wk11_55", "Volcanic Panic" }, + // { "survival_shuffle_wk11_56", "Hex-a-lowercase t" }, + // { "survival_shuffle_wk11_57", "Beta Jinxed" }, + // { "survival_shuffle_wk11_58", "Showdown Party" }, + // { "survival_shuffle_wk11_59", "Canyon Sand 1" }, + // { "survival_shuffle_wk11_60", "Aggro-Crag" }, + // { "survival_shuffle_wk11_61", "Bean Fort" }, + // { "survival_shuffle_wk11_62", "Tronco Gigante" }, + // { "survival_shuffle_wk11_63", "Block Battle - Survive" }, + // { "survival_shuffle_wk11_64", "Hot Shots" }, + // { "survival_shuffle_wk11_65", "blast royale" }, + // { "survival_shuffle_wk11_66", "Supervivencia del caos" }, + // { "survival_shuffle_wk11_67", "Hex-A-Mayhem" }, + // { "survival_shuffle_wk11_68", "The Falliseum" }, + // { "survival_shuffle_wk11_69", "終末列車" }, + // { "survival_shuffle_wk11_70", "O chão é lava" }, + // { "survival_shuffle_wk11_71", "Survival Carnival" }, + // { "survival_shuffle_wk11_72", "Kraken x balls x boxing" }, + // { "survival_shuffle_wk11_73", "Gum survival" }, + // { "survival_shuffle_wk11_74", "スライム研究室" }, + // { "survival_shuffle_wk11_75", "Colour switch" }, + // { "survival_shuffle_wk11_76", "Fall Royale" }, + // { "survival_shuffle_wk11_77", "Roll Out Explosion" }, + // { "survival_shuffle_wk11_78", "HELIX ROLL" }, + // { "survival_shuffle_wk11_79", "耐久出来ないサバイバル2" }, + // { "survival_shuffle_wk11_80", "detonates atlantis" }, + // { "survival_shuffle_wk11_81", "Conveyor Chaos" }, + // { "survival_shuffle_wk11_82", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_wk11_84", "Slime Crater" }, + // { "survival_shuffle_wk11_85", "Firewall Finale" }, + // { "survival_shuffle_wk11_86", "ブラストボールエンド" }, + // { "survival_shuffle_wk11_87", "ボタンコンフュージョン" }, + // { "survival_shuffle_wk11_88", "DEE'S- RHINO RUMBLE!!!!!!" }, + // { "survival_shuffle_wk11_89", "tournement de couleur" }, + // { "survival_shuffle_wk11_90", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_wk11_91", "HARD HEROES DRLVE SURVLVAL" }, + // { "survival_shuffle_wk11_92", "Jump Show Fall" }, + // { "survival_shuffle_wk11_93", "Hex-A-Lava" }, + // { "survival_shuffle_wk11_94", "Magma Meltdown" }, + // { "survival_shuffle_wk11_95", "恐怖のたまご" }, + // { "survival_shuffle_wk11_96", "Cosmic Clash" }, + // { "survival_shuffle_wk11_97", "Fall And Round" }, + // { "survival_shuffle_wk11_98", "フォールドッジブラストボール" }, + // { "survival_shuffle_wk11_99", "Sewer Stand-off" }, + // + // { "survival_shuffle_3wk3_01", "Sobreviventes da Batalha" }, + // { "survival_shuffle_3wk3_02", "Survival Festival" }, + // { "survival_shuffle_3wk3_03", "MEOW-FO ROYALE" }, + // { "survival_shuffle_3wk3_04", "Space Blast" }, + // { "survival_shuffle_3wk3_05", "meteor rain" }, + // { "survival_shuffle_3wk3_06", "Spiral-Cano" }, + // { "survival_shuffle_3wk3_07", "Bridge Island Boss" }, + // { "survival_shuffle_3wk3_08", "Caldera chaos" }, + // { "survival_shuffle_3wk3_09", "BLAST BRIDGES" }, + // { "survival_shuffle_3wk3_10", "Royal Rumble" }, + // { "survival_shuffle_3wk3_11", "flower ring" }, + // { "survival_shuffle_3wk3_12", "The Whirligig" }, + // { "survival_shuffle_3wk3_13", "?" }, + // { "survival_shuffle_3wk3_14", "熔岩蜂窝 Hex-A-Lava" }, + // { "survival_shuffle_3wk3_15", "Mid wars!" }, + // { "survival_shuffle_3wk3_16", "vamos rey del aire" }, + // { "survival_shuffle_3wk3_17", "Shogun's Arena" }, + // { "survival_shuffle_3wk3_18", "聖帝導夢ランボー!" }, + // { "survival_shuffle_3wk3_19", "Test Survival" }, + // { "survival_shuffle_3wk3_20", "Blunder Barge" }, + // { "survival_shuffle_3wk3_21", "Ring Off" }, + // { "survival_shuffle_3wk3_22", "âpre pélutant" }, + // { "survival_shuffle_3wk3_23", "Arena Nocaute Ultimate" }, + // { "survival_shuffle_3wk3_24", "Bataille au ²" }, + // { "survival_shuffle_3wk3_25", "Bom Bom Do" }, + // { "survival_shuffle_3wk3_26", "Super Smash Beans 2!" }, + // { "survival_shuffle_3wk3_27", "VOLLEY BRAWL!" }, + // { "survival_shuffle_3wk3_28", "Bamblast!" }, + // { "survival_shuffle_3wk3_29", "Extreme Block Party" }, + // { "survival_shuffle_3wk3_30", "Colisel da insegurança" }, + // { "survival_shuffle_3wk3_31", "hex-a-climb" }, + // { "survival_shuffle_3wk3_32", "Hex-a-lowercase t" }, + // { "survival_shuffle_3wk3_33", "Beta Jinxed" }, + // { "survival_shuffle_3wk3_34", "The flood" }, + // { "survival_shuffle_3wk3_35", "Explosive kraken!" }, + // { "survival_shuffle_3wk3_36", "Bean Abduction" }, + // { "survival_shuffle_3wk3_37", "blast fall X" }, + // { "survival_shuffle_3wk3_38", "HexaBoom" }, + // { "survival_shuffle_3wk3_39", "グラグラ足場" }, + // { "survival_shuffle_3wk3_40", "Floor-Fall-Survival" }, + // { "survival_shuffle_3wk3_41", "Batalha TRI-unFall" }, + // { "survival_shuffle_3wk3_42", "Détonation arc en ciel" }, + // { "survival_shuffle_3wk3_43", "Rustic Jungle" }, + // { "survival_shuffle_3wk3_44", "SLIME BLOCK PARTY" }, + // { "survival_shuffle_3wk3_45", "チーム(すもう)サバイバル!" }, + // { "survival_shuffle_3wk3_46", "Hex-apple" }, + // { "survival_shuffle_3wk3_47", "Aggro-Crag" }, + // { "survival_shuffle_3wk3_48", "Frenzied Factory" }, + // { "survival_shuffle_3wk3_49", "AIR BATTLE" }, + // { "survival_shuffle_3wk3_50", "The Bean-rena" }, + // { "survival_shuffle_3wk3_51", "Hex-A-Joust" }, + // { "survival_shuffle_3wk3_52", "Lake in the mountains" }, + // { "survival_shuffle_3wk3_53", "Tronco Gigante" }, + // { "survival_shuffle_3wk3_54", "Whirling Arena" }, + // { "survival_shuffle_3wk3_55", "Block Battle - Survive" }, + // { "survival_shuffle_3wk3_56", "Hot Shots" }, + // { "survival_shuffle_3wk3_57", "Gladiators" }, + // { "survival_shuffle_3wk3_58", "The Falliseum" }, + // { "survival_shuffle_3wk3_59", "Blast Chaos" }, + // { "survival_shuffle_3wk3_60", "Blast Ball Reveal" }, + // { "survival_shuffle_3wk3_61", "終末列車" }, + // { "survival_shuffle_3wk3_62", "Kraken x balls x boxing" }, + // { "survival_shuffle_3wk3_63", "Gum survival" }, + // { "survival_shuffle_3wk3_64", "スライム研究室" }, + // { "survival_shuffle_3wk3_65", "BEAN’S FIRST MATH TEST" }, + // { "survival_shuffle_3wk3_66", "Fight Land" }, + // { "survival_shuffle_3wk3_67", "Colour switch" }, + // { "survival_shuffle_3wk3_68", "Fall Royale" }, + // { "survival_shuffle_3wk3_69", "デジタルランティス" }, + // { "survival_shuffle_3wk3_70", "MAME RING" }, + // { "survival_shuffle_3wk3_71", "detonates atlantis" }, + // { "survival_shuffle_3wk3_72", "Flower Punch" }, + // { "survival_shuffle_3wk3_73", "Wobbly arena" }, + // { "survival_shuffle_3wk3_74", "TURMOIL--POWER UP PANIC" }, + // { "survival_shuffle_3wk3_75", "Why is it Spicy" }, + // { "survival_shuffle_3wk3_76", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_3wk3_77", "Slime Crater" }, + // { "survival_shuffle_3wk3_78", "ボタンコンフュージョン" }, + // { "survival_shuffle_3wk3_79", "tournement de couleur" }, + // { "survival_shuffle_3wk3_80", "Boxeo V69" }, + // { "survival_shuffle_3wk3_81", "fall in a storm" }, + // { "survival_shuffle_3wk3_82", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_3wk3_83", "Rebellion of block ver2" }, + // { "survival_shuffle_3wk3_86", "怒りのすとんぴんぐ・ぐらうんど" }, + // { "survival_shuffle_3wk3_87", "Jump Show Fall" }, + // { "survival_shuffle_3wk3_88", "カウントブロック" }, + // { "survival_shuffle_3wk3_89", "Hex-A-Lava" }, + // { "survival_shuffle_3wk3_90", "Mario" }, + // { "survival_shuffle_3wk3_91", "Magma Meltdown" }, + // { "survival_shuffle_3wk3_92", "ROOFTOP RUMBLE!" }, + // { "survival_shuffle_3wk3_93", "émoussement arc en ciel" }, + // { "survival_shuffle_3wk3_94", "Fall And Round" }, + // { "survival_shuffle_3wk3_95", "深空蜂窝" }, + // { "survival_shuffle_3wk3_96", "Pokémon Stadium" }, + // { "survival_shuffle_3wk3_97", "Safari survival" }, + // { "survival_shuffle_3wk3_98", "Slime Playground" }, + // { "survival_shuffle_3wk3_99", "Hexagonal Fadeout" }, + // { "survival_shuffle_3wk3_100", "ランダムエッグスイッチアクション" }, + // + // { "wle_shuggle_mwk3_01", "Ariko Jones" }, + // { "wle_shuggle_mwk3_02", "Triple Trial" }, + // { "wle_shuggle_mwk3_03", "Aerial Squirrel" }, + // { "wle_shuggle_mwk3_04", "ギリギリアウトチャレンジ公式競技場 1" }, + // { "wle_shuggle_mwk3_05", "シンスモウ(ブラストボール)" }, + // { "wle_shuggle_mwk3_06", "Winter Wallop" }, + // { "wle_shuggle_mwk3_07", "リリーリーパー再現" }, + // { "wle_shuggle_mwk3_08", "Wilderness Adventures!" }, + // { "wle_shuggle_mwk3_09", "Rets arc en ciel" }, + // { "wle_shuggle_mwk3_10", "egypt park" }, + // { "wle_shuggle_mwk3_11", "Green Mountain" }, + // { "wle_shuggle_mwk3_12", "super speedrun" }, + // { "wle_shuggle_mwk3_13", "ULTRA MEGA EXTREME HARD!!!" }, + // { "wle_shuggle_mwk3_14", "Заурядные Белки" }, + // { "wle_shuggle_mwk3_15", "Digital keyboard 😜✌️" }, + // { "wle_shuggle_mwk3_16", "artistic ELIMINATED challenge 1" }, + // { "wle_shuggle_mwk3_17", "TAKOのツボ" }, + // { "wle_shuggle_mwk3_18", "Jumping Season" }, + // { "wle_shuggle_mwk3_19", "Black" }, + // { "wle_shuggle_mwk3_20", "Digital Climb 3 ~Rainbow~" }, + // { "wle_shuggle_mwk3_21", "Volcanic Island Travel!" }, + // { "wle_shuggle_mwk3_22", "Sky Ball" }, + // { "wle_shuggle_mwk3_23", "Space Race Remake" }, + // { "wle_shuggle_mwk3_24", "危険なリス" }, + // { "wle_shuggle_mwk3_25", "Summer and the Wonder land of the Sea" }, + // { "wle_shuggle_mwk3_26", "Skim City" }, + // { "wle_shuggle_mwk3_27", "Prova do campeão (Champion Round)" }, + // { "wle_shuggle_mwk3_28", "Жёлтые Нарвалы" }, + // { "wle_shuggle_mwk3_29", "Tropical Punch" }, + // { "wle_shuggle_mwk3_30", "away from the slime" }, + // { "wle_shuggle_mwk3_31", "キョダイMAX黒き天空龍!PFNo02" }, + // { "wle_shuggle_mwk3_32", "Yellow Kingdoms" }, + // { "wle_shuggle_mwk3_33", "Milky way" }, + // { "wle_shuggle_mwk3_34", "SPACE ROUND" }, + // { "wle_shuggle_mwk3_35", "Speedy Bounces" }, + // { "wle_shuggle_mwk3_36", "Snow Style" }, + // { "wle_shuggle_mwk3_37", "bunny leapers V8" }, + // { "wle_shuggle_mwk3_38", "Mushroom" }, + // { "wle_shuggle_mwk3_39", "Data Dash" }, + // { "wle_shuggle_mwk3_40", "RUTA EN LA SELVA" }, + // { "wle_shuggle_mwk3_41", "Button infected desert temple" }, + // { "wle_shuggle_mwk3_42", "Carreira colorida" }, + // { "wle_shuggle_mwk3_43", "Cargo Drop" }, + // { "wle_shuggle_mwk3_44", "green dash" }, + // { "wle_shuggle_mwk3_45", "Jungle Guys" }, + // { "wle_shuggle_mwk3_46", "Golden gates" }, + // { "wle_shuggle_mwk3_47", "Evil Guys" }, + // { "wle_shuggle_mwk3_48", "Orange And Blue Leapers" }, + // { "wle_shuggle_mwk3_49", "Plinko Fall" }, + // { "wle_shuggle_mwk3_50", "Digital Bean Stumble (V2)" }, + // { "wle_shuggle_mwk3_51", "Estareo's Lele Lembe v9" }, + // { "wle_shuggle_mwk3_52", "THE GATE OF TRUTH" }, + // { "wle_shuggle_mwk3_53", "Flutter-by!" }, + // { "wle_shuggle_mwk3_54", "Sketchy Sledding!" }, + // { "wle_shuggle_mwk3_55", "A Cold Race" }, + // { "wle_shuggle_mwk3_56", "X-Treme MegaKaizo Ultra Fall GuysHardest" }, + // { "wle_shuggle_mwk3_57", "Snow Speed" }, + // { "wle_shuggle_mwk3_58", "Bean Fantasy" }, + // { "wle_shuggle_mwk3_59", "Runner(For Fame Pass)" }, + // { "wle_shuggle_mwk3_60", "French Station" }, + // { "wle_shuggle_mwk3_61", "slime climb Creative" }, + // { "wle_shuggle_mwk3_62", "CLASSROOM(PART 2)" }, + // { "wle_shuggle_mwk3_63", "Chilly Leapers" }, + // { "wle_shuggle_mwk3_64", "Fall Bridge" }, + // { "wle_shuggle_mwk3_65", "快感快速!!" }, + // { "wle_shuggle_mwk3_66", "Jungle Guys II" }, + // { "wle_shuggle_mwk3_67", "コズミックミュージック COSMIC MUSIC" }, + // { "wle_shuggle_mwk3_68", "Satellite Sprint" }, + // { "wle_shuggle_mwk3_69", "GROOVIN’ BANANA TEMPLE" }, + // { "wle_shuggle_mwk3_70", "Rumble Tumble" }, + // { "wle_shuggle_mwk3_71", "Fashion Show!" }, + // { "wle_shuggle_mwk3_72", "DROP TOWER 蹦极塔" }, + // { "wle_shuggle_mwk3_73", "Boggle-Bean Bridges" }, + // { "wle_shuggle_mwk3_74", "AquArsene" }, + // { "wle_shuggle_mwk3_75", "Winter Games" }, + // { "wle_shuggle_mwk3_76", "LOONEY TUNES" }, + // { "wle_shuggle_mwk3_77", "atlan-sprint" }, + // { "wle_shuggle_mwk3_78", "Koala kingdom" }, + // { "wle_shuggle_mwk3_79", "straight500" }, + // { "wle_shuggle_mwk3_80", "BIG CROWN MONUMENT" }, + // { "wle_shuggle_mwk3_81", "Lily River Run" }, + // { "wle_shuggle_mwk3_82", "Skyball" }, + // { "wle_shuggle_mwk3_83", "STARLIGHT STUMBLE" }, + // { "wle_shuggle_mwk3_84", "Speedway 2069" }, + // { "wle_shuggle_mwk3_85", "GOLD RUSH" }, + // { "wle_shuggle_mwk3_86", "Data Eraser" }, + // { "wle_shuggle_mwk3_87", "FESTIVE CROSSROADS" }, + // { "wle_shuggle_mwk3_88", "Rainbow highway" }, + // { "wle_shuggle_mwk3_89", "Candyland" }, + // { "wle_shuggle_mwk3_90", "hex-a-run" }, + // { "wle_shuggle_mwk3_91", "Rover Rumble" }, + // { "wle_shuggle_mwk3_92", "MEOW MEOW GALAXY" }, + // { "wle_shuggle_mwk3_93", "Speedy Lovers" }, + // { "wle_shuggle_mwk3_94", "THE Rivalry Game (Football)" }, + // { "wle_shuggle_mwk3_95", "MARIPEN PHOTOLOCATION(Digital)" }, + // { "wle_shuggle_mwk3_96", "Olympique Guys" }, + // { "wle_shuggle_mwk3_97", "Boo City" }, + // { "wle_shuggle_mwk3_98", "CARNIVORUS PLANTS" }, + // { "wle_shuggle_mwk3_99", "はしるまくれ!⊂{◎Å◎}⊃" }, + // { "wle_shuggle_mwk3_100", "Crazy Coaster" }, + // + // { "playful_refresh_w2_01", "Winter Wallop" }, + // { "playful_refresh_w2_02", "Multi Leaper" }, + // { "playful_refresh_w2_03", "ストレートスタンブル" }, + // { "playful_refresh_w2_04", "RUN RUN Park" }, + // { "playful_refresh_w2_05", "やってみな!" }, + // { "playful_refresh_w2_06", "ごちゃごちゃストリート" }, + // { "playful_refresh_w2_07", "Conveyors Obstacles" }, + // { "playful_refresh_w2_08", "Seeing The Bean Ball" }, + // { "playful_refresh_w2_09", "Green Mountain" }, + // { "playful_refresh_w2_10", "Ancient Fallstronomers" }, + // { "playful_refresh_w2_11", "Jumping Season" }, + // { "playful_refresh_w2_12", "Track attackers system" }, + // { "playful_refresh_w2_13", "CASTLE CLASH" }, + // { "playful_refresh_w2_14", "The Terrible Spiral Of Woo Remake" }, + // { "playful_refresh_w2_15", "Rainbow Dash" }, + // { "playful_refresh_w2_16", "TruPixel's Jungle Mash-up" }, + // { "playful_refresh_w2_17", "fall-in space" }, + // { "playful_refresh_w2_18", "Monochromatic Manic" }, + // { "playful_refresh_w2_19", "Adrenaline Force 2" }, + // { "playful_refresh_w2_20", "DIGITAL MADNESS" }, + // { "playful_refresh_w2_21", "Data Dash" }, + // { "playful_refresh_w2_22", "Caida resbaladisa" }, + // { "playful_refresh_w2_23", "Snow Mountain" }, + // { "playful_refresh_w2_24", "Orange And Blue Leapers" }, + // { "playful_refresh_w2_25", " Wild Dunes" }, + // { "playful_refresh_w2_26", "Blundercity Marathon" }, + // { "playful_refresh_w2_27", "Pocket Summit" }, + // { "playful_refresh_w2_28", "Love a day" }, + // { "playful_refresh_w2_29", "Passage imbroglio arc en ciel" }, + // { "playful_refresh_w2_30", "Fall Stars" }, + // { "playful_refresh_w2_31", "SPRING MOUNTAIN" }, + // { "playful_refresh_w2_32", "AquArsene" }, + // { "playful_refresh_w2_33", "Rainbow Riptide" }, + // { "playful_refresh_w2_34", "Cluster Cosmos" }, + // { "playful_refresh_w2_35", "Koala kingdom" }, + // { "playful_refresh_w2_36", "Fallyager 12 Repair Mission" }, + // { "playful_refresh_w2_37", "Lily River Run" }, + // { "playful_refresh_w2_38", "STARLIGHT STUMBLE" }, + // { "playful_refresh_w2_39", "Welcome to Namek" }, + // { "playful_refresh_w2_40", "Rainbow highway" }, + // { "playful_refresh_w2_41", "Past passage" }, + // { "playful_refresh_w2_42", "Neon pipe run" }, + // { "playful_refresh_w2_43", "NAUTICAL SHAMBLE" }, + // + // { "wle_mrs_winter_opener_01", "Winter Blunderland" }, + // { "wle_mrs_winter_opener_02", "Frosty fiesta" }, + // { "wle_mrs_winter_opener_03", "Knight Slide" }, + // { "wle_mrs_winter_opener_04", "Digi-Snow Stumble" }, + // { "wle_mrs_winter_opener_05", "Snowy Cave-in" }, + // { "wle_mrs_winter_opener_06", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "wle_mrs_winter_opener_07", "A Cold Race" }, + // { "wle_mrs_winter_opener_08", "Ice Rock" }, + // { "wle_mrs_winter_filler_01", "Snowy Flakes" }, + // { "wle_mrs_winter_filler_02", "Mountain of Ice" }, + // { "wle_mrs_winter_filler_03", "FROSTY FUMBLE" }, + // { "wle_mrs_winter_filler_04", "Winter Getaway" }, + // { "wle_mrs_winter_filler_05", "Snowy Speed Sprint" }, + // { "wle_mrs_winter_filler_06", "WINTER WONDERLAND" }, + // { "wle_mrs_winter_filler_07", "Gran Glaciar Paradicial" }, + // { "wle_mrs_winter_final_01", "The Ice Dragon's Lair" }, + // { "wle_mrs_winter_final_02", "Winter Wonderland" }, + // { "wle_mrs_winter_final_03", "Snowman Sprint" }, + // { "wle_mrs_winter_final_04", "MERRY CLIMBING!" }, + // { "wle_mrs_winter_final_05", "Winter Wonderland" }, + // + // { "wle_s10_cf_round_001", "Blocky Bridges" }, + // { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + // { "wle_s10_cf_round_003", "Drop n' Drag" }, + // { "wle_s10_cf_round_004", "Fun with Fans" }, + // + // { "wle_s10_bt_round_001", "Push Ups" }, + // { "wle_s10_bt_round_002", "Heave & Haul" }, + // { "wle_s10_bt_round_003", "Stepping Stones" }, + // { "wle_s10_bt_round_004", "Double Trouble" }, + // + // { "wle_mrs_bagel_opener_1", "Tunnel of Love" }, + // { "wle_mrs_bagel_opener_2", "Pink Parade" }, + // { "wle_mrs_bagel_opener_3", "Prideful Path" }, + // { "wle_mrs_bagel_opener_4", "Coming Together" }, + // { "wle_mrs_bagel_filler_1", "Clifftop Capers" }, + // { "wle_mrs_bagel_filler_2", "Waveway Splits" }, + // { "wle_mrs_bagel_filler_3", "In the Groove" }, + // { "wle_mrs_bagel_filler_4", "Heartfall Heat" }, + // { "wle_mrs_bagel_final_1", "Rainbow Rise" }, + // { "wle_mrs_bagel_final_2", "Out and About" }, + // + // { "wle_mrs_bouncy_bean_time_opener", "Frosty Frolics" }, + // { "wle_mrs_bouncy_bean_time_opener_02", "roll roll bean" }, + // { "wle_mrs_bouncy_bean_time_opener_03", "SPEEDROLLING" }, + // { "wle_mrs_bouncy_bean_time_filler", "Ball Park" }, + // { "wle_mrs_bouncy_bean_time_filler_02", "Ball Carnival" }, + // { "wle_mrs_bouncy_bean_time_filler_03", "Spiral Trial" }, + // { "wle_mrs_bouncy_bean_time_filler_04", "Golf Fall" }, + // { "wle_mrs_bouncy_bean_time_final", "Downtown Rush" }, + // { "wle_mrs_bouncy_bean_time_final_02", "Skyview Derby" }, + // { "wle_mrs_bouncy_bean_time_final_03", "Rolling Speedway" }, + // { "wle_mrs_bouncy_bean_time_final_04", "SEA FLOW!" }, + } + }, + { Language.Spanish, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "round_airtime", "Airtime" }, + { "round_bluejay", "Bean Hill Zone" }, + { "round_biggestfan", "Big Fans" }, + { "round_hoops_revenge_symphony_launch_show", "Bounce Party" }, + { "round_king_of_the_hill", "Bubble Trouble" }, + { "round_1v1_button_basher", "Button Bashers" }, + { "round_satellitehoppers_almond", "Cosmic Highway" }, + { "round_door_dash", "Door Dash" }, + { "round_gauntlet_02", "Dizzy Heights" }, + { "round_ffa_button_bashers_squads_almond", "Frantic Factory" }, + { "round_iceclimb", "Freezy Peak" }, + { "round_dodge_fall", "Fruit Chute" }, + { "round_see_saw_360", "Full Tilt" }, + { "round_chompchomp", "Gate Crash" }, + { "round_gauntlet_01", "Hit Parade" }, + { "round_slippy_slide", "Hoop Chute" }, + { "round_hoops_blockade_solo", "Hoopsie Legends" }, + { "round_gauntlet_04", "Knight Fever" }, + { "round_follow-the-leader_s6_launch", "Leading Light" }, + { "round_drumtop", "Lily Leapers" }, + { "round_gauntlet_08", "Party Promenade" }, + { "round_penguin_solos", "Pegwin Pool Party" }, + { "round_pipedup_s6_launch", "Pipe Dream" }, + { "round_pixelperfect_almond", "Pixel Painters" }, + { "round_follow_the_line", "Puzzle Path" }, + { "round_tunnel_race", "Roll On" }, + { "round_see_saw", "See Saw" }, + { "round_shortcircuit", "Short Circuit" }, + { "round_skeefall", "Ski Fall" }, + { "round_gauntlet_06", "Skyline Stumble" }, + { "round_lava", "Slime Climb" }, + { "round_slimeclimb_2", "The Slimescraper" }, + { "round_gauntlet_10_almond", "Space Race" }, + { "round_slide_chute", "Speed Slider" }, + { "round_short_circuit_2_symphony_launch_show", "Speed Circuit" }, + { "round_starlink_almond", "Starchart" }, + { "round_tip_toe", "Tip Toe" }, + { "round_gauntlet_09_symphony_launch_show", "Track Attack" }, + { "round_gauntlet_07", "Treetop Tumble" }, + { "round_gauntlet_05", "Tundra Run" }, + { "round_gauntlet_03", "The Whirlygig" }, + { "round_wall_guys", "Wall Guys" }, + { "round_fruitpunch_s4_show", "Big Shots" }, + { "round_blastballruins", "Blastlantis" }, + { "round_block_party", "Block Party" }, + { "round_hoverboardsurvival_s4_show", "Hoverboard Heroes" }, + { "round_hoverboardsurvival2_almond", "Hyperdrive Heroes" }, + { "round_jump_club", "Jump Club" }, + { "round_match_fall", "Perfect Match" }, + { "round_tunnel", "Roll Out" }, + { "round_snowballsurvival", "Snowball Survival" }, + { "round_robotrampage_arena_2", "Stompin' Ground" }, + { "round_fruit_bowl", "Sum Fruit" }, + { "round_tail_tag", "Tail Tag" }, + { "round_spin_ring_symphony_launch_show", "The Swiveller" }, + { "round_1v1_volleyfall_symphony_launch_show", "Volleyfall" }, + { "round_basketfall_s4_show", "Basketfall" }, + { "round_egg_grab", "Egg Scramble" }, + { "round_egg_grab_02", "Egg Siege" }, + { "round_fall_ball_60_players", "Fall Ball" }, + { "round_ballhogs", "Hoarders" }, + { "round_hoops", "Hoopsie Daisy" }, + { "round_jinxed", "Jinxed" }, + { "round_chicken_chase", "Pegwin Pursuit" }, + { "round_territory_control_s4_show", "Power Trip" }, + { "round_rocknroll", "Rock 'n' Roll" }, + { "round_snowy_scrap", "Snowy Scrap" }, + { "round_invisibeans", "Sweet Thieves" }, + { "round_pumpkin_pie", "Treat Thieves" }, + { "round_conveyor_arena", "Team Tail Tag" }, + { "round_blastball_arenasurvival_symphony_launch_show", "Blast Ball" }, + { "round_fall_mountain_hub_complete", "Fall Mountain" }, + { "round_floor_fall", "Hex-A-Gone" }, + { "round_hexaring_symphony_launch_show", "Hex-A-Ring" }, + { "round_hexsnake_almond", "Hex-A-Terrestrial" }, + { "round_jump_showdown", "Jump Showdown" }, + { "round_kraken_attack", "Kraken Slam" }, + { "round_crown_maze", "Lost Temple" }, + { "round_tunnel_final", "Roll Off" }, + { "round_royal_rumble", "Royal Fumble" }, + { "round_thin_ice", "Thin Ice" }, + { "round_tiptoefinale_almond", "Tip Toe Finale" }, + + { "user_creative_race_round", "User Creative Race Round" }, + { "user_creative_survival_round", "User Creative Survival Round" }, + { "user_creative_hunt_round", "User Creative Points Round" }, + { "user_creative_logic_round", "User Creative Logic Round" }, + { "user_creative_team_round", "User Creative Team Round" }, + { "creative_race_round", "Creative Race Round" }, + { "creative_race_final_round", "Creative Race Final Round" }, + { "creative_survival_round", "Creative Survival Round" }, + { "creative_survival_final_round", "Creative Survival Final Round" }, + { "creative_hunt_round", "Creative Points Round" }, + { "creative_hunt_final_round", "Creative Points Final Round" }, + { "creative_logic_round", "Creative Logic Round" }, + { "creative_logic_final_round", "Creative Logic Final Round" }, + { "creative_team_round", "Creative Team Round" }, + { "creative_team_final_round", "Creative Team Final Round" }, + + // { "wle_main_filler_01", "Ruta en la selva" }, + // { "wle_main_filler_02", "ROTATION STATION" }, + // { "wle_main_filler_03", "canyon sun day" }, + // { "wle_main_opener_01", "Winter Disc-O" }, + // { "wle_main_opener_02", "Satellite Sprint" }, + // + // { "wle_s10_orig_round_001", "Beans Ahoy!" }, + // { "wle_s10_orig_round_002", "Airborne Antics" }, + // { "wle_s10_orig_round_003", "Scythes & Roundabouts" }, + // { "wle_s10_orig_round_004", "Cardio Runners" }, + // { "wle_s10_orig_round_005", "Fan Flingers" }, + // { "wle_s10_orig_round_006", "Uphill Struggle" }, + // { "wle_s10_orig_round_007", "Spinner Sprint" }, + // { "wle_s10_orig_round_008", "Lane Changers" }, + // { "wle_s10_orig_round_009", "Gentle Gauntlet" }, + // { "wle_s10_orig_round_010", "Square Up" }, + // { "wle_s10_orig_round_011", "Slide Showdown" }, + // { "wle_s10_orig_round_012", "Up & Down" }, + // { "wle_s10_orig_round_013", "Choo Choo Challenge" }, + // { "wle_s10_orig_round_014", "Runner Beans" }, + // { "wle_s10_orig_round_015", "Disc Dashers" }, + // { "wle_s10_orig_round_016", "Two Faced" }, + // { "wle_s10_orig_round_017", "Bellyflop Battlers" }, + // { "wle_s10_orig_round_018", "Apples & Oranges" }, + // { "wle_s10_orig_round_019", "Blueberry Bombardment" }, + // { "wle_s10_orig_round_020", "Chuting Stars" }, + // { "wle_s10_orig_round_021", "Slimy Slopes" }, + // { "wle_s10_orig_round_022", "Circuit Breakers" }, + // { "wle_s10_orig_round_023", "Winding Walkways" }, + // { "wle_s10_orig_round_024", "Wooseleum" }, + // { "wle_s10_orig_round_025", "Mount Boom" }, + // { "wle_s10_orig_round_026", "Hyperlink Hijinks" }, + // { "wle_s10_orig_round_027", "Fan Frolics" }, + // { "wle_s10_orig_round_028", "Windmill Road" }, + // { "wle_s10_orig_round_029", "Conveyor Clash" }, + // { "wle_s10_orig_round_030", "Mega Monument" }, + // { "wle_s10_orig_round_031", "Transfer Turnpike" }, + // { "wle_s10_orig_round_032", "Fortress Frolics" }, + // { "wle_s10_orig_round_033", "Super Door Dash" }, + // { "wle_s10_orig_round_034", "Spiral Of Woo" }, + // { "wle_s10_orig_round_035", "Tornado Trial" }, + // { "wle_s10_orig_round_036", "Hopscotch Havoc" }, + // { "wle_s10_orig_round_037", "Beat Bouncers" }, + // { "wle_s10_orig_round_038", "Blunder Bridges" }, + // { "wle_s10_orig_round_039", "Incline Rewind" }, + // { "wle_s10_orig_round_040", "Prismatic Parade" }, + // { "wle_s10_orig_round_041", "Swept Away" }, + // { "wle_s10_orig_round_042", "Balancing Act" }, + // { "wle_s10_orig_round_043", "Trouble Tower" }, + // { "wle_s10_orig_round_044", "Serpent Slalom" }, + // { "wle_s10_orig_round_045", "Floorless" }, + // { "wle_s10_orig_round_045_long", "Floorless" }, + // { "wle_s10_orig_round_046", "In The Cloud" }, + // { "wle_s10_orig_round_047", "Downstream Duel" }, + // { "wle_s10_orig_round_048", "Lost Palace" }, + // { "wle_s10_long_round_003", "Fall Speedway" }, + // { "wle_s10_long_round_004", "ZigZag Zoomies" }, + // { "wle_s10_long_round_005", "Terrabyte Trial" }, + // { "wle_s10_round_001", "Digi Trek" }, + // { "wle_s10_round_002", "Shortcut Links" }, + // { "wle_s10_round_003", "Upload Heights" }, + // { "wle_s10_round_004", "Parkour Panic" }, + // { "wle_s10_round_005", "Data Streams" }, + // { "wle_s10_round_006", "Gigabyte Gauntlet" }, + // { "wle_s10_round_007", "Cube Corruption" }, + // { "wle_s10_round_008", "Wham Bam Boom" }, + // { "wle_s10_round_009", "Firewall Finale" }, + // { "wle_s10_round_010", "Pixel Hearts" }, + // { "wle_s10_round_011", "Cyber Circuit" }, + // { "wle_s10_round_012", "Boom Blaster Trial" }, + // + // { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + // { "wle_s10_player_round_wk3_02", "Door Game" }, + // { "wle_s10_player_round_wk3_03", "Full Speed Sliding (FSS) - Jelly Road" }, + // { "wle_s10_player_round_wk3_04", "Sky High Run" }, + // { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + // { "wle_s10_player_round_wk3_07", "Descente Créative" }, + // { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + // { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + // { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + // { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + // { "wle_s10_player_round_wk3_12", "Variable Valley" }, + // { "wle_fp2_wk6_01", "Broken Course" }, + // { "wle_s10_player_round_wk3_14", "Tower of Fall" }, + // { "wle_s10_player_round_wk3_15", "Parkour Party" }, + // { "wle_s10_player_round_wk3_16", "Catastrophe Climb" }, + // { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + // { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + // { "wle_s10_player_round_wk3_19", "Sky Time" }, + // { "wle_s10_player_round_wk3_20", "EZz Map" }, + // + // { "wle_s10_player_round_wk4_01", "Slippery Stretch" }, + // { "wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + // { "wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + // { "wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + // { "wle_s10_player_round_wk4_06", "Topsie Tursie" }, + // { "wle_s10_player_round_wk4_07", "Arcade Assault" }, + // { "wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + // { "wle_s10_player_round_wk4_09", "Green Beans" }, + // { "wle_s10_player_round_wk4_10", "Hop Hill" }, + // { "wle_s10_player_round_wk4_11", "Quick Sliders" }, + // { "wle_s10_player_round_wk4_12", "Split Path" }, + // { "wle_s10_player_round_wk4_13", "Piso resbaloso" }, + // { "wle_s10_player_round_wk4_15", "Snowboard Street" }, + // { "wle_s10_player_round_wk4_18", "House Invasion" }, + // { "wle_s10_player_round_wk4_19", "SOLO FULL-TILT RAGE" }, + // { "wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + // { "wle_s10_player_round_wk4_21", "Spin" }, + // { "wle_s10_player_round_wk4_22", "Lane Changers" }, + // + // { "wle_s10_player_round_wk5_01", "Block Park" }, + // { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + // { "wle_s10_player_round_wk5_03", "Digital Temple" }, + // { "wle_s10_player_round_wk5_04", "Tower Escape" }, + // { "wle_s10_player_round_wk5_05", "Tower Dash" }, + // { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + // { "wle_s10_player_round_wk5_07", "Looooping" }, + // { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + // { "wle_s10_player_round_wk5_10", "Siank Arena" }, + // { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + // { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + // { "wle_s10_player_round_wk5_13", "Dessert Village" }, + // { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + // { "wle_s10_player_round_wk5_15", "Beast Route" }, + // { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + // { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + // { "wle_s10_player_round_wk5_18", "Digital Doom" }, + // + // { "wle_s10_player_round_wk6_01", "Hammer Heaven" }, + // { "wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + // { "wle_s10_player_round_wk6_03", "Castle Rush" }, + // { "wle_s10_player_round_wk6_04", "Chaotic Race" }, + // { "wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + // { "wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + // { "wle_s10_player_round_wk6_08", "Flower Power" }, + // { "wle_s10_player_round_wk6_09", "Dimension Explorer" }, + // { "wle_s10_player_round_wk6_10", "Forked Passage" }, + // { "wle_s10_player_round_wk6_12", "The Bee Hive" }, + // { "wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + // { "wle_s10_player_round_wk6_14", "Snek" }, + // { "wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + // { "wle_s10_player_round_wk6_17", "Slippery Helixes" }, + // { "wle_s10_player_round_wk6_18", "Recess" }, + // { "wle_s10_player_round_wk6_19", "Parrot river" }, + // { "wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + // + // { "current_wle_fp3_07_01", "Block Sledding" }, + // { "current_wle_fp3_07_02", "Layup Wallop" }, + // { "current_wle_fp3_07_03", "Minecart Mayhem" }, + // { "current_wle_fp3_07_04", "Bouncing Pass" }, + // { "current_wle_fp3_07_05", "Ball Factory" }, + // { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + // { "current_wle_fp3_07_0_02", "Woo-F-O" }, + // { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + // + // { "current_wle_fp3_08_01", "Grabbers Territory" }, + // { "current_wle_fp3_08_02", "A Way Out" }, + // { "current_wle_fp3_08_03", "Wall Block" }, + // { "current_wle_fp3_08_04", "The dream island" }, + // { "current_wle_fp3_08_05", "Rainbow pulsion" }, + // { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + // { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + // { "current_wle_fp3_08_10", "Crazy boxes" }, + // { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + // { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + // { "current_wle_fp3_08_15", "Stumble Teams" }, + // { "current_wle_fp3_08_16", "Twisting Tower" }, + // { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + // { "current_wle_fp3_08_18", "The Rising Blocks" }, + // { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + // { "current_wle_fp3_09_01", "The up tower" }, + // { "current_wle_fp3_09_02", "Short shuriken" }, + // { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + // { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + // { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + // { "current_wle_fp3_09_06", "Random Heights" }, + // { "current_wle_fp3_09_07", "Climb scramble" }, + // { "current_wle_fp3_09_08", "Collide Gaming" }, + // { "current_wle_fp3_09_09", "Very Compressed Level" }, + // { "current_wle_fp3_09_0_01", "Slippery Slope" }, + // { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + // { "current_wle_fp3_09_0_03", "Free Falling" }, + // { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + // { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + // { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + // { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + // + // { "current_wle_fp3_10_01", "When Nature Falls" }, + // { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + // { "current_wle_fp3_10_03", "The Slime Trials" }, + // { "current_wle_fp3_10_04", "Friendly Obstacles" }, + // { "current_wle_fp3_10_05", "Climb and Fall" }, + // { "current_wle_fp3_10_06", "Stairs and some other things" }, + // { "current_wle_fp3_10_07", "Meowgical World" }, + // { "current_wle_fp3_10_08", "Polluelo Speed" }, + // { "current_wle_fp3_10_09", "Pixel Parade" }, + // { "current_wle_fp3_10_10", "Total Madness" }, + // { "current_wle_fp3_10_11", "The Abstract Maze" }, + // { "current_wle_fp3_10_12", "Fan Off" }, + // { "current_wle_fp3_10_13", "cloud highway" }, + // { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + // { "current_wle_fp3_10_15", "Speedrunners be like" }, + // { "current_wle_fp3_10_16", "Tumble Tower" }, + // { "current_wle_fp3_10_17", "Silver's Snake Run" }, + // { "current_wle_fp3_10_18", "Now Boarding" }, + // { "current_wle_fp3_10_19", "Slime Scale" }, + // { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + // { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + // { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + // { "current_wle_fp3_10_23", "Controlled Chaos" }, + // { "current_wle_fp3_10_24", "Xtreme Jumping" }, + // { "current_wle_fp3_10_25", "Odin" }, + // { "current_wle_fp3_10_26", "Ciudad nube" }, + // { "current_wle_fp3_10_27", "Bean Voyage" }, + // { "current_wle_fp3_10_28", "SLIP-SAW" }, + // { "current_wle_fp3_10_29", "Bbq bacon burger" }, + // + // { "current_wle_fp4_05_01_01", "巅峰车站" }, + // { "current_wle_fp4_05_01_02", "Beba Park 7" }, + // { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + // { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + // { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + // { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + // { "current_wle_fp4_05_02", "Mini only up" }, + // { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + // { "current_wle_fp4_05_03_02", "Remote Control" }, + // { "current_wle_fp4_05_03", "Parkway Slide" }, + // { "current_wle_fp4_05_04", "Duel Dash" }, + // { "current_wle_fp4_05_05", "beaten trackless road" }, + // { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + // { "current_wle_fp4_05_2_02", "arch city" }, + // { "current_wle_fp4_05_2_03", "Desert Ruins" }, + // + // { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + // { "current_wle_fp4_06_02", "Pachislo" }, + // { "current_wle_fp4_06_0_01", "AquArsene" }, + // { "current_wle_fp4_06_0_02", "RainbowCloud" }, + // { "current_wle_fp4_06_0_03", "Pink Cascade" }, + // { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + // { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + // { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + // { "current_wle_fp4_06_1_01", "Buggin' Out" }, + // { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + // { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + // { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + // { "current_wle_fp4_06_1_05", "The climb of Trials" }, + // { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + // + // { "current_wle_fp4_07_01", "Rotational Runner" }, + // { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + // { "current_wle_fp4_07_03", "simple stage" }, + // { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + // { "current_wle_fp4_07_05", "Factory Valley" }, + // { "current_wle_fp4_07_06", "Jumpy Beans" }, + // { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + // { "current_wle_fp4_07_0_01", "Camino Ninja" }, + // + // { "current_wle_fp4_08_01", "co-op guys" }, + // { "current_wle_fp4_08_0_01", "The big slide" }, + // { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + // { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + // { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + // { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + // { "current_wle_fp4_08_0_06", "X-Course" }, + // { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + // { "current_wle_fp4_08_1_01", "Boost in Dash" }, + // { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + // { "current_wle_fp4_08_1_03", "Giddy up!" }, + // { "current_wle_fp4_08_1_04", "Mad lab" }, + // { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + // { "current_wle_fp4_08_3_01", "The Oasis" }, + // + // { "current_wle_fp4_09_01", "Crate Collector" }, + // { "current_wle_fp4_09_02", "Dribble Drills" }, + // { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + // { "current_wle_fp4_09_04", "Skyline Park" }, + // { "current_wle_fp4_09_05", "Birthday bonanza" }, + // { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + // { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + // { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + // { "current_wle_fp4_09_1_02", "Haute voltige" }, + // { "current_wle_fp4_09_2_01", "DNA Test" }, + // + // { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + // { "current_wle_fp4_10_02", "Hot Blast" }, + // { "current_wle_fp4_10_03", "Box Fan Blitz" }, + // { "current_wle_fp4_10_04", "Woo-terfall Way" }, + // { "current_wle_fp4_10_05", "Slime race" }, + // { "current_wle_fp4_10_06", "Moving Day" }, + // { "current_wle_fp4_10_07", "Birthday Dash" }, + // { "current_wle_fp4_10_08_m", "Wall Breaker" }, + // { "current_wle_fp4_10_08", "Chess History" }, + // { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + // { "current_wle_fp4_10_12", "Chickens run away" }, + // { "current_wle_fp4_10_20", "Co-op and CO" }, + // { "current_wle_fp4_10_21", "Construction Site" }, + // { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + // { "current_wle_fp4_10_0_02", "Molehills" }, + // + // { "current_wle_fp5_2_01_01", "Plummet Summit" }, + // { "current_wle_fp5_2_01_02", "タワークライム" }, + // { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + // { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + // { "current_wle_fp5_2_01", "Jabonsotes" }, + // { "current_wle_fp5_2_02_01", "のっぽタワー" }, + // { "current_wle_fp5_2_02_02", "Blaster Course" }, + // { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + // { "current_wle_fp5_2_02_04", "The hard Climb" }, + // { "current_wle_fp5_2_02_05", "sliding guys" }, + // { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + // { "current_wle_fp5_2_02", "Rainbow highway" }, + // { "current_wle_fp5_2_03", "Falligator" }, + // { "current_wle_fp5_2_04_01", "Lily Lovers" }, + // { "current_wle_fp5_2_04_02", "rainow rode" }, + // { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_04_04", "Super crazy level" }, + // { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + // { "current_wle_fp5_2_05_01", "Level XVIII" }, + // { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + // { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_05_04", "rainbow roade" }, + // { "current_wle_fp5_2_05", "The tension Parkour" }, + // { "current_wle_fp5_2_06", "Stairing Contest" }, + // { "current_wle_fp5_2_07", "Vibrant Ascension" }, + // + // { "current_wle_fp5_3_05_01", "Beany Golf!" }, + // { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + // { "current_wle_fp5_4_01_01", "Tilted Walls" }, + // { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + // { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + // { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + // { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + // + // { "current_wle_fp5_10_01", "Breezy Buddies" }, + // { "current_wle_fp5_10_0_01", "Salto Plancha" }, + // { "current_wle_fp5_10_0_02", "My house" }, + // { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + // { "current_wle_fp5_10_1_01", "Desert Ruins" }, + // { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_01", "Desert Ruins" }, + // { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_03", "Mystic River" }, + // { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + // { "current_wle_fp5_10_2_05", "Cliffside" }, + // { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + // { "current_wle_fp5_10_2_07", "The Avenue" }, + // { "current_wle_fp5_10_2_08", "Gold City" }, + // { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + // { "current_wle_fp5_10_2_10", "初心者用コース" }, + // { "current_wle_fp5_10_2_11", "Chain Reaction" }, + // + // { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + // { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + // { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + // { "current_wle_fp5_wk3_1_04", "El airecito" }, + // { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + // { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + // { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + // { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + // { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + // { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + // { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + // { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + // { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + // { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + // { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + // + // { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + // { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + // { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + // { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + // { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + // { "current_wle_fp5_falloween_1_06", "Mirage" }, + // { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + // { "current_wle_fp5_falloween_1_08", "Toon World" }, + // { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + // { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + // { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + // { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + // { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + // { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + // { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + // { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + // { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + // { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + // { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + // { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + // { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + // { "current_wle_fp5_falloween_2_03_06", "Spider" }, + // { "current_wle_fp5_falloween_2_03", "fastoween" }, + // { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + // { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + // { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + // { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + // { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + // { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + // { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + // { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + // { "current_wle_fp5_falloween_4_05", "Scary Final" }, + // { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + // { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + // { "current_wle_fp5_falloween_4_08", "Catoween" }, + // { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + // { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + // { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + // { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + // { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + // { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + // { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + // { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + // { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + // { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + // { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + // { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + // { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + // { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + // { "current_wle_fp5_falloween_5_04", "Halloween" }, + // { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + // { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + // { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + // { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + // { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + // { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + // { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + // { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + // { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + // { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + // { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + // { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + // { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + // { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + // { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + // { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + // { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + // { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + // { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + // { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + // { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + // { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + // { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + // { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + // { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + // { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + // { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + // { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + // { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + // { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + // { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + // { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + // { "current_wle_fp5_falloween_9_02", "Raveyard" }, + // { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + // { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + // { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + // { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + // { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + // { "current_wle_fp5_falloween_11_01", "Night Runners" }, + // { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + // { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + // { "current_wle_fp5_falloween_13_01", "Witch Way" }, + // { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + // { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + // + // { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + // { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + // { "current_wle_fp6_1_03", "SKULL KING" }, + // { "current_wle_fp6_1_04", "shorter circuit" }, + // { "current_wle_fp6_1_05", "be speedy" }, + // { "current_wle_fp6_1_06", "Sky-City Stumble" }, + // { "current_wle_fp6_1_07", "Wormhole Mountain" }, + // { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + // { "current_wle_fp6_1_09", "Splitspeed" }, + // { "current_wle_fp6_1_10", "Fall Canyon" }, + // { "current_wle_fp6_2_01", "Valise" }, + // { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + // { "current_wle_fp6_2_03", "Water Way" }, + // { "current_wle_fp6_2_04", "The Doors of Doom" }, + // { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + // { "current_wle_fp6_2_06", "Liana Swings" }, + // { "current_wle_fp6_2_07", "Colourful" }, + // { "current_wle_fp6_2_08", "The Heist!" }, + // { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + // { "current_wle_fp6_3_01", "Tricky Treat" }, + // { "current_wle_fp6_3_02", "The Lighthouse" }, + // { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + // { "current_wle_fp6_3_04", "The Scarescraper" }, + // { "current_wle_fp6_3_05", "Obstacle Road" }, + // { "current_wle_fp6_3_06", "Rest In Paris" }, + // { "current_wle_fp6_3_07", "Horror pumpkim" }, + // { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + // + // { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + // { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + // { "current_wle_fp6_wk2_03", "Slidy Road" }, + // { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + // { "current_wle_fp6_wk2_05", "Lost in space" }, + // { "current_wle_fp6_wk2_06", "Turbine Decline" }, + // { "current_wle_fp6_wk2_07", "Zero Displacement" }, + // { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + // { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + // { "current_wle_fp6_wk2_10", "Neoway" }, + // { "current_wle_fp6_wk2_11", "Niagara Falls" }, + // { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + // { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + // { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + // { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + // { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + // { "current_wle_fp6_wk2_1_06", "Locomoção" }, + // { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + // { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + // { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + // + // { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + // { "current_wle_fp6_wk3_02", "Compact 5" }, + // { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + // { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + // { "current_wle_fp6_wk3_05", "Alto voltaje" }, + // { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + // { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + // { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + // { "current_wle_fp6_wk3_09", "Work and Travel" }, + // { "current_wle_fp6_wk3_10", "connect the bridge" }, + // { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + // { "current_wle_fp6_wk3_2_02", "speed demon" }, + // { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + // { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + // { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + // { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + // { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + // + // { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + // { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + // { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + // { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + // { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + // { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + // { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + // { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + // { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + // { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + // { "current_wle_fp6_wk4_03_05", "Snow Style" }, + // { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + // { "current_wle_fp6_wk4_05_01", "Rebound" }, + // { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + // { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + // + // { "current_wle_community_10_5_01", "Snowy Starfall" }, + // { "current_wle_community_10_5_02", "The Earthquake" }, + // { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + // { "current_wle_community_10_5_1_04", "Garden of Woo" }, + // { "current_wle_community_10_5_1_05", "Out in the open" }, + // { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + // { "current_wle_community_10_5_1_08", "Jungle Journey" }, + // { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + // { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + // { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + // { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + // { "current_wle_community_10_5_1_15", "Three Rooms" }, + // { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + // { "current_wle_community_10_5_1_17", "Winter Slide" }, + // { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + // + // { "wle_discover_level_wk2_001", "Castle in the Clouds" }, + // { "wle_discover_level_wk2_002", "Christmas corner!" }, + // { "wle_discover_level_wk2_003", "Hot Wheels 2069" }, + // { "wle_discover_level_wk2_004", "Bounce Back Racetrack" }, + // { "wle_discover_level_wk2_005", "Space Getaway" }, + // { "wle_discover_level_wk2_006", "fall mountain (糖豆山涧)" }, + // { "wle_discover_level_wk2_007", "伝説のポケモン!" }, + // { "wle_discover_level_wk2_008", "Knight Slide" }, + // { "wle_discover_level_wk2_009", "Christmas Run" }, + // { "wle_discover_level_wk2_010", "Labyrinth (1986) Part1" }, + // { "wle_discover_level_wk2_011", "Rebound" }, + // { "wle_discover_level_wk2_012", "Trip to Santa's home" }, + // { "wle_discover_level_wk2_013", "ピッピカチュ☆彡" }, + // { "wle_discover_level_wk2_014", "Rainbow Race" }, + // { "wle_discover_level_wk2_015", "Speed Suburbs" }, + // { "wle_discover_level_wk2_016", "SUPER MARIO WONDER" }, + // { "wle_discover_level_wk2_017", "Punching Bridges" }, + // { "wle_discover_level_wk2_018", "The Slimescrapper" }, + // { "wle_discover_level_wk2_019", "Snowy Flakes" }, + // { "wle_discover_level_wk2_020", "Foggy Freeway" }, + // { "wle_discover_level_wk2_021", "Snowy Climb" }, + // { "wle_discover_level_wk2_022", "snow athletic valley" }, + // { "wle_discover_level_wk2_023", "詰め込んだだけレース4" }, + // { "wle_discover_level_wk2_024", "Winter Wonder Sprint" }, + // { "wle_discover_level_wk2_025", "Randonnée Galactique" }, + // { "wle_discover_level_wk2_026", "Cloudy with a Chance of Cannonballs" }, + // { "wle_discover_level_wk2_027", "Digital Snowland" }, + // { "wle_discover_level_wk2_028", "Shiver Beans" }, + // { "wle_discover_level_wk2_029", "SanTama Run" }, + // { "wle_discover_level_wk2_030", "Winter Run" }, + // { "wle_discover_level_wk2_031", "Jiggle Jingle" }, + // { "wle_discover_level_wk2_032", "Ice Pop Interstate" }, + // { "wle_discover_level_wk2_033", "クリエだよ全員集合" }, + // { "wle_discover_level_wk2_034", "Snow Day" }, + // { "wle_discover_level_wk2_035", "It's Tiiiiiiiimeee!" }, + // { "wle_discover_level_wk2_036", "KYOUFUU GUYS BACK" }, + // { "wle_discover_level_wk2_037", "Sonic's Sunset Adventure" }, + // { "wle_discover_level_wk2_038", "♪勝利のフォンフォーレ" }, + // { "wle_discover_level_wk2_039", "RACE ORIGINS" }, + // { "wle_discover_level_wk2_040", "Winter Wipeout" }, + // { "wle_discover_level_wk2_041", "Centripetal Circuit" }, + // { "wle_discover_level_wk2_042", "MERRY MAYHEM!" }, + // { "wle_discover_level_wk2_043", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_044", "The Scarescraper" }, + // { "wle_discover_level_wk2_045", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_046", "$$$¡The Casino Crew!$$$" }, + // { "wle_discover_level_wk2_047", "Dee's- Escape the Pirate Ship!" }, + // { "wle_discover_level_wk2_048", "ジャングル ぐるぐる" }, + // { "wle_discover_level_wk2_049", "ショートステージ" }, + // { "wle_discover_level_wk2_050", "スノーマウンテンクライム" }, + // + // { "wle_round_mrs_shuffle_discover_005", "My Melody" }, + // { "wle_round_mrs_shuffle_discover_006", "prismatic ice crystal" }, + // { "wle_round_mrs_shuffle_discover_007", "スキルアップステージ" }, + // { "wle_round_mrs_shuffle_discover_008", "WHITE TREE JUMBLE" }, + // { "wle_round_mrs_shuffle_discover_009", "Snowy Adventure" }, + // { "wle_round_mrs_shuffle_discover_010", "Happy Bean Food Fiesta" }, + // { "wle_round_mrs_shuffle_discover_011", "Belly Flop Bobsleigh" }, + // { "wle_round_mrs_shuffle_discover_012", "winter party" }, + // { "wle_round_mrs_shuffle_discover_013", "The lost keys" }, + // { "wle_round_mrs_shuffle_discover_014", "Bonk" }, + // { "wle_round_mrs_shuffle_discover_015", "Winter Disc-O" }, + // { "wle_round_mrs_shuffle_discover_016", "christmas wreath!" }, + // { "wle_round_mrs_shuffle_discover_017", "Winter BebaLand" }, + // { "wle_round_mrs_shuffle_discover_018", "Automatic FallGuys" }, + // { "wle_round_mrs_shuffle_discover_019", "Holiday Dash" }, + // { "wle_round_mrs_shuffle_discover_020", "Treetop Frost" }, + // { "wle_round_mrs_shuffle_discover_021", "Rainbow Run" }, + // { "wle_round_mrs_shuffle_discover_022", "BYE DONT HAVE A GREAT TIME PART LXIX" }, + // { "wle_round_mrs_shuffle_discover_023", "Hieroglysphinx Hurdles" }, + // { "wle_round_mrs_shuffle_discover_024", "ホなら" }, + // { "wle_round_mrs_shuffle_discover_025", "Bye have a great time part 45" }, + // { "wle_round_mrs_shuffle_discover_026", "POWDERY PEAK" }, + // { "wle_round_mrs_shuffle_discover_027", "It's Christmas Slime Climb Time!" }, + // { "wle_round_mrs_shuffle_discover_028", "MERRY CLIMBING!" }, + // { "wle_round_mrs_shuffle_discover_030", "Snow N' Speed" }, + // { "wle_round_mrs_shuffle_discover_032", "Lets Have Fun (74)" }, + // { "wle_round_mrs_shuffle_discover_033", "Concept Ladder Match (Pre-alpha)" }, + // { "wle_round_mrs_shuffle_discover_034", "Speedy City" }, + // { "wle_round_mrs_shuffle_discover_036", "Fall Village" }, + // { "wle_round_mrs_shuffle_discover_037", "超巨大な、クリスマスツリー" }, + // { "wle_round_mrs_shuffle_discover_038", "TINSELTOWN MELTDOWN!" }, + // { "wle_round_mrs_shuffle_discover_039", "Jump jar jar" }, + // { "wle_round_mrs_shuffle_discover_040", "FOOD FIESTA" }, + // { "wle_round_mrs_shuffle_discover_041", "Bye have a great time part 46" }, + // { "wle_round_mrs_shuffle_discover_044", "BEAN BALL" }, + // { "wle_round_mrs_shuffle_discover_045", "Python Pinball" }, + // { "wle_round_mrs_shuffle_discover_046", "Block Battle" }, + // { "wle_round_mrs_shuffle_discover_047", "Ice Cold Ascension" }, + // { "wle_round_mrs_shuffle_discover_048", "ボタンでGO!" }, + // { "wle_round_mrs_shuffle_discover_049", "ミクセル MIKUSERU" }, + // { "wle_round_mrs_shuffle_discover_050", "ホなら" }, + // + // { "wle_discovery_shuffle_up2_01", "The spooky trail" }, + // { "wle_discovery_shuffle_up2_05", "Balance Bean" }, + // { "wle_discovery_shuffle_up2_06", "digital slime road" }, + // { "wle_discovery_shuffle_up2_07", "The Punch Warriors! - Definitive Edition" }, + // { "wle_discovery_shuffle_up2_08", "Winter Mansion" }, + // { "wle_discovery_shuffle_up2_13", "Festive Rush" }, + // { "wle_discovery_shuffle_up2_14", "Mound Mountain" }, + // { "wle_discovery_shuffle_up2_15", "FEVER DREAM FUNHOUSE!" }, + // { "wle_discovery_shuffle_up2_17", "WinteRace" }, + // { "wle_discovery_shuffle_up2_18", "4 Seasons" }, + // { "wle_discovery_shuffle_up2_19", "WAVE RUNNERS!" }, + // { "wle_discovery_shuffle_up2_24", "Tool Up! Winter Season Fall Guys" }, + // { "wle_discovery_shuffle_up2_26", "Arctic Run" }, + // { "wle_discovery_shuffle_up2_28", "Grenouille X pinkixx" }, + // { "wle_discovery_shuffle_up2_29", "GAME OVER" }, + // { "wle_discovery_shuffle_up2_30", "Hot Wheels III" }, + // { "wle_discovery_shuffle_up2_32", "Ski Mountain" }, + // { "wle_discovery_shuffle_up2_33", "夜店" }, + // { "wle_discovery_shuffle_up2_34", "チャッキーのタイムアタックレース" }, + // { "wle_discovery_shuffle_up2_37", "Frosty run" }, + // { "wle_discovery_shuffle_up2_38", "MONUMENT FALLS!" }, + // + // { "wle_mrs_shuffle_show_roundpool_winter_01", "Spiral Trial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_02", "SNOWMAN CLIMB" }, + // { "wle_mrs_shuffle_show_roundpool_winter_03", "Perpetual motion" }, + // { "wle_mrs_shuffle_show_roundpool_winter_04", "No way to go" }, + // { "wle_mrs_shuffle_show_roundpool_winter_06", "The winter slime climb time!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_07", "The Speedy Zone" }, + // { "wle_mrs_shuffle_show_roundpool_winter_08", "The crown's race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_09", "Mitten Mountain" }, + // { "wle_mrs_shuffle_show_roundpool_winter_10", "Parcours arc en ciel" }, + // { "wle_mrs_shuffle_show_roundpool_winter_11", "forest balls" }, + // { "wle_mrs_shuffle_show_roundpool_winter_12", "FIREBALL FRENZY!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_13", "GIFT EXCHANGE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_14", "The Snowscraper" }, + // { "wle_mrs_shuffle_show_roundpool_winter_15", "roll roll bean" }, + // { "wle_mrs_shuffle_show_roundpool_winter_16", "Overclocked" }, + // { "wle_mrs_shuffle_show_roundpool_winter_17", "Spaceball Spin" }, + // { "wle_mrs_shuffle_show_roundpool_winter_18", "Winter Disc-O" }, + // { "wle_mrs_shuffle_show_roundpool_winter_19", "Chill 'n' Roll" }, + // { "wle_mrs_shuffle_show_roundpool_winter_20", "FEVER DREAM FUNHOUSE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_21", "Himalayan Railway" }, + // { "wle_mrs_shuffle_show_roundpool_winter_22", "Need for Speed" }, + // { "wle_mrs_shuffle_show_roundpool_winter_23", "Rebound" }, + // { "wle_mrs_shuffle_show_roundpool_winter_24", "スライムスクレイパー" }, + // { "wle_mrs_shuffle_show_roundpool_winter_25", "Frosty Cold Sprint" }, + // { "wle_mrs_shuffle_show_roundpool_winter_26", "Halfpipe Havoc" }, + // { "wle_mrs_shuffle_show_roundpool_winter_27", "Snowflake Wonderland" }, + // { "wle_mrs_shuffle_show_roundpool_winter_28", "Ball Guys" }, + // { "wle_mrs_shuffle_show_roundpool_winter_30", "REINDEER GAMES!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_31", "Belly Flop Bobsleigh" }, + // { "wle_mrs_shuffle_show_roundpool_winter_32", "Hot Wheels 2069" }, + // { "wle_mrs_shuffle_show_roundpool_winter_33", "Gingerbread Lane" }, + // { "wle_mrs_shuffle_show_roundpool_winter_34", "We ballin'" }, + // { "wle_mrs_shuffle_show_roundpool_winter_35", "Ice Cold Ascension" }, + // { "wle_mrs_shuffle_show_roundpool_winter_36", "étage sur étage" }, + // { "wle_mrs_shuffle_show_roundpool_winter_37", "Birthday Dash" }, + // { "wle_mrs_shuffle_show_roundpool_winter_39", "MARBLE RACE [Bean-Ball]" }, + // { "wle_mrs_shuffle_show_roundpool_winter_38", "The Jolly Express" }, + // { "wle_mrs_shuffle_show_roundpool_winter_40", "Roller Race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_41", "Return to Fall Rapids" }, + // { "wle_mrs_shuffle_show_roundpool_winter_42", "Frosty run" }, + // { "wle_mrs_shuffle_show_roundpool_winter_44", "Sirbeans garden racetrack" }, + // { "wle_mrs_shuffle_show_roundpool_winter_45", "Roll-a-Coaster" }, + // { "wle_mrs_shuffle_show_roundpool_winter_46", "Gran Glaciar Paradicial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_47", "Cave Exploration ~洞窟探検~" }, + // { "wle_mrs_shuffle_show_roundpool_winter_48", "SanTama Run" }, + // + // { "wle_shuffle_discover_fp7_1_01", "Green hill zone" }, + // { "wle_shuffle_discover_fp7_1_02", "Lost Temple" }, + // { "wle_shuffle_discover_fp7_1_03", "Champiñón Volante" }, + // { "wle_shuffle_discover_fp7_1_04", "Mitten Mountain" }, + // { "wle_shuffle_discover_fp7_1_05", "Jack-O'-Runners" }, + // { "wle_shuffle_discover_fp7_1_06", "Parcours arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_07", "Mario kart" }, + // { "wle_shuffle_discover_fp7_1_08", "A Day At The Holiday Race" }, + // { "wle_shuffle_discover_fp7_1_09", "2024 謹賀新年" }, + // { "wle_shuffle_discover_fp7_1_10", "Hustling run" }, + // { "wle_shuffle_discover_fp7_1_11", "tempête arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_12", "Wander- Weg" }, + // { "wle_shuffle_discover_fp7_1_13", "Ruta en la selva" }, + // { "wle_shuffle_discover_fp7_1_14", "Turboslide" }, + // { "wle_shuffle_discover_fp7_1_15", "A piece of cake" }, + // { "wle_shuffle_discover_fp7_1_16", "WOW" }, + // { "wle_shuffle_discover_fp7_1_18", "Magic Squirrel" }, + // { "wle_shuffle_discover_fp7_1_19", "Dinosaur Climb" }, + // { "wle_shuffle_discover_fp7_1_20", "bouing bouing" }, + // { "wle_shuffle_discover_fp7_1_21", "快感快速!!" }, + // { "wle_shuffle_discover_fp7_1_23", "challenge" }, + // { "wle_shuffle_discover_fp7_1_24", "Fnf final escape" }, + // { "wle_shuffle_discover_fp7_1_25", "Speedrun" }, + // { "wle_shuffle_discover_fp7_1_26", "AS AVENTURAS DO PIETRO" }, + // { "wle_shuffle_discover_fp7_1_27", "The Desert temple" }, + // { "wle_shuffle_discover_fp7_1_28", "Snowy Speed Sprint" }, + // { "wle_shuffle_discover_fp7_1_29", "Arcade escape" }, + // { "wle_shuffle_discover_fp7_1_30", "Guardian's Grace" }, + // { "wle_shuffle_discover_fp7_1_31", "Desertic Templus" }, + // { "wle_shuffle_discover_fp7_1_32", "Calamité arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_33", "Map Test V1" }, + // { "wle_shuffle_discover_fp7_1_34", "From A to Z" }, + // { "wle_shuffle_discover_fp7_1_35", "YULE LOG SPRINT" }, + // { "wle_shuffle_discover_fp7_1_37", "Turnaround Turnpike" }, + // { "wle_shuffle_discover_fp7_1_38", "Good morning 2024 world" }, + // { "wle_shuffle_discover_fp7_1_39", "Sirbeans garden racetrack" }, + // + // { "wle_shuffle_2_24_01", "classic sewer" }, + // { "wle_shuffle_2_24_02", "Speed Ball" }, + // { "wle_shuffle_2_24_03", "Rainbow Riser" }, + // { "wle_shuffle_2_24_04", "cave tree" }, + // { "wle_shuffle_2_24_05", "Orbital Junction" }, + // { "wle_shuffle_2_24_06", "Lily leapers remix v3" }, + // { "wle_shuffle_2_24_07", "Little Pipe Dream" }, + // { "wle_shuffle_2_24_08", "FIREBALL FRENZY!" }, + // { "wle_shuffle_2_24_09", "Ruta en la selva" }, + // { "wle_shuffle_2_24_10", "A piece of cake" }, + // { "wle_shuffle_2_24_11", "Monster Forest Road" }, + // { "wle_shuffle_2_24_12", "Slippery Stumble" }, + // { "wle_shuffle_2_24_13", "Mound Mountain" }, + // { "wle_shuffle_2_24_15", "Non-Stop Slide" }, + // { "wle_shuffle_2_24_16", "slime climb Creative" }, + // { "wle_shuffle_2_24_17", "(REBORN) WITH THE WIND OMAME-CHAN !!!" }, + // { "wle_shuffle_2_24_18", "The Desert Temple Escape" }, + // { "wle_shuffle_2_24_19", "Rebound" }, + // { "wle_shuffle_2_24_20", "Roundabout Route" }, + // { "wle_shuffle_2_24_21", "Sparkly gingerbred trail" }, + // { "wle_shuffle_2_24_22", "Ski Fall Remix" }, + // { "wle_shuffle_2_24_24", "Fan Flingers" }, + // { "wle_shuffle_2_24_25", "Ball Carnival" }, + // { "wle_shuffle_2_24_26", "Tool Up! Winter Season Fall Guys" }, + // { "wle_shuffle_2_24_27", "Trompeta Teatral" }, + // { "wle_shuffle_2_24_28", "Birthday bonanza" }, + // { "wle_shuffle_2_24_29", "BlueBlur Circuit" }, + // { "wle_shuffle_2_24_30", "Lemon Grass" }, + // { "wle_shuffle_2_24_31", "Tuyauterie au nez" }, + // { "wle_shuffle_2_24_32", "Slimey's showdown" }, + // { "wle_shuffle_2_24_33", "GOLF GUYS" }, + // { "wle_shuffle_2_24_34", "(REBORN) DIGI×2 LOVE×2 GUYS REVERSE !!!" }, + // { "wle_shuffle_2_24_35", "R" }, + // { "wle_shuffle_2_24_36", "Zelda is BANANAS!!!!" }, + // { "wle_shuffle_2_24_38", "Traffic Jamboree" }, + // { "wle_shuffle_2_24_39", "Turnaround Turnpike" }, + // { "wle_shuffle_2_24_40", "Great hunt" }, + // { "wle_shuffle_2_24_41", "HYPERSPACE HIGHWAY!" }, + // { "wle_shuffle_2_24_42", "Back in Slime" }, + // + // { "wle_shuffle_wk2405_01", "Duckling Beach" }, + // { "wle_shuffle_wk2405_02", "BUILDER GUYS" }, + // { "wle_shuffle_wk2405_03", "ヒヤヒヤハイウェイ Unstable Highway" }, + // { "wle_shuffle_wk2405_04", "Speed Ball" }, + // { "wle_shuffle_wk2405_05", "North Pole Traps" }, + // { "wle_shuffle_wk2405_06", "Volcanic Island Travel!" }, + // { "wle_shuffle_wk2405_07", "Kepler 21's town" }, + // { "wle_shuffle_wk2405_08", "Orbital Junction" }, + // { "wle_shuffle_wk2405_11", "Balance Bean" }, + // { "wle_shuffle_wk2405_12", "ťřūťű" }, + // { "wle_shuffle_wk2405_13", "Summer Vibes" }, + // { "wle_shuffle_wk2405_14", "Dee's- Pinball Lilly" }, + // { "wle_shuffle_wk2405_15", "Galactic Guys" }, + // { "wle_shuffle_wk2405_16", "Orbital Stumbling" }, + // { "wle_shuffle_wk2405_17", "Winter Mansion" }, + // { "wle_shuffle_wk2405_18", "Pole Jumper" }, + // { "wle_shuffle_wk2405_19", "Little Pipe Dream" }, + // { "wle_shuffle_wk2405_20", "FIREBALL FRENZY!" }, + // { "wle_shuffle_wk2405_21", "Ruta en la selva" }, + // { "wle_shuffle_wk2405_22", "The Spacescřaper" }, + // { "wle_shuffle_wk2405_23", "Downward Spiral! (& Beyond)" }, + // { "wle_shuffle_wk2405_24", "Slippery Swoop Showdown" }, + // { "wle_shuffle_wk2405_25", "Tunnel of tumble" }, + // { "wle_shuffle_wk2405_26", "Digital Paradise" }, + // { "wle_shuffle_wk2405_27", "Monster Forest Road" }, + // { "wle_shuffle_wk2405_28", "GALACTIC RUN" }, + // { "wle_shuffle_wk2405_29", "Non-Stop Slide" }, + // { "wle_shuffle_wk2405_30", "slime climb Creative" }, + // { "wle_shuffle_wk2405_31", "Love a day" }, + // { "wle_shuffle_wk2405_32", "serious circuit" }, + // { "wle_shuffle_wk2405_33", "Falling in Love" }, + // { "wle_shuffle_wk2405_34", "Rebound" }, + // { "wle_shuffle_wk2405_35", "Digifal Guys" }, + // { "wle_shuffle_wk2405_36", "Vaporia" }, + // { "wle_shuffle_wk2405_37", "Solar Speedway" }, + // { "wle_shuffle_wk2405_38", "Rollin' Ruins" }, + // { "wle_shuffle_wk2405_39", "The drum course" }, + // { "wle_shuffle_wk2405_40", "AX-ATTACK" }, + // { "wle_shuffle_wk2405_41", "Pipe beans" }, + // { "wle_shuffle_wk2405_42", "Ball World" }, + // { "wle_shuffle_wk2405_43", "Fan Flingers" }, + // { "wle_shuffle_wk2405_44", "Deserted Frontier" }, + // { "wle_shuffle_wk2405_45", "Torapo" }, + // { "wle_shuffle_wk2405_46", "No Name" }, + // { "wle_shuffle_wk2405_47", "Satellite Scramble" }, + // { "wle_shuffle_wk2405_48", "STATION SPRINT" }, + // { "wle_shuffle_wk2405_49", "Route 20" }, + // { "wle_shuffle_wk2405_50", "Jungle escape" }, + // { "wle_shuffle_wk2405_51", "Love at First Woo" }, + // { "wle_shuffle_wk2405_52", "Satellite Circuit" }, + // { "wle_shuffle_wk2405_53", "Round and around" }, + // { "wle_shuffle_wk2405_54", "World of rolling" }, + // { "wle_shuffle_wk2405_55", "Lemon Grass" }, + // { "wle_shuffle_wk2405_56", "Downward Spiral" }, + // { "wle_shuffle_wk2405_57", "STARS ALIGN!" }, + // { "wle_shuffle_wk2405_58", "Interstellar Sprint" }, + // { "wle_shuffle_wk2405_59", "World of cakes" }, + // { "wle_shuffle_wk2405_60", "ASTRAL AIRWAY" }, + // { "wle_shuffle_wk2405_61", "secret ways" }, + // { "wle_shuffle_wk2405_62", "No Name" }, + // { "wle_shuffle_wk2405_63", "Space adventure (part 1)" }, + // { "wle_shuffle_wk2405_64", "Rainbow Road" }, + // { "wle_shuffle_wk2405_65", "Falltropolis" }, + // + // { "wle_digishuffle_feb_01", "jungle fun run" }, + // { "wle_digishuffle_feb_02", "☆Witch Way☆" }, + // { "wle_digishuffle_feb_03", "Mushroom Mayhem" }, + // { "wle_digishuffle_feb_04", "Orbital Junction" }, + // { "wle_digishuffle_feb_06", "Day at the beach" }, + // { "wle_digishuffle_feb_07", "Summer Vibes" }, + // { "wle_digishuffle_feb_08", "Roll Asteroid Field" }, + // { "wle_digishuffle_feb_09", "Ruta en la selva" }, + // { "wle_digishuffle_feb_10", "Cosmic Dash" }, + // { "wle_digishuffle_feb_11", "Bouncing Frenzy" }, + // { "wle_digishuffle_feb_12", "Beehive Havoc" }, + // { "wle_digishuffle_feb_13", "Snowy Cave-in" }, + // { "wle_digishuffle_feb_15", "Winter Disc-O" }, + // { "wle_digishuffle_feb_16", "magician" }, + // { "wle_digishuffle_feb_17", "Love a day" }, + // { "wle_digishuffle_feb_18", "Chilly Leapers" }, + // { "wle_digishuffle_feb_19", "Colorful Year - Beans Memories" }, + // { "wle_digishuffle_feb_20", "BIPLANE BLUNDER" }, + // { "wle_digishuffle_feb_21", "Vaporia" }, + // { "wle_digishuffle_feb_22", "Satellite Sprint" }, + // { "wle_digishuffle_feb_23", "Galactic Gauntlet" }, + // { "wle_digishuffle_feb_24", "RUN COWBOY" }, + // { "wle_digishuffle_feb_25", "Breakfast Run" }, + // { "wle_digishuffle_feb_26", "Spin 'n' Swing" }, + // { "wle_digishuffle_feb_27", " Love at First Woo" }, + // { "wle_digishuffle_feb_28", "Astral Exploration" }, + // { "wle_digishuffle_feb_29", "Speedway 2069" }, + // { "wle_digishuffle_feb_30", "Data Eraser" }, + // { "wle_digishuffle_feb_31", "Mediefall Highway" }, + // { "wle_digishuffle_feb_33", "パンダフルワールド" }, + // { "wle_digishuffle_feb_34", "Celestial Tale" }, + // + // { "chill_01", "Ariko Jones" }, + // { "chill_02", "Floating island" }, + // { "chill_03", "Colorful World" }, + // { "chill_04", "Winter Wallop" }, + // { "chill_06", "Tropical Top2" }, + // { "chill_07", "rainbows and stickers" }, + // { "chill_08", "Ancient Fallstronomers" }, + // { "chill_11", "ORBITAL STUMBLE" }, + // { "chill_12", "The Bisounours" }, + // { "chill_13", "Adrenaline Force 2" }, + // { "chill_14", "Summer Vibes" }, + // { "chill_15", "Speedy Bounces" }, + // { "chill_16", "Data Dash" }, + // { "chill_17", "Snow Mountain" }, + // { "chill_18", "Monster Mayhem" }, + // { "chill_19", "Star Power!" }, + // { "chill_20", "Sketchy Sledding!" }, + // { "chill_21", "Musical Madness" }, + // { "chill_22", "BEANS ORBITAL ZONE" }, + // { "chill_23", "Safe Mode" }, + // { "chill_24", "Piste de neige" }, + // { "chill_25", "Love a day" }, + // { "chill_26", "Chilly Leapers" }, + // { "chill_27", "Passage imbroglio arc en ciel" }, + // { "chill_28", "Shogun Guys I" }, + // { "chill_29", "WINDMILL WAY" }, + // { "chill_30", "Solar Speedway" }, + // { "chill_31", "Micro Machine" }, + // { "chill_32", "Satellite Sprint" }, + // { "chill_33", "Rudinn's Garden Palace" }, + // { "chill_35", "Frosty Wonderland" }, + // { "chill_36", "Freezy Frolic" }, + // { "chill_37", "Extraterrestrial Terminal" }, + // { "chill_38", "Cluster Cosmos" }, + // { "chill_39", " Love at First Woo" }, + // { "chill_40", "A night in Paris" }, + // { "chill_41", "Float Parkour" }, + // + // { "wle_mrs_survival_showdown_opener", "Slime Surfers" }, + // { "wle_mrs_survival_showdown_opener_01", "Bean Fort" }, + // { "wle_mrs_survival_showdown_opener_02", "Back & Forth" }, + // { "wle_mrs_survival_showdown_final", "Hectic Hexagons" }, + // { "wle_mrs_survival_showdown_final_01", "Cosmic Clash" }, + // { "wle_mrs_survival_showdown_final_02", "Bouncy Castle" }, + // { "wle_mrs_survival_showdown_final_04", "Volcanic Chaos" }, + // + // { "wle_survival_shuffle_fp8_01", "More Blastball!" }, + // { "wle_survival_shuffle_fp8_02", "Rhino Runaway" }, + // { "wle_survival_shuffle_fp8_03", "Bouncy Castle" }, + // { "wle_survival_shuffle_fp8_04", "Snowy Stronghold" }, + // { "wle_survival_shuffle_fp8_05", "Hexa-Towers - Finals Arena" }, + // { "wle_survival_shuffle_fp8_06", "Satellite Delight" }, + // { "wle_survival_shuffle_fp8_07", "pacific jump" }, + // { "wle_survival_shuffle_fp8_08", "There can only be one" }, + // { "wle_survival_shuffle_fp8_09", "Ganj's Matter Baby" }, + // { "wle_survival_shuffle_fp8_10", "RHINOCHET" }, + // { "wle_survival_shuffle_fp8_11", "Rocky Rumble" }, + // { "wle_survival_shuffle_fp8_12", "Ludo War" }, + // { "wle_survival_shuffle_fp8_13", "Slimelantis" }, + // { "wle_survival_shuffle_fp8_14", "Dramatic Squirrel" }, + // { "wle_survival_shuffle_fp8_15", "HEX-A-BLAST" }, + // { "wle_survival_shuffle_fp8_16", "HEX-A-RUN" }, + // { "wle_survival_shuffle_fp8_17", "BLAST BRIDGES" }, + // { "wle_survival_shuffle_fp8_18", "HEX-A-BATTLE" }, + // { "wle_survival_shuffle_fp8_19", "Blast Ball X" }, + // { "wle_survival_shuffle_fp8_20", "Explosive Arena" }, + // { "wle_survival_shuffle_fp8_21", "Rhino Blast" }, + // { "wle_survival_shuffle_fp8_22", "Slime Surfers" }, + // { "wle_survival_shuffle_fp8_23", "Eduardo Escapades" }, + // { "wle_survival_shuffle_fp8_24", "Hex A Trouble" }, + // { "wle_survival_shuffle_fp8_25", "Roll In - Finals Arena" }, + // { "wle_survival_shuffle_fp8_26", "Back & Forth" }, + // { "wle_survival_shuffle_fp8_27", "HEXAGONAL RING BLAST" }, + // { "wle_survival_shuffle_fp8_29", "beens royal resurrection" }, + // { "wle_survival_shuffle_fp8_30", "Hexa-Toto" }, + // { "wle_survival_shuffle_fp8_31", "Blender Container" }, + // { "wle_survival_shuffle_fp8_32", "Circular Jump" }, + // { "wle_survival_shuffle_fp8_33", "hex-a-volcanic" }, + // { "wle_survival_shuffle_fp8_34", "ボマーぽよまつからの挑戦状☆ミ" }, + // { "wle_survival_shuffle_fp8_35", "Reverse Chaos" }, + // { "wle_survival_shuffle_fp8_36", "survival board" }, + // { "wle_survival_shuffle_fp8_37", "Volcanic Chaos" }, + // { "wle_survival_shuffle_fp8_38", "High-Ground Arena" }, + // { "wle_survival_shuffle_fp8_39", "rainbow convoyer" }, + // { "wle_survival_shuffle_fp8_40", "すぱいだーすっぱいんだー" }, + // { "wle_survival_shuffle_fp8_41", "HEX-A-PARTY" }, + // { "wle_survival_shuffle_fp8_42", "HEX A REBORN" }, + // { "wle_survival_shuffle_fp8_43", "CAROUSEL CHAOS" }, + // { "wle_survival_shuffle_fp8_44", "west sniper" }, + // { "wle_survival_shuffle_fp8_45", "Blast Balls Hexa Trials" }, + // { "wle_survival_shuffle_fp8_46", "自製生存關2-蹦蹦犀牛炸彈!" }, + // { "wle_survival_shuffle_fp8_47", "Hexagon Battle" }, + // { "wle_survival_shuffle_fp8_49", "Tick Tock Clock" }, + // { "wle_survival_shuffle_fp8_50", "ダイナミクスビート DYNAMICS BEAT" }, + // + // { "survival_shuffle_01", "Speed attack" }, + // { "survival_shuffle_02", "Garbage Chute V2" }, + // { "survival_shuffle_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_04", "Night Crashers" }, + // { "survival_shuffle_05", "Survival Area" }, + // { "survival_shuffle_06", "Can You Win!" }, + // { "survival_shuffle_07", "SPINNER SURVIVAL(Hard)" }, + // { "survival_shuffle_08", "NAMEK" }, + // { "survival_shuffle_09", "Hex-A-Blast" }, + // { "survival_shuffle_10", "HEX-A-JUMP" }, + // { "survival_shuffle_11", "Space Blast" }, + // { "survival_shuffle_12", "とまきけアイス" }, + // { "survival_shuffle_13", "SPINNER SURVIVAL(Very Hard)" }, + // { "survival_shuffle_14", "Caldera chaos" }, + // { "survival_shuffle_15", "hexatourne" }, + // { "survival_shuffle_16", "HEX-A-MANIA" }, + // { "survival_shuffle_17", "Slime leakage royale" }, + // { "survival_shuffle_18", "Merciless Traverse" }, + // { "survival_shuffle_19", "Stompin' Ground Challenge" }, + // { "survival_shuffle_20", "Bird is the Word" }, + // { "survival_shuffle_21", "Conflagration interstellaire" }, + // { "survival_shuffle_22", "Subzero Gale" }, + // { "survival_shuffle_23", "Piti afundando" }, + // { "survival_shuffle_24", "つかみ魔たちの祭典" }, + // { "survival_shuffle_25", "Slime Surfers" }, + // { "survival_shuffle_26", "Space Blast ball" }, + // { "survival_shuffle_27", "Fan wars survival" }, + // { "survival_shuffle_28", "World of Guys - Ultimate Shotout -" }, + // { "survival_shuffle_29", "Shogun's Arena" }, + // { "survival_shuffle_30", "Boulder Hex" }, + // { "survival_shuffle_31", "HEX-A-RENA" }, + // { "survival_shuffle_32", "BLAST BALL BASHERS" }, + // { "survival_shuffle_33", "hexa roll beta 2" }, + // { "survival_shuffle_34", "Running survivor ver1・3" }, + // { "survival_shuffle_35", "King of the Castle" }, + // { "survival_shuffle_36", "BATTLE OF SURVIVORS" }, + // { "survival_shuffle_37", "MINI STOMPIN' GROUND" }, + // { "survival_shuffle_38", "Royal Rumble" }, + // { "survival_shuffle_39", "Bataille au ²" }, + // { "survival_shuffle_40", "Hex-a-mountain" }, + // { "survival_shuffle_41", "Hex-A-Glory" }, + // { "survival_shuffle_42", "POOL PARTY" }, + // { "survival_shuffle_43", "King of the Pillar" }, + // { "survival_shuffle_44", "止まれない木" }, + // { "survival_shuffle_45", "slime battle pt2" }, + // { "survival_shuffle_46", "No Punching" }, + // { "survival_shuffle_47", "Blue and yellow showdown" }, + // { "survival_shuffle_48", "Retro Roundabout" }, + // { "survival_shuffle_49", "玉あそび" }, + // { "survival_shuffle_50", "Royal Rumble (Rofall Gumble)" }, + // { "survival_shuffle_51", "Aggressive survival" }, + // { "survival_shuffle_52", "Fight Zone" }, + // { "survival_shuffle_53", "Hex-A-Blaster" }, + // { "survival_shuffle_54", "SLIME RIOT!" }, + // { "survival_shuffle_55", "Es knallt richtig" }, + // { "survival_shuffle_56", "Super Fortress Factory" }, + // { "survival_shuffle_57", "Heavy hitters only" }, + // { "survival_shuffle_58", "へいたんバトロワ" }, + // { "survival_shuffle_59", "Volcanic Panic" }, + // { "survival_shuffle_60", "Volcanic Panic" }, + // { "survival_shuffle_61", "雷霆乱豆中心" }, + // { "survival_shuffle_62", "ブラストボール(十字形)" }, + // { "survival_shuffle_63", "Poison Pond PVP" }, + // { "survival_shuffle_64", "Puncher Brawl 2" }, + // { "survival_shuffle_65", "Atoll pétulant" }, + // { "survival_shuffle_66", "Blast Rhino" }, + // { "survival_shuffle_67", "Blast Arena" }, + // { "survival_shuffle_68", "Brewing Boxes" }, + // { "survival_shuffle_69", "The flood" }, + // { "survival_shuffle_70", "PUSHBACK" }, + // { "survival_shuffle_71", "Arena Guys" }, + // { "survival_shuffle_72", "Jungle Survival" }, + // { "survival_shuffle_73", "おしくらまんじゅうジャンプ" }, + // { "survival_shuffle_74", "blast fall X" }, + // { "survival_shuffle_75", "Tic-Tac-Blow" }, + // { "survival_shuffle_76", "CS Guys" }, + // { "survival_shuffle_77", "Bounce Battle" }, + // { "survival_shuffle_78", "Cheat's Only Fan" }, + // { "survival_shuffle_79", "Showdown Party" }, + // { "survival_shuffle_80", "Donut layers!" }, + // { "survival_shuffle_81", "パワーアップ・ノックアウト" }, + // { "survival_shuffle_82", "アップダウンバトル" }, + // { "survival_shuffle_83", "頂上対決" }, + // { "survival_shuffle_84", "Blast Ring" }, + // { "survival_shuffle_85", "Raft Rumble" }, + // { "survival_shuffle_86", "Rhino-hex-killer+invasion" }, + // { "survival_shuffle_87", "Survie des enfers" }, + // { "survival_shuffle_88", "blast ball HEXAGON" }, + // { "survival_shuffle_89", "The Bean-rena" }, + // { "survival_shuffle_90", "Lake in the mountains" }, + // { "survival_shuffle_91", "Playing area" }, + // { "survival_shuffle_92", "Hopping Party" }, + // { "survival_shuffle_93", "Shape Dimension" }, + // { "survival_shuffle_94", "Dramatic Flowers" }, + // + // { "wle_mrs_ugc_playful_01", "Neon pipe run" }, + // { "wle_mrs_ugc_playful_02", "SUNKEN CIRCUIT" }, + // { "wle_mrs_ugc_playful_03", "Blundercity Marathon" }, + // { "wle_mrs_ugc_playful_04", "Rainbow highway" }, + // { "wle_mrs_ugc_playful_05", "Rainbow Riptide" }, + // { "wle_mrs_ugc_playful_06", "Past passage" }, + // { "wle_mrs_ugc_playful_07", "Sandcastle Kingdom" }, + // { "wle_mrs_ugc_playful_08", "Jumping Season" }, + // { "wle_mrs_ugc_playful_09", "Fall Stars" }, + // { "wle_mrs_ugc_playful_10", "Medieval Sprint" }, + // { "wle_mrs_ugc_playful_11", "SPRING MOUNTAIN" }, + // { "wle_mrs_ugc_playful_12", "NAUTICAL SHAMBLE" }, + // { "wle_mrs_ugc_playful_13", "The Last Winter" }, + // + // { "playful_shuffle_01", "Fiebre medieval" }, + // { "playful_shuffle_02", "Triple Trial" }, + // { "playful_shuffle_03", "Trees (Waterfall)" }, + // { "playful_shuffle_05", "plat guys" }, + // { "playful_shuffle_06", "震えるキャベツ" }, + // { "playful_shuffle_07", "Winter Wallop" }, + // { "playful_shuffle_08", "Multi Leaper" }, + // { "playful_shuffle_09", "Golden Poodles" }, + // { "playful_shuffle_10", "ストレートスタンブル" }, + // { "playful_shuffle_11", "Easy Fun Speedrun" }, + // { "playful_shuffle_12", "RUN RUN Park" }, + // { "playful_shuffle_14", "ごちゃごちゃストリート" }, + // { "playful_shuffle_15", "Conveyors Obstacles" }, + // { "playful_shuffle_17", "Green Mountain" }, + // { "playful_shuffle_18", "Ancient Fallstronomers" }, + // { "playful_shuffle_19", "+slidin' in the air+ 10k play special" }, + // { "playful_shuffle_20", "Jumping Season" }, + // { "playful_shuffle_21", "Track attackers system" }, + // { "playful_shuffle_22", "CASTLE CLASH" }, + // { "playful_shuffle_24", "Falling Dreams" }, + // { "playful_shuffle_25", "ロケットでうちあげだ 2" }, + // { "playful_shuffle_26", "The Terrible Spiral Of Woo Remake" }, + // { "playful_shuffle_27", "Rainbow Dash" }, + // { "playful_shuffle_28", "TruPixel's Jungle Mash-up" }, + // { "playful_shuffle_30", "Monochromatic Manic" }, + // { "playful_shuffle_33", "Ramp It Up!" }, + // { "playful_shuffle_34", "Adrenaline Force 2" }, + // { "playful_shuffle_35", "DIGITAL MADNESS" }, + // { "playful_shuffle_36", "Cosmic Pipes" }, + // { "playful_shuffle_37", "Milky way" }, + // { "playful_shuffle_38", "Snow Style" }, + // { "playful_shuffle_39", "Data Dash" }, + // { "playful_shuffle_40", "Caida resbaladisa" }, + // { "playful_shuffle_41", "Frostbite Speed Fall Slider" }, + // { "playful_shuffle_42", "Snow Mountain" }, + // { "playful_shuffle_44", "Cosmic Dash" }, + // { "playful_shuffle_45", "Overclocked" }, + // { "playful_shuffle_46", " Wild Dunes" }, + // { "playful_shuffle_47", "Flutter-by!" }, + // { "playful_shuffle_48", "Blundercity Marathon" }, + // { "playful_shuffle_50", "Pixel Circuit像素环游" }, + // { "playful_shuffle_51", "Stars Guys" }, + // { "playful_shuffle_52", "SUNKEN CIRCUIT" }, + // { "playful_shuffle_54", "Pocket Summit" }, + // { "playful_shuffle_55", "Love a day" }, + // { "playful_shuffle_56", "Passage imbroglio arc en ciel" }, + // { "playful_shuffle_58", "コズミックミュージック COSMIC MUSIC" }, + // { "playful_shuffle_59", "glissoire arc en ciel" }, + // + // { "survival_shuffle_wk11_01", "Speed attack" }, + // { "survival_shuffle_wk11_02", "Garbage Chute V2" }, + // { "survival_shuffle_wk11_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_wk11_04", "Sobreviventes da Batalha" }, + // { "survival_shuffle_wk11_05", "今日の運勢サバイバル" }, + // { "survival_shuffle_wk11_06", "More Blastball!" }, + // { "survival_shuffle_wk11_07", "Hexagone Tower" }, + // { "survival_shuffle_wk11_08", "Bouncy Castle" }, + // { "survival_shuffle_wk11_09", "Snowy Stronghold" }, + // { "survival_shuffle_wk11_10", "NAMEK" }, + // { "survival_shuffle_wk11_11", "Hexa-Towers - Finals Arena" }, + // { "survival_shuffle_wk11_12", "Satellite Delight" }, + // { "survival_shuffle_wk11_13", "DEADLY VOLCANO" }, + // { "survival_shuffle_wk11_14", "Ganj's Matter Baby" }, + // { "survival_shuffle_wk11_15", "HEX-A-JUMP" }, + // { "survival_shuffle_wk11_16", "RHINOCHET" }, + // { "survival_shuffle_wk11_17", "Rocky Rumble" }, + // { "survival_shuffle_wk11_18", "Ludo War" }, + // { "survival_shuffle_wk11_19", "RING ROUND FIGHT" }, + // { "survival_shuffle_wk11_20", "Flight frenzy" }, + // { "survival_shuffle_wk11_21", "BLAST BRIDGES" }, + // { "survival_shuffle_wk11_22", "Blast Ball X" }, + // { "survival_shuffle_wk11_23", "Blast Trip" }, + // { "survival_shuffle_wk11_24", "Royal Rumble" }, + // { "survival_shuffle_wk11_25", "Bird is the Word" }, + // { "survival_shuffle_wk11_26", "The Whirligig" }, + // { "survival_shuffle_wk11_27", "Subzero Gale" }, + // { "survival_shuffle_wk11_28", "Slime Surfers" }, + // { "survival_shuffle_wk11_29", "Eduardo Escapades" }, + // { "survival_shuffle_wk11_30", "Hex A Trouble" }, + // { "survival_shuffle_wk11_31", "Back & Forth" }, + // { "survival_shuffle_wk11_32", "HEXAGONAL RING BLAST" }, + // { "survival_shuffle_wk11_33", "Carousel Mayhem" }, + // { "survival_shuffle_wk11_34", "Beens Royale RESURRECTION" }, + // { "survival_shuffle_wk11_35", "Hexa-Toto" }, + // { "survival_shuffle_wk11_36", "Blender Container" }, + // { "survival_shuffle_wk11_37", "Mid wars!" }, + // { "survival_shuffle_wk11_38", "hex-a-volcanic" }, + // { "survival_shuffle_wk11_39", "vamos rey del aire" }, + // { "survival_shuffle_wk11_40", "Shogun's Arena" }, + // { "survival_shuffle_wk11_41", "survival board" }, + // { "survival_shuffle_wk11_42", "survival factory" }, + // { "survival_shuffle_wk11_43", "rainbow convoyer" }, + // { "survival_shuffle_wk11_44", "すぱいだーすっぱいんだー" }, + // { "survival_shuffle_wk11_45", "HEX A REBORN" }, + // { "survival_shuffle_wk11_46", "The Hex-A-Gon House" }, + // { "survival_shuffle_wk11_47", "CAROUSEL CHAOS" }, + // { "survival_shuffle_wk11_48", "Ring Off" }, + // { "survival_shuffle_wk11_49", "âpre pélutant" }, + // { "survival_shuffle_wk11_50", "ダイナミクスビート DYNAMICS BEAT" }, + // { "survival_shuffle_wk11_51", "Fruit Chute Survival" }, + // { "survival_shuffle_wk11_52", "No Punching" }, + // { "survival_shuffle_wk11_53", "Hex-A-Blaster" }, + // { "survival_shuffle_wk11_54", "The Punch Warriors! - Survival Edition" }, + // { "survival_shuffle_wk11_55", "Volcanic Panic" }, + // { "survival_shuffle_wk11_56", "Hex-a-lowercase t" }, + // { "survival_shuffle_wk11_57", "Beta Jinxed" }, + // { "survival_shuffle_wk11_58", "Showdown Party" }, + // { "survival_shuffle_wk11_59", "Canyon Sand 1" }, + // { "survival_shuffle_wk11_60", "Aggro-Crag" }, + // { "survival_shuffle_wk11_61", "Bean Fort" }, + // { "survival_shuffle_wk11_62", "Tronco Gigante" }, + // { "survival_shuffle_wk11_63", "Block Battle - Survive" }, + // { "survival_shuffle_wk11_64", "Hot Shots" }, + // { "survival_shuffle_wk11_65", "blast royale" }, + // { "survival_shuffle_wk11_66", "Supervivencia del caos" }, + // { "survival_shuffle_wk11_67", "Hex-A-Mayhem" }, + // { "survival_shuffle_wk11_68", "The Falliseum" }, + // { "survival_shuffle_wk11_69", "終末列車" }, + // { "survival_shuffle_wk11_70", "O chão é lava" }, + // { "survival_shuffle_wk11_71", "Survival Carnival" }, + // { "survival_shuffle_wk11_72", "Kraken x balls x boxing" }, + // { "survival_shuffle_wk11_73", "Gum survival" }, + // { "survival_shuffle_wk11_74", "スライム研究室" }, + // { "survival_shuffle_wk11_75", "Colour switch" }, + // { "survival_shuffle_wk11_76", "Fall Royale" }, + // { "survival_shuffle_wk11_77", "Roll Out Explosion" }, + // { "survival_shuffle_wk11_78", "HELIX ROLL" }, + // { "survival_shuffle_wk11_79", "耐久出来ないサバイバル2" }, + // { "survival_shuffle_wk11_80", "detonates atlantis" }, + // { "survival_shuffle_wk11_81", "Conveyor Chaos" }, + // { "survival_shuffle_wk11_82", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_wk11_84", "Slime Crater" }, + // { "survival_shuffle_wk11_85", "Firewall Finale" }, + // { "survival_shuffle_wk11_86", "ブラストボールエンド" }, + // { "survival_shuffle_wk11_87", "ボタンコンフュージョン" }, + // { "survival_shuffle_wk11_88", "DEE'S- RHINO RUMBLE!!!!!!" }, + // { "survival_shuffle_wk11_89", "tournement de couleur" }, + // { "survival_shuffle_wk11_90", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_wk11_91", "HARD HEROES DRLVE SURVLVAL" }, + // { "survival_shuffle_wk11_92", "Jump Show Fall" }, + // { "survival_shuffle_wk11_93", "Hex-A-Lava" }, + // { "survival_shuffle_wk11_94", "Magma Meltdown" }, + // { "survival_shuffle_wk11_95", "恐怖のたまご" }, + // { "survival_shuffle_wk11_96", "Cosmic Clash" }, + // { "survival_shuffle_wk11_97", "Fall And Round" }, + // { "survival_shuffle_wk11_98", "フォールドッジブラストボール" }, + // { "survival_shuffle_wk11_99", "Sewer Stand-off" }, + // + // { "survival_shuffle_3wk3_01", "Sobreviventes da Batalha" }, + // { "survival_shuffle_3wk3_02", "Survival Festival" }, + // { "survival_shuffle_3wk3_03", "MEOW-FO ROYALE" }, + // { "survival_shuffle_3wk3_04", "Space Blast" }, + // { "survival_shuffle_3wk3_05", "meteor rain" }, + // { "survival_shuffle_3wk3_06", "Spiral-Cano" }, + // { "survival_shuffle_3wk3_07", "Bridge Island Boss" }, + // { "survival_shuffle_3wk3_08", "Caldera chaos" }, + // { "survival_shuffle_3wk3_09", "BLAST BRIDGES" }, + // { "survival_shuffle_3wk3_10", "Royal Rumble" }, + // { "survival_shuffle_3wk3_11", "flower ring" }, + // { "survival_shuffle_3wk3_12", "The Whirligig" }, + // { "survival_shuffle_3wk3_13", "?" }, + // { "survival_shuffle_3wk3_14", "熔岩蜂窝 Hex-A-Lava" }, + // { "survival_shuffle_3wk3_15", "Mid wars!" }, + // { "survival_shuffle_3wk3_16", "vamos rey del aire" }, + // { "survival_shuffle_3wk3_17", "Shogun's Arena" }, + // { "survival_shuffle_3wk3_18", "聖帝導夢ランボー!" }, + // { "survival_shuffle_3wk3_19", "Test Survival" }, + // { "survival_shuffle_3wk3_20", "Blunder Barge" }, + // { "survival_shuffle_3wk3_21", "Ring Off" }, + // { "survival_shuffle_3wk3_22", "âpre pélutant" }, + // { "survival_shuffle_3wk3_23", "Arena Nocaute Ultimate" }, + // { "survival_shuffle_3wk3_24", "Bataille au ²" }, + // { "survival_shuffle_3wk3_25", "Bom Bom Do" }, + // { "survival_shuffle_3wk3_26", "Super Smash Beans 2!" }, + // { "survival_shuffle_3wk3_27", "VOLLEY BRAWL!" }, + // { "survival_shuffle_3wk3_28", "Bamblast!" }, + // { "survival_shuffle_3wk3_29", "Extreme Block Party" }, + // { "survival_shuffle_3wk3_30", "Colisel da insegurança" }, + // { "survival_shuffle_3wk3_31", "hex-a-climb" }, + // { "survival_shuffle_3wk3_32", "Hex-a-lowercase t" }, + // { "survival_shuffle_3wk3_33", "Beta Jinxed" }, + // { "survival_shuffle_3wk3_34", "The flood" }, + // { "survival_shuffle_3wk3_35", "Explosive kraken!" }, + // { "survival_shuffle_3wk3_36", "Bean Abduction" }, + // { "survival_shuffle_3wk3_37", "blast fall X" }, + // { "survival_shuffle_3wk3_38", "HexaBoom" }, + // { "survival_shuffle_3wk3_39", "グラグラ足場" }, + // { "survival_shuffle_3wk3_40", "Floor-Fall-Survival" }, + // { "survival_shuffle_3wk3_41", "Batalha TRI-unFall" }, + // { "survival_shuffle_3wk3_42", "Détonation arc en ciel" }, + // { "survival_shuffle_3wk3_43", "Rustic Jungle" }, + // { "survival_shuffle_3wk3_44", "SLIME BLOCK PARTY" }, + // { "survival_shuffle_3wk3_45", "チーム(すもう)サバイバル!" }, + // { "survival_shuffle_3wk3_46", "Hex-apple" }, + // { "survival_shuffle_3wk3_47", "Aggro-Crag" }, + // { "survival_shuffle_3wk3_48", "Frenzied Factory" }, + // { "survival_shuffle_3wk3_49", "AIR BATTLE" }, + // { "survival_shuffle_3wk3_50", "The Bean-rena" }, + // { "survival_shuffle_3wk3_51", "Hex-A-Joust" }, + // { "survival_shuffle_3wk3_52", "Lake in the mountains" }, + // { "survival_shuffle_3wk3_53", "Tronco Gigante" }, + // { "survival_shuffle_3wk3_54", "Whirling Arena" }, + // { "survival_shuffle_3wk3_55", "Block Battle - Survive" }, + // { "survival_shuffle_3wk3_56", "Hot Shots" }, + // { "survival_shuffle_3wk3_57", "Gladiators" }, + // { "survival_shuffle_3wk3_58", "The Falliseum" }, + // { "survival_shuffle_3wk3_59", "Blast Chaos" }, + // { "survival_shuffle_3wk3_60", "Blast Ball Reveal" }, + // { "survival_shuffle_3wk3_61", "終末列車" }, + // { "survival_shuffle_3wk3_62", "Kraken x balls x boxing" }, + // { "survival_shuffle_3wk3_63", "Gum survival" }, + // { "survival_shuffle_3wk3_64", "スライム研究室" }, + // { "survival_shuffle_3wk3_65", "BEAN’S FIRST MATH TEST" }, + // { "survival_shuffle_3wk3_66", "Fight Land" }, + // { "survival_shuffle_3wk3_67", "Colour switch" }, + // { "survival_shuffle_3wk3_68", "Fall Royale" }, + // { "survival_shuffle_3wk3_69", "デジタルランティス" }, + // { "survival_shuffle_3wk3_70", "MAME RING" }, + // { "survival_shuffle_3wk3_71", "detonates atlantis" }, + // { "survival_shuffle_3wk3_72", "Flower Punch" }, + // { "survival_shuffle_3wk3_73", "Wobbly arena" }, + // { "survival_shuffle_3wk3_74", "TURMOIL--POWER UP PANIC" }, + // { "survival_shuffle_3wk3_75", "Why is it Spicy" }, + // { "survival_shuffle_3wk3_76", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_3wk3_77", "Slime Crater" }, + // { "survival_shuffle_3wk3_78", "ボタンコンフュージョン" }, + // { "survival_shuffle_3wk3_79", "tournement de couleur" }, + // { "survival_shuffle_3wk3_80", "Boxeo V69" }, + // { "survival_shuffle_3wk3_81", "fall in a storm" }, + // { "survival_shuffle_3wk3_82", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_3wk3_83", "Rebellion of block ver2" }, + // { "survival_shuffle_3wk3_86", "怒りのすとんぴんぐ・ぐらうんど" }, + // { "survival_shuffle_3wk3_87", "Jump Show Fall" }, + // { "survival_shuffle_3wk3_88", "カウントブロック" }, + // { "survival_shuffle_3wk3_89", "Hex-A-Lava" }, + // { "survival_shuffle_3wk3_90", "Mario" }, + // { "survival_shuffle_3wk3_91", "Magma Meltdown" }, + // { "survival_shuffle_3wk3_92", "ROOFTOP RUMBLE!" }, + // { "survival_shuffle_3wk3_93", "émoussement arc en ciel" }, + // { "survival_shuffle_3wk3_94", "Fall And Round" }, + // { "survival_shuffle_3wk3_95", "深空蜂窝" }, + // { "survival_shuffle_3wk3_96", "Pokémon Stadium" }, + // { "survival_shuffle_3wk3_97", "Safari survival" }, + // { "survival_shuffle_3wk3_98", "Slime Playground" }, + // { "survival_shuffle_3wk3_99", "Hexagonal Fadeout" }, + // { "survival_shuffle_3wk3_100", "ランダムエッグスイッチアクション" }, + // + // { "wle_shuggle_mwk3_01", "Ariko Jones" }, + // { "wle_shuggle_mwk3_02", "Triple Trial" }, + // { "wle_shuggle_mwk3_03", "Aerial Squirrel" }, + // { "wle_shuggle_mwk3_04", "ギリギリアウトチャレンジ公式競技場 1" }, + // { "wle_shuggle_mwk3_05", "シンスモウ(ブラストボール)" }, + // { "wle_shuggle_mwk3_06", "Winter Wallop" }, + // { "wle_shuggle_mwk3_07", "リリーリーパー再現" }, + // { "wle_shuggle_mwk3_08", "Wilderness Adventures!" }, + // { "wle_shuggle_mwk3_09", "Rets arc en ciel" }, + // { "wle_shuggle_mwk3_10", "egypt park" }, + // { "wle_shuggle_mwk3_11", "Green Mountain" }, + // { "wle_shuggle_mwk3_12", "super speedrun" }, + // { "wle_shuggle_mwk3_13", "ULTRA MEGA EXTREME HARD!!!" }, + // { "wle_shuggle_mwk3_14", "Заурядные Белки" }, + // { "wle_shuggle_mwk3_15", "Digital keyboard 😜✌️" }, + // { "wle_shuggle_mwk3_16", "artistic ELIMINATED challenge 1" }, + // { "wle_shuggle_mwk3_17", "TAKOのツボ" }, + // { "wle_shuggle_mwk3_18", "Jumping Season" }, + // { "wle_shuggle_mwk3_19", "Black" }, + // { "wle_shuggle_mwk3_20", "Digital Climb 3 ~Rainbow~" }, + // { "wle_shuggle_mwk3_21", "Volcanic Island Travel!" }, + // { "wle_shuggle_mwk3_22", "Sky Ball" }, + // { "wle_shuggle_mwk3_23", "Space Race Remake" }, + // { "wle_shuggle_mwk3_24", "危険なリス" }, + // { "wle_shuggle_mwk3_25", "Summer and the Wonder land of the Sea" }, + // { "wle_shuggle_mwk3_26", "Skim City" }, + // { "wle_shuggle_mwk3_27", "Prova do campeão (Champion Round)" }, + // { "wle_shuggle_mwk3_28", "Жёлтые Нарвалы" }, + // { "wle_shuggle_mwk3_29", "Tropical Punch" }, + // { "wle_shuggle_mwk3_30", "away from the slime" }, + // { "wle_shuggle_mwk3_31", "キョダイMAX黒き天空龍!PFNo02" }, + // { "wle_shuggle_mwk3_32", "Yellow Kingdoms" }, + // { "wle_shuggle_mwk3_33", "Milky way" }, + // { "wle_shuggle_mwk3_34", "SPACE ROUND" }, + // { "wle_shuggle_mwk3_35", "Speedy Bounces" }, + // { "wle_shuggle_mwk3_36", "Snow Style" }, + // { "wle_shuggle_mwk3_37", "bunny leapers V8" }, + // { "wle_shuggle_mwk3_38", "Mushroom" }, + // { "wle_shuggle_mwk3_39", "Data Dash" }, + // { "wle_shuggle_mwk3_40", "RUTA EN LA SELVA" }, + // { "wle_shuggle_mwk3_41", "Button infected desert temple" }, + // { "wle_shuggle_mwk3_42", "Carreira colorida" }, + // { "wle_shuggle_mwk3_43", "Cargo Drop" }, + // { "wle_shuggle_mwk3_44", "green dash" }, + // { "wle_shuggle_mwk3_45", "Jungle Guys" }, + // { "wle_shuggle_mwk3_46", "Golden gates" }, + // { "wle_shuggle_mwk3_47", "Evil Guys" }, + // { "wle_shuggle_mwk3_48", "Orange And Blue Leapers" }, + // { "wle_shuggle_mwk3_49", "Plinko Fall" }, + // { "wle_shuggle_mwk3_50", "Digital Bean Stumble (V2)" }, + // { "wle_shuggle_mwk3_51", "Estareo's Lele Lembe v9" }, + // { "wle_shuggle_mwk3_52", "THE GATE OF TRUTH" }, + // { "wle_shuggle_mwk3_53", "Flutter-by!" }, + // { "wle_shuggle_mwk3_54", "Sketchy Sledding!" }, + // { "wle_shuggle_mwk3_55", "A Cold Race" }, + // { "wle_shuggle_mwk3_56", "X-Treme MegaKaizo Ultra Fall GuysHardest" }, + // { "wle_shuggle_mwk3_57", "Snow Speed" }, + // { "wle_shuggle_mwk3_58", "Bean Fantasy" }, + // { "wle_shuggle_mwk3_59", "Runner(For Fame Pass)" }, + // { "wle_shuggle_mwk3_60", "French Station" }, + // { "wle_shuggle_mwk3_61", "slime climb Creative" }, + // { "wle_shuggle_mwk3_62", "CLASSROOM(PART 2)" }, + // { "wle_shuggle_mwk3_63", "Chilly Leapers" }, + // { "wle_shuggle_mwk3_64", "Fall Bridge" }, + // { "wle_shuggle_mwk3_65", "快感快速!!" }, + // { "wle_shuggle_mwk3_66", "Jungle Guys II" }, + // { "wle_shuggle_mwk3_67", "コズミックミュージック COSMIC MUSIC" }, + // { "wle_shuggle_mwk3_68", "Satellite Sprint" }, + // { "wle_shuggle_mwk3_69", "GROOVIN’ BANANA TEMPLE" }, + // { "wle_shuggle_mwk3_70", "Rumble Tumble" }, + // { "wle_shuggle_mwk3_71", "Fashion Show!" }, + // { "wle_shuggle_mwk3_72", "DROP TOWER 蹦极塔" }, + // { "wle_shuggle_mwk3_73", "Boggle-Bean Bridges" }, + // { "wle_shuggle_mwk3_74", "AquArsene" }, + // { "wle_shuggle_mwk3_75", "Winter Games" }, + // { "wle_shuggle_mwk3_76", "LOONEY TUNES" }, + // { "wle_shuggle_mwk3_77", "atlan-sprint" }, + // { "wle_shuggle_mwk3_78", "Koala kingdom" }, + // { "wle_shuggle_mwk3_79", "straight500" }, + // { "wle_shuggle_mwk3_80", "BIG CROWN MONUMENT" }, + // { "wle_shuggle_mwk3_81", "Lily River Run" }, + // { "wle_shuggle_mwk3_82", "Skyball" }, + // { "wle_shuggle_mwk3_83", "STARLIGHT STUMBLE" }, + // { "wle_shuggle_mwk3_84", "Speedway 2069" }, + // { "wle_shuggle_mwk3_85", "GOLD RUSH" }, + // { "wle_shuggle_mwk3_86", "Data Eraser" }, + // { "wle_shuggle_mwk3_87", "FESTIVE CROSSROADS" }, + // { "wle_shuggle_mwk3_88", "Rainbow highway" }, + // { "wle_shuggle_mwk3_89", "Candyland" }, + // { "wle_shuggle_mwk3_90", "hex-a-run" }, + // { "wle_shuggle_mwk3_91", "Rover Rumble" }, + // { "wle_shuggle_mwk3_92", "MEOW MEOW GALAXY" }, + // { "wle_shuggle_mwk3_93", "Speedy Lovers" }, + // { "wle_shuggle_mwk3_94", "THE Rivalry Game (Football)" }, + // { "wle_shuggle_mwk3_95", "MARIPEN PHOTOLOCATION(Digital)" }, + // { "wle_shuggle_mwk3_96", "Olympique Guys" }, + // { "wle_shuggle_mwk3_97", "Boo City" }, + // { "wle_shuggle_mwk3_98", "CARNIVORUS PLANTS" }, + // { "wle_shuggle_mwk3_99", "はしるまくれ!⊂{◎Å◎}⊃" }, + // { "wle_shuggle_mwk3_100", "Crazy Coaster" }, + // + // { "playful_refresh_w2_01", "Winter Wallop" }, + // { "playful_refresh_w2_02", "Multi Leaper" }, + // { "playful_refresh_w2_03", "ストレートスタンブル" }, + // { "playful_refresh_w2_04", "RUN RUN Park" }, + // { "playful_refresh_w2_05", "やってみな!" }, + // { "playful_refresh_w2_06", "ごちゃごちゃストリート" }, + // { "playful_refresh_w2_07", "Conveyors Obstacles" }, + // { "playful_refresh_w2_08", "Seeing The Bean Ball" }, + // { "playful_refresh_w2_09", "Green Mountain" }, + // { "playful_refresh_w2_10", "Ancient Fallstronomers" }, + // { "playful_refresh_w2_11", "Jumping Season" }, + // { "playful_refresh_w2_12", "Track attackers system" }, + // { "playful_refresh_w2_13", "CASTLE CLASH" }, + // { "playful_refresh_w2_14", "The Terrible Spiral Of Woo Remake" }, + // { "playful_refresh_w2_15", "Rainbow Dash" }, + // { "playful_refresh_w2_16", "TruPixel's Jungle Mash-up" }, + // { "playful_refresh_w2_17", "fall-in space" }, + // { "playful_refresh_w2_18", "Monochromatic Manic" }, + // { "playful_refresh_w2_19", "Adrenaline Force 2" }, + // { "playful_refresh_w2_20", "DIGITAL MADNESS" }, + // { "playful_refresh_w2_21", "Data Dash" }, + // { "playful_refresh_w2_22", "Caida resbaladisa" }, + // { "playful_refresh_w2_23", "Snow Mountain" }, + // { "playful_refresh_w2_24", "Orange And Blue Leapers" }, + // { "playful_refresh_w2_25", " Wild Dunes" }, + // { "playful_refresh_w2_26", "Blundercity Marathon" }, + // { "playful_refresh_w2_27", "Pocket Summit" }, + // { "playful_refresh_w2_28", "Love a day" }, + // { "playful_refresh_w2_29", "Passage imbroglio arc en ciel" }, + // { "playful_refresh_w2_30", "Fall Stars" }, + // { "playful_refresh_w2_31", "SPRING MOUNTAIN" }, + // { "playful_refresh_w2_32", "AquArsene" }, + // { "playful_refresh_w2_33", "Rainbow Riptide" }, + // { "playful_refresh_w2_34", "Cluster Cosmos" }, + // { "playful_refresh_w2_35", "Koala kingdom" }, + // { "playful_refresh_w2_36", "Fallyager 12 Repair Mission" }, + // { "playful_refresh_w2_37", "Lily River Run" }, + // { "playful_refresh_w2_38", "STARLIGHT STUMBLE" }, + // { "playful_refresh_w2_39", "Welcome to Namek" }, + // { "playful_refresh_w2_40", "Rainbow highway" }, + // { "playful_refresh_w2_41", "Past passage" }, + // { "playful_refresh_w2_42", "Neon pipe run" }, + // { "playful_refresh_w2_43", "NAUTICAL SHAMBLE" }, + // + // { "wle_mrs_winter_opener_01", "Winter Blunderland" }, + // { "wle_mrs_winter_opener_02", "Frosty fiesta" }, + // { "wle_mrs_winter_opener_03", "Knight Slide" }, + // { "wle_mrs_winter_opener_04", "Digi-Snow Stumble" }, + // { "wle_mrs_winter_opener_05", "Snowy Cave-in" }, + // { "wle_mrs_winter_opener_06", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "wle_mrs_winter_opener_07", "A Cold Race" }, + // { "wle_mrs_winter_opener_08", "Ice Rock" }, + // { "wle_mrs_winter_filler_01", "Snowy Flakes" }, + // { "wle_mrs_winter_filler_02", "Mountain of Ice" }, + // { "wle_mrs_winter_filler_03", "FROSTY FUMBLE" }, + // { "wle_mrs_winter_filler_04", "Winter Getaway" }, + // { "wle_mrs_winter_filler_05", "Snowy Speed Sprint" }, + // { "wle_mrs_winter_filler_06", "WINTER WONDERLAND" }, + // { "wle_mrs_winter_filler_07", "Gran Glaciar Paradicial" }, + // { "wle_mrs_winter_final_01", "The Ice Dragon's Lair" }, + // { "wle_mrs_winter_final_02", "Winter Wonderland" }, + // { "wle_mrs_winter_final_03", "Snowman Sprint" }, + // { "wle_mrs_winter_final_04", "MERRY CLIMBING!" }, + // { "wle_mrs_winter_final_05", "Winter Wonderland" }, + // + // { "wle_s10_cf_round_001", "Blocky Bridges" }, + // { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + // { "wle_s10_cf_round_003", "Drop n' Drag" }, + // { "wle_s10_cf_round_004", "Fun with Fans" }, + // + // { "wle_s10_bt_round_001", "Push Ups" }, + // { "wle_s10_bt_round_002", "Heave & Haul" }, + // { "wle_s10_bt_round_003", "Stepping Stones" }, + // { "wle_s10_bt_round_004", "Double Trouble" }, + // + // { "wle_mrs_bagel_opener_1", "Tunnel of Love" }, + // { "wle_mrs_bagel_opener_2", "Pink Parade" }, + // { "wle_mrs_bagel_opener_3", "Prideful Path" }, + // { "wle_mrs_bagel_opener_4", "Coming Together" }, + // { "wle_mrs_bagel_filler_1", "Clifftop Capers" }, + // { "wle_mrs_bagel_filler_2", "Waveway Splits" }, + // { "wle_mrs_bagel_filler_3", "In the Groove" }, + // { "wle_mrs_bagel_filler_4", "Heartfall Heat" }, + // { "wle_mrs_bagel_final_1", "Rainbow Rise" }, + // { "wle_mrs_bagel_final_2", "Out and About" }, + // + // { "wle_mrs_bouncy_bean_time_opener", "Frosty Frolics" }, + // { "wle_mrs_bouncy_bean_time_opener_02", "roll roll bean" }, + // { "wle_mrs_bouncy_bean_time_opener_03", "SPEEDROLLING" }, + // { "wle_mrs_bouncy_bean_time_filler", "Ball Park" }, + // { "wle_mrs_bouncy_bean_time_filler_02", "Ball Carnival" }, + // { "wle_mrs_bouncy_bean_time_filler_03", "Spiral Trial" }, + // { "wle_mrs_bouncy_bean_time_filler_04", "Golf Fall" }, + // { "wle_mrs_bouncy_bean_time_final", "Downtown Rush" }, + // { "wle_mrs_bouncy_bean_time_final_02", "Skyview Derby" }, + // { "wle_mrs_bouncy_bean_time_final_03", "Rolling Speedway" }, + // { "wle_mrs_bouncy_bean_time_final_04", "SEA FLOW!" }, + } + }, + { Language.Korean, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "round_airtime", "공중 묘기" }, + { "round_biggestfan", "대형 선풍기" }, + { "round_hoops_revenge_symphony_launch_show", "통통 파티" }, + { "round_king_of_the_hill", "비눗방울 퐁퐁" }, + { "round_1v1_button_basher", "버튼 누르기" }, + { "round_satellitehoppers_almond", "우주 고속도로" }, + { "round_door_dash", "문으로 돌진" }, + { "round_gauntlet_02", "어질어질 장애물 코스" }, + { "round_ffa_button_bashers_squads_almond", "정신없는 공장" }, + { "round_iceclimb", "눈 굴러와유" }, + { "round_dodge_fall", "과일 대포" }, + { "round_see_saw_360", "완벽한 균형" }, + { "round_chompchomp", "문으로 충돌" }, + { "round_gauntlet_01", "우당탕탕 퍼레이드" }, + { "round_hoops_blockade_solo", "후프의 전설" }, + { "round_gauntlet_04", "중세 장애물 코스" }, + { "round_follow-the-leader_s6_launch", "스포트라이트" }, + { "round_drumtop", "정글 바운스" }, + { "round_gauntlet_08", "신나는 축제" }, + { "round_penguin_solos", "펭귄 풀장 파티" }, + { "round_pipedup_s6_launch", "꿈의 파이프나라" }, + { "round_pixelperfect_almond", "픽셀 페인터" }, + { "round_tunnel_race", "롤온" }, + { "round_see_saw", "시소" }, + { "round_shortcircuit", "숏 서킷" }, + { "round_skeefall", "스키 점프" }, + { "round_gauntlet_06", "스카이라인 장애물 코스" }, + { "round_lava", "슬라임 오르기" }, + { "round_slimeclimb_2", "슬라임 등반" }, + { "round_gauntlet_10_almond", "우주 경주" }, + { "round_short_circuit_2_symphony_launch_show", "스피드 서킷" }, + { "round_starlink_almond", "별자리표" }, + { "round_tip_toe", "살금살금" }, + { "round_gauntlet_09_symphony_launch_show", "진격의 트랙" }, + { "round_gauntlet_07", "정글 탐험" }, + { "round_gauntlet_05", "툰드라 런" }, + { "round_gauntlet_03", "풍차 장애물 코스" }, + { "round_wall_guys", "벽 가이즈" }, + { "round_bluejay", "젤리빈 언덕 구역" }, + { "round_slippy_slide", "고리 미끄럼틀" }, + { "round_slide_chute", "스피드 슬라이더" }, + { "round_follow_the_line", "길 찾기 퍼즐" }, + { "round_fruitpunch_s4_show", "펑이요!" }, + { "round_block_party", "틈새 공략" }, + { "round_hoverboardsurvival_s4_show", "호버보드 영웅" }, + { "round_hoverboardsurvival2_almond", "하이퍼보드 영웅" }, + { "round_jump_club", "점프 클럽" }, + { "round_match_fall", "같은 그림 찾기" }, + { "round_tunnel", "롤아웃" }, + { "round_snowballsurvival", "눈덩이 서바이벌" }, + { "round_robotrampage_arena_2", "코뿔소 피하기" }, + { "round_fruit_bowl", "과일 세기" }, + { "round_tail_tag", "꼬리 잡기" }, + { "round_spin_ring_symphony_launch_show", "빙빙돌이" }, + { "round_1v1_volleyfall_symphony_launch_show", "배구" }, + { "round_blastballruins", "블라스틀란티스" }, + { "round_basketfall_s4_show", "농구" }, + { "round_egg_grab", "알 점령전" }, + { "round_egg_grab_02", "알 공성전" }, + { "round_fall_ball_60_players", "공 떨어져유" }, + { "round_ballhogs", "수집왕" }, + { "round_hoops", "후프의 달인" }, + { "round_jinxed", "징크스" }, + { "round_chicken_chase", "펭귄 쟁탈전" }, + { "round_territory_control_s4_show", "배터리 전쟁" }, + { "round_rocknroll", "공 밀기" }, + { "round_snowy_scrap", "눈덩이 굴리기" }, + { "round_invisibeans", "달콤한 도둑들" }, + { "round_pumpkin_pie", "사탕 도둑들" }, + { "round_conveyor_arena", "꼬리 잡기 팀전" }, + { "round_blastball_arenasurvival_symphony_launch_show", "블라스트 공" }, + { "round_fall_mountain_hub_complete", "산 무너져유" }, + { "round_floor_fall", "바닥 떨어져유" }, + { "round_hexaring_symphony_launch_show", "육각링" }, + { "round_hexsnake_almond", "육각형 바닥" }, + { "round_jump_showdown", "점프 쇼다운" }, + { "round_kraken_attack", "크라켄 슬램" }, + { "round_crown_maze", "버려진 사원" }, + { "round_tunnel_final", "롤 오프" }, + { "round_royal_rumble", "꼬리 쟁탈전" }, + { "round_thin_ice", "살얼음판" }, + { "round_tiptoefinale_almond", "살금 살금 피날레" }, + + { "user_creative_race_round", "사용자 폴크리 레이스 라운드" }, + { "user_creative_survival_round", "사용자 폴크리 생존 라운드" }, + { "user_creative_hunt_round", "사용자 폴크리 점수 라운드" }, + { "user_creative_logic_round", "사용자 폴크리 로직 라운드" }, + { "user_creative_team_round", "사용자 폴크리 팀 라운드" }, + { "creative_race_round", "폴크리 레이스 라운드" }, + { "creative_race_final_round", "폴크리 레이스 결승 라운드" }, + { "creative_survival_round", "폴크리 생존 라운드" }, + { "creative_survival_final_round", "폴크리 생존 결승 라운드" }, + { "creative_hunt_round", "폴크리 점수 라운드" }, + { "creative_hunt_final_round", "폴크리 점수 결승 라운드" }, + { "creative_logic_round", "폴크리 로직 라운드" }, + { "creative_logic_final_round", "폴크리 로직 결승 라운드" }, + { "creative_team_round", "폴크리 팀 라운드" }, + { "creative_team_final_round", "폴크리 팀 결승 라운드" }, + + // { "wle_main_filler_01", "Ruta en la selva" }, + // { "wle_main_filler_02", "ROTATION STATION" }, + // { "wle_main_filler_03", "canyon sun day" }, + // { "wle_main_opener_01", "Winter Disc-O" }, + // { "wle_main_opener_02", "Satellite Sprint" }, + // + // { "wle_s10_orig_round_001", "Beans Ahoy!" }, + // { "wle_s10_orig_round_002", "Airborne Antics" }, + // { "wle_s10_orig_round_003", "Scythes & Roundabouts" }, + // { "wle_s10_orig_round_004", "Cardio Runners" }, + // { "wle_s10_orig_round_005", "Fan Flingers" }, + // { "wle_s10_orig_round_006", "Uphill Struggle" }, + // { "wle_s10_orig_round_007", "Spinner Sprint" }, + // { "wle_s10_orig_round_008", "Lane Changers" }, + // { "wle_s10_orig_round_009", "Gentle Gauntlet" }, + // { "wle_s10_orig_round_010", "Square Up" }, + // { "wle_s10_orig_round_011", "Slide Showdown" }, + // { "wle_s10_orig_round_012", "Up & Down" }, + // { "wle_s10_orig_round_013", "Choo Choo Challenge" }, + // { "wle_s10_orig_round_014", "Runner Beans" }, + // { "wle_s10_orig_round_015", "Disc Dashers" }, + // { "wle_s10_orig_round_016", "Two Faced" }, + // { "wle_s10_orig_round_017", "Bellyflop Battlers" }, + // { "wle_s10_orig_round_018", "Apples & Oranges" }, + // { "wle_s10_orig_round_019", "Blueberry Bombardment" }, + // { "wle_s10_orig_round_020", "Chuting Stars" }, + // { "wle_s10_orig_round_021", "Slimy Slopes" }, + // { "wle_s10_orig_round_022", "Circuit Breakers" }, + // { "wle_s10_orig_round_023", "Winding Walkways" }, + // { "wle_s10_orig_round_024", "Wooseleum" }, + // { "wle_s10_orig_round_025", "Mount Boom" }, + // { "wle_s10_orig_round_026", "Hyperlink Hijinks" }, + // { "wle_s10_orig_round_027", "Fan Frolics" }, + // { "wle_s10_orig_round_028", "Windmill Road" }, + // { "wle_s10_orig_round_029", "Conveyor Clash" }, + // { "wle_s10_orig_round_030", "Mega Monument" }, + // { "wle_s10_orig_round_031", "Transfer Turnpike" }, + // { "wle_s10_orig_round_032", "Fortress Frolics" }, + // { "wle_s10_orig_round_033", "Super Door Dash" }, + // { "wle_s10_orig_round_034", "Spiral Of Woo" }, + // { "wle_s10_orig_round_035", "Tornado Trial" }, + // { "wle_s10_orig_round_036", "Hopscotch Havoc" }, + // { "wle_s10_orig_round_037", "Beat Bouncers" }, + // { "wle_s10_orig_round_038", "Blunder Bridges" }, + // { "wle_s10_orig_round_039", "Incline Rewind" }, + // { "wle_s10_orig_round_040", "Prismatic Parade" }, + // { "wle_s10_orig_round_041", "Swept Away" }, + // { "wle_s10_orig_round_042", "Balancing Act" }, + // { "wle_s10_orig_round_043", "Trouble Tower" }, + // { "wle_s10_orig_round_044", "Serpent Slalom" }, + // { "wle_s10_orig_round_045", "Floorless" }, + // { "wle_s10_orig_round_045_long", "Floorless" }, + // { "wle_s10_orig_round_046", "In The Cloud" }, + // { "wle_s10_orig_round_047", "Downstream Duel" }, + // { "wle_s10_orig_round_048", "Lost Palace" }, + // { "wle_s10_long_round_003", "Fall Speedway" }, + // { "wle_s10_long_round_004", "ZigZag Zoomies" }, + // { "wle_s10_long_round_005", "Terrabyte Trial" }, + // { "wle_s10_round_001", "Digi Trek" }, + // { "wle_s10_round_002", "Shortcut Links" }, + // { "wle_s10_round_003", "Upload Heights" }, + // { "wle_s10_round_004", "Parkour Panic" }, + // { "wle_s10_round_005", "Data Streams" }, + // { "wle_s10_round_006", "Gigabyte Gauntlet" }, + // { "wle_s10_round_007", "Cube Corruption" }, + // { "wle_s10_round_008", "Wham Bam Boom" }, + // { "wle_s10_round_009", "Firewall Finale" }, + // { "wle_s10_round_010", "Pixel Hearts" }, + // { "wle_s10_round_011", "Cyber Circuit" }, + // { "wle_s10_round_012", "Boom Blaster Trial" }, + // + // { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + // { "wle_s10_player_round_wk3_02", "Door Game" }, + // { "wle_s10_player_round_wk3_03", "Full Speed Sliding (FSS) - Jelly Road" }, + // { "wle_s10_player_round_wk3_04", "Sky High Run" }, + // { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + // { "wle_s10_player_round_wk3_07", "Descente Créative" }, + // { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + // { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + // { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + // { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + // { "wle_s10_player_round_wk3_12", "Variable Valley" }, + // { "wle_fp2_wk6_01", "Broken Course" }, + // { "wle_s10_player_round_wk3_14", "Tower of Fall" }, + // { "wle_s10_player_round_wk3_15", "Parkour Party" }, + // { "wle_s10_player_round_wk3_16", "Catastrophe Climb" }, + // { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + // { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + // { "wle_s10_player_round_wk3_19", "Sky Time" }, + // { "wle_s10_player_round_wk3_20", "EZz Map" }, + // + // { "wle_s10_player_round_wk4_01", "Slippery Stretch" }, + // { "wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + // { "wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + // { "wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + // { "wle_s10_player_round_wk4_06", "Topsie Tursie" }, + // { "wle_s10_player_round_wk4_07", "Arcade Assault" }, + // { "wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + // { "wle_s10_player_round_wk4_09", "Green Beans" }, + // { "wle_s10_player_round_wk4_10", "Hop Hill" }, + // { "wle_s10_player_round_wk4_11", "Quick Sliders" }, + // { "wle_s10_player_round_wk4_12", "Split Path" }, + // { "wle_s10_player_round_wk4_13", "Piso resbaloso" }, + // { "wle_s10_player_round_wk4_15", "Snowboard Street" }, + // { "wle_s10_player_round_wk4_18", "House Invasion" }, + // { "wle_s10_player_round_wk4_19", "SOLO FULL-TILT RAGE" }, + // { "wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + // { "wle_s10_player_round_wk4_21", "Spin" }, + // { "wle_s10_player_round_wk4_22", "Lane Changers" }, + // + // { "wle_s10_player_round_wk5_01", "Block Park" }, + // { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + // { "wle_s10_player_round_wk5_03", "Digital Temple" }, + // { "wle_s10_player_round_wk5_04", "Tower Escape" }, + // { "wle_s10_player_round_wk5_05", "Tower Dash" }, + // { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + // { "wle_s10_player_round_wk5_07", "Looooping" }, + // { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + // { "wle_s10_player_round_wk5_10", "Siank Arena" }, + // { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + // { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + // { "wle_s10_player_round_wk5_13", "Dessert Village" }, + // { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + // { "wle_s10_player_round_wk5_15", "Beast Route" }, + // { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + // { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + // { "wle_s10_player_round_wk5_18", "Digital Doom" }, + // + // { "wle_s10_player_round_wk6_01", "Hammer Heaven" }, + // { "wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + // { "wle_s10_player_round_wk6_03", "Castle Rush" }, + // { "wle_s10_player_round_wk6_04", "Chaotic Race" }, + // { "wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + // { "wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + // { "wle_s10_player_round_wk6_08", "Flower Power" }, + // { "wle_s10_player_round_wk6_09", "Dimension Explorer" }, + // { "wle_s10_player_round_wk6_10", "Forked Passage" }, + // { "wle_s10_player_round_wk6_12", "The Bee Hive" }, + // { "wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + // { "wle_s10_player_round_wk6_14", "Snek" }, + // { "wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + // { "wle_s10_player_round_wk6_17", "Slippery Helixes" }, + // { "wle_s10_player_round_wk6_18", "Recess" }, + // { "wle_s10_player_round_wk6_19", "Parrot river" }, + // { "wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + // + // { "current_wle_fp3_07_01", "Block Sledding" }, + // { "current_wle_fp3_07_02", "Layup Wallop" }, + // { "current_wle_fp3_07_03", "Minecart Mayhem" }, + // { "current_wle_fp3_07_04", "Bouncing Pass" }, + // { "current_wle_fp3_07_05", "Ball Factory" }, + // { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + // { "current_wle_fp3_07_0_02", "Woo-F-O" }, + // { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + // + // { "current_wle_fp3_08_01", "Grabbers Territory" }, + // { "current_wle_fp3_08_02", "A Way Out" }, + // { "current_wle_fp3_08_03", "Wall Block" }, + // { "current_wle_fp3_08_04", "The dream island" }, + // { "current_wle_fp3_08_05", "Rainbow pulsion" }, + // { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + // { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + // { "current_wle_fp3_08_10", "Crazy boxes" }, + // { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + // { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + // { "current_wle_fp3_08_15", "Stumble Teams" }, + // { "current_wle_fp3_08_16", "Twisting Tower" }, + // { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + // { "current_wle_fp3_08_18", "The Rising Blocks" }, + // { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + // { "current_wle_fp3_09_01", "The up tower" }, + // { "current_wle_fp3_09_02", "Short shuriken" }, + // { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + // { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + // { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + // { "current_wle_fp3_09_06", "Random Heights" }, + // { "current_wle_fp3_09_07", "Climb scramble" }, + // { "current_wle_fp3_09_08", "Collide Gaming" }, + // { "current_wle_fp3_09_09", "Very Compressed Level" }, + // { "current_wle_fp3_09_0_01", "Slippery Slope" }, + // { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + // { "current_wle_fp3_09_0_03", "Free Falling" }, + // { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + // { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + // { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + // { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + // + // { "current_wle_fp3_10_01", "When Nature Falls" }, + // { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + // { "current_wle_fp3_10_03", "The Slime Trials" }, + // { "current_wle_fp3_10_04", "Friendly Obstacles" }, + // { "current_wle_fp3_10_05", "Climb and Fall" }, + // { "current_wle_fp3_10_06", "Stairs and some other things" }, + // { "current_wle_fp3_10_07", "Meowgical World" }, + // { "current_wle_fp3_10_08", "Polluelo Speed" }, + // { "current_wle_fp3_10_09", "Pixel Parade" }, + // { "current_wle_fp3_10_10", "Total Madness" }, + // { "current_wle_fp3_10_11", "The Abstract Maze" }, + // { "current_wle_fp3_10_12", "Fan Off" }, + // { "current_wle_fp3_10_13", "cloud highway" }, + // { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + // { "current_wle_fp3_10_15", "Speedrunners be like" }, + // { "current_wle_fp3_10_16", "Tumble Tower" }, + // { "current_wle_fp3_10_17", "Silver's Snake Run" }, + // { "current_wle_fp3_10_18", "Now Boarding" }, + // { "current_wle_fp3_10_19", "Slime Scale" }, + // { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + // { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + // { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + // { "current_wle_fp3_10_23", "Controlled Chaos" }, + // { "current_wle_fp3_10_24", "Xtreme Jumping" }, + // { "current_wle_fp3_10_25", "Odin" }, + // { "current_wle_fp3_10_26", "Ciudad nube" }, + // { "current_wle_fp3_10_27", "Bean Voyage" }, + // { "current_wle_fp3_10_28", "SLIP-SAW" }, + // { "current_wle_fp3_10_29", "Bbq bacon burger" }, + // + // { "current_wle_fp4_05_01_01", "巅峰车站" }, + // { "current_wle_fp4_05_01_02", "Beba Park 7" }, + // { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + // { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + // { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + // { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + // { "current_wle_fp4_05_02", "Mini only up" }, + // { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + // { "current_wle_fp4_05_03_02", "Remote Control" }, + // { "current_wle_fp4_05_03", "Parkway Slide" }, + // { "current_wle_fp4_05_04", "Duel Dash" }, + // { "current_wle_fp4_05_05", "beaten trackless road" }, + // { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + // { "current_wle_fp4_05_2_02", "arch city" }, + // { "current_wle_fp4_05_2_03", "Desert Ruins" }, + // + // { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + // { "current_wle_fp4_06_02", "Pachislo" }, + // { "current_wle_fp4_06_0_01", "AquArsene" }, + // { "current_wle_fp4_06_0_02", "RainbowCloud" }, + // { "current_wle_fp4_06_0_03", "Pink Cascade" }, + // { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + // { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + // { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + // { "current_wle_fp4_06_1_01", "Buggin' Out" }, + // { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + // { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + // { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + // { "current_wle_fp4_06_1_05", "The climb of Trials" }, + // { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + // + // { "current_wle_fp4_07_01", "Rotational Runner" }, + // { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + // { "current_wle_fp4_07_03", "simple stage" }, + // { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + // { "current_wle_fp4_07_05", "Factory Valley" }, + // { "current_wle_fp4_07_06", "Jumpy Beans" }, + // { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + // { "current_wle_fp4_07_0_01", "Camino Ninja" }, + // + // { "current_wle_fp4_08_01", "co-op guys" }, + // { "current_wle_fp4_08_0_01", "The big slide" }, + // { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + // { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + // { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + // { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + // { "current_wle_fp4_08_0_06", "X-Course" }, + // { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + // { "current_wle_fp4_08_1_01", "Boost in Dash" }, + // { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + // { "current_wle_fp4_08_1_03", "Giddy up!" }, + // { "current_wle_fp4_08_1_04", "Mad lab" }, + // { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + // { "current_wle_fp4_08_3_01", "The Oasis" }, + // + // { "current_wle_fp4_09_01", "Crate Collector" }, + // { "current_wle_fp4_09_02", "Dribble Drills" }, + // { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + // { "current_wle_fp4_09_04", "Skyline Park" }, + // { "current_wle_fp4_09_05", "Birthday bonanza" }, + // { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + // { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + // { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + // { "current_wle_fp4_09_1_02", "Haute voltige" }, + // { "current_wle_fp4_09_2_01", "DNA Test" }, + // + // { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + // { "current_wle_fp4_10_02", "Hot Blast" }, + // { "current_wle_fp4_10_03", "Box Fan Blitz" }, + // { "current_wle_fp4_10_04", "Woo-terfall Way" }, + // { "current_wle_fp4_10_05", "Slime race" }, + // { "current_wle_fp4_10_06", "Moving Day" }, + // { "current_wle_fp4_10_07", "Birthday Dash" }, + // { "current_wle_fp4_10_08_m", "Wall Breaker" }, + // { "current_wle_fp4_10_08", "Chess History" }, + // { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + // { "current_wle_fp4_10_12", "Chickens run away" }, + // { "current_wle_fp4_10_20", "Co-op and CO" }, + // { "current_wle_fp4_10_21", "Construction Site" }, + // { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + // { "current_wle_fp4_10_0_02", "Molehills" }, + // + // { "current_wle_fp5_2_01_01", "Plummet Summit" }, + // { "current_wle_fp5_2_01_02", "タワークライム" }, + // { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + // { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + // { "current_wle_fp5_2_01", "Jabonsotes" }, + // { "current_wle_fp5_2_02_01", "のっぽタワー" }, + // { "current_wle_fp5_2_02_02", "Blaster Course" }, + // { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + // { "current_wle_fp5_2_02_04", "The hard Climb" }, + // { "current_wle_fp5_2_02_05", "sliding guys" }, + // { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + // { "current_wle_fp5_2_02", "Rainbow highway" }, + // { "current_wle_fp5_2_03", "Falligator" }, + // { "current_wle_fp5_2_04_01", "Lily Lovers" }, + // { "current_wle_fp5_2_04_02", "rainow rode" }, + // { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_04_04", "Super crazy level" }, + // { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + // { "current_wle_fp5_2_05_01", "Level XVIII" }, + // { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + // { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_05_04", "rainbow roade" }, + // { "current_wle_fp5_2_05", "The tension Parkour" }, + // { "current_wle_fp5_2_06", "Stairing Contest" }, + // { "current_wle_fp5_2_07", "Vibrant Ascension" }, + // + // { "current_wle_fp5_3_05_01", "Beany Golf!" }, + // { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + // { "current_wle_fp5_4_01_01", "Tilted Walls" }, + // { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + // { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + // { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + // { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + // + // { "current_wle_fp5_10_01", "Breezy Buddies" }, + // { "current_wle_fp5_10_0_01", "Salto Plancha" }, + // { "current_wle_fp5_10_0_02", "My house" }, + // { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + // { "current_wle_fp5_10_1_01", "Desert Ruins" }, + // { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_01", "Desert Ruins" }, + // { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_03", "Mystic River" }, + // { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + // { "current_wle_fp5_10_2_05", "Cliffside" }, + // { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + // { "current_wle_fp5_10_2_07", "The Avenue" }, + // { "current_wle_fp5_10_2_08", "Gold City" }, + // { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + // { "current_wle_fp5_10_2_10", "初心者用コース" }, + // { "current_wle_fp5_10_2_11", "Chain Reaction" }, + // + // { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + // { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + // { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + // { "current_wle_fp5_wk3_1_04", "El airecito" }, + // { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + // { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + // { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + // { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + // { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + // { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + // { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + // { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + // { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + // { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + // { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + // + // { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + // { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + // { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + // { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + // { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + // { "current_wle_fp5_falloween_1_06", "Mirage" }, + // { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + // { "current_wle_fp5_falloween_1_08", "Toon World" }, + // { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + // { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + // { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + // { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + // { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + // { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + // { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + // { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + // { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + // { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + // { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + // { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + // { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + // { "current_wle_fp5_falloween_2_03_06", "Spider" }, + // { "current_wle_fp5_falloween_2_03", "fastoween" }, + // { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + // { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + // { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + // { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + // { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + // { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + // { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + // { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + // { "current_wle_fp5_falloween_4_05", "Scary Final" }, + // { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + // { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + // { "current_wle_fp5_falloween_4_08", "Catoween" }, + // { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + // { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + // { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + // { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + // { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + // { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + // { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + // { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + // { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + // { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + // { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + // { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + // { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + // { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + // { "current_wle_fp5_falloween_5_04", "Halloween" }, + // { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + // { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + // { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + // { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + // { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + // { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + // { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + // { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + // { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + // { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + // { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + // { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + // { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + // { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + // { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + // { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + // { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + // { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + // { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + // { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + // { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + // { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + // { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + // { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + // { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + // { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + // { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + // { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + // { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + // { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + // { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + // { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + // { "current_wle_fp5_falloween_9_02", "Raveyard" }, + // { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + // { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + // { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + // { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + // { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + // { "current_wle_fp5_falloween_11_01", "Night Runners" }, + // { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + // { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + // { "current_wle_fp5_falloween_13_01", "Witch Way" }, + // { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + // { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + // + // { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + // { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + // { "current_wle_fp6_1_03", "SKULL KING" }, + // { "current_wle_fp6_1_04", "shorter circuit" }, + // { "current_wle_fp6_1_05", "be speedy" }, + // { "current_wle_fp6_1_06", "Sky-City Stumble" }, + // { "current_wle_fp6_1_07", "Wormhole Mountain" }, + // { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + // { "current_wle_fp6_1_09", "Splitspeed" }, + // { "current_wle_fp6_1_10", "Fall Canyon" }, + // { "current_wle_fp6_2_01", "Valise" }, + // { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + // { "current_wle_fp6_2_03", "Water Way" }, + // { "current_wle_fp6_2_04", "The Doors of Doom" }, + // { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + // { "current_wle_fp6_2_06", "Liana Swings" }, + // { "current_wle_fp6_2_07", "Colourful" }, + // { "current_wle_fp6_2_08", "The Heist!" }, + // { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + // { "current_wle_fp6_3_01", "Tricky Treat" }, + // { "current_wle_fp6_3_02", "The Lighthouse" }, + // { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + // { "current_wle_fp6_3_04", "The Scarescraper" }, + // { "current_wle_fp6_3_05", "Obstacle Road" }, + // { "current_wle_fp6_3_06", "Rest In Paris" }, + // { "current_wle_fp6_3_07", "Horror pumpkim" }, + // { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + // + // { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + // { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + // { "current_wle_fp6_wk2_03", "Slidy Road" }, + // { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + // { "current_wle_fp6_wk2_05", "Lost in space" }, + // { "current_wle_fp6_wk2_06", "Turbine Decline" }, + // { "current_wle_fp6_wk2_07", "Zero Displacement" }, + // { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + // { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + // { "current_wle_fp6_wk2_10", "Neoway" }, + // { "current_wle_fp6_wk2_11", "Niagara Falls" }, + // { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + // { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + // { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + // { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + // { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + // { "current_wle_fp6_wk2_1_06", "Locomoção" }, + // { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + // { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + // { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + // + // { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + // { "current_wle_fp6_wk3_02", "Compact 5" }, + // { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + // { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + // { "current_wle_fp6_wk3_05", "Alto voltaje" }, + // { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + // { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + // { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + // { "current_wle_fp6_wk3_09", "Work and Travel" }, + // { "current_wle_fp6_wk3_10", "connect the bridge" }, + // { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + // { "current_wle_fp6_wk3_2_02", "speed demon" }, + // { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + // { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + // { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + // { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + // { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + // + // { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + // { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + // { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + // { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + // { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + // { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + // { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + // { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + // { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + // { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + // { "current_wle_fp6_wk4_03_05", "Snow Style" }, + // { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + // { "current_wle_fp6_wk4_05_01", "Rebound" }, + // { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + // { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + // + // { "current_wle_community_10_5_01", "Snowy Starfall" }, + // { "current_wle_community_10_5_02", "The Earthquake" }, + // { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + // { "current_wle_community_10_5_1_04", "Garden of Woo" }, + // { "current_wle_community_10_5_1_05", "Out in the open" }, + // { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + // { "current_wle_community_10_5_1_08", "Jungle Journey" }, + // { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + // { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + // { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + // { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + // { "current_wle_community_10_5_1_15", "Three Rooms" }, + // { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + // { "current_wle_community_10_5_1_17", "Winter Slide" }, + // { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + // + // { "wle_discover_level_wk2_001", "Castle in the Clouds" }, + // { "wle_discover_level_wk2_002", "Christmas corner!" }, + // { "wle_discover_level_wk2_003", "Hot Wheels 2069" }, + // { "wle_discover_level_wk2_004", "Bounce Back Racetrack" }, + // { "wle_discover_level_wk2_005", "Space Getaway" }, + // { "wle_discover_level_wk2_006", "fall mountain (糖豆山涧)" }, + // { "wle_discover_level_wk2_007", "伝説のポケモン!" }, + // { "wle_discover_level_wk2_008", "Knight Slide" }, + // { "wle_discover_level_wk2_009", "Christmas Run" }, + // { "wle_discover_level_wk2_010", "Labyrinth (1986) Part1" }, + // { "wle_discover_level_wk2_011", "Rebound" }, + // { "wle_discover_level_wk2_012", "Trip to Santa's home" }, + // { "wle_discover_level_wk2_013", "ピッピカチュ☆彡" }, + // { "wle_discover_level_wk2_014", "Rainbow Race" }, + // { "wle_discover_level_wk2_015", "Speed Suburbs" }, + // { "wle_discover_level_wk2_016", "SUPER MARIO WONDER" }, + // { "wle_discover_level_wk2_017", "Punching Bridges" }, + // { "wle_discover_level_wk2_018", "The Slimescrapper" }, + // { "wle_discover_level_wk2_019", "Snowy Flakes" }, + // { "wle_discover_level_wk2_020", "Foggy Freeway" }, + // { "wle_discover_level_wk2_021", "Snowy Climb" }, + // { "wle_discover_level_wk2_022", "snow athletic valley" }, + // { "wle_discover_level_wk2_023", "詰め込んだだけレース4" }, + // { "wle_discover_level_wk2_024", "Winter Wonder Sprint" }, + // { "wle_discover_level_wk2_025", "Randonnée Galactique" }, + // { "wle_discover_level_wk2_026", "Cloudy with a Chance of Cannonballs" }, + // { "wle_discover_level_wk2_027", "Digital Snowland" }, + // { "wle_discover_level_wk2_028", "Shiver Beans" }, + // { "wle_discover_level_wk2_029", "SanTama Run" }, + // { "wle_discover_level_wk2_030", "Winter Run" }, + // { "wle_discover_level_wk2_031", "Jiggle Jingle" }, + // { "wle_discover_level_wk2_032", "Ice Pop Interstate" }, + // { "wle_discover_level_wk2_033", "クリエだよ全員集合" }, + // { "wle_discover_level_wk2_034", "Snow Day" }, + // { "wle_discover_level_wk2_035", "It's Tiiiiiiiimeee!" }, + // { "wle_discover_level_wk2_036", "KYOUFUU GUYS BACK" }, + // { "wle_discover_level_wk2_037", "Sonic's Sunset Adventure" }, + // { "wle_discover_level_wk2_038", "♪勝利のフォンフォーレ" }, + // { "wle_discover_level_wk2_039", "RACE ORIGINS" }, + // { "wle_discover_level_wk2_040", "Winter Wipeout" }, + // { "wle_discover_level_wk2_041", "Centripetal Circuit" }, + // { "wle_discover_level_wk2_042", "MERRY MAYHEM!" }, + // { "wle_discover_level_wk2_043", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_044", "The Scarescraper" }, + // { "wle_discover_level_wk2_045", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_046", "$$$¡The Casino Crew!$$$" }, + // { "wle_discover_level_wk2_047", "Dee's- Escape the Pirate Ship!" }, + // { "wle_discover_level_wk2_048", "ジャングル ぐるぐる" }, + // { "wle_discover_level_wk2_049", "ショートステージ" }, + // { "wle_discover_level_wk2_050", "スノーマウンテンクライム" }, + // + // { "wle_round_mrs_shuffle_discover_005", "My Melody" }, + // { "wle_round_mrs_shuffle_discover_006", "prismatic ice crystal" }, + // { "wle_round_mrs_shuffle_discover_007", "スキルアップステージ" }, + // { "wle_round_mrs_shuffle_discover_008", "WHITE TREE JUMBLE" }, + // { "wle_round_mrs_shuffle_discover_009", "Snowy Adventure" }, + // { "wle_round_mrs_shuffle_discover_010", "Happy Bean Food Fiesta" }, + // { "wle_round_mrs_shuffle_discover_011", "Belly Flop Bobsleigh" }, + // { "wle_round_mrs_shuffle_discover_012", "winter party" }, + // { "wle_round_mrs_shuffle_discover_013", "The lost keys" }, + // { "wle_round_mrs_shuffle_discover_014", "Bonk" }, + // { "wle_round_mrs_shuffle_discover_015", "Winter Disc-O" }, + // { "wle_round_mrs_shuffle_discover_016", "christmas wreath!" }, + // { "wle_round_mrs_shuffle_discover_017", "Winter BebaLand" }, + // { "wle_round_mrs_shuffle_discover_018", "Automatic FallGuys" }, + // { "wle_round_mrs_shuffle_discover_019", "Holiday Dash" }, + // { "wle_round_mrs_shuffle_discover_020", "Treetop Frost" }, + // { "wle_round_mrs_shuffle_discover_021", "Rainbow Run" }, + // { "wle_round_mrs_shuffle_discover_022", "BYE DONT HAVE A GREAT TIME PART LXIX" }, + // { "wle_round_mrs_shuffle_discover_023", "Hieroglysphinx Hurdles" }, + // { "wle_round_mrs_shuffle_discover_024", "ホなら" }, + // { "wle_round_mrs_shuffle_discover_025", "Bye have a great time part 45" }, + // { "wle_round_mrs_shuffle_discover_026", "POWDERY PEAK" }, + // { "wle_round_mrs_shuffle_discover_027", "It's Christmas Slime Climb Time!" }, + // { "wle_round_mrs_shuffle_discover_028", "MERRY CLIMBING!" }, + // { "wle_round_mrs_shuffle_discover_030", "Snow N' Speed" }, + // { "wle_round_mrs_shuffle_discover_032", "Lets Have Fun (74)" }, + // { "wle_round_mrs_shuffle_discover_033", "Concept Ladder Match (Pre-alpha)" }, + // { "wle_round_mrs_shuffle_discover_034", "Speedy City" }, + // { "wle_round_mrs_shuffle_discover_036", "Fall Village" }, + // { "wle_round_mrs_shuffle_discover_037", "超巨大な、クリスマスツリー" }, + // { "wle_round_mrs_shuffle_discover_038", "TINSELTOWN MELTDOWN!" }, + // { "wle_round_mrs_shuffle_discover_039", "Jump jar jar" }, + // { "wle_round_mrs_shuffle_discover_040", "FOOD FIESTA" }, + // { "wle_round_mrs_shuffle_discover_041", "Bye have a great time part 46" }, + // { "wle_round_mrs_shuffle_discover_044", "BEAN BALL" }, + // { "wle_round_mrs_shuffle_discover_045", "Python Pinball" }, + // { "wle_round_mrs_shuffle_discover_046", "Block Battle" }, + // { "wle_round_mrs_shuffle_discover_047", "Ice Cold Ascension" }, + // { "wle_round_mrs_shuffle_discover_048", "ボタンでGO!" }, + // { "wle_round_mrs_shuffle_discover_049", "ミクセル MIKUSERU" }, + // { "wle_round_mrs_shuffle_discover_050", "ホなら" }, + // + // { "wle_discovery_shuffle_up2_01", "The spooky trail" }, + // { "wle_discovery_shuffle_up2_05", "Balance Bean" }, + // { "wle_discovery_shuffle_up2_06", "digital slime road" }, + // { "wle_discovery_shuffle_up2_07", "The Punch Warriors! - Definitive Edition" }, + // { "wle_discovery_shuffle_up2_08", "Winter Mansion" }, + // { "wle_discovery_shuffle_up2_13", "Festive Rush" }, + // { "wle_discovery_shuffle_up2_14", "Mound Mountain" }, + // { "wle_discovery_shuffle_up2_15", "FEVER DREAM FUNHOUSE!" }, + // { "wle_discovery_shuffle_up2_17", "WinteRace" }, + // { "wle_discovery_shuffle_up2_18", "4 Seasons" }, + // { "wle_discovery_shuffle_up2_19", "WAVE RUNNERS!" }, + // { "wle_discovery_shuffle_up2_24", "Tool Up! Winter Season Fall Guys" }, + // { "wle_discovery_shuffle_up2_26", "Arctic Run" }, + // { "wle_discovery_shuffle_up2_28", "Grenouille X pinkixx" }, + // { "wle_discovery_shuffle_up2_29", "GAME OVER" }, + // { "wle_discovery_shuffle_up2_30", "Hot Wheels III" }, + // { "wle_discovery_shuffle_up2_32", "Ski Mountain" }, + // { "wle_discovery_shuffle_up2_33", "夜店" }, + // { "wle_discovery_shuffle_up2_34", "チャッキーのタイムアタックレース" }, + // { "wle_discovery_shuffle_up2_37", "Frosty run" }, + // { "wle_discovery_shuffle_up2_38", "MONUMENT FALLS!" }, + // + // { "wle_mrs_shuffle_show_roundpool_winter_01", "Spiral Trial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_02", "SNOWMAN CLIMB" }, + // { "wle_mrs_shuffle_show_roundpool_winter_03", "Perpetual motion" }, + // { "wle_mrs_shuffle_show_roundpool_winter_04", "No way to go" }, + // { "wle_mrs_shuffle_show_roundpool_winter_06", "The winter slime climb time!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_07", "The Speedy Zone" }, + // { "wle_mrs_shuffle_show_roundpool_winter_08", "The crown's race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_09", "Mitten Mountain" }, + // { "wle_mrs_shuffle_show_roundpool_winter_10", "Parcours arc en ciel" }, + // { "wle_mrs_shuffle_show_roundpool_winter_11", "forest balls" }, + // { "wle_mrs_shuffle_show_roundpool_winter_12", "FIREBALL FRENZY!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_13", "GIFT EXCHANGE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_14", "The Snowscraper" }, + // { "wle_mrs_shuffle_show_roundpool_winter_15", "roll roll bean" }, + // { "wle_mrs_shuffle_show_roundpool_winter_16", "Overclocked" }, + // { "wle_mrs_shuffle_show_roundpool_winter_17", "Spaceball Spin" }, + // { "wle_mrs_shuffle_show_roundpool_winter_18", "Winter Disc-O" }, + // { "wle_mrs_shuffle_show_roundpool_winter_19", "Chill 'n' Roll" }, + // { "wle_mrs_shuffle_show_roundpool_winter_20", "FEVER DREAM FUNHOUSE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_21", "Himalayan Railway" }, + // { "wle_mrs_shuffle_show_roundpool_winter_22", "Need for Speed" }, + // { "wle_mrs_shuffle_show_roundpool_winter_23", "Rebound" }, + // { "wle_mrs_shuffle_show_roundpool_winter_24", "スライムスクレイパー" }, + // { "wle_mrs_shuffle_show_roundpool_winter_25", "Frosty Cold Sprint" }, + // { "wle_mrs_shuffle_show_roundpool_winter_26", "Halfpipe Havoc" }, + // { "wle_mrs_shuffle_show_roundpool_winter_27", "Snowflake Wonderland" }, + // { "wle_mrs_shuffle_show_roundpool_winter_28", "Ball Guys" }, + // { "wle_mrs_shuffle_show_roundpool_winter_30", "REINDEER GAMES!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_31", "Belly Flop Bobsleigh" }, + // { "wle_mrs_shuffle_show_roundpool_winter_32", "Hot Wheels 2069" }, + // { "wle_mrs_shuffle_show_roundpool_winter_33", "Gingerbread Lane" }, + // { "wle_mrs_shuffle_show_roundpool_winter_34", "We ballin'" }, + // { "wle_mrs_shuffle_show_roundpool_winter_35", "Ice Cold Ascension" }, + // { "wle_mrs_shuffle_show_roundpool_winter_36", "étage sur étage" }, + // { "wle_mrs_shuffle_show_roundpool_winter_37", "Birthday Dash" }, + // { "wle_mrs_shuffle_show_roundpool_winter_39", "MARBLE RACE [Bean-Ball]" }, + // { "wle_mrs_shuffle_show_roundpool_winter_38", "The Jolly Express" }, + // { "wle_mrs_shuffle_show_roundpool_winter_40", "Roller Race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_41", "Return to Fall Rapids" }, + // { "wle_mrs_shuffle_show_roundpool_winter_42", "Frosty run" }, + // { "wle_mrs_shuffle_show_roundpool_winter_44", "Sirbeans garden racetrack" }, + // { "wle_mrs_shuffle_show_roundpool_winter_45", "Roll-a-Coaster" }, + // { "wle_mrs_shuffle_show_roundpool_winter_46", "Gran Glaciar Paradicial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_47", "Cave Exploration ~洞窟探検~" }, + // { "wle_mrs_shuffle_show_roundpool_winter_48", "SanTama Run" }, + // + // { "wle_shuffle_discover_fp7_1_01", "Green hill zone" }, + // { "wle_shuffle_discover_fp7_1_02", "Lost Temple" }, + // { "wle_shuffle_discover_fp7_1_03", "Champiñón Volante" }, + // { "wle_shuffle_discover_fp7_1_04", "Mitten Mountain" }, + // { "wle_shuffle_discover_fp7_1_05", "Jack-O'-Runners" }, + // { "wle_shuffle_discover_fp7_1_06", "Parcours arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_07", "Mario kart" }, + // { "wle_shuffle_discover_fp7_1_08", "A Day At The Holiday Race" }, + // { "wle_shuffle_discover_fp7_1_09", "2024 謹賀新年" }, + // { "wle_shuffle_discover_fp7_1_10", "Hustling run" }, + // { "wle_shuffle_discover_fp7_1_11", "tempête arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_12", "Wander- Weg" }, + // { "wle_shuffle_discover_fp7_1_13", "Ruta en la selva" }, + // { "wle_shuffle_discover_fp7_1_14", "Turboslide" }, + // { "wle_shuffle_discover_fp7_1_15", "A piece of cake" }, + // { "wle_shuffle_discover_fp7_1_16", "WOW" }, + // { "wle_shuffle_discover_fp7_1_18", "Magic Squirrel" }, + // { "wle_shuffle_discover_fp7_1_19", "Dinosaur Climb" }, + // { "wle_shuffle_discover_fp7_1_20", "bouing bouing" }, + // { "wle_shuffle_discover_fp7_1_21", "快感快速!!" }, + // { "wle_shuffle_discover_fp7_1_23", "challenge" }, + // { "wle_shuffle_discover_fp7_1_24", "Fnf final escape" }, + // { "wle_shuffle_discover_fp7_1_25", "Speedrun" }, + // { "wle_shuffle_discover_fp7_1_26", "AS AVENTURAS DO PIETRO" }, + // { "wle_shuffle_discover_fp7_1_27", "The Desert temple" }, + // { "wle_shuffle_discover_fp7_1_28", "Snowy Speed Sprint" }, + // { "wle_shuffle_discover_fp7_1_29", "Arcade escape" }, + // { "wle_shuffle_discover_fp7_1_30", "Guardian's Grace" }, + // { "wle_shuffle_discover_fp7_1_31", "Desertic Templus" }, + // { "wle_shuffle_discover_fp7_1_32", "Calamité arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_33", "Map Test V1" }, + // { "wle_shuffle_discover_fp7_1_34", "From A to Z" }, + // { "wle_shuffle_discover_fp7_1_35", "YULE LOG SPRINT" }, + // { "wle_shuffle_discover_fp7_1_37", "Turnaround Turnpike" }, + // { "wle_shuffle_discover_fp7_1_38", "Good morning 2024 world" }, + // { "wle_shuffle_discover_fp7_1_39", "Sirbeans garden racetrack" }, + // + // { "wle_shuffle_2_24_01", "classic sewer" }, + // { "wle_shuffle_2_24_02", "Speed Ball" }, + // { "wle_shuffle_2_24_03", "Rainbow Riser" }, + // { "wle_shuffle_2_24_04", "cave tree" }, + // { "wle_shuffle_2_24_05", "Orbital Junction" }, + // { "wle_shuffle_2_24_06", "Lily leapers remix v3" }, + // { "wle_shuffle_2_24_07", "Little Pipe Dream" }, + // { "wle_shuffle_2_24_08", "FIREBALL FRENZY!" }, + // { "wle_shuffle_2_24_09", "Ruta en la selva" }, + // { "wle_shuffle_2_24_10", "A piece of cake" }, + // { "wle_shuffle_2_24_11", "Monster Forest Road" }, + // { "wle_shuffle_2_24_12", "Slippery Stumble" }, + // { "wle_shuffle_2_24_13", "Mound Mountain" }, + // { "wle_shuffle_2_24_15", "Non-Stop Slide" }, + // { "wle_shuffle_2_24_16", "slime climb Creative" }, + // { "wle_shuffle_2_24_17", "(REBORN) WITH THE WIND OMAME-CHAN !!!" }, + // { "wle_shuffle_2_24_18", "The Desert Temple Escape" }, + // { "wle_shuffle_2_24_19", "Rebound" }, + // { "wle_shuffle_2_24_20", "Roundabout Route" }, + // { "wle_shuffle_2_24_21", "Sparkly gingerbred trail" }, + // { "wle_shuffle_2_24_22", "Ski Fall Remix" }, + // { "wle_shuffle_2_24_24", "Fan Flingers" }, + // { "wle_shuffle_2_24_25", "Ball Carnival" }, + // { "wle_shuffle_2_24_26", "Tool Up! Winter Season Fall Guys" }, + // { "wle_shuffle_2_24_27", "Trompeta Teatral" }, + // { "wle_shuffle_2_24_28", "Birthday bonanza" }, + // { "wle_shuffle_2_24_29", "BlueBlur Circuit" }, + // { "wle_shuffle_2_24_30", "Lemon Grass" }, + // { "wle_shuffle_2_24_31", "Tuyauterie au nez" }, + // { "wle_shuffle_2_24_32", "Slimey's showdown" }, + // { "wle_shuffle_2_24_33", "GOLF GUYS" }, + // { "wle_shuffle_2_24_34", "(REBORN) DIGI×2 LOVE×2 GUYS REVERSE !!!" }, + // { "wle_shuffle_2_24_35", "R" }, + // { "wle_shuffle_2_24_36", "Zelda is BANANAS!!!!" }, + // { "wle_shuffle_2_24_38", "Traffic Jamboree" }, + // { "wle_shuffle_2_24_39", "Turnaround Turnpike" }, + // { "wle_shuffle_2_24_40", "Great hunt" }, + // { "wle_shuffle_2_24_41", "HYPERSPACE HIGHWAY!" }, + // { "wle_shuffle_2_24_42", "Back in Slime" }, + // + // { "wle_shuffle_wk2405_01", "Duckling Beach" }, + // { "wle_shuffle_wk2405_02", "BUILDER GUYS" }, + // { "wle_shuffle_wk2405_03", "ヒヤヒヤハイウェイ Unstable Highway" }, + // { "wle_shuffle_wk2405_04", "Speed Ball" }, + // { "wle_shuffle_wk2405_05", "North Pole Traps" }, + // { "wle_shuffle_wk2405_06", "Volcanic Island Travel!" }, + // { "wle_shuffle_wk2405_07", "Kepler 21's town" }, + // { "wle_shuffle_wk2405_08", "Orbital Junction" }, + // { "wle_shuffle_wk2405_11", "Balance Bean" }, + // { "wle_shuffle_wk2405_12", "ťřūťű" }, + // { "wle_shuffle_wk2405_13", "Summer Vibes" }, + // { "wle_shuffle_wk2405_14", "Dee's- Pinball Lilly" }, + // { "wle_shuffle_wk2405_15", "Galactic Guys" }, + // { "wle_shuffle_wk2405_16", "Orbital Stumbling" }, + // { "wle_shuffle_wk2405_17", "Winter Mansion" }, + // { "wle_shuffle_wk2405_18", "Pole Jumper" }, + // { "wle_shuffle_wk2405_19", "Little Pipe Dream" }, + // { "wle_shuffle_wk2405_20", "FIREBALL FRENZY!" }, + // { "wle_shuffle_wk2405_21", "Ruta en la selva" }, + // { "wle_shuffle_wk2405_22", "The Spacescřaper" }, + // { "wle_shuffle_wk2405_23", "Downward Spiral! (& Beyond)" }, + // { "wle_shuffle_wk2405_24", "Slippery Swoop Showdown" }, + // { "wle_shuffle_wk2405_25", "Tunnel of tumble" }, + // { "wle_shuffle_wk2405_26", "Digital Paradise" }, + // { "wle_shuffle_wk2405_27", "Monster Forest Road" }, + // { "wle_shuffle_wk2405_28", "GALACTIC RUN" }, + // { "wle_shuffle_wk2405_29", "Non-Stop Slide" }, + // { "wle_shuffle_wk2405_30", "slime climb Creative" }, + // { "wle_shuffle_wk2405_31", "Love a day" }, + // { "wle_shuffle_wk2405_32", "serious circuit" }, + // { "wle_shuffle_wk2405_33", "Falling in Love" }, + // { "wle_shuffle_wk2405_34", "Rebound" }, + // { "wle_shuffle_wk2405_35", "Digifal Guys" }, + // { "wle_shuffle_wk2405_36", "Vaporia" }, + // { "wle_shuffle_wk2405_37", "Solar Speedway" }, + // { "wle_shuffle_wk2405_38", "Rollin' Ruins" }, + // { "wle_shuffle_wk2405_39", "The drum course" }, + // { "wle_shuffle_wk2405_40", "AX-ATTACK" }, + // { "wle_shuffle_wk2405_41", "Pipe beans" }, + // { "wle_shuffle_wk2405_42", "Ball World" }, + // { "wle_shuffle_wk2405_43", "Fan Flingers" }, + // { "wle_shuffle_wk2405_44", "Deserted Frontier" }, + // { "wle_shuffle_wk2405_45", "Torapo" }, + // { "wle_shuffle_wk2405_46", "No Name" }, + // { "wle_shuffle_wk2405_47", "Satellite Scramble" }, + // { "wle_shuffle_wk2405_48", "STATION SPRINT" }, + // { "wle_shuffle_wk2405_49", "Route 20" }, + // { "wle_shuffle_wk2405_50", "Jungle escape" }, + // { "wle_shuffle_wk2405_51", "Love at First Woo" }, + // { "wle_shuffle_wk2405_52", "Satellite Circuit" }, + // { "wle_shuffle_wk2405_53", "Round and around" }, + // { "wle_shuffle_wk2405_54", "World of rolling" }, + // { "wle_shuffle_wk2405_55", "Lemon Grass" }, + // { "wle_shuffle_wk2405_56", "Downward Spiral" }, + // { "wle_shuffle_wk2405_57", "STARS ALIGN!" }, + // { "wle_shuffle_wk2405_58", "Interstellar Sprint" }, + // { "wle_shuffle_wk2405_59", "World of cakes" }, + // { "wle_shuffle_wk2405_60", "ASTRAL AIRWAY" }, + // { "wle_shuffle_wk2405_61", "secret ways" }, + // { "wle_shuffle_wk2405_62", "No Name" }, + // { "wle_shuffle_wk2405_63", "Space adventure (part 1)" }, + // { "wle_shuffle_wk2405_64", "Rainbow Road" }, + // { "wle_shuffle_wk2405_65", "Falltropolis" }, + // + // { "wle_digishuffle_feb_01", "jungle fun run" }, + // { "wle_digishuffle_feb_02", "☆Witch Way☆" }, + // { "wle_digishuffle_feb_03", "Mushroom Mayhem" }, + // { "wle_digishuffle_feb_04", "Orbital Junction" }, + // { "wle_digishuffle_feb_06", "Day at the beach" }, + // { "wle_digishuffle_feb_07", "Summer Vibes" }, + // { "wle_digishuffle_feb_08", "Roll Asteroid Field" }, + // { "wle_digishuffle_feb_09", "Ruta en la selva" }, + // { "wle_digishuffle_feb_10", "Cosmic Dash" }, + // { "wle_digishuffle_feb_11", "Bouncing Frenzy" }, + // { "wle_digishuffle_feb_12", "Beehive Havoc" }, + // { "wle_digishuffle_feb_13", "Snowy Cave-in" }, + // { "wle_digishuffle_feb_15", "Winter Disc-O" }, + // { "wle_digishuffle_feb_16", "magician" }, + // { "wle_digishuffle_feb_17", "Love a day" }, + // { "wle_digishuffle_feb_18", "Chilly Leapers" }, + // { "wle_digishuffle_feb_19", "Colorful Year - Beans Memories" }, + // { "wle_digishuffle_feb_20", "BIPLANE BLUNDER" }, + // { "wle_digishuffle_feb_21", "Vaporia" }, + // { "wle_digishuffle_feb_22", "Satellite Sprint" }, + // { "wle_digishuffle_feb_23", "Galactic Gauntlet" }, + // { "wle_digishuffle_feb_24", "RUN COWBOY" }, + // { "wle_digishuffle_feb_25", "Breakfast Run" }, + // { "wle_digishuffle_feb_26", "Spin 'n' Swing" }, + // { "wle_digishuffle_feb_27", " Love at First Woo" }, + // { "wle_digishuffle_feb_28", "Astral Exploration" }, + // { "wle_digishuffle_feb_29", "Speedway 2069" }, + // { "wle_digishuffle_feb_30", "Data Eraser" }, + // { "wle_digishuffle_feb_31", "Mediefall Highway" }, + // { "wle_digishuffle_feb_33", "パンダフルワールド" }, + // { "wle_digishuffle_feb_34", "Celestial Tale" }, + // + // { "chill_01", "Ariko Jones" }, + // { "chill_02", "Floating island" }, + // { "chill_03", "Colorful World" }, + // { "chill_04", "Winter Wallop" }, + // { "chill_06", "Tropical Top2" }, + // { "chill_07", "rainbows and stickers" }, + // { "chill_08", "Ancient Fallstronomers" }, + // { "chill_11", "ORBITAL STUMBLE" }, + // { "chill_12", "The Bisounours" }, + // { "chill_13", "Adrenaline Force 2" }, + // { "chill_14", "Summer Vibes" }, + // { "chill_15", "Speedy Bounces" }, + // { "chill_16", "Data Dash" }, + // { "chill_17", "Snow Mountain" }, + // { "chill_18", "Monster Mayhem" }, + // { "chill_19", "Star Power!" }, + // { "chill_20", "Sketchy Sledding!" }, + // { "chill_21", "Musical Madness" }, + // { "chill_22", "BEANS ORBITAL ZONE" }, + // { "chill_23", "Safe Mode" }, + // { "chill_24", "Piste de neige" }, + // { "chill_25", "Love a day" }, + // { "chill_26", "Chilly Leapers" }, + // { "chill_27", "Passage imbroglio arc en ciel" }, + // { "chill_28", "Shogun Guys I" }, + // { "chill_29", "WINDMILL WAY" }, + // { "chill_30", "Solar Speedway" }, + // { "chill_31", "Micro Machine" }, + // { "chill_32", "Satellite Sprint" }, + // { "chill_33", "Rudinn's Garden Palace" }, + // { "chill_35", "Frosty Wonderland" }, + // { "chill_36", "Freezy Frolic" }, + // { "chill_37", "Extraterrestrial Terminal" }, + // { "chill_38", "Cluster Cosmos" }, + // { "chill_39", " Love at First Woo" }, + // { "chill_40", "A night in Paris" }, + // { "chill_41", "Float Parkour" }, + // + // { "wle_mrs_survival_showdown_opener", "Slime Surfers" }, + // { "wle_mrs_survival_showdown_opener_01", "Bean Fort" }, + // { "wle_mrs_survival_showdown_opener_02", "Back & Forth" }, + // { "wle_mrs_survival_showdown_final", "Hectic Hexagons" }, + // { "wle_mrs_survival_showdown_final_01", "Cosmic Clash" }, + // { "wle_mrs_survival_showdown_final_02", "Bouncy Castle" }, + // { "wle_mrs_survival_showdown_final_04", "Volcanic Chaos" }, + // + // { "wle_survival_shuffle_fp8_01", "More Blastball!" }, + // { "wle_survival_shuffle_fp8_02", "Rhino Runaway" }, + // { "wle_survival_shuffle_fp8_03", "Bouncy Castle" }, + // { "wle_survival_shuffle_fp8_04", "Snowy Stronghold" }, + // { "wle_survival_shuffle_fp8_05", "Hexa-Towers - Finals Arena" }, + // { "wle_survival_shuffle_fp8_06", "Satellite Delight" }, + // { "wle_survival_shuffle_fp8_07", "pacific jump" }, + // { "wle_survival_shuffle_fp8_08", "There can only be one" }, + // { "wle_survival_shuffle_fp8_09", "Ganj's Matter Baby" }, + // { "wle_survival_shuffle_fp8_10", "RHINOCHET" }, + // { "wle_survival_shuffle_fp8_11", "Rocky Rumble" }, + // { "wle_survival_shuffle_fp8_12", "Ludo War" }, + // { "wle_survival_shuffle_fp8_13", "Slimelantis" }, + // { "wle_survival_shuffle_fp8_14", "Dramatic Squirrel" }, + // { "wle_survival_shuffle_fp8_15", "HEX-A-BLAST" }, + // { "wle_survival_shuffle_fp8_16", "HEX-A-RUN" }, + // { "wle_survival_shuffle_fp8_17", "BLAST BRIDGES" }, + // { "wle_survival_shuffle_fp8_18", "HEX-A-BATTLE" }, + // { "wle_survival_shuffle_fp8_19", "Blast Ball X" }, + // { "wle_survival_shuffle_fp8_20", "Explosive Arena" }, + // { "wle_survival_shuffle_fp8_21", "Rhino Blast" }, + // { "wle_survival_shuffle_fp8_22", "Slime Surfers" }, + // { "wle_survival_shuffle_fp8_23", "Eduardo Escapades" }, + // { "wle_survival_shuffle_fp8_24", "Hex A Trouble" }, + // { "wle_survival_shuffle_fp8_25", "Roll In - Finals Arena" }, + // { "wle_survival_shuffle_fp8_26", "Back & Forth" }, + // { "wle_survival_shuffle_fp8_27", "HEXAGONAL RING BLAST" }, + // { "wle_survival_shuffle_fp8_29", "beens royal resurrection" }, + // { "wle_survival_shuffle_fp8_30", "Hexa-Toto" }, + // { "wle_survival_shuffle_fp8_31", "Blender Container" }, + // { "wle_survival_shuffle_fp8_32", "Circular Jump" }, + // { "wle_survival_shuffle_fp8_33", "hex-a-volcanic" }, + // { "wle_survival_shuffle_fp8_34", "ボマーぽよまつからの挑戦状☆ミ" }, + // { "wle_survival_shuffle_fp8_35", "Reverse Chaos" }, + // { "wle_survival_shuffle_fp8_36", "survival board" }, + // { "wle_survival_shuffle_fp8_37", "Volcanic Chaos" }, + // { "wle_survival_shuffle_fp8_38", "High-Ground Arena" }, + // { "wle_survival_shuffle_fp8_39", "rainbow convoyer" }, + // { "wle_survival_shuffle_fp8_40", "すぱいだーすっぱいんだー" }, + // { "wle_survival_shuffle_fp8_41", "HEX-A-PARTY" }, + // { "wle_survival_shuffle_fp8_42", "HEX A REBORN" }, + // { "wle_survival_shuffle_fp8_43", "CAROUSEL CHAOS" }, + // { "wle_survival_shuffle_fp8_44", "west sniper" }, + // { "wle_survival_shuffle_fp8_45", "Blast Balls Hexa Trials" }, + // { "wle_survival_shuffle_fp8_46", "自製生存關2-蹦蹦犀牛炸彈!" }, + // { "wle_survival_shuffle_fp8_47", "Hexagon Battle" }, + // { "wle_survival_shuffle_fp8_49", "Tick Tock Clock" }, + // { "wle_survival_shuffle_fp8_50", "ダイナミクスビート DYNAMICS BEAT" }, + // + // { "survival_shuffle_01", "Speed attack" }, + // { "survival_shuffle_02", "Garbage Chute V2" }, + // { "survival_shuffle_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_04", "Night Crashers" }, + // { "survival_shuffle_05", "Survival Area" }, + // { "survival_shuffle_06", "Can You Win!" }, + // { "survival_shuffle_07", "SPINNER SURVIVAL(Hard)" }, + // { "survival_shuffle_08", "NAMEK" }, + // { "survival_shuffle_09", "Hex-A-Blast" }, + // { "survival_shuffle_10", "HEX-A-JUMP" }, + // { "survival_shuffle_11", "Space Blast" }, + // { "survival_shuffle_12", "とまきけアイス" }, + // { "survival_shuffle_13", "SPINNER SURVIVAL(Very Hard)" }, + // { "survival_shuffle_14", "Caldera chaos" }, + // { "survival_shuffle_15", "hexatourne" }, + // { "survival_shuffle_16", "HEX-A-MANIA" }, + // { "survival_shuffle_17", "Slime leakage royale" }, + // { "survival_shuffle_18", "Merciless Traverse" }, + // { "survival_shuffle_19", "Stompin' Ground Challenge" }, + // { "survival_shuffle_20", "Bird is the Word" }, + // { "survival_shuffle_21", "Conflagration interstellaire" }, + // { "survival_shuffle_22", "Subzero Gale" }, + // { "survival_shuffle_23", "Piti afundando" }, + // { "survival_shuffle_24", "つかみ魔たちの祭典" }, + // { "survival_shuffle_25", "Slime Surfers" }, + // { "survival_shuffle_26", "Space Blast ball" }, + // { "survival_shuffle_27", "Fan wars survival" }, + // { "survival_shuffle_28", "World of Guys - Ultimate Shotout -" }, + // { "survival_shuffle_29", "Shogun's Arena" }, + // { "survival_shuffle_30", "Boulder Hex" }, + // { "survival_shuffle_31", "HEX-A-RENA" }, + // { "survival_shuffle_32", "BLAST BALL BASHERS" }, + // { "survival_shuffle_33", "hexa roll beta 2" }, + // { "survival_shuffle_34", "Running survivor ver1・3" }, + // { "survival_shuffle_35", "King of the Castle" }, + // { "survival_shuffle_36", "BATTLE OF SURVIVORS" }, + // { "survival_shuffle_37", "MINI STOMPIN' GROUND" }, + // { "survival_shuffle_38", "Royal Rumble" }, + // { "survival_shuffle_39", "Bataille au ²" }, + // { "survival_shuffle_40", "Hex-a-mountain" }, + // { "survival_shuffle_41", "Hex-A-Glory" }, + // { "survival_shuffle_42", "POOL PARTY" }, + // { "survival_shuffle_43", "King of the Pillar" }, + // { "survival_shuffle_44", "止まれない木" }, + // { "survival_shuffle_45", "slime battle pt2" }, + // { "survival_shuffle_46", "No Punching" }, + // { "survival_shuffle_47", "Blue and yellow showdown" }, + // { "survival_shuffle_48", "Retro Roundabout" }, + // { "survival_shuffle_49", "玉あそび" }, + // { "survival_shuffle_50", "Royal Rumble (Rofall Gumble)" }, + // { "survival_shuffle_51", "Aggressive survival" }, + // { "survival_shuffle_52", "Fight Zone" }, + // { "survival_shuffle_53", "Hex-A-Blaster" }, + // { "survival_shuffle_54", "SLIME RIOT!" }, + // { "survival_shuffle_55", "Es knallt richtig" }, + // { "survival_shuffle_56", "Super Fortress Factory" }, + // { "survival_shuffle_57", "Heavy hitters only" }, + // { "survival_shuffle_58", "へいたんバトロワ" }, + // { "survival_shuffle_59", "Volcanic Panic" }, + // { "survival_shuffle_60", "Volcanic Panic" }, + // { "survival_shuffle_61", "雷霆乱豆中心" }, + // { "survival_shuffle_62", "ブラストボール(十字形)" }, + // { "survival_shuffle_63", "Poison Pond PVP" }, + // { "survival_shuffle_64", "Puncher Brawl 2" }, + // { "survival_shuffle_65", "Atoll pétulant" }, + // { "survival_shuffle_66", "Blast Rhino" }, + // { "survival_shuffle_67", "Blast Arena" }, + // { "survival_shuffle_68", "Brewing Boxes" }, + // { "survival_shuffle_69", "The flood" }, + // { "survival_shuffle_70", "PUSHBACK" }, + // { "survival_shuffle_71", "Arena Guys" }, + // { "survival_shuffle_72", "Jungle Survival" }, + // { "survival_shuffle_73", "おしくらまんじゅうジャンプ" }, + // { "survival_shuffle_74", "blast fall X" }, + // { "survival_shuffle_75", "Tic-Tac-Blow" }, + // { "survival_shuffle_76", "CS Guys" }, + // { "survival_shuffle_77", "Bounce Battle" }, + // { "survival_shuffle_78", "Cheat's Only Fan" }, + // { "survival_shuffle_79", "Showdown Party" }, + // { "survival_shuffle_80", "Donut layers!" }, + // { "survival_shuffle_81", "パワーアップ・ノックアウト" }, + // { "survival_shuffle_82", "アップダウンバトル" }, + // { "survival_shuffle_83", "頂上対決" }, + // { "survival_shuffle_84", "Blast Ring" }, + // { "survival_shuffle_85", "Raft Rumble" }, + // { "survival_shuffle_86", "Rhino-hex-killer+invasion" }, + // { "survival_shuffle_87", "Survie des enfers" }, + // { "survival_shuffle_88", "blast ball HEXAGON" }, + // { "survival_shuffle_89", "The Bean-rena" }, + // { "survival_shuffle_90", "Lake in the mountains" }, + // { "survival_shuffle_91", "Playing area" }, + // { "survival_shuffle_92", "Hopping Party" }, + // { "survival_shuffle_93", "Shape Dimension" }, + // { "survival_shuffle_94", "Dramatic Flowers" }, + // + // { "wle_mrs_ugc_playful_01", "Neon pipe run" }, + // { "wle_mrs_ugc_playful_02", "SUNKEN CIRCUIT" }, + // { "wle_mrs_ugc_playful_03", "Blundercity Marathon" }, + // { "wle_mrs_ugc_playful_04", "Rainbow highway" }, + // { "wle_mrs_ugc_playful_05", "Rainbow Riptide" }, + // { "wle_mrs_ugc_playful_06", "Past passage" }, + // { "wle_mrs_ugc_playful_07", "Sandcastle Kingdom" }, + // { "wle_mrs_ugc_playful_08", "Jumping Season" }, + // { "wle_mrs_ugc_playful_09", "Fall Stars" }, + // { "wle_mrs_ugc_playful_10", "Medieval Sprint" }, + // { "wle_mrs_ugc_playful_11", "SPRING MOUNTAIN" }, + // { "wle_mrs_ugc_playful_12", "NAUTICAL SHAMBLE" }, + // { "wle_mrs_ugc_playful_13", "The Last Winter" }, + // + // { "playful_shuffle_01", "Fiebre medieval" }, + // { "playful_shuffle_02", "Triple Trial" }, + // { "playful_shuffle_03", "Trees (Waterfall)" }, + // { "playful_shuffle_05", "plat guys" }, + // { "playful_shuffle_06", "震えるキャベツ" }, + // { "playful_shuffle_07", "Winter Wallop" }, + // { "playful_shuffle_08", "Multi Leaper" }, + // { "playful_shuffle_09", "Golden Poodles" }, + // { "playful_shuffle_10", "ストレートスタンブル" }, + // { "playful_shuffle_11", "Easy Fun Speedrun" }, + // { "playful_shuffle_12", "RUN RUN Park" }, + // { "playful_shuffle_14", "ごちゃごちゃストリート" }, + // { "playful_shuffle_15", "Conveyors Obstacles" }, + // { "playful_shuffle_17", "Green Mountain" }, + // { "playful_shuffle_18", "Ancient Fallstronomers" }, + // { "playful_shuffle_19", "+slidin' in the air+ 10k play special" }, + // { "playful_shuffle_20", "Jumping Season" }, + // { "playful_shuffle_21", "Track attackers system" }, + // { "playful_shuffle_22", "CASTLE CLASH" }, + // { "playful_shuffle_24", "Falling Dreams" }, + // { "playful_shuffle_25", "ロケットでうちあげだ 2" }, + // { "playful_shuffle_26", "The Terrible Spiral Of Woo Remake" }, + // { "playful_shuffle_27", "Rainbow Dash" }, + // { "playful_shuffle_28", "TruPixel's Jungle Mash-up" }, + // { "playful_shuffle_30", "Monochromatic Manic" }, + // { "playful_shuffle_33", "Ramp It Up!" }, + // { "playful_shuffle_34", "Adrenaline Force 2" }, + // { "playful_shuffle_35", "DIGITAL MADNESS" }, + // { "playful_shuffle_36", "Cosmic Pipes" }, + // { "playful_shuffle_37", "Milky way" }, + // { "playful_shuffle_38", "Snow Style" }, + // { "playful_shuffle_39", "Data Dash" }, + // { "playful_shuffle_40", "Caida resbaladisa" }, + // { "playful_shuffle_41", "Frostbite Speed Fall Slider" }, + // { "playful_shuffle_42", "Snow Mountain" }, + // { "playful_shuffle_44", "Cosmic Dash" }, + // { "playful_shuffle_45", "Overclocked" }, + // { "playful_shuffle_46", " Wild Dunes" }, + // { "playful_shuffle_47", "Flutter-by!" }, + // { "playful_shuffle_48", "Blundercity Marathon" }, + // { "playful_shuffle_50", "Pixel Circuit像素环游" }, + // { "playful_shuffle_51", "Stars Guys" }, + // { "playful_shuffle_52", "SUNKEN CIRCUIT" }, + // { "playful_shuffle_54", "Pocket Summit" }, + // { "playful_shuffle_55", "Love a day" }, + // { "playful_shuffle_56", "Passage imbroglio arc en ciel" }, + // { "playful_shuffle_58", "コズミックミュージック COSMIC MUSIC" }, + // { "playful_shuffle_59", "glissoire arc en ciel" }, + // + // { "survival_shuffle_wk11_01", "Speed attack" }, + // { "survival_shuffle_wk11_02", "Garbage Chute V2" }, + // { "survival_shuffle_wk11_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_wk11_04", "Sobreviventes da Batalha" }, + // { "survival_shuffle_wk11_05", "今日の運勢サバイバル" }, + // { "survival_shuffle_wk11_06", "More Blastball!" }, + // { "survival_shuffle_wk11_07", "Hexagone Tower" }, + // { "survival_shuffle_wk11_08", "Bouncy Castle" }, + // { "survival_shuffle_wk11_09", "Snowy Stronghold" }, + // { "survival_shuffle_wk11_10", "NAMEK" }, + // { "survival_shuffle_wk11_11", "Hexa-Towers - Finals Arena" }, + // { "survival_shuffle_wk11_12", "Satellite Delight" }, + // { "survival_shuffle_wk11_13", "DEADLY VOLCANO" }, + // { "survival_shuffle_wk11_14", "Ganj's Matter Baby" }, + // { "survival_shuffle_wk11_15", "HEX-A-JUMP" }, + // { "survival_shuffle_wk11_16", "RHINOCHET" }, + // { "survival_shuffle_wk11_17", "Rocky Rumble" }, + // { "survival_shuffle_wk11_18", "Ludo War" }, + // { "survival_shuffle_wk11_19", "RING ROUND FIGHT" }, + // { "survival_shuffle_wk11_20", "Flight frenzy" }, + // { "survival_shuffle_wk11_21", "BLAST BRIDGES" }, + // { "survival_shuffle_wk11_22", "Blast Ball X" }, + // { "survival_shuffle_wk11_23", "Blast Trip" }, + // { "survival_shuffle_wk11_24", "Royal Rumble" }, + // { "survival_shuffle_wk11_25", "Bird is the Word" }, + // { "survival_shuffle_wk11_26", "The Whirligig" }, + // { "survival_shuffle_wk11_27", "Subzero Gale" }, + // { "survival_shuffle_wk11_28", "Slime Surfers" }, + // { "survival_shuffle_wk11_29", "Eduardo Escapades" }, + // { "survival_shuffle_wk11_30", "Hex A Trouble" }, + // { "survival_shuffle_wk11_31", "Back & Forth" }, + // { "survival_shuffle_wk11_32", "HEXAGONAL RING BLAST" }, + // { "survival_shuffle_wk11_33", "Carousel Mayhem" }, + // { "survival_shuffle_wk11_34", "Beens Royale RESURRECTION" }, + // { "survival_shuffle_wk11_35", "Hexa-Toto" }, + // { "survival_shuffle_wk11_36", "Blender Container" }, + // { "survival_shuffle_wk11_37", "Mid wars!" }, + // { "survival_shuffle_wk11_38", "hex-a-volcanic" }, + // { "survival_shuffle_wk11_39", "vamos rey del aire" }, + // { "survival_shuffle_wk11_40", "Shogun's Arena" }, + // { "survival_shuffle_wk11_41", "survival board" }, + // { "survival_shuffle_wk11_42", "survival factory" }, + // { "survival_shuffle_wk11_43", "rainbow convoyer" }, + // { "survival_shuffle_wk11_44", "すぱいだーすっぱいんだー" }, + // { "survival_shuffle_wk11_45", "HEX A REBORN" }, + // { "survival_shuffle_wk11_46", "The Hex-A-Gon House" }, + // { "survival_shuffle_wk11_47", "CAROUSEL CHAOS" }, + // { "survival_shuffle_wk11_48", "Ring Off" }, + // { "survival_shuffle_wk11_49", "âpre pélutant" }, + // { "survival_shuffle_wk11_50", "ダイナミクスビート DYNAMICS BEAT" }, + // { "survival_shuffle_wk11_51", "Fruit Chute Survival" }, + // { "survival_shuffle_wk11_52", "No Punching" }, + // { "survival_shuffle_wk11_53", "Hex-A-Blaster" }, + // { "survival_shuffle_wk11_54", "The Punch Warriors! - Survival Edition" }, + // { "survival_shuffle_wk11_55", "Volcanic Panic" }, + // { "survival_shuffle_wk11_56", "Hex-a-lowercase t" }, + // { "survival_shuffle_wk11_57", "Beta Jinxed" }, + // { "survival_shuffle_wk11_58", "Showdown Party" }, + // { "survival_shuffle_wk11_59", "Canyon Sand 1" }, + // { "survival_shuffle_wk11_60", "Aggro-Crag" }, + // { "survival_shuffle_wk11_61", "Bean Fort" }, + // { "survival_shuffle_wk11_62", "Tronco Gigante" }, + // { "survival_shuffle_wk11_63", "Block Battle - Survive" }, + // { "survival_shuffle_wk11_64", "Hot Shots" }, + // { "survival_shuffle_wk11_65", "blast royale" }, + // { "survival_shuffle_wk11_66", "Supervivencia del caos" }, + // { "survival_shuffle_wk11_67", "Hex-A-Mayhem" }, + // { "survival_shuffle_wk11_68", "The Falliseum" }, + // { "survival_shuffle_wk11_69", "終末列車" }, + // { "survival_shuffle_wk11_70", "O chão é lava" }, + // { "survival_shuffle_wk11_71", "Survival Carnival" }, + // { "survival_shuffle_wk11_72", "Kraken x balls x boxing" }, + // { "survival_shuffle_wk11_73", "Gum survival" }, + // { "survival_shuffle_wk11_74", "スライム研究室" }, + // { "survival_shuffle_wk11_75", "Colour switch" }, + // { "survival_shuffle_wk11_76", "Fall Royale" }, + // { "survival_shuffle_wk11_77", "Roll Out Explosion" }, + // { "survival_shuffle_wk11_78", "HELIX ROLL" }, + // { "survival_shuffle_wk11_79", "耐久出来ないサバイバル2" }, + // { "survival_shuffle_wk11_80", "detonates atlantis" }, + // { "survival_shuffle_wk11_81", "Conveyor Chaos" }, + // { "survival_shuffle_wk11_82", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_wk11_84", "Slime Crater" }, + // { "survival_shuffle_wk11_85", "Firewall Finale" }, + // { "survival_shuffle_wk11_86", "ブラストボールエンド" }, + // { "survival_shuffle_wk11_87", "ボタンコンフュージョン" }, + // { "survival_shuffle_wk11_88", "DEE'S- RHINO RUMBLE!!!!!!" }, + // { "survival_shuffle_wk11_89", "tournement de couleur" }, + // { "survival_shuffle_wk11_90", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_wk11_91", "HARD HEROES DRLVE SURVLVAL" }, + // { "survival_shuffle_wk11_92", "Jump Show Fall" }, + // { "survival_shuffle_wk11_93", "Hex-A-Lava" }, + // { "survival_shuffle_wk11_94", "Magma Meltdown" }, + // { "survival_shuffle_wk11_95", "恐怖のたまご" }, + // { "survival_shuffle_wk11_96", "Cosmic Clash" }, + // { "survival_shuffle_wk11_97", "Fall And Round" }, + // { "survival_shuffle_wk11_98", "フォールドッジブラストボール" }, + // { "survival_shuffle_wk11_99", "Sewer Stand-off" }, + // + // { "survival_shuffle_3wk3_01", "Sobreviventes da Batalha" }, + // { "survival_shuffle_3wk3_02", "Survival Festival" }, + // { "survival_shuffle_3wk3_03", "MEOW-FO ROYALE" }, + // { "survival_shuffle_3wk3_04", "Space Blast" }, + // { "survival_shuffle_3wk3_05", "meteor rain" }, + // { "survival_shuffle_3wk3_06", "Spiral-Cano" }, + // { "survival_shuffle_3wk3_07", "Bridge Island Boss" }, + // { "survival_shuffle_3wk3_08", "Caldera chaos" }, + // { "survival_shuffle_3wk3_09", "BLAST BRIDGES" }, + // { "survival_shuffle_3wk3_10", "Royal Rumble" }, + // { "survival_shuffle_3wk3_11", "flower ring" }, + // { "survival_shuffle_3wk3_12", "The Whirligig" }, + // { "survival_shuffle_3wk3_13", "?" }, + // { "survival_shuffle_3wk3_14", "熔岩蜂窝 Hex-A-Lava" }, + // { "survival_shuffle_3wk3_15", "Mid wars!" }, + // { "survival_shuffle_3wk3_16", "vamos rey del aire" }, + // { "survival_shuffle_3wk3_17", "Shogun's Arena" }, + // { "survival_shuffle_3wk3_18", "聖帝導夢ランボー!" }, + // { "survival_shuffle_3wk3_19", "Test Survival" }, + // { "survival_shuffle_3wk3_20", "Blunder Barge" }, + // { "survival_shuffle_3wk3_21", "Ring Off" }, + // { "survival_shuffle_3wk3_22", "âpre pélutant" }, + // { "survival_shuffle_3wk3_23", "Arena Nocaute Ultimate" }, + // { "survival_shuffle_3wk3_24", "Bataille au ²" }, + // { "survival_shuffle_3wk3_25", "Bom Bom Do" }, + // { "survival_shuffle_3wk3_26", "Super Smash Beans 2!" }, + // { "survival_shuffle_3wk3_27", "VOLLEY BRAWL!" }, + // { "survival_shuffle_3wk3_28", "Bamblast!" }, + // { "survival_shuffle_3wk3_29", "Extreme Block Party" }, + // { "survival_shuffle_3wk3_30", "Colisel da insegurança" }, + // { "survival_shuffle_3wk3_31", "hex-a-climb" }, + // { "survival_shuffle_3wk3_32", "Hex-a-lowercase t" }, + // { "survival_shuffle_3wk3_33", "Beta Jinxed" }, + // { "survival_shuffle_3wk3_34", "The flood" }, + // { "survival_shuffle_3wk3_35", "Explosive kraken!" }, + // { "survival_shuffle_3wk3_36", "Bean Abduction" }, + // { "survival_shuffle_3wk3_37", "blast fall X" }, + // { "survival_shuffle_3wk3_38", "HexaBoom" }, + // { "survival_shuffle_3wk3_39", "グラグラ足場" }, + // { "survival_shuffle_3wk3_40", "Floor-Fall-Survival" }, + // { "survival_shuffle_3wk3_41", "Batalha TRI-unFall" }, + // { "survival_shuffle_3wk3_42", "Détonation arc en ciel" }, + // { "survival_shuffle_3wk3_43", "Rustic Jungle" }, + // { "survival_shuffle_3wk3_44", "SLIME BLOCK PARTY" }, + // { "survival_shuffle_3wk3_45", "チーム(すもう)サバイバル!" }, + // { "survival_shuffle_3wk3_46", "Hex-apple" }, + // { "survival_shuffle_3wk3_47", "Aggro-Crag" }, + // { "survival_shuffle_3wk3_48", "Frenzied Factory" }, + // { "survival_shuffle_3wk3_49", "AIR BATTLE" }, + // { "survival_shuffle_3wk3_50", "The Bean-rena" }, + // { "survival_shuffle_3wk3_51", "Hex-A-Joust" }, + // { "survival_shuffle_3wk3_52", "Lake in the mountains" }, + // { "survival_shuffle_3wk3_53", "Tronco Gigante" }, + // { "survival_shuffle_3wk3_54", "Whirling Arena" }, + // { "survival_shuffle_3wk3_55", "Block Battle - Survive" }, + // { "survival_shuffle_3wk3_56", "Hot Shots" }, + // { "survival_shuffle_3wk3_57", "Gladiators" }, + // { "survival_shuffle_3wk3_58", "The Falliseum" }, + // { "survival_shuffle_3wk3_59", "Blast Chaos" }, + // { "survival_shuffle_3wk3_60", "Blast Ball Reveal" }, + // { "survival_shuffle_3wk3_61", "終末列車" }, + // { "survival_shuffle_3wk3_62", "Kraken x balls x boxing" }, + // { "survival_shuffle_3wk3_63", "Gum survival" }, + // { "survival_shuffle_3wk3_64", "スライム研究室" }, + // { "survival_shuffle_3wk3_65", "BEAN’S FIRST MATH TEST" }, + // { "survival_shuffle_3wk3_66", "Fight Land" }, + // { "survival_shuffle_3wk3_67", "Colour switch" }, + // { "survival_shuffle_3wk3_68", "Fall Royale" }, + // { "survival_shuffle_3wk3_69", "デジタルランティス" }, + // { "survival_shuffle_3wk3_70", "MAME RING" }, + // { "survival_shuffle_3wk3_71", "detonates atlantis" }, + // { "survival_shuffle_3wk3_72", "Flower Punch" }, + // { "survival_shuffle_3wk3_73", "Wobbly arena" }, + // { "survival_shuffle_3wk3_74", "TURMOIL--POWER UP PANIC" }, + // { "survival_shuffle_3wk3_75", "Why is it Spicy" }, + // { "survival_shuffle_3wk3_76", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_3wk3_77", "Slime Crater" }, + // { "survival_shuffle_3wk3_78", "ボタンコンフュージョン" }, + // { "survival_shuffle_3wk3_79", "tournement de couleur" }, + // { "survival_shuffle_3wk3_80", "Boxeo V69" }, + // { "survival_shuffle_3wk3_81", "fall in a storm" }, + // { "survival_shuffle_3wk3_82", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_3wk3_83", "Rebellion of block ver2" }, + // { "survival_shuffle_3wk3_86", "怒りのすとんぴんぐ・ぐらうんど" }, + // { "survival_shuffle_3wk3_87", "Jump Show Fall" }, + // { "survival_shuffle_3wk3_88", "カウントブロック" }, + // { "survival_shuffle_3wk3_89", "Hex-A-Lava" }, + // { "survival_shuffle_3wk3_90", "Mario" }, + // { "survival_shuffle_3wk3_91", "Magma Meltdown" }, + // { "survival_shuffle_3wk3_92", "ROOFTOP RUMBLE!" }, + // { "survival_shuffle_3wk3_93", "émoussement arc en ciel" }, + // { "survival_shuffle_3wk3_94", "Fall And Round" }, + // { "survival_shuffle_3wk3_95", "深空蜂窝" }, + // { "survival_shuffle_3wk3_96", "Pokémon Stadium" }, + // { "survival_shuffle_3wk3_97", "Safari survival" }, + // { "survival_shuffle_3wk3_98", "Slime Playground" }, + // { "survival_shuffle_3wk3_99", "Hexagonal Fadeout" }, + // { "survival_shuffle_3wk3_100", "ランダムエッグスイッチアクション" }, + // + // { "wle_shuggle_mwk3_01", "Ariko Jones" }, + // { "wle_shuggle_mwk3_02", "Triple Trial" }, + // { "wle_shuggle_mwk3_03", "Aerial Squirrel" }, + // { "wle_shuggle_mwk3_04", "ギリギリアウトチャレンジ公式競技場 1" }, + // { "wle_shuggle_mwk3_05", "シンスモウ(ブラストボール)" }, + // { "wle_shuggle_mwk3_06", "Winter Wallop" }, + // { "wle_shuggle_mwk3_07", "リリーリーパー再現" }, + // { "wle_shuggle_mwk3_08", "Wilderness Adventures!" }, + // { "wle_shuggle_mwk3_09", "Rets arc en ciel" }, + // { "wle_shuggle_mwk3_10", "egypt park" }, + // { "wle_shuggle_mwk3_11", "Green Mountain" }, + // { "wle_shuggle_mwk3_12", "super speedrun" }, + // { "wle_shuggle_mwk3_13", "ULTRA MEGA EXTREME HARD!!!" }, + // { "wle_shuggle_mwk3_14", "Заурядные Белки" }, + // { "wle_shuggle_mwk3_15", "Digital keyboard 😜✌️" }, + // { "wle_shuggle_mwk3_16", "artistic ELIMINATED challenge 1" }, + // { "wle_shuggle_mwk3_17", "TAKOのツボ" }, + // { "wle_shuggle_mwk3_18", "Jumping Season" }, + // { "wle_shuggle_mwk3_19", "Black" }, + // { "wle_shuggle_mwk3_20", "Digital Climb 3 ~Rainbow~" }, + // { "wle_shuggle_mwk3_21", "Volcanic Island Travel!" }, + // { "wle_shuggle_mwk3_22", "Sky Ball" }, + // { "wle_shuggle_mwk3_23", "Space Race Remake" }, + // { "wle_shuggle_mwk3_24", "危険なリス" }, + // { "wle_shuggle_mwk3_25", "Summer and the Wonder land of the Sea" }, + // { "wle_shuggle_mwk3_26", "Skim City" }, + // { "wle_shuggle_mwk3_27", "Prova do campeão (Champion Round)" }, + // { "wle_shuggle_mwk3_28", "Жёлтые Нарвалы" }, + // { "wle_shuggle_mwk3_29", "Tropical Punch" }, + // { "wle_shuggle_mwk3_30", "away from the slime" }, + // { "wle_shuggle_mwk3_31", "キョダイMAX黒き天空龍!PFNo02" }, + // { "wle_shuggle_mwk3_32", "Yellow Kingdoms" }, + // { "wle_shuggle_mwk3_33", "Milky way" }, + // { "wle_shuggle_mwk3_34", "SPACE ROUND" }, + // { "wle_shuggle_mwk3_35", "Speedy Bounces" }, + // { "wle_shuggle_mwk3_36", "Snow Style" }, + // { "wle_shuggle_mwk3_37", "bunny leapers V8" }, + // { "wle_shuggle_mwk3_38", "Mushroom" }, + // { "wle_shuggle_mwk3_39", "Data Dash" }, + // { "wle_shuggle_mwk3_40", "RUTA EN LA SELVA" }, + // { "wle_shuggle_mwk3_41", "Button infected desert temple" }, + // { "wle_shuggle_mwk3_42", "Carreira colorida" }, + // { "wle_shuggle_mwk3_43", "Cargo Drop" }, + // { "wle_shuggle_mwk3_44", "green dash" }, + // { "wle_shuggle_mwk3_45", "Jungle Guys" }, + // { "wle_shuggle_mwk3_46", "Golden gates" }, + // { "wle_shuggle_mwk3_47", "Evil Guys" }, + // { "wle_shuggle_mwk3_48", "Orange And Blue Leapers" }, + // { "wle_shuggle_mwk3_49", "Plinko Fall" }, + // { "wle_shuggle_mwk3_50", "Digital Bean Stumble (V2)" }, + // { "wle_shuggle_mwk3_51", "Estareo's Lele Lembe v9" }, + // { "wle_shuggle_mwk3_52", "THE GATE OF TRUTH" }, + // { "wle_shuggle_mwk3_53", "Flutter-by!" }, + // { "wle_shuggle_mwk3_54", "Sketchy Sledding!" }, + // { "wle_shuggle_mwk3_55", "A Cold Race" }, + // { "wle_shuggle_mwk3_56", "X-Treme MegaKaizo Ultra Fall GuysHardest" }, + // { "wle_shuggle_mwk3_57", "Snow Speed" }, + // { "wle_shuggle_mwk3_58", "Bean Fantasy" }, + // { "wle_shuggle_mwk3_59", "Runner(For Fame Pass)" }, + // { "wle_shuggle_mwk3_60", "French Station" }, + // { "wle_shuggle_mwk3_61", "slime climb Creative" }, + // { "wle_shuggle_mwk3_62", "CLASSROOM(PART 2)" }, + // { "wle_shuggle_mwk3_63", "Chilly Leapers" }, + // { "wle_shuggle_mwk3_64", "Fall Bridge" }, + // { "wle_shuggle_mwk3_65", "快感快速!!" }, + // { "wle_shuggle_mwk3_66", "Jungle Guys II" }, + // { "wle_shuggle_mwk3_67", "コズミックミュージック COSMIC MUSIC" }, + // { "wle_shuggle_mwk3_68", "Satellite Sprint" }, + // { "wle_shuggle_mwk3_69", "GROOVIN’ BANANA TEMPLE" }, + // { "wle_shuggle_mwk3_70", "Rumble Tumble" }, + // { "wle_shuggle_mwk3_71", "Fashion Show!" }, + // { "wle_shuggle_mwk3_72", "DROP TOWER 蹦极塔" }, + // { "wle_shuggle_mwk3_73", "Boggle-Bean Bridges" }, + // { "wle_shuggle_mwk3_74", "AquArsene" }, + // { "wle_shuggle_mwk3_75", "Winter Games" }, + // { "wle_shuggle_mwk3_76", "LOONEY TUNES" }, + // { "wle_shuggle_mwk3_77", "atlan-sprint" }, + // { "wle_shuggle_mwk3_78", "Koala kingdom" }, + // { "wle_shuggle_mwk3_79", "straight500" }, + // { "wle_shuggle_mwk3_80", "BIG CROWN MONUMENT" }, + // { "wle_shuggle_mwk3_81", "Lily River Run" }, + // { "wle_shuggle_mwk3_82", "Skyball" }, + // { "wle_shuggle_mwk3_83", "STARLIGHT STUMBLE" }, + // { "wle_shuggle_mwk3_84", "Speedway 2069" }, + // { "wle_shuggle_mwk3_85", "GOLD RUSH" }, + // { "wle_shuggle_mwk3_86", "Data Eraser" }, + // { "wle_shuggle_mwk3_87", "FESTIVE CROSSROADS" }, + // { "wle_shuggle_mwk3_88", "Rainbow highway" }, + // { "wle_shuggle_mwk3_89", "Candyland" }, + // { "wle_shuggle_mwk3_90", "hex-a-run" }, + // { "wle_shuggle_mwk3_91", "Rover Rumble" }, + // { "wle_shuggle_mwk3_92", "MEOW MEOW GALAXY" }, + // { "wle_shuggle_mwk3_93", "Speedy Lovers" }, + // { "wle_shuggle_mwk3_94", "THE Rivalry Game (Football)" }, + // { "wle_shuggle_mwk3_95", "MARIPEN PHOTOLOCATION(Digital)" }, + // { "wle_shuggle_mwk3_96", "Olympique Guys" }, + // { "wle_shuggle_mwk3_97", "Boo City" }, + // { "wle_shuggle_mwk3_98", "CARNIVORUS PLANTS" }, + // { "wle_shuggle_mwk3_99", "はしるまくれ!⊂{◎Å◎}⊃" }, + // { "wle_shuggle_mwk3_100", "Crazy Coaster" }, + // + // { "playful_refresh_w2_01", "Winter Wallop" }, + // { "playful_refresh_w2_02", "Multi Leaper" }, + // { "playful_refresh_w2_03", "ストレートスタンブル" }, + // { "playful_refresh_w2_04", "RUN RUN Park" }, + // { "playful_refresh_w2_05", "やってみな!" }, + // { "playful_refresh_w2_06", "ごちゃごちゃストリート" }, + // { "playful_refresh_w2_07", "Conveyors Obstacles" }, + // { "playful_refresh_w2_08", "Seeing The Bean Ball" }, + // { "playful_refresh_w2_09", "Green Mountain" }, + // { "playful_refresh_w2_10", "Ancient Fallstronomers" }, + // { "playful_refresh_w2_11", "Jumping Season" }, + // { "playful_refresh_w2_12", "Track attackers system" }, + // { "playful_refresh_w2_13", "CASTLE CLASH" }, + // { "playful_refresh_w2_14", "The Terrible Spiral Of Woo Remake" }, + // { "playful_refresh_w2_15", "Rainbow Dash" }, + // { "playful_refresh_w2_16", "TruPixel's Jungle Mash-up" }, + // { "playful_refresh_w2_17", "fall-in space" }, + // { "playful_refresh_w2_18", "Monochromatic Manic" }, + // { "playful_refresh_w2_19", "Adrenaline Force 2" }, + // { "playful_refresh_w2_20", "DIGITAL MADNESS" }, + // { "playful_refresh_w2_21", "Data Dash" }, + // { "playful_refresh_w2_22", "Caida resbaladisa" }, + // { "playful_refresh_w2_23", "Snow Mountain" }, + // { "playful_refresh_w2_24", "Orange And Blue Leapers" }, + // { "playful_refresh_w2_25", " Wild Dunes" }, + // { "playful_refresh_w2_26", "Blundercity Marathon" }, + // { "playful_refresh_w2_27", "Pocket Summit" }, + // { "playful_refresh_w2_28", "Love a day" }, + // { "playful_refresh_w2_29", "Passage imbroglio arc en ciel" }, + // { "playful_refresh_w2_30", "Fall Stars" }, + // { "playful_refresh_w2_31", "SPRING MOUNTAIN" }, + // { "playful_refresh_w2_32", "AquArsene" }, + // { "playful_refresh_w2_33", "Rainbow Riptide" }, + // { "playful_refresh_w2_34", "Cluster Cosmos" }, + // { "playful_refresh_w2_35", "Koala kingdom" }, + // { "playful_refresh_w2_36", "Fallyager 12 Repair Mission" }, + // { "playful_refresh_w2_37", "Lily River Run" }, + // { "playful_refresh_w2_38", "STARLIGHT STUMBLE" }, + // { "playful_refresh_w2_39", "Welcome to Namek" }, + // { "playful_refresh_w2_40", "Rainbow highway" }, + // { "playful_refresh_w2_41", "Past passage" }, + // { "playful_refresh_w2_42", "Neon pipe run" }, + // { "playful_refresh_w2_43", "NAUTICAL SHAMBLE" }, + // + // { "wle_mrs_winter_opener_01", "Winter Blunderland" }, + // { "wle_mrs_winter_opener_02", "Frosty fiesta" }, + // { "wle_mrs_winter_opener_03", "Knight Slide" }, + // { "wle_mrs_winter_opener_04", "Digi-Snow Stumble" }, + // { "wle_mrs_winter_opener_05", "Snowy Cave-in" }, + // { "wle_mrs_winter_opener_06", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "wle_mrs_winter_opener_07", "A Cold Race" }, + // { "wle_mrs_winter_opener_08", "Ice Rock" }, + // { "wle_mrs_winter_filler_01", "Snowy Flakes" }, + // { "wle_mrs_winter_filler_02", "Mountain of Ice" }, + // { "wle_mrs_winter_filler_03", "FROSTY FUMBLE" }, + // { "wle_mrs_winter_filler_04", "Winter Getaway" }, + // { "wle_mrs_winter_filler_05", "Snowy Speed Sprint" }, + // { "wle_mrs_winter_filler_06", "WINTER WONDERLAND" }, + // { "wle_mrs_winter_filler_07", "Gran Glaciar Paradicial" }, + // { "wle_mrs_winter_final_01", "The Ice Dragon's Lair" }, + // { "wle_mrs_winter_final_02", "Winter Wonderland" }, + // { "wle_mrs_winter_final_03", "Snowman Sprint" }, + // { "wle_mrs_winter_final_04", "MERRY CLIMBING!" }, + // { "wle_mrs_winter_final_05", "Winter Wonderland" }, + // + // { "wle_s10_cf_round_001", "Blocky Bridges" }, + // { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + // { "wle_s10_cf_round_003", "Drop n' Drag" }, + // { "wle_s10_cf_round_004", "Fun with Fans" }, + // + // { "wle_s10_bt_round_001", "Push Ups" }, + // { "wle_s10_bt_round_002", "Heave & Haul" }, + // { "wle_s10_bt_round_003", "Stepping Stones" }, + // { "wle_s10_bt_round_004", "Double Trouble" }, + // + // { "wle_mrs_bagel_opener_1", "Tunnel of Love" }, + // { "wle_mrs_bagel_opener_2", "Pink Parade" }, + // { "wle_mrs_bagel_opener_3", "Prideful Path" }, + // { "wle_mrs_bagel_opener_4", "Coming Together" }, + // { "wle_mrs_bagel_filler_1", "Clifftop Capers" }, + // { "wle_mrs_bagel_filler_2", "Waveway Splits" }, + // { "wle_mrs_bagel_filler_3", "In the Groove" }, + // { "wle_mrs_bagel_filler_4", "Heartfall Heat" }, + // { "wle_mrs_bagel_final_1", "Rainbow Rise" }, + // { "wle_mrs_bagel_final_2", "Out and About" }, + // + // { "wle_mrs_bouncy_bean_time_opener", "Frosty Frolics" }, + // { "wle_mrs_bouncy_bean_time_opener_02", "roll roll bean" }, + // { "wle_mrs_bouncy_bean_time_opener_03", "SPEEDROLLING" }, + // { "wle_mrs_bouncy_bean_time_filler", "Ball Park" }, + // { "wle_mrs_bouncy_bean_time_filler_02", "Ball Carnival" }, + // { "wle_mrs_bouncy_bean_time_filler_03", "Spiral Trial" }, + // { "wle_mrs_bouncy_bean_time_filler_04", "Golf Fall" }, + // { "wle_mrs_bouncy_bean_time_final", "Downtown Rush" }, + // { "wle_mrs_bouncy_bean_time_final_02", "Skyview Derby" }, + // { "wle_mrs_bouncy_bean_time_final_03", "Rolling Speedway" }, + // { "wle_mrs_bouncy_bean_time_final_04", "SEA FLOW!" }, + } + }, + { Language.Japanese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "round_airtime", "エアータイム" }, + { "round_bluejay", "ジェリービーンズヒルゾーン" }, + { "round_biggestfan", "大ファン" }, + { "round_hoops_revenge_symphony_launch_show", "バウンスパーティー" }, + { "round_king_of_the_hill", "バブルトラブル" }, + { "round_1v1_button_basher", "ボタンバッシャーズ" }, + { "round_satellitehoppers_almond", "コズミックハイウェイ" }, + { "round_door_dash", "ドアダッシュ" }, + { "round_gauntlet_02", "スピンレース" }, + { "round_ffa_button_bashers_squads_almond", "ハチャメチャファクトリー" }, + { "round_iceclimb", "ブルブル登山" }, + { "round_dodge_fall", "フルーツパニック" }, + { "round_see_saw_360", "フルティルト" }, + { "round_chompchomp", "ゲートクラッシュ" }, + { "round_gauntlet_01", "ヒットパレード" }, + { "round_slippy_slide", "リングシュート" }, + { "round_hoops_blockade_solo", "フープ・ループ・レジェンド" }, + { "round_gauntlet_04", "ナイト・フィーバー" }, + { "round_follow-the-leader_s6_launch", "動くスポットライト" }, + { "round_drumtop", "リリー・リーパー" }, + { "round_gauntlet_08", "パーティープロムナード" }, + { "round_penguin_solos", "ペンギンプールパーティー" }, + { "round_pipedup_s6_launch", "パイプドリーム" }, + { "round_pixelperfect_almond", "ピクセル名人" }, + { "round_follow_the_line", "パズルパス" }, + { "round_tunnel_race", "ロールオン" }, + { "round_see_saw", "シーソーゲーム" }, + { "round_shortcircuit", "ショート・サーキット" }, + { "round_skeefall", "スキーフォール" }, + { "round_gauntlet_06", "スカイライン・スタンブル" }, + { "round_lava", "スライム・クライム" }, + { "round_slimeclimb_2", "スライムスクレイパー" }, + { "round_gauntlet_10_almond", "スペースレース" }, + { "round_slide_chute", "スピードスライダー" }, + { "round_short_circuit_2_symphony_launch_show", "スピードサーキット" }, + { "round_starlink_almond", "星空マップ" }, + { "round_tip_toe", "ヒヤヒヤロード" }, + { "round_gauntlet_09_symphony_launch_show", "トラックアタック" }, + { "round_gauntlet_07", "ツリートップ・タンブル" }, + { "round_gauntlet_05", "ツンドラダッシュ" }, + { "round_gauntlet_03", "ぐるぐるファイト" }, + { "round_wall_guys", "ウォール ガイズ" }, + { "round_fruitpunch_s4_show", "ビッグショット" }, + { "round_blastballruins", "ブラストランティス" }, + { "round_block_party", "ブロックパーティー" }, + { "round_hoverboardsurvival_s4_show", "ホバーボード・ヒーローズ" }, + { "round_hoverboardsurvival2_almond", "ハイパードライブ・ヒーロー" }, + { "round_jump_club", "ジャンプクラブ" }, + { "round_match_fall", "パーフェクトマッチ" }, + { "round_tunnel", "ロールアウト" }, + { "round_snowballsurvival", "雪玉サバイバル" }, + { "round_robotrampage_arena_2", "ストンピング・グラウンド" }, + { "round_fruit_bowl", "カウントフルーツ" }, + { "round_tail_tag", "しっぽオニ" }, + { "round_spin_ring_symphony_launch_show", "リングスピナー" }, + { "round_1v1_volleyfall_symphony_launch_show", "バレーフォール" }, + { "round_basketfall_s4_show", "バスケットフォール" }, + { "round_egg_grab", "エッグ・スクランブル" }, + { "round_egg_grab_02", "エッグ・キャッスル" }, + { "round_fall_ball_60_players", "フォールボール" }, + { "round_ballhogs", "ためこみ合戦" }, + { "round_hoops", "フープ・ループ・ゴール" }, + { "round_jinxed", "バッドラック" }, + { "round_chicken_chase", "ペンギンチェイス" }, + { "round_territory_control_s4_show", "パワートリップ" }, + { "round_rocknroll", "ロックンロール" }, + { "round_snowy_scrap", "スノースクラップ" }, + { "round_invisibeans", "キャンディードロボー" }, + { "round_pumpkin_pie", "お菓子ドロボー" }, + { "round_conveyor_arena", "チームしっぽオニ" }, + { "round_blastball_arenasurvival_symphony_launch_show", "ブラストボール" }, + { "round_fall_mountain_hub_complete", "クラウンマウンテン" }, + { "round_floor_fall", "止まるなキケン" }, + { "round_hexaring_symphony_launch_show", "リングのノロイ" }, + { "round_hexsnake_almond", "止まるなキケンスペース" }, + { "round_jump_showdown", "ジャンプ・ショーダウン" }, + { "round_kraken_attack", "クラーケンスラム" }, + { "round_crown_maze", "ロストテンプル" }, + { "round_tunnel_final", "ロールオフ" }, + { "round_royal_rumble", "ロイヤルファンブル" }, + { "round_thin_ice", "パキパキアイス" }, + { "round_tiptoefinale_almond", "ヒヤヒヤロードファイナル" }, + + { "user_creative_race_round", "ユーザー・クリエイティブ・レースラウンド" }, + { "user_creative_survival_round", "ユーザー・クリエイティブ・サバイバルラウンド" }, + { "user_creative_hunt_round", "ユーザー・クリエイティブ・ポイントラウンド" }, + { "user_creative_logic_round", "ユーザー・クリエイティブ・論理ラウンド" }, + { "user_creative_team_round", "ユーザー・クリエイティブ・チームラウンド" }, + { "creative_race_round", "クリエイティブ・レースラウンド" }, + { "creative_race_final_round", "クリエイティブ・レース 最終戦" }, + { "creative_survival_round", "クリエイティブ・サバイバルラウンド" }, + { "creative_survival_final_round", "クリエイティブ・サバイバル 最終戦" }, + { "creative_hunt_round", "クリエイティブ・ハントラウンド" }, + { "creative_hunt_final_round", "クリエイティブ・ハント 最終戦" }, + { "creative_logic_round", "クリエイティブ・論理ラウンド" }, + { "creative_logic_final_round", "クリエイティブ・論理 最終戦" }, + { "creative_team_round", "クリエイティブ・チームラウンド" }, + { "creative_team_final_round", "クリエイティブ・チーム 最終戦" }, + + // { "wle_main_filler_01", "Ruta en la selva" }, + // { "wle_main_filler_02", "ROTATION STATION" }, + // { "wle_main_filler_03", "canyon sun day" }, + // { "wle_main_opener_01", "Winter Disc-O" }, + // { "wle_main_opener_02", "Satellite Sprint" }, + // + // { "wle_s10_orig_round_001", "Beans Ahoy!" }, + // { "wle_s10_orig_round_002", "Airborne Antics" }, + // { "wle_s10_orig_round_003", "Scythes & Roundabouts" }, + // { "wle_s10_orig_round_004", "Cardio Runners" }, + // { "wle_s10_orig_round_005", "Fan Flingers" }, + // { "wle_s10_orig_round_006", "Uphill Struggle" }, + // { "wle_s10_orig_round_007", "Spinner Sprint" }, + // { "wle_s10_orig_round_008", "Lane Changers" }, + // { "wle_s10_orig_round_009", "Gentle Gauntlet" }, + // { "wle_s10_orig_round_010", "Square Up" }, + // { "wle_s10_orig_round_011", "Slide Showdown" }, + // { "wle_s10_orig_round_012", "Up & Down" }, + // { "wle_s10_orig_round_013", "Choo Choo Challenge" }, + // { "wle_s10_orig_round_014", "Runner Beans" }, + // { "wle_s10_orig_round_015", "Disc Dashers" }, + // { "wle_s10_orig_round_016", "Two Faced" }, + // { "wle_s10_orig_round_017", "Bellyflop Battlers" }, + // { "wle_s10_orig_round_018", "Apples & Oranges" }, + // { "wle_s10_orig_round_019", "Blueberry Bombardment" }, + // { "wle_s10_orig_round_020", "Chuting Stars" }, + // { "wle_s10_orig_round_021", "Slimy Slopes" }, + // { "wle_s10_orig_round_022", "Circuit Breakers" }, + // { "wle_s10_orig_round_023", "Winding Walkways" }, + // { "wle_s10_orig_round_024", "Wooseleum" }, + // { "wle_s10_orig_round_025", "Mount Boom" }, + // { "wle_s10_orig_round_026", "Hyperlink Hijinks" }, + // { "wle_s10_orig_round_027", "Fan Frolics" }, + // { "wle_s10_orig_round_028", "Windmill Road" }, + // { "wle_s10_orig_round_029", "Conveyor Clash" }, + // { "wle_s10_orig_round_030", "Mega Monument" }, + // { "wle_s10_orig_round_031", "Transfer Turnpike" }, + // { "wle_s10_orig_round_032", "Fortress Frolics" }, + // { "wle_s10_orig_round_033", "Super Door Dash" }, + // { "wle_s10_orig_round_034", "Spiral Of Woo" }, + // { "wle_s10_orig_round_035", "Tornado Trial" }, + // { "wle_s10_orig_round_036", "Hopscotch Havoc" }, + // { "wle_s10_orig_round_037", "Beat Bouncers" }, + // { "wle_s10_orig_round_038", "Blunder Bridges" }, + // { "wle_s10_orig_round_039", "Incline Rewind" }, + // { "wle_s10_orig_round_040", "Prismatic Parade" }, + // { "wle_s10_orig_round_041", "Swept Away" }, + // { "wle_s10_orig_round_042", "Balancing Act" }, + // { "wle_s10_orig_round_043", "Trouble Tower" }, + // { "wle_s10_orig_round_044", "Serpent Slalom" }, + // { "wle_s10_orig_round_045", "Floorless" }, + // { "wle_s10_orig_round_045_long", "Floorless" }, + // { "wle_s10_orig_round_046", "In The Cloud" }, + // { "wle_s10_orig_round_047", "Downstream Duel" }, + // { "wle_s10_orig_round_048", "Lost Palace" }, + // { "wle_s10_long_round_003", "Fall Speedway" }, + // { "wle_s10_long_round_004", "ZigZag Zoomies" }, + // { "wle_s10_long_round_005", "Terrabyte Trial" }, + // { "wle_s10_round_001", "Digi Trek" }, + // { "wle_s10_round_002", "Shortcut Links" }, + // { "wle_s10_round_003", "Upload Heights" }, + // { "wle_s10_round_004", "Parkour Panic" }, + // { "wle_s10_round_005", "Data Streams" }, + // { "wle_s10_round_006", "Gigabyte Gauntlet" }, + // { "wle_s10_round_007", "Cube Corruption" }, + // { "wle_s10_round_008", "Wham Bam Boom" }, + // { "wle_s10_round_009", "Firewall Finale" }, + // { "wle_s10_round_010", "Pixel Hearts" }, + // { "wle_s10_round_011", "Cyber Circuit" }, + // { "wle_s10_round_012", "Boom Blaster Trial" }, + // + // { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + // { "wle_s10_player_round_wk3_02", "Door Game" }, + // { "wle_s10_player_round_wk3_03", "Full Speed Sliding (FSS) - Jelly Road" }, + // { "wle_s10_player_round_wk3_04", "Sky High Run" }, + // { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + // { "wle_s10_player_round_wk3_07", "Descente Créative" }, + // { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + // { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + // { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + // { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + // { "wle_s10_player_round_wk3_12", "Variable Valley" }, + // { "wle_fp2_wk6_01", "Broken Course" }, + // { "wle_s10_player_round_wk3_14", "Tower of Fall" }, + // { "wle_s10_player_round_wk3_15", "Parkour Party" }, + // { "wle_s10_player_round_wk3_16", "Catastrophe Climb" }, + // { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + // { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + // { "wle_s10_player_round_wk3_19", "Sky Time" }, + // { "wle_s10_player_round_wk3_20", "EZz Map" }, + // + // { "wle_s10_player_round_wk4_01", "Slippery Stretch" }, + // { "wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + // { "wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + // { "wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + // { "wle_s10_player_round_wk4_06", "Topsie Tursie" }, + // { "wle_s10_player_round_wk4_07", "Arcade Assault" }, + // { "wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + // { "wle_s10_player_round_wk4_09", "Green Beans" }, + // { "wle_s10_player_round_wk4_10", "Hop Hill" }, + // { "wle_s10_player_round_wk4_11", "Quick Sliders" }, + // { "wle_s10_player_round_wk4_12", "Split Path" }, + // { "wle_s10_player_round_wk4_13", "Piso resbaloso" }, + // { "wle_s10_player_round_wk4_15", "Snowboard Street" }, + // { "wle_s10_player_round_wk4_18", "House Invasion" }, + // { "wle_s10_player_round_wk4_19", "SOLO FULL-TILT RAGE" }, + // { "wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + // { "wle_s10_player_round_wk4_21", "Spin" }, + // { "wle_s10_player_round_wk4_22", "Lane Changers" }, + // + // { "wle_s10_player_round_wk5_01", "Block Park" }, + // { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + // { "wle_s10_player_round_wk5_03", "Digital Temple" }, + // { "wle_s10_player_round_wk5_04", "Tower Escape" }, + // { "wle_s10_player_round_wk5_05", "Tower Dash" }, + // { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + // { "wle_s10_player_round_wk5_07", "Looooping" }, + // { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + // { "wle_s10_player_round_wk5_10", "Siank Arena" }, + // { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + // { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + // { "wle_s10_player_round_wk5_13", "Dessert Village" }, + // { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + // { "wle_s10_player_round_wk5_15", "Beast Route" }, + // { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + // { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + // { "wle_s10_player_round_wk5_18", "Digital Doom" }, + // + // { "wle_s10_player_round_wk6_01", "Hammer Heaven" }, + // { "wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + // { "wle_s10_player_round_wk6_03", "Castle Rush" }, + // { "wle_s10_player_round_wk6_04", "Chaotic Race" }, + // { "wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + // { "wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + // { "wle_s10_player_round_wk6_08", "Flower Power" }, + // { "wle_s10_player_round_wk6_09", "Dimension Explorer" }, + // { "wle_s10_player_round_wk6_10", "Forked Passage" }, + // { "wle_s10_player_round_wk6_12", "The Bee Hive" }, + // { "wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + // { "wle_s10_player_round_wk6_14", "Snek" }, + // { "wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + // { "wle_s10_player_round_wk6_17", "Slippery Helixes" }, + // { "wle_s10_player_round_wk6_18", "Recess" }, + // { "wle_s10_player_round_wk6_19", "Parrot river" }, + // { "wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + // + // { "current_wle_fp3_07_01", "Block Sledding" }, + // { "current_wle_fp3_07_02", "Layup Wallop" }, + // { "current_wle_fp3_07_03", "Minecart Mayhem" }, + // { "current_wle_fp3_07_04", "Bouncing Pass" }, + // { "current_wle_fp3_07_05", "Ball Factory" }, + // { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + // { "current_wle_fp3_07_0_02", "Woo-F-O" }, + // { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + // + // { "current_wle_fp3_08_01", "Grabbers Territory" }, + // { "current_wle_fp3_08_02", "A Way Out" }, + // { "current_wle_fp3_08_03", "Wall Block" }, + // { "current_wle_fp3_08_04", "The dream island" }, + // { "current_wle_fp3_08_05", "Rainbow pulsion" }, + // { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + // { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + // { "current_wle_fp3_08_10", "Crazy boxes" }, + // { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + // { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + // { "current_wle_fp3_08_15", "Stumble Teams" }, + // { "current_wle_fp3_08_16", "Twisting Tower" }, + // { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + // { "current_wle_fp3_08_18", "The Rising Blocks" }, + // { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + // { "current_wle_fp3_09_01", "The up tower" }, + // { "current_wle_fp3_09_02", "Short shuriken" }, + // { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + // { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + // { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + // { "current_wle_fp3_09_06", "Random Heights" }, + // { "current_wle_fp3_09_07", "Climb scramble" }, + // { "current_wle_fp3_09_08", "Collide Gaming" }, + // { "current_wle_fp3_09_09", "Very Compressed Level" }, + // { "current_wle_fp3_09_0_01", "Slippery Slope" }, + // { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + // { "current_wle_fp3_09_0_03", "Free Falling" }, + // { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + // { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + // { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + // { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + // + // { "current_wle_fp3_10_01", "When Nature Falls" }, + // { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + // { "current_wle_fp3_10_03", "The Slime Trials" }, + // { "current_wle_fp3_10_04", "Friendly Obstacles" }, + // { "current_wle_fp3_10_05", "Climb and Fall" }, + // { "current_wle_fp3_10_06", "Stairs and some other things" }, + // { "current_wle_fp3_10_07", "Meowgical World" }, + // { "current_wle_fp3_10_08", "Polluelo Speed" }, + // { "current_wle_fp3_10_09", "Pixel Parade" }, + // { "current_wle_fp3_10_10", "Total Madness" }, + // { "current_wle_fp3_10_11", "The Abstract Maze" }, + // { "current_wle_fp3_10_12", "Fan Off" }, + // { "current_wle_fp3_10_13", "cloud highway" }, + // { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + // { "current_wle_fp3_10_15", "Speedrunners be like" }, + // { "current_wle_fp3_10_16", "Tumble Tower" }, + // { "current_wle_fp3_10_17", "Silver's Snake Run" }, + // { "current_wle_fp3_10_18", "Now Boarding" }, + // { "current_wle_fp3_10_19", "Slime Scale" }, + // { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + // { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + // { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + // { "current_wle_fp3_10_23", "Controlled Chaos" }, + // { "current_wle_fp3_10_24", "Xtreme Jumping" }, + // { "current_wle_fp3_10_25", "Odin" }, + // { "current_wle_fp3_10_26", "Ciudad nube" }, + // { "current_wle_fp3_10_27", "Bean Voyage" }, + // { "current_wle_fp3_10_28", "SLIP-SAW" }, + // { "current_wle_fp3_10_29", "Bbq bacon burger" }, + // + // { "current_wle_fp4_05_01_01", "巅峰车站" }, + // { "current_wle_fp4_05_01_02", "Beba Park 7" }, + // { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + // { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + // { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + // { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + // { "current_wle_fp4_05_02", "Mini only up" }, + // { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + // { "current_wle_fp4_05_03_02", "Remote Control" }, + // { "current_wle_fp4_05_03", "Parkway Slide" }, + // { "current_wle_fp4_05_04", "Duel Dash" }, + // { "current_wle_fp4_05_05", "beaten trackless road" }, + // { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + // { "current_wle_fp4_05_2_02", "arch city" }, + // { "current_wle_fp4_05_2_03", "Desert Ruins" }, + // + // { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + // { "current_wle_fp4_06_02", "Pachislo" }, + // { "current_wle_fp4_06_0_01", "AquArsene" }, + // { "current_wle_fp4_06_0_02", "RainbowCloud" }, + // { "current_wle_fp4_06_0_03", "Pink Cascade" }, + // { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + // { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + // { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + // { "current_wle_fp4_06_1_01", "Buggin' Out" }, + // { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + // { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + // { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + // { "current_wle_fp4_06_1_05", "The climb of Trials" }, + // { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + // + // { "current_wle_fp4_07_01", "Rotational Runner" }, + // { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + // { "current_wle_fp4_07_03", "simple stage" }, + // { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + // { "current_wle_fp4_07_05", "Factory Valley" }, + // { "current_wle_fp4_07_06", "Jumpy Beans" }, + // { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + // { "current_wle_fp4_07_0_01", "Camino Ninja" }, + // + // { "current_wle_fp4_08_01", "co-op guys" }, + // { "current_wle_fp4_08_0_01", "The big slide" }, + // { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + // { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + // { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + // { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + // { "current_wle_fp4_08_0_06", "X-Course" }, + // { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + // { "current_wle_fp4_08_1_01", "Boost in Dash" }, + // { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + // { "current_wle_fp4_08_1_03", "Giddy up!" }, + // { "current_wle_fp4_08_1_04", "Mad lab" }, + // { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + // { "current_wle_fp4_08_3_01", "The Oasis" }, + // + // { "current_wle_fp4_09_01", "Crate Collector" }, + // { "current_wle_fp4_09_02", "Dribble Drills" }, + // { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + // { "current_wle_fp4_09_04", "Skyline Park" }, + // { "current_wle_fp4_09_05", "Birthday bonanza" }, + // { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + // { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + // { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + // { "current_wle_fp4_09_1_02", "Haute voltige" }, + // { "current_wle_fp4_09_2_01", "DNA Test" }, + // + // { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + // { "current_wle_fp4_10_02", "Hot Blast" }, + // { "current_wle_fp4_10_03", "Box Fan Blitz" }, + // { "current_wle_fp4_10_04", "Woo-terfall Way" }, + // { "current_wle_fp4_10_05", "Slime race" }, + // { "current_wle_fp4_10_06", "Moving Day" }, + // { "current_wle_fp4_10_07", "Birthday Dash" }, + // { "current_wle_fp4_10_08_m", "Wall Breaker" }, + // { "current_wle_fp4_10_08", "Chess History" }, + // { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + // { "current_wle_fp4_10_12", "Chickens run away" }, + // { "current_wle_fp4_10_20", "Co-op and CO" }, + // { "current_wle_fp4_10_21", "Construction Site" }, + // { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + // { "current_wle_fp4_10_0_02", "Molehills" }, + // + // { "current_wle_fp5_2_01_01", "Plummet Summit" }, + // { "current_wle_fp5_2_01_02", "タワークライム" }, + // { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + // { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + // { "current_wle_fp5_2_01", "Jabonsotes" }, + // { "current_wle_fp5_2_02_01", "のっぽタワー" }, + // { "current_wle_fp5_2_02_02", "Blaster Course" }, + // { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + // { "current_wle_fp5_2_02_04", "The hard Climb" }, + // { "current_wle_fp5_2_02_05", "sliding guys" }, + // { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + // { "current_wle_fp5_2_02", "Rainbow highway" }, + // { "current_wle_fp5_2_03", "Falligator" }, + // { "current_wle_fp5_2_04_01", "Lily Lovers" }, + // { "current_wle_fp5_2_04_02", "rainow rode" }, + // { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_04_04", "Super crazy level" }, + // { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + // { "current_wle_fp5_2_05_01", "Level XVIII" }, + // { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + // { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_05_04", "rainbow roade" }, + // { "current_wle_fp5_2_05", "The tension Parkour" }, + // { "current_wle_fp5_2_06", "Stairing Contest" }, + // { "current_wle_fp5_2_07", "Vibrant Ascension" }, + // + // { "current_wle_fp5_3_05_01", "Beany Golf!" }, + // { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + // { "current_wle_fp5_4_01_01", "Tilted Walls" }, + // { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + // { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + // { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + // { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + // + // { "current_wle_fp5_10_01", "Breezy Buddies" }, + // { "current_wle_fp5_10_0_01", "Salto Plancha" }, + // { "current_wle_fp5_10_0_02", "My house" }, + // { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + // { "current_wle_fp5_10_1_01", "Desert Ruins" }, + // { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_01", "Desert Ruins" }, + // { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_03", "Mystic River" }, + // { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + // { "current_wle_fp5_10_2_05", "Cliffside" }, + // { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + // { "current_wle_fp5_10_2_07", "The Avenue" }, + // { "current_wle_fp5_10_2_08", "Gold City" }, + // { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + // { "current_wle_fp5_10_2_10", "初心者用コース" }, + // { "current_wle_fp5_10_2_11", "Chain Reaction" }, + // + // { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + // { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + // { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + // { "current_wle_fp5_wk3_1_04", "El airecito" }, + // { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + // { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + // { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + // { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + // { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + // { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + // { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + // { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + // { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + // { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + // { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + // + // { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + // { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + // { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + // { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + // { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + // { "current_wle_fp5_falloween_1_06", "Mirage" }, + // { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + // { "current_wle_fp5_falloween_1_08", "Toon World" }, + // { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + // { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + // { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + // { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + // { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + // { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + // { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + // { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + // { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + // { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + // { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + // { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + // { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + // { "current_wle_fp5_falloween_2_03_06", "Spider" }, + // { "current_wle_fp5_falloween_2_03", "fastoween" }, + // { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + // { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + // { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + // { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + // { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + // { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + // { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + // { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + // { "current_wle_fp5_falloween_4_05", "Scary Final" }, + // { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + // { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + // { "current_wle_fp5_falloween_4_08", "Catoween" }, + // { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + // { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + // { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + // { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + // { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + // { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + // { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + // { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + // { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + // { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + // { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + // { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + // { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + // { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + // { "current_wle_fp5_falloween_5_04", "Halloween" }, + // { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + // { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + // { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + // { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + // { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + // { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + // { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + // { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + // { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + // { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + // { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + // { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + // { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + // { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + // { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + // { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + // { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + // { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + // { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + // { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + // { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + // { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + // { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + // { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + // { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + // { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + // { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + // { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + // { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + // { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + // { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + // { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + // { "current_wle_fp5_falloween_9_02", "Raveyard" }, + // { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + // { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + // { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + // { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + // { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + // { "current_wle_fp5_falloween_11_01", "Night Runners" }, + // { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + // { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + // { "current_wle_fp5_falloween_13_01", "Witch Way" }, + // { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + // { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + // + // { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + // { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + // { "current_wle_fp6_1_03", "SKULL KING" }, + // { "current_wle_fp6_1_04", "shorter circuit" }, + // { "current_wle_fp6_1_05", "be speedy" }, + // { "current_wle_fp6_1_06", "Sky-City Stumble" }, + // { "current_wle_fp6_1_07", "Wormhole Mountain" }, + // { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + // { "current_wle_fp6_1_09", "Splitspeed" }, + // { "current_wle_fp6_1_10", "Fall Canyon" }, + // { "current_wle_fp6_2_01", "Valise" }, + // { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + // { "current_wle_fp6_2_03", "Water Way" }, + // { "current_wle_fp6_2_04", "The Doors of Doom" }, + // { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + // { "current_wle_fp6_2_06", "Liana Swings" }, + // { "current_wle_fp6_2_07", "Colourful" }, + // { "current_wle_fp6_2_08", "The Heist!" }, + // { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + // { "current_wle_fp6_3_01", "Tricky Treat" }, + // { "current_wle_fp6_3_02", "The Lighthouse" }, + // { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + // { "current_wle_fp6_3_04", "The Scarescraper" }, + // { "current_wle_fp6_3_05", "Obstacle Road" }, + // { "current_wle_fp6_3_06", "Rest In Paris" }, + // { "current_wle_fp6_3_07", "Horror pumpkim" }, + // { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + // + // { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + // { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + // { "current_wle_fp6_wk2_03", "Slidy Road" }, + // { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + // { "current_wle_fp6_wk2_05", "Lost in space" }, + // { "current_wle_fp6_wk2_06", "Turbine Decline" }, + // { "current_wle_fp6_wk2_07", "Zero Displacement" }, + // { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + // { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + // { "current_wle_fp6_wk2_10", "Neoway" }, + // { "current_wle_fp6_wk2_11", "Niagara Falls" }, + // { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + // { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + // { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + // { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + // { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + // { "current_wle_fp6_wk2_1_06", "Locomoção" }, + // { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + // { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + // { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + // + // { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + // { "current_wle_fp6_wk3_02", "Compact 5" }, + // { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + // { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + // { "current_wle_fp6_wk3_05", "Alto voltaje" }, + // { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + // { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + // { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + // { "current_wle_fp6_wk3_09", "Work and Travel" }, + // { "current_wle_fp6_wk3_10", "connect the bridge" }, + // { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + // { "current_wle_fp6_wk3_2_02", "speed demon" }, + // { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + // { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + // { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + // { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + // { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + // + // { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + // { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + // { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + // { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + // { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + // { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + // { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + // { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + // { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + // { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + // { "current_wle_fp6_wk4_03_05", "Snow Style" }, + // { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + // { "current_wle_fp6_wk4_05_01", "Rebound" }, + // { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + // { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + // + // { "current_wle_community_10_5_01", "Snowy Starfall" }, + // { "current_wle_community_10_5_02", "The Earthquake" }, + // { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + // { "current_wle_community_10_5_1_04", "Garden of Woo" }, + // { "current_wle_community_10_5_1_05", "Out in the open" }, + // { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + // { "current_wle_community_10_5_1_08", "Jungle Journey" }, + // { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + // { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + // { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + // { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + // { "current_wle_community_10_5_1_15", "Three Rooms" }, + // { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + // { "current_wle_community_10_5_1_17", "Winter Slide" }, + // { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + // + // { "wle_discover_level_wk2_001", "Castle in the Clouds" }, + // { "wle_discover_level_wk2_002", "Christmas corner!" }, + // { "wle_discover_level_wk2_003", "Hot Wheels 2069" }, + // { "wle_discover_level_wk2_004", "Bounce Back Racetrack" }, + // { "wle_discover_level_wk2_005", "Space Getaway" }, + // { "wle_discover_level_wk2_006", "fall mountain (糖豆山涧)" }, + // { "wle_discover_level_wk2_007", "伝説のポケモン!" }, + // { "wle_discover_level_wk2_008", "Knight Slide" }, + // { "wle_discover_level_wk2_009", "Christmas Run" }, + // { "wle_discover_level_wk2_010", "Labyrinth (1986) Part1" }, + // { "wle_discover_level_wk2_011", "Rebound" }, + // { "wle_discover_level_wk2_012", "Trip to Santa's home" }, + // { "wle_discover_level_wk2_013", "ピッピカチュ☆彡" }, + // { "wle_discover_level_wk2_014", "Rainbow Race" }, + // { "wle_discover_level_wk2_015", "Speed Suburbs" }, + // { "wle_discover_level_wk2_016", "SUPER MARIO WONDER" }, + // { "wle_discover_level_wk2_017", "Punching Bridges" }, + // { "wle_discover_level_wk2_018", "The Slimescrapper" }, + // { "wle_discover_level_wk2_019", "Snowy Flakes" }, + // { "wle_discover_level_wk2_020", "Foggy Freeway" }, + // { "wle_discover_level_wk2_021", "Snowy Climb" }, + // { "wle_discover_level_wk2_022", "snow athletic valley" }, + // { "wle_discover_level_wk2_023", "詰め込んだだけレース4" }, + // { "wle_discover_level_wk2_024", "Winter Wonder Sprint" }, + // { "wle_discover_level_wk2_025", "Randonnée Galactique" }, + // { "wle_discover_level_wk2_026", "Cloudy with a Chance of Cannonballs" }, + // { "wle_discover_level_wk2_027", "Digital Snowland" }, + // { "wle_discover_level_wk2_028", "Shiver Beans" }, + // { "wle_discover_level_wk2_029", "SanTama Run" }, + // { "wle_discover_level_wk2_030", "Winter Run" }, + // { "wle_discover_level_wk2_031", "Jiggle Jingle" }, + // { "wle_discover_level_wk2_032", "Ice Pop Interstate" }, + // { "wle_discover_level_wk2_033", "クリエだよ全員集合" }, + // { "wle_discover_level_wk2_034", "Snow Day" }, + // { "wle_discover_level_wk2_035", "It's Tiiiiiiiimeee!" }, + // { "wle_discover_level_wk2_036", "KYOUFUU GUYS BACK" }, + // { "wle_discover_level_wk2_037", "Sonic's Sunset Adventure" }, + // { "wle_discover_level_wk2_038", "♪勝利のフォンフォーレ" }, + // { "wle_discover_level_wk2_039", "RACE ORIGINS" }, + // { "wle_discover_level_wk2_040", "Winter Wipeout" }, + // { "wle_discover_level_wk2_041", "Centripetal Circuit" }, + // { "wle_discover_level_wk2_042", "MERRY MAYHEM!" }, + // { "wle_discover_level_wk2_043", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_044", "The Scarescraper" }, + // { "wle_discover_level_wk2_045", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_046", "$$$¡The Casino Crew!$$$" }, + // { "wle_discover_level_wk2_047", "Dee's- Escape the Pirate Ship!" }, + // { "wle_discover_level_wk2_048", "ジャングル ぐるぐる" }, + // { "wle_discover_level_wk2_049", "ショートステージ" }, + // { "wle_discover_level_wk2_050", "スノーマウンテンクライム" }, + // + // { "wle_round_mrs_shuffle_discover_005", "My Melody" }, + // { "wle_round_mrs_shuffle_discover_006", "prismatic ice crystal" }, + // { "wle_round_mrs_shuffle_discover_007", "スキルアップステージ" }, + // { "wle_round_mrs_shuffle_discover_008", "WHITE TREE JUMBLE" }, + // { "wle_round_mrs_shuffle_discover_009", "Snowy Adventure" }, + // { "wle_round_mrs_shuffle_discover_010", "Happy Bean Food Fiesta" }, + // { "wle_round_mrs_shuffle_discover_011", "Belly Flop Bobsleigh" }, + // { "wle_round_mrs_shuffle_discover_012", "winter party" }, + // { "wle_round_mrs_shuffle_discover_013", "The lost keys" }, + // { "wle_round_mrs_shuffle_discover_014", "Bonk" }, + // { "wle_round_mrs_shuffle_discover_015", "Winter Disc-O" }, + // { "wle_round_mrs_shuffle_discover_016", "christmas wreath!" }, + // { "wle_round_mrs_shuffle_discover_017", "Winter BebaLand" }, + // { "wle_round_mrs_shuffle_discover_018", "Automatic FallGuys" }, + // { "wle_round_mrs_shuffle_discover_019", "Holiday Dash" }, + // { "wle_round_mrs_shuffle_discover_020", "Treetop Frost" }, + // { "wle_round_mrs_shuffle_discover_021", "Rainbow Run" }, + // { "wle_round_mrs_shuffle_discover_022", "BYE DONT HAVE A GREAT TIME PART LXIX" }, + // { "wle_round_mrs_shuffle_discover_023", "Hieroglysphinx Hurdles" }, + // { "wle_round_mrs_shuffle_discover_024", "ホなら" }, + // { "wle_round_mrs_shuffle_discover_025", "Bye have a great time part 45" }, + // { "wle_round_mrs_shuffle_discover_026", "POWDERY PEAK" }, + // { "wle_round_mrs_shuffle_discover_027", "It's Christmas Slime Climb Time!" }, + // { "wle_round_mrs_shuffle_discover_028", "MERRY CLIMBING!" }, + // { "wle_round_mrs_shuffle_discover_030", "Snow N' Speed" }, + // { "wle_round_mrs_shuffle_discover_032", "Lets Have Fun (74)" }, + // { "wle_round_mrs_shuffle_discover_033", "Concept Ladder Match (Pre-alpha)" }, + // { "wle_round_mrs_shuffle_discover_034", "Speedy City" }, + // { "wle_round_mrs_shuffle_discover_036", "Fall Village" }, + // { "wle_round_mrs_shuffle_discover_037", "超巨大な、クリスマスツリー" }, + // { "wle_round_mrs_shuffle_discover_038", "TINSELTOWN MELTDOWN!" }, + // { "wle_round_mrs_shuffle_discover_039", "Jump jar jar" }, + // { "wle_round_mrs_shuffle_discover_040", "FOOD FIESTA" }, + // { "wle_round_mrs_shuffle_discover_041", "Bye have a great time part 46" }, + // { "wle_round_mrs_shuffle_discover_044", "BEAN BALL" }, + // { "wle_round_mrs_shuffle_discover_045", "Python Pinball" }, + // { "wle_round_mrs_shuffle_discover_046", "Block Battle" }, + // { "wle_round_mrs_shuffle_discover_047", "Ice Cold Ascension" }, + // { "wle_round_mrs_shuffle_discover_048", "ボタンでGO!" }, + // { "wle_round_mrs_shuffle_discover_049", "ミクセル MIKUSERU" }, + // { "wle_round_mrs_shuffle_discover_050", "ホなら" }, + // + // { "wle_discovery_shuffle_up2_01", "The spooky trail" }, + // { "wle_discovery_shuffle_up2_05", "Balance Bean" }, + // { "wle_discovery_shuffle_up2_06", "digital slime road" }, + // { "wle_discovery_shuffle_up2_07", "The Punch Warriors! - Definitive Edition" }, + // { "wle_discovery_shuffle_up2_08", "Winter Mansion" }, + // { "wle_discovery_shuffle_up2_13", "Festive Rush" }, + // { "wle_discovery_shuffle_up2_14", "Mound Mountain" }, + // { "wle_discovery_shuffle_up2_15", "FEVER DREAM FUNHOUSE!" }, + // { "wle_discovery_shuffle_up2_17", "WinteRace" }, + // { "wle_discovery_shuffle_up2_18", "4 Seasons" }, + // { "wle_discovery_shuffle_up2_19", "WAVE RUNNERS!" }, + // { "wle_discovery_shuffle_up2_24", "Tool Up! Winter Season Fall Guys" }, + // { "wle_discovery_shuffle_up2_26", "Arctic Run" }, + // { "wle_discovery_shuffle_up2_28", "Grenouille X pinkixx" }, + // { "wle_discovery_shuffle_up2_29", "GAME OVER" }, + // { "wle_discovery_shuffle_up2_30", "Hot Wheels III" }, + // { "wle_discovery_shuffle_up2_32", "Ski Mountain" }, + // { "wle_discovery_shuffle_up2_33", "夜店" }, + // { "wle_discovery_shuffle_up2_34", "チャッキーのタイムアタックレース" }, + // { "wle_discovery_shuffle_up2_37", "Frosty run" }, + // { "wle_discovery_shuffle_up2_38", "MONUMENT FALLS!" }, + // + // { "wle_mrs_shuffle_show_roundpool_winter_01", "Spiral Trial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_02", "SNOWMAN CLIMB" }, + // { "wle_mrs_shuffle_show_roundpool_winter_03", "Perpetual motion" }, + // { "wle_mrs_shuffle_show_roundpool_winter_04", "No way to go" }, + // { "wle_mrs_shuffle_show_roundpool_winter_06", "The winter slime climb time!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_07", "The Speedy Zone" }, + // { "wle_mrs_shuffle_show_roundpool_winter_08", "The crown's race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_09", "Mitten Mountain" }, + // { "wle_mrs_shuffle_show_roundpool_winter_10", "Parcours arc en ciel" }, + // { "wle_mrs_shuffle_show_roundpool_winter_11", "forest balls" }, + // { "wle_mrs_shuffle_show_roundpool_winter_12", "FIREBALL FRENZY!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_13", "GIFT EXCHANGE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_14", "The Snowscraper" }, + // { "wle_mrs_shuffle_show_roundpool_winter_15", "roll roll bean" }, + // { "wle_mrs_shuffle_show_roundpool_winter_16", "Overclocked" }, + // { "wle_mrs_shuffle_show_roundpool_winter_17", "Spaceball Spin" }, + // { "wle_mrs_shuffle_show_roundpool_winter_18", "Winter Disc-O" }, + // { "wle_mrs_shuffle_show_roundpool_winter_19", "Chill 'n' Roll" }, + // { "wle_mrs_shuffle_show_roundpool_winter_20", "FEVER DREAM FUNHOUSE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_21", "Himalayan Railway" }, + // { "wle_mrs_shuffle_show_roundpool_winter_22", "Need for Speed" }, + // { "wle_mrs_shuffle_show_roundpool_winter_23", "Rebound" }, + // { "wle_mrs_shuffle_show_roundpool_winter_24", "スライムスクレイパー" }, + // { "wle_mrs_shuffle_show_roundpool_winter_25", "Frosty Cold Sprint" }, + // { "wle_mrs_shuffle_show_roundpool_winter_26", "Halfpipe Havoc" }, + // { "wle_mrs_shuffle_show_roundpool_winter_27", "Snowflake Wonderland" }, + // { "wle_mrs_shuffle_show_roundpool_winter_28", "Ball Guys" }, + // { "wle_mrs_shuffle_show_roundpool_winter_30", "REINDEER GAMES!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_31", "Belly Flop Bobsleigh" }, + // { "wle_mrs_shuffle_show_roundpool_winter_32", "Hot Wheels 2069" }, + // { "wle_mrs_shuffle_show_roundpool_winter_33", "Gingerbread Lane" }, + // { "wle_mrs_shuffle_show_roundpool_winter_34", "We ballin'" }, + // { "wle_mrs_shuffle_show_roundpool_winter_35", "Ice Cold Ascension" }, + // { "wle_mrs_shuffle_show_roundpool_winter_36", "étage sur étage" }, + // { "wle_mrs_shuffle_show_roundpool_winter_37", "Birthday Dash" }, + // { "wle_mrs_shuffle_show_roundpool_winter_39", "MARBLE RACE [Bean-Ball]" }, + // { "wle_mrs_shuffle_show_roundpool_winter_38", "The Jolly Express" }, + // { "wle_mrs_shuffle_show_roundpool_winter_40", "Roller Race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_41", "Return to Fall Rapids" }, + // { "wle_mrs_shuffle_show_roundpool_winter_42", "Frosty run" }, + // { "wle_mrs_shuffle_show_roundpool_winter_44", "Sirbeans garden racetrack" }, + // { "wle_mrs_shuffle_show_roundpool_winter_45", "Roll-a-Coaster" }, + // { "wle_mrs_shuffle_show_roundpool_winter_46", "Gran Glaciar Paradicial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_47", "Cave Exploration ~洞窟探検~" }, + // { "wle_mrs_shuffle_show_roundpool_winter_48", "SanTama Run" }, + // + // { "wle_shuffle_discover_fp7_1_01", "Green hill zone" }, + // { "wle_shuffle_discover_fp7_1_02", "Lost Temple" }, + // { "wle_shuffle_discover_fp7_1_03", "Champiñón Volante" }, + // { "wle_shuffle_discover_fp7_1_04", "Mitten Mountain" }, + // { "wle_shuffle_discover_fp7_1_05", "Jack-O'-Runners" }, + // { "wle_shuffle_discover_fp7_1_06", "Parcours arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_07", "Mario kart" }, + // { "wle_shuffle_discover_fp7_1_08", "A Day At The Holiday Race" }, + // { "wle_shuffle_discover_fp7_1_09", "2024 謹賀新年" }, + // { "wle_shuffle_discover_fp7_1_10", "Hustling run" }, + // { "wle_shuffle_discover_fp7_1_11", "tempête arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_12", "Wander- Weg" }, + // { "wle_shuffle_discover_fp7_1_13", "Ruta en la selva" }, + // { "wle_shuffle_discover_fp7_1_14", "Turboslide" }, + // { "wle_shuffle_discover_fp7_1_15", "A piece of cake" }, + // { "wle_shuffle_discover_fp7_1_16", "WOW" }, + // { "wle_shuffle_discover_fp7_1_18", "Magic Squirrel" }, + // { "wle_shuffle_discover_fp7_1_19", "Dinosaur Climb" }, + // { "wle_shuffle_discover_fp7_1_20", "bouing bouing" }, + // { "wle_shuffle_discover_fp7_1_21", "快感快速!!" }, + // { "wle_shuffle_discover_fp7_1_23", "challenge" }, + // { "wle_shuffle_discover_fp7_1_24", "Fnf final escape" }, + // { "wle_shuffle_discover_fp7_1_25", "Speedrun" }, + // { "wle_shuffle_discover_fp7_1_26", "AS AVENTURAS DO PIETRO" }, + // { "wle_shuffle_discover_fp7_1_27", "The Desert temple" }, + // { "wle_shuffle_discover_fp7_1_28", "Snowy Speed Sprint" }, + // { "wle_shuffle_discover_fp7_1_29", "Arcade escape" }, + // { "wle_shuffle_discover_fp7_1_30", "Guardian's Grace" }, + // { "wle_shuffle_discover_fp7_1_31", "Desertic Templus" }, + // { "wle_shuffle_discover_fp7_1_32", "Calamité arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_33", "Map Test V1" }, + // { "wle_shuffle_discover_fp7_1_34", "From A to Z" }, + // { "wle_shuffle_discover_fp7_1_35", "YULE LOG SPRINT" }, + // { "wle_shuffle_discover_fp7_1_37", "Turnaround Turnpike" }, + // { "wle_shuffle_discover_fp7_1_38", "Good morning 2024 world" }, + // { "wle_shuffle_discover_fp7_1_39", "Sirbeans garden racetrack" }, + // + // { "wle_shuffle_2_24_01", "classic sewer" }, + // { "wle_shuffle_2_24_02", "Speed Ball" }, + // { "wle_shuffle_2_24_03", "Rainbow Riser" }, + // { "wle_shuffle_2_24_04", "cave tree" }, + // { "wle_shuffle_2_24_05", "Orbital Junction" }, + // { "wle_shuffle_2_24_06", "Lily leapers remix v3" }, + // { "wle_shuffle_2_24_07", "Little Pipe Dream" }, + // { "wle_shuffle_2_24_08", "FIREBALL FRENZY!" }, + // { "wle_shuffle_2_24_09", "Ruta en la selva" }, + // { "wle_shuffle_2_24_10", "A piece of cake" }, + // { "wle_shuffle_2_24_11", "Monster Forest Road" }, + // { "wle_shuffle_2_24_12", "Slippery Stumble" }, + // { "wle_shuffle_2_24_13", "Mound Mountain" }, + // { "wle_shuffle_2_24_15", "Non-Stop Slide" }, + // { "wle_shuffle_2_24_16", "slime climb Creative" }, + // { "wle_shuffle_2_24_17", "(REBORN) WITH THE WIND OMAME-CHAN !!!" }, + // { "wle_shuffle_2_24_18", "The Desert Temple Escape" }, + // { "wle_shuffle_2_24_19", "Rebound" }, + // { "wle_shuffle_2_24_20", "Roundabout Route" }, + // { "wle_shuffle_2_24_21", "Sparkly gingerbred trail" }, + // { "wle_shuffle_2_24_22", "Ski Fall Remix" }, + // { "wle_shuffle_2_24_24", "Fan Flingers" }, + // { "wle_shuffle_2_24_25", "Ball Carnival" }, + // { "wle_shuffle_2_24_26", "Tool Up! Winter Season Fall Guys" }, + // { "wle_shuffle_2_24_27", "Trompeta Teatral" }, + // { "wle_shuffle_2_24_28", "Birthday bonanza" }, + // { "wle_shuffle_2_24_29", "BlueBlur Circuit" }, + // { "wle_shuffle_2_24_30", "Lemon Grass" }, + // { "wle_shuffle_2_24_31", "Tuyauterie au nez" }, + // { "wle_shuffle_2_24_32", "Slimey's showdown" }, + // { "wle_shuffle_2_24_33", "GOLF GUYS" }, + // { "wle_shuffle_2_24_34", "(REBORN) DIGI×2 LOVE×2 GUYS REVERSE !!!" }, + // { "wle_shuffle_2_24_35", "R" }, + // { "wle_shuffle_2_24_36", "Zelda is BANANAS!!!!" }, + // { "wle_shuffle_2_24_38", "Traffic Jamboree" }, + // { "wle_shuffle_2_24_39", "Turnaround Turnpike" }, + // { "wle_shuffle_2_24_40", "Great hunt" }, + // { "wle_shuffle_2_24_41", "HYPERSPACE HIGHWAY!" }, + // { "wle_shuffle_2_24_42", "Back in Slime" }, + // + // { "wle_shuffle_wk2405_01", "Duckling Beach" }, + // { "wle_shuffle_wk2405_02", "BUILDER GUYS" }, + // { "wle_shuffle_wk2405_03", "ヒヤヒヤハイウェイ Unstable Highway" }, + // { "wle_shuffle_wk2405_04", "Speed Ball" }, + // { "wle_shuffle_wk2405_05", "North Pole Traps" }, + // { "wle_shuffle_wk2405_06", "Volcanic Island Travel!" }, + // { "wle_shuffle_wk2405_07", "Kepler 21's town" }, + // { "wle_shuffle_wk2405_08", "Orbital Junction" }, + // { "wle_shuffle_wk2405_11", "Balance Bean" }, + // { "wle_shuffle_wk2405_12", "ťřūťű" }, + // { "wle_shuffle_wk2405_13", "Summer Vibes" }, + // { "wle_shuffle_wk2405_14", "Dee's- Pinball Lilly" }, + // { "wle_shuffle_wk2405_15", "Galactic Guys" }, + // { "wle_shuffle_wk2405_16", "Orbital Stumbling" }, + // { "wle_shuffle_wk2405_17", "Winter Mansion" }, + // { "wle_shuffle_wk2405_18", "Pole Jumper" }, + // { "wle_shuffle_wk2405_19", "Little Pipe Dream" }, + // { "wle_shuffle_wk2405_20", "FIREBALL FRENZY!" }, + // { "wle_shuffle_wk2405_21", "Ruta en la selva" }, + // { "wle_shuffle_wk2405_22", "The Spacescřaper" }, + // { "wle_shuffle_wk2405_23", "Downward Spiral! (& Beyond)" }, + // { "wle_shuffle_wk2405_24", "Slippery Swoop Showdown" }, + // { "wle_shuffle_wk2405_25", "Tunnel of tumble" }, + // { "wle_shuffle_wk2405_26", "Digital Paradise" }, + // { "wle_shuffle_wk2405_27", "Monster Forest Road" }, + // { "wle_shuffle_wk2405_28", "GALACTIC RUN" }, + // { "wle_shuffle_wk2405_29", "Non-Stop Slide" }, + // { "wle_shuffle_wk2405_30", "slime climb Creative" }, + // { "wle_shuffle_wk2405_31", "Love a day" }, + // { "wle_shuffle_wk2405_32", "serious circuit" }, + // { "wle_shuffle_wk2405_33", "Falling in Love" }, + // { "wle_shuffle_wk2405_34", "Rebound" }, + // { "wle_shuffle_wk2405_35", "Digifal Guys" }, + // { "wle_shuffle_wk2405_36", "Vaporia" }, + // { "wle_shuffle_wk2405_37", "Solar Speedway" }, + // { "wle_shuffle_wk2405_38", "Rollin' Ruins" }, + // { "wle_shuffle_wk2405_39", "The drum course" }, + // { "wle_shuffle_wk2405_40", "AX-ATTACK" }, + // { "wle_shuffle_wk2405_41", "Pipe beans" }, + // { "wle_shuffle_wk2405_42", "Ball World" }, + // { "wle_shuffle_wk2405_43", "Fan Flingers" }, + // { "wle_shuffle_wk2405_44", "Deserted Frontier" }, + // { "wle_shuffle_wk2405_45", "Torapo" }, + // { "wle_shuffle_wk2405_46", "No Name" }, + // { "wle_shuffle_wk2405_47", "Satellite Scramble" }, + // { "wle_shuffle_wk2405_48", "STATION SPRINT" }, + // { "wle_shuffle_wk2405_49", "Route 20" }, + // { "wle_shuffle_wk2405_50", "Jungle escape" }, + // { "wle_shuffle_wk2405_51", "Love at First Woo" }, + // { "wle_shuffle_wk2405_52", "Satellite Circuit" }, + // { "wle_shuffle_wk2405_53", "Round and around" }, + // { "wle_shuffle_wk2405_54", "World of rolling" }, + // { "wle_shuffle_wk2405_55", "Lemon Grass" }, + // { "wle_shuffle_wk2405_56", "Downward Spiral" }, + // { "wle_shuffle_wk2405_57", "STARS ALIGN!" }, + // { "wle_shuffle_wk2405_58", "Interstellar Sprint" }, + // { "wle_shuffle_wk2405_59", "World of cakes" }, + // { "wle_shuffle_wk2405_60", "ASTRAL AIRWAY" }, + // { "wle_shuffle_wk2405_61", "secret ways" }, + // { "wle_shuffle_wk2405_62", "No Name" }, + // { "wle_shuffle_wk2405_63", "Space adventure (part 1)" }, + // { "wle_shuffle_wk2405_64", "Rainbow Road" }, + // { "wle_shuffle_wk2405_65", "Falltropolis" }, + // + // { "wle_digishuffle_feb_01", "jungle fun run" }, + // { "wle_digishuffle_feb_02", "☆Witch Way☆" }, + // { "wle_digishuffle_feb_03", "Mushroom Mayhem" }, + // { "wle_digishuffle_feb_04", "Orbital Junction" }, + // { "wle_digishuffle_feb_06", "Day at the beach" }, + // { "wle_digishuffle_feb_07", "Summer Vibes" }, + // { "wle_digishuffle_feb_08", "Roll Asteroid Field" }, + // { "wle_digishuffle_feb_09", "Ruta en la selva" }, + // { "wle_digishuffle_feb_10", "Cosmic Dash" }, + // { "wle_digishuffle_feb_11", "Bouncing Frenzy" }, + // { "wle_digishuffle_feb_12", "Beehive Havoc" }, + // { "wle_digishuffle_feb_13", "Snowy Cave-in" }, + // { "wle_digishuffle_feb_15", "Winter Disc-O" }, + // { "wle_digishuffle_feb_16", "magician" }, + // { "wle_digishuffle_feb_17", "Love a day" }, + // { "wle_digishuffle_feb_18", "Chilly Leapers" }, + // { "wle_digishuffle_feb_19", "Colorful Year - Beans Memories" }, + // { "wle_digishuffle_feb_20", "BIPLANE BLUNDER" }, + // { "wle_digishuffle_feb_21", "Vaporia" }, + // { "wle_digishuffle_feb_22", "Satellite Sprint" }, + // { "wle_digishuffle_feb_23", "Galactic Gauntlet" }, + // { "wle_digishuffle_feb_24", "RUN COWBOY" }, + // { "wle_digishuffle_feb_25", "Breakfast Run" }, + // { "wle_digishuffle_feb_26", "Spin 'n' Swing" }, + // { "wle_digishuffle_feb_27", " Love at First Woo" }, + // { "wle_digishuffle_feb_28", "Astral Exploration" }, + // { "wle_digishuffle_feb_29", "Speedway 2069" }, + // { "wle_digishuffle_feb_30", "Data Eraser" }, + // { "wle_digishuffle_feb_31", "Mediefall Highway" }, + // { "wle_digishuffle_feb_33", "パンダフルワールド" }, + // { "wle_digishuffle_feb_34", "Celestial Tale" }, + // + // { "chill_01", "Ariko Jones" }, + // { "chill_02", "Floating island" }, + // { "chill_03", "Colorful World" }, + // { "chill_04", "Winter Wallop" }, + // { "chill_06", "Tropical Top2" }, + // { "chill_07", "rainbows and stickers" }, + // { "chill_08", "Ancient Fallstronomers" }, + // { "chill_11", "ORBITAL STUMBLE" }, + // { "chill_12", "The Bisounours" }, + // { "chill_13", "Adrenaline Force 2" }, + // { "chill_14", "Summer Vibes" }, + // { "chill_15", "Speedy Bounces" }, + // { "chill_16", "Data Dash" }, + // { "chill_17", "Snow Mountain" }, + // { "chill_18", "Monster Mayhem" }, + // { "chill_19", "Star Power!" }, + // { "chill_20", "Sketchy Sledding!" }, + // { "chill_21", "Musical Madness" }, + // { "chill_22", "BEANS ORBITAL ZONE" }, + // { "chill_23", "Safe Mode" }, + // { "chill_24", "Piste de neige" }, + // { "chill_25", "Love a day" }, + // { "chill_26", "Chilly Leapers" }, + // { "chill_27", "Passage imbroglio arc en ciel" }, + // { "chill_28", "Shogun Guys I" }, + // { "chill_29", "WINDMILL WAY" }, + // { "chill_30", "Solar Speedway" }, + // { "chill_31", "Micro Machine" }, + // { "chill_32", "Satellite Sprint" }, + // { "chill_33", "Rudinn's Garden Palace" }, + // { "chill_35", "Frosty Wonderland" }, + // { "chill_36", "Freezy Frolic" }, + // { "chill_37", "Extraterrestrial Terminal" }, + // { "chill_38", "Cluster Cosmos" }, + // { "chill_39", " Love at First Woo" }, + // { "chill_40", "A night in Paris" }, + // { "chill_41", "Float Parkour" }, + // + // { "wle_mrs_survival_showdown_opener", "Slime Surfers" }, + // { "wle_mrs_survival_showdown_opener_01", "Bean Fort" }, + // { "wle_mrs_survival_showdown_opener_02", "Back & Forth" }, + // { "wle_mrs_survival_showdown_final", "Hectic Hexagons" }, + // { "wle_mrs_survival_showdown_final_01", "Cosmic Clash" }, + // { "wle_mrs_survival_showdown_final_02", "Bouncy Castle" }, + // { "wle_mrs_survival_showdown_final_04", "Volcanic Chaos" }, + // + // { "wle_survival_shuffle_fp8_01", "More Blastball!" }, + // { "wle_survival_shuffle_fp8_02", "Rhino Runaway" }, + // { "wle_survival_shuffle_fp8_03", "Bouncy Castle" }, + // { "wle_survival_shuffle_fp8_04", "Snowy Stronghold" }, + // { "wle_survival_shuffle_fp8_05", "Hexa-Towers - Finals Arena" }, + // { "wle_survival_shuffle_fp8_06", "Satellite Delight" }, + // { "wle_survival_shuffle_fp8_07", "pacific jump" }, + // { "wle_survival_shuffle_fp8_08", "There can only be one" }, + // { "wle_survival_shuffle_fp8_09", "Ganj's Matter Baby" }, + // { "wle_survival_shuffle_fp8_10", "RHINOCHET" }, + // { "wle_survival_shuffle_fp8_11", "Rocky Rumble" }, + // { "wle_survival_shuffle_fp8_12", "Ludo War" }, + // { "wle_survival_shuffle_fp8_13", "Slimelantis" }, + // { "wle_survival_shuffle_fp8_14", "Dramatic Squirrel" }, + // { "wle_survival_shuffle_fp8_15", "HEX-A-BLAST" }, + // { "wle_survival_shuffle_fp8_16", "HEX-A-RUN" }, + // { "wle_survival_shuffle_fp8_17", "BLAST BRIDGES" }, + // { "wle_survival_shuffle_fp8_18", "HEX-A-BATTLE" }, + // { "wle_survival_shuffle_fp8_19", "Blast Ball X" }, + // { "wle_survival_shuffle_fp8_20", "Explosive Arena" }, + // { "wle_survival_shuffle_fp8_21", "Rhino Blast" }, + // { "wle_survival_shuffle_fp8_22", "Slime Surfers" }, + // { "wle_survival_shuffle_fp8_23", "Eduardo Escapades" }, + // { "wle_survival_shuffle_fp8_24", "Hex A Trouble" }, + // { "wle_survival_shuffle_fp8_25", "Roll In - Finals Arena" }, + // { "wle_survival_shuffle_fp8_26", "Back & Forth" }, + // { "wle_survival_shuffle_fp8_27", "HEXAGONAL RING BLAST" }, + // { "wle_survival_shuffle_fp8_29", "beens royal resurrection" }, + // { "wle_survival_shuffle_fp8_30", "Hexa-Toto" }, + // { "wle_survival_shuffle_fp8_31", "Blender Container" }, + // { "wle_survival_shuffle_fp8_32", "Circular Jump" }, + // { "wle_survival_shuffle_fp8_33", "hex-a-volcanic" }, + // { "wle_survival_shuffle_fp8_34", "ボマーぽよまつからの挑戦状☆ミ" }, + // { "wle_survival_shuffle_fp8_35", "Reverse Chaos" }, + // { "wle_survival_shuffle_fp8_36", "survival board" }, + // { "wle_survival_shuffle_fp8_37", "Volcanic Chaos" }, + // { "wle_survival_shuffle_fp8_38", "High-Ground Arena" }, + // { "wle_survival_shuffle_fp8_39", "rainbow convoyer" }, + // { "wle_survival_shuffle_fp8_40", "すぱいだーすっぱいんだー" }, + // { "wle_survival_shuffle_fp8_41", "HEX-A-PARTY" }, + // { "wle_survival_shuffle_fp8_42", "HEX A REBORN" }, + // { "wle_survival_shuffle_fp8_43", "CAROUSEL CHAOS" }, + // { "wle_survival_shuffle_fp8_44", "west sniper" }, + // { "wle_survival_shuffle_fp8_45", "Blast Balls Hexa Trials" }, + // { "wle_survival_shuffle_fp8_46", "自製生存關2-蹦蹦犀牛炸彈!" }, + // { "wle_survival_shuffle_fp8_47", "Hexagon Battle" }, + // { "wle_survival_shuffle_fp8_49", "Tick Tock Clock" }, + // { "wle_survival_shuffle_fp8_50", "ダイナミクスビート DYNAMICS BEAT" }, + // + // { "survival_shuffle_01", "Speed attack" }, + // { "survival_shuffle_02", "Garbage Chute V2" }, + // { "survival_shuffle_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_04", "Night Crashers" }, + // { "survival_shuffle_05", "Survival Area" }, + // { "survival_shuffle_06", "Can You Win!" }, + // { "survival_shuffle_07", "SPINNER SURVIVAL(Hard)" }, + // { "survival_shuffle_08", "NAMEK" }, + // { "survival_shuffle_09", "Hex-A-Blast" }, + // { "survival_shuffle_10", "HEX-A-JUMP" }, + // { "survival_shuffle_11", "Space Blast" }, + // { "survival_shuffle_12", "とまきけアイス" }, + // { "survival_shuffle_13", "SPINNER SURVIVAL(Very Hard)" }, + // { "survival_shuffle_14", "Caldera chaos" }, + // { "survival_shuffle_15", "hexatourne" }, + // { "survival_shuffle_16", "HEX-A-MANIA" }, + // { "survival_shuffle_17", "Slime leakage royale" }, + // { "survival_shuffle_18", "Merciless Traverse" }, + // { "survival_shuffle_19", "Stompin' Ground Challenge" }, + // { "survival_shuffle_20", "Bird is the Word" }, + // { "survival_shuffle_21", "Conflagration interstellaire" }, + // { "survival_shuffle_22", "Subzero Gale" }, + // { "survival_shuffle_23", "Piti afundando" }, + // { "survival_shuffle_24", "つかみ魔たちの祭典" }, + // { "survival_shuffle_25", "Slime Surfers" }, + // { "survival_shuffle_26", "Space Blast ball" }, + // { "survival_shuffle_27", "Fan wars survival" }, + // { "survival_shuffle_28", "World of Guys - Ultimate Shotout -" }, + // { "survival_shuffle_29", "Shogun's Arena" }, + // { "survival_shuffle_30", "Boulder Hex" }, + // { "survival_shuffle_31", "HEX-A-RENA" }, + // { "survival_shuffle_32", "BLAST BALL BASHERS" }, + // { "survival_shuffle_33", "hexa roll beta 2" }, + // { "survival_shuffle_34", "Running survivor ver1・3" }, + // { "survival_shuffle_35", "King of the Castle" }, + // { "survival_shuffle_36", "BATTLE OF SURVIVORS" }, + // { "survival_shuffle_37", "MINI STOMPIN' GROUND" }, + // { "survival_shuffle_38", "Royal Rumble" }, + // { "survival_shuffle_39", "Bataille au ²" }, + // { "survival_shuffle_40", "Hex-a-mountain" }, + // { "survival_shuffle_41", "Hex-A-Glory" }, + // { "survival_shuffle_42", "POOL PARTY" }, + // { "survival_shuffle_43", "King of the Pillar" }, + // { "survival_shuffle_44", "止まれない木" }, + // { "survival_shuffle_45", "slime battle pt2" }, + // { "survival_shuffle_46", "No Punching" }, + // { "survival_shuffle_47", "Blue and yellow showdown" }, + // { "survival_shuffle_48", "Retro Roundabout" }, + // { "survival_shuffle_49", "玉あそび" }, + // { "survival_shuffle_50", "Royal Rumble (Rofall Gumble)" }, + // { "survival_shuffle_51", "Aggressive survival" }, + // { "survival_shuffle_52", "Fight Zone" }, + // { "survival_shuffle_53", "Hex-A-Blaster" }, + // { "survival_shuffle_54", "SLIME RIOT!" }, + // { "survival_shuffle_55", "Es knallt richtig" }, + // { "survival_shuffle_56", "Super Fortress Factory" }, + // { "survival_shuffle_57", "Heavy hitters only" }, + // { "survival_shuffle_58", "へいたんバトロワ" }, + // { "survival_shuffle_59", "Volcanic Panic" }, + // { "survival_shuffle_60", "Volcanic Panic" }, + // { "survival_shuffle_61", "雷霆乱豆中心" }, + // { "survival_shuffle_62", "ブラストボール(十字形)" }, + // { "survival_shuffle_63", "Poison Pond PVP" }, + // { "survival_shuffle_64", "Puncher Brawl 2" }, + // { "survival_shuffle_65", "Atoll pétulant" }, + // { "survival_shuffle_66", "Blast Rhino" }, + // { "survival_shuffle_67", "Blast Arena" }, + // { "survival_shuffle_68", "Brewing Boxes" }, + // { "survival_shuffle_69", "The flood" }, + // { "survival_shuffle_70", "PUSHBACK" }, + // { "survival_shuffle_71", "Arena Guys" }, + // { "survival_shuffle_72", "Jungle Survival" }, + // { "survival_shuffle_73", "おしくらまんじゅうジャンプ" }, + // { "survival_shuffle_74", "blast fall X" }, + // { "survival_shuffle_75", "Tic-Tac-Blow" }, + // { "survival_shuffle_76", "CS Guys" }, + // { "survival_shuffle_77", "Bounce Battle" }, + // { "survival_shuffle_78", "Cheat's Only Fan" }, + // { "survival_shuffle_79", "Showdown Party" }, + // { "survival_shuffle_80", "Donut layers!" }, + // { "survival_shuffle_81", "パワーアップ・ノックアウト" }, + // { "survival_shuffle_82", "アップダウンバトル" }, + // { "survival_shuffle_83", "頂上対決" }, + // { "survival_shuffle_84", "Blast Ring" }, + // { "survival_shuffle_85", "Raft Rumble" }, + // { "survival_shuffle_86", "Rhino-hex-killer+invasion" }, + // { "survival_shuffle_87", "Survie des enfers" }, + // { "survival_shuffle_88", "blast ball HEXAGON" }, + // { "survival_shuffle_89", "The Bean-rena" }, + // { "survival_shuffle_90", "Lake in the mountains" }, + // { "survival_shuffle_91", "Playing area" }, + // { "survival_shuffle_92", "Hopping Party" }, + // { "survival_shuffle_93", "Shape Dimension" }, + // { "survival_shuffle_94", "Dramatic Flowers" }, + // + // { "wle_mrs_ugc_playful_01", "Neon pipe run" }, + // { "wle_mrs_ugc_playful_02", "SUNKEN CIRCUIT" }, + // { "wle_mrs_ugc_playful_03", "Blundercity Marathon" }, + // { "wle_mrs_ugc_playful_04", "Rainbow highway" }, + // { "wle_mrs_ugc_playful_05", "Rainbow Riptide" }, + // { "wle_mrs_ugc_playful_06", "Past passage" }, + // { "wle_mrs_ugc_playful_07", "Sandcastle Kingdom" }, + // { "wle_mrs_ugc_playful_08", "Jumping Season" }, + // { "wle_mrs_ugc_playful_09", "Fall Stars" }, + // { "wle_mrs_ugc_playful_10", "Medieval Sprint" }, + // { "wle_mrs_ugc_playful_11", "SPRING MOUNTAIN" }, + // { "wle_mrs_ugc_playful_12", "NAUTICAL SHAMBLE" }, + // { "wle_mrs_ugc_playful_13", "The Last Winter" }, + // + // { "playful_shuffle_01", "Fiebre medieval" }, + // { "playful_shuffle_02", "Triple Trial" }, + // { "playful_shuffle_03", "Trees (Waterfall)" }, + // { "playful_shuffle_05", "plat guys" }, + // { "playful_shuffle_06", "震えるキャベツ" }, + // { "playful_shuffle_07", "Winter Wallop" }, + // { "playful_shuffle_08", "Multi Leaper" }, + // { "playful_shuffle_09", "Golden Poodles" }, + // { "playful_shuffle_10", "ストレートスタンブル" }, + // { "playful_shuffle_11", "Easy Fun Speedrun" }, + // { "playful_shuffle_12", "RUN RUN Park" }, + // { "playful_shuffle_14", "ごちゃごちゃストリート" }, + // { "playful_shuffle_15", "Conveyors Obstacles" }, + // { "playful_shuffle_17", "Green Mountain" }, + // { "playful_shuffle_18", "Ancient Fallstronomers" }, + // { "playful_shuffle_19", "+slidin' in the air+ 10k play special" }, + // { "playful_shuffle_20", "Jumping Season" }, + // { "playful_shuffle_21", "Track attackers system" }, + // { "playful_shuffle_22", "CASTLE CLASH" }, + // { "playful_shuffle_24", "Falling Dreams" }, + // { "playful_shuffle_25", "ロケットでうちあげだ 2" }, + // { "playful_shuffle_26", "The Terrible Spiral Of Woo Remake" }, + // { "playful_shuffle_27", "Rainbow Dash" }, + // { "playful_shuffle_28", "TruPixel's Jungle Mash-up" }, + // { "playful_shuffle_30", "Monochromatic Manic" }, + // { "playful_shuffle_33", "Ramp It Up!" }, + // { "playful_shuffle_34", "Adrenaline Force 2" }, + // { "playful_shuffle_35", "DIGITAL MADNESS" }, + // { "playful_shuffle_36", "Cosmic Pipes" }, + // { "playful_shuffle_37", "Milky way" }, + // { "playful_shuffle_38", "Snow Style" }, + // { "playful_shuffle_39", "Data Dash" }, + // { "playful_shuffle_40", "Caida resbaladisa" }, + // { "playful_shuffle_41", "Frostbite Speed Fall Slider" }, + // { "playful_shuffle_42", "Snow Mountain" }, + // { "playful_shuffle_44", "Cosmic Dash" }, + // { "playful_shuffle_45", "Overclocked" }, + // { "playful_shuffle_46", " Wild Dunes" }, + // { "playful_shuffle_47", "Flutter-by!" }, + // { "playful_shuffle_48", "Blundercity Marathon" }, + // { "playful_shuffle_50", "Pixel Circuit像素环游" }, + // { "playful_shuffle_51", "Stars Guys" }, + // { "playful_shuffle_52", "SUNKEN CIRCUIT" }, + // { "playful_shuffle_54", "Pocket Summit" }, + // { "playful_shuffle_55", "Love a day" }, + // { "playful_shuffle_56", "Passage imbroglio arc en ciel" }, + // { "playful_shuffle_58", "コズミックミュージック COSMIC MUSIC" }, + // { "playful_shuffle_59", "glissoire arc en ciel" }, + // + // { "survival_shuffle_wk11_01", "Speed attack" }, + // { "survival_shuffle_wk11_02", "Garbage Chute V2" }, + // { "survival_shuffle_wk11_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_wk11_04", "Sobreviventes da Batalha" }, + // { "survival_shuffle_wk11_05", "今日の運勢サバイバル" }, + // { "survival_shuffle_wk11_06", "More Blastball!" }, + // { "survival_shuffle_wk11_07", "Hexagone Tower" }, + // { "survival_shuffle_wk11_08", "Bouncy Castle" }, + // { "survival_shuffle_wk11_09", "Snowy Stronghold" }, + // { "survival_shuffle_wk11_10", "NAMEK" }, + // { "survival_shuffle_wk11_11", "Hexa-Towers - Finals Arena" }, + // { "survival_shuffle_wk11_12", "Satellite Delight" }, + // { "survival_shuffle_wk11_13", "DEADLY VOLCANO" }, + // { "survival_shuffle_wk11_14", "Ganj's Matter Baby" }, + // { "survival_shuffle_wk11_15", "HEX-A-JUMP" }, + // { "survival_shuffle_wk11_16", "RHINOCHET" }, + // { "survival_shuffle_wk11_17", "Rocky Rumble" }, + // { "survival_shuffle_wk11_18", "Ludo War" }, + // { "survival_shuffle_wk11_19", "RING ROUND FIGHT" }, + // { "survival_shuffle_wk11_20", "Flight frenzy" }, + // { "survival_shuffle_wk11_21", "BLAST BRIDGES" }, + // { "survival_shuffle_wk11_22", "Blast Ball X" }, + // { "survival_shuffle_wk11_23", "Blast Trip" }, + // { "survival_shuffle_wk11_24", "Royal Rumble" }, + // { "survival_shuffle_wk11_25", "Bird is the Word" }, + // { "survival_shuffle_wk11_26", "The Whirligig" }, + // { "survival_shuffle_wk11_27", "Subzero Gale" }, + // { "survival_shuffle_wk11_28", "Slime Surfers" }, + // { "survival_shuffle_wk11_29", "Eduardo Escapades" }, + // { "survival_shuffle_wk11_30", "Hex A Trouble" }, + // { "survival_shuffle_wk11_31", "Back & Forth" }, + // { "survival_shuffle_wk11_32", "HEXAGONAL RING BLAST" }, + // { "survival_shuffle_wk11_33", "Carousel Mayhem" }, + // { "survival_shuffle_wk11_34", "Beens Royale RESURRECTION" }, + // { "survival_shuffle_wk11_35", "Hexa-Toto" }, + // { "survival_shuffle_wk11_36", "Blender Container" }, + // { "survival_shuffle_wk11_37", "Mid wars!" }, + // { "survival_shuffle_wk11_38", "hex-a-volcanic" }, + // { "survival_shuffle_wk11_39", "vamos rey del aire" }, + // { "survival_shuffle_wk11_40", "Shogun's Arena" }, + // { "survival_shuffle_wk11_41", "survival board" }, + // { "survival_shuffle_wk11_42", "survival factory" }, + // { "survival_shuffle_wk11_43", "rainbow convoyer" }, + // { "survival_shuffle_wk11_44", "すぱいだーすっぱいんだー" }, + // { "survival_shuffle_wk11_45", "HEX A REBORN" }, + // { "survival_shuffle_wk11_46", "The Hex-A-Gon House" }, + // { "survival_shuffle_wk11_47", "CAROUSEL CHAOS" }, + // { "survival_shuffle_wk11_48", "Ring Off" }, + // { "survival_shuffle_wk11_49", "âpre pélutant" }, + // { "survival_shuffle_wk11_50", "ダイナミクスビート DYNAMICS BEAT" }, + // { "survival_shuffle_wk11_51", "Fruit Chute Survival" }, + // { "survival_shuffle_wk11_52", "No Punching" }, + // { "survival_shuffle_wk11_53", "Hex-A-Blaster" }, + // { "survival_shuffle_wk11_54", "The Punch Warriors! - Survival Edition" }, + // { "survival_shuffle_wk11_55", "Volcanic Panic" }, + // { "survival_shuffle_wk11_56", "Hex-a-lowercase t" }, + // { "survival_shuffle_wk11_57", "Beta Jinxed" }, + // { "survival_shuffle_wk11_58", "Showdown Party" }, + // { "survival_shuffle_wk11_59", "Canyon Sand 1" }, + // { "survival_shuffle_wk11_60", "Aggro-Crag" }, + // { "survival_shuffle_wk11_61", "Bean Fort" }, + // { "survival_shuffle_wk11_62", "Tronco Gigante" }, + // { "survival_shuffle_wk11_63", "Block Battle - Survive" }, + // { "survival_shuffle_wk11_64", "Hot Shots" }, + // { "survival_shuffle_wk11_65", "blast royale" }, + // { "survival_shuffle_wk11_66", "Supervivencia del caos" }, + // { "survival_shuffle_wk11_67", "Hex-A-Mayhem" }, + // { "survival_shuffle_wk11_68", "The Falliseum" }, + // { "survival_shuffle_wk11_69", "終末列車" }, + // { "survival_shuffle_wk11_70", "O chão é lava" }, + // { "survival_shuffle_wk11_71", "Survival Carnival" }, + // { "survival_shuffle_wk11_72", "Kraken x balls x boxing" }, + // { "survival_shuffle_wk11_73", "Gum survival" }, + // { "survival_shuffle_wk11_74", "スライム研究室" }, + // { "survival_shuffle_wk11_75", "Colour switch" }, + // { "survival_shuffle_wk11_76", "Fall Royale" }, + // { "survival_shuffle_wk11_77", "Roll Out Explosion" }, + // { "survival_shuffle_wk11_78", "HELIX ROLL" }, + // { "survival_shuffle_wk11_79", "耐久出来ないサバイバル2" }, + // { "survival_shuffle_wk11_80", "detonates atlantis" }, + // { "survival_shuffle_wk11_81", "Conveyor Chaos" }, + // { "survival_shuffle_wk11_82", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_wk11_84", "Slime Crater" }, + // { "survival_shuffle_wk11_85", "Firewall Finale" }, + // { "survival_shuffle_wk11_86", "ブラストボールエンド" }, + // { "survival_shuffle_wk11_87", "ボタンコンフュージョン" }, + // { "survival_shuffle_wk11_88", "DEE'S- RHINO RUMBLE!!!!!!" }, + // { "survival_shuffle_wk11_89", "tournement de couleur" }, + // { "survival_shuffle_wk11_90", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_wk11_91", "HARD HEROES DRLVE SURVLVAL" }, + // { "survival_shuffle_wk11_92", "Jump Show Fall" }, + // { "survival_shuffle_wk11_93", "Hex-A-Lava" }, + // { "survival_shuffle_wk11_94", "Magma Meltdown" }, + // { "survival_shuffle_wk11_95", "恐怖のたまご" }, + // { "survival_shuffle_wk11_96", "Cosmic Clash" }, + // { "survival_shuffle_wk11_97", "Fall And Round" }, + // { "survival_shuffle_wk11_98", "フォールドッジブラストボール" }, + // { "survival_shuffle_wk11_99", "Sewer Stand-off" }, + // + // { "survival_shuffle_3wk3_01", "Sobreviventes da Batalha" }, + // { "survival_shuffle_3wk3_02", "Survival Festival" }, + // { "survival_shuffle_3wk3_03", "MEOW-FO ROYALE" }, + // { "survival_shuffle_3wk3_04", "Space Blast" }, + // { "survival_shuffle_3wk3_05", "meteor rain" }, + // { "survival_shuffle_3wk3_06", "Spiral-Cano" }, + // { "survival_shuffle_3wk3_07", "Bridge Island Boss" }, + // { "survival_shuffle_3wk3_08", "Caldera chaos" }, + // { "survival_shuffle_3wk3_09", "BLAST BRIDGES" }, + // { "survival_shuffle_3wk3_10", "Royal Rumble" }, + // { "survival_shuffle_3wk3_11", "flower ring" }, + // { "survival_shuffle_3wk3_12", "The Whirligig" }, + // { "survival_shuffle_3wk3_13", "?" }, + // { "survival_shuffle_3wk3_14", "熔岩蜂窝 Hex-A-Lava" }, + // { "survival_shuffle_3wk3_15", "Mid wars!" }, + // { "survival_shuffle_3wk3_16", "vamos rey del aire" }, + // { "survival_shuffle_3wk3_17", "Shogun's Arena" }, + // { "survival_shuffle_3wk3_18", "聖帝導夢ランボー!" }, + // { "survival_shuffle_3wk3_19", "Test Survival" }, + // { "survival_shuffle_3wk3_20", "Blunder Barge" }, + // { "survival_shuffle_3wk3_21", "Ring Off" }, + // { "survival_shuffle_3wk3_22", "âpre pélutant" }, + // { "survival_shuffle_3wk3_23", "Arena Nocaute Ultimate" }, + // { "survival_shuffle_3wk3_24", "Bataille au ²" }, + // { "survival_shuffle_3wk3_25", "Bom Bom Do" }, + // { "survival_shuffle_3wk3_26", "Super Smash Beans 2!" }, + // { "survival_shuffle_3wk3_27", "VOLLEY BRAWL!" }, + // { "survival_shuffle_3wk3_28", "Bamblast!" }, + // { "survival_shuffle_3wk3_29", "Extreme Block Party" }, + // { "survival_shuffle_3wk3_30", "Colisel da insegurança" }, + // { "survival_shuffle_3wk3_31", "hex-a-climb" }, + // { "survival_shuffle_3wk3_32", "Hex-a-lowercase t" }, + // { "survival_shuffle_3wk3_33", "Beta Jinxed" }, + // { "survival_shuffle_3wk3_34", "The flood" }, + // { "survival_shuffle_3wk3_35", "Explosive kraken!" }, + // { "survival_shuffle_3wk3_36", "Bean Abduction" }, + // { "survival_shuffle_3wk3_37", "blast fall X" }, + // { "survival_shuffle_3wk3_38", "HexaBoom" }, + // { "survival_shuffle_3wk3_39", "グラグラ足場" }, + // { "survival_shuffle_3wk3_40", "Floor-Fall-Survival" }, + // { "survival_shuffle_3wk3_41", "Batalha TRI-unFall" }, + // { "survival_shuffle_3wk3_42", "Détonation arc en ciel" }, + // { "survival_shuffle_3wk3_43", "Rustic Jungle" }, + // { "survival_shuffle_3wk3_44", "SLIME BLOCK PARTY" }, + // { "survival_shuffle_3wk3_45", "チーム(すもう)サバイバル!" }, + // { "survival_shuffle_3wk3_46", "Hex-apple" }, + // { "survival_shuffle_3wk3_47", "Aggro-Crag" }, + // { "survival_shuffle_3wk3_48", "Frenzied Factory" }, + // { "survival_shuffle_3wk3_49", "AIR BATTLE" }, + // { "survival_shuffle_3wk3_50", "The Bean-rena" }, + // { "survival_shuffle_3wk3_51", "Hex-A-Joust" }, + // { "survival_shuffle_3wk3_52", "Lake in the mountains" }, + // { "survival_shuffle_3wk3_53", "Tronco Gigante" }, + // { "survival_shuffle_3wk3_54", "Whirling Arena" }, + // { "survival_shuffle_3wk3_55", "Block Battle - Survive" }, + // { "survival_shuffle_3wk3_56", "Hot Shots" }, + // { "survival_shuffle_3wk3_57", "Gladiators" }, + // { "survival_shuffle_3wk3_58", "The Falliseum" }, + // { "survival_shuffle_3wk3_59", "Blast Chaos" }, + // { "survival_shuffle_3wk3_60", "Blast Ball Reveal" }, + // { "survival_shuffle_3wk3_61", "終末列車" }, + // { "survival_shuffle_3wk3_62", "Kraken x balls x boxing" }, + // { "survival_shuffle_3wk3_63", "Gum survival" }, + // { "survival_shuffle_3wk3_64", "スライム研究室" }, + // { "survival_shuffle_3wk3_65", "BEAN’S FIRST MATH TEST" }, + // { "survival_shuffle_3wk3_66", "Fight Land" }, + // { "survival_shuffle_3wk3_67", "Colour switch" }, + // { "survival_shuffle_3wk3_68", "Fall Royale" }, + // { "survival_shuffle_3wk3_69", "デジタルランティス" }, + // { "survival_shuffle_3wk3_70", "MAME RING" }, + // { "survival_shuffle_3wk3_71", "detonates atlantis" }, + // { "survival_shuffle_3wk3_72", "Flower Punch" }, + // { "survival_shuffle_3wk3_73", "Wobbly arena" }, + // { "survival_shuffle_3wk3_74", "TURMOIL--POWER UP PANIC" }, + // { "survival_shuffle_3wk3_75", "Why is it Spicy" }, + // { "survival_shuffle_3wk3_76", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_3wk3_77", "Slime Crater" }, + // { "survival_shuffle_3wk3_78", "ボタンコンフュージョン" }, + // { "survival_shuffle_3wk3_79", "tournement de couleur" }, + // { "survival_shuffle_3wk3_80", "Boxeo V69" }, + // { "survival_shuffle_3wk3_81", "fall in a storm" }, + // { "survival_shuffle_3wk3_82", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_3wk3_83", "Rebellion of block ver2" }, + // { "survival_shuffle_3wk3_86", "怒りのすとんぴんぐ・ぐらうんど" }, + // { "survival_shuffle_3wk3_87", "Jump Show Fall" }, + // { "survival_shuffle_3wk3_88", "カウントブロック" }, + // { "survival_shuffle_3wk3_89", "Hex-A-Lava" }, + // { "survival_shuffle_3wk3_90", "Mario" }, + // { "survival_shuffle_3wk3_91", "Magma Meltdown" }, + // { "survival_shuffle_3wk3_92", "ROOFTOP RUMBLE!" }, + // { "survival_shuffle_3wk3_93", "émoussement arc en ciel" }, + // { "survival_shuffle_3wk3_94", "Fall And Round" }, + // { "survival_shuffle_3wk3_95", "深空蜂窝" }, + // { "survival_shuffle_3wk3_96", "Pokémon Stadium" }, + // { "survival_shuffle_3wk3_97", "Safari survival" }, + // { "survival_shuffle_3wk3_98", "Slime Playground" }, + // { "survival_shuffle_3wk3_99", "Hexagonal Fadeout" }, + // { "survival_shuffle_3wk3_100", "ランダムエッグスイッチアクション" }, + // + // { "wle_shuggle_mwk3_01", "Ariko Jones" }, + // { "wle_shuggle_mwk3_02", "Triple Trial" }, + // { "wle_shuggle_mwk3_03", "Aerial Squirrel" }, + // { "wle_shuggle_mwk3_04", "ギリギリアウトチャレンジ公式競技場 1" }, + // { "wle_shuggle_mwk3_05", "シンスモウ(ブラストボール)" }, + // { "wle_shuggle_mwk3_06", "Winter Wallop" }, + // { "wle_shuggle_mwk3_07", "リリーリーパー再現" }, + // { "wle_shuggle_mwk3_08", "Wilderness Adventures!" }, + // { "wle_shuggle_mwk3_09", "Rets arc en ciel" }, + // { "wle_shuggle_mwk3_10", "egypt park" }, + // { "wle_shuggle_mwk3_11", "Green Mountain" }, + // { "wle_shuggle_mwk3_12", "super speedrun" }, + // { "wle_shuggle_mwk3_13", "ULTRA MEGA EXTREME HARD!!!" }, + // { "wle_shuggle_mwk3_14", "Заурядные Белки" }, + // { "wle_shuggle_mwk3_15", "Digital keyboard 😜✌️" }, + // { "wle_shuggle_mwk3_16", "artistic ELIMINATED challenge 1" }, + // { "wle_shuggle_mwk3_17", "TAKOのツボ" }, + // { "wle_shuggle_mwk3_18", "Jumping Season" }, + // { "wle_shuggle_mwk3_19", "Black" }, + // { "wle_shuggle_mwk3_20", "Digital Climb 3 ~Rainbow~" }, + // { "wle_shuggle_mwk3_21", "Volcanic Island Travel!" }, + // { "wle_shuggle_mwk3_22", "Sky Ball" }, + // { "wle_shuggle_mwk3_23", "Space Race Remake" }, + // { "wle_shuggle_mwk3_24", "危険なリス" }, + // { "wle_shuggle_mwk3_25", "Summer and the Wonder land of the Sea" }, + // { "wle_shuggle_mwk3_26", "Skim City" }, + // { "wle_shuggle_mwk3_27", "Prova do campeão (Champion Round)" }, + // { "wle_shuggle_mwk3_28", "Жёлтые Нарвалы" }, + // { "wle_shuggle_mwk3_29", "Tropical Punch" }, + // { "wle_shuggle_mwk3_30", "away from the slime" }, + // { "wle_shuggle_mwk3_31", "キョダイMAX黒き天空龍!PFNo02" }, + // { "wle_shuggle_mwk3_32", "Yellow Kingdoms" }, + // { "wle_shuggle_mwk3_33", "Milky way" }, + // { "wle_shuggle_mwk3_34", "SPACE ROUND" }, + // { "wle_shuggle_mwk3_35", "Speedy Bounces" }, + // { "wle_shuggle_mwk3_36", "Snow Style" }, + // { "wle_shuggle_mwk3_37", "bunny leapers V8" }, + // { "wle_shuggle_mwk3_38", "Mushroom" }, + // { "wle_shuggle_mwk3_39", "Data Dash" }, + // { "wle_shuggle_mwk3_40", "RUTA EN LA SELVA" }, + // { "wle_shuggle_mwk3_41", "Button infected desert temple" }, + // { "wle_shuggle_mwk3_42", "Carreira colorida" }, + // { "wle_shuggle_mwk3_43", "Cargo Drop" }, + // { "wle_shuggle_mwk3_44", "green dash" }, + // { "wle_shuggle_mwk3_45", "Jungle Guys" }, + // { "wle_shuggle_mwk3_46", "Golden gates" }, + // { "wle_shuggle_mwk3_47", "Evil Guys" }, + // { "wle_shuggle_mwk3_48", "Orange And Blue Leapers" }, + // { "wle_shuggle_mwk3_49", "Plinko Fall" }, + // { "wle_shuggle_mwk3_50", "Digital Bean Stumble (V2)" }, + // { "wle_shuggle_mwk3_51", "Estareo's Lele Lembe v9" }, + // { "wle_shuggle_mwk3_52", "THE GATE OF TRUTH" }, + // { "wle_shuggle_mwk3_53", "Flutter-by!" }, + // { "wle_shuggle_mwk3_54", "Sketchy Sledding!" }, + // { "wle_shuggle_mwk3_55", "A Cold Race" }, + // { "wle_shuggle_mwk3_56", "X-Treme MegaKaizo Ultra Fall GuysHardest" }, + // { "wle_shuggle_mwk3_57", "Snow Speed" }, + // { "wle_shuggle_mwk3_58", "Bean Fantasy" }, + // { "wle_shuggle_mwk3_59", "Runner(For Fame Pass)" }, + // { "wle_shuggle_mwk3_60", "French Station" }, + // { "wle_shuggle_mwk3_61", "slime climb Creative" }, + // { "wle_shuggle_mwk3_62", "CLASSROOM(PART 2)" }, + // { "wle_shuggle_mwk3_63", "Chilly Leapers" }, + // { "wle_shuggle_mwk3_64", "Fall Bridge" }, + // { "wle_shuggle_mwk3_65", "快感快速!!" }, + // { "wle_shuggle_mwk3_66", "Jungle Guys II" }, + // { "wle_shuggle_mwk3_67", "コズミックミュージック COSMIC MUSIC" }, + // { "wle_shuggle_mwk3_68", "Satellite Sprint" }, + // { "wle_shuggle_mwk3_69", "GROOVIN’ BANANA TEMPLE" }, + // { "wle_shuggle_mwk3_70", "Rumble Tumble" }, + // { "wle_shuggle_mwk3_71", "Fashion Show!" }, + // { "wle_shuggle_mwk3_72", "DROP TOWER 蹦极塔" }, + // { "wle_shuggle_mwk3_73", "Boggle-Bean Bridges" }, + // { "wle_shuggle_mwk3_74", "AquArsene" }, + // { "wle_shuggle_mwk3_75", "Winter Games" }, + // { "wle_shuggle_mwk3_76", "LOONEY TUNES" }, + // { "wle_shuggle_mwk3_77", "atlan-sprint" }, + // { "wle_shuggle_mwk3_78", "Koala kingdom" }, + // { "wle_shuggle_mwk3_79", "straight500" }, + // { "wle_shuggle_mwk3_80", "BIG CROWN MONUMENT" }, + // { "wle_shuggle_mwk3_81", "Lily River Run" }, + // { "wle_shuggle_mwk3_82", "Skyball" }, + // { "wle_shuggle_mwk3_83", "STARLIGHT STUMBLE" }, + // { "wle_shuggle_mwk3_84", "Speedway 2069" }, + // { "wle_shuggle_mwk3_85", "GOLD RUSH" }, + // { "wle_shuggle_mwk3_86", "Data Eraser" }, + // { "wle_shuggle_mwk3_87", "FESTIVE CROSSROADS" }, + // { "wle_shuggle_mwk3_88", "Rainbow highway" }, + // { "wle_shuggle_mwk3_89", "Candyland" }, + // { "wle_shuggle_mwk3_90", "hex-a-run" }, + // { "wle_shuggle_mwk3_91", "Rover Rumble" }, + // { "wle_shuggle_mwk3_92", "MEOW MEOW GALAXY" }, + // { "wle_shuggle_mwk3_93", "Speedy Lovers" }, + // { "wle_shuggle_mwk3_94", "THE Rivalry Game (Football)" }, + // { "wle_shuggle_mwk3_95", "MARIPEN PHOTOLOCATION(Digital)" }, + // { "wle_shuggle_mwk3_96", "Olympique Guys" }, + // { "wle_shuggle_mwk3_97", "Boo City" }, + // { "wle_shuggle_mwk3_98", "CARNIVORUS PLANTS" }, + // { "wle_shuggle_mwk3_99", "はしるまくれ!⊂{◎Å◎}⊃" }, + // { "wle_shuggle_mwk3_100", "Crazy Coaster" }, + // + // { "playful_refresh_w2_01", "Winter Wallop" }, + // { "playful_refresh_w2_02", "Multi Leaper" }, + // { "playful_refresh_w2_03", "ストレートスタンブル" }, + // { "playful_refresh_w2_04", "RUN RUN Park" }, + // { "playful_refresh_w2_05", "やってみな!" }, + // { "playful_refresh_w2_06", "ごちゃごちゃストリート" }, + // { "playful_refresh_w2_07", "Conveyors Obstacles" }, + // { "playful_refresh_w2_08", "Seeing The Bean Ball" }, + // { "playful_refresh_w2_09", "Green Mountain" }, + // { "playful_refresh_w2_10", "Ancient Fallstronomers" }, + // { "playful_refresh_w2_11", "Jumping Season" }, + // { "playful_refresh_w2_12", "Track attackers system" }, + // { "playful_refresh_w2_13", "CASTLE CLASH" }, + // { "playful_refresh_w2_14", "The Terrible Spiral Of Woo Remake" }, + // { "playful_refresh_w2_15", "Rainbow Dash" }, + // { "playful_refresh_w2_16", "TruPixel's Jungle Mash-up" }, + // { "playful_refresh_w2_17", "fall-in space" }, + // { "playful_refresh_w2_18", "Monochromatic Manic" }, + // { "playful_refresh_w2_19", "Adrenaline Force 2" }, + // { "playful_refresh_w2_20", "DIGITAL MADNESS" }, + // { "playful_refresh_w2_21", "Data Dash" }, + // { "playful_refresh_w2_22", "Caida resbaladisa" }, + // { "playful_refresh_w2_23", "Snow Mountain" }, + // { "playful_refresh_w2_24", "Orange And Blue Leapers" }, + // { "playful_refresh_w2_25", " Wild Dunes" }, + // { "playful_refresh_w2_26", "Blundercity Marathon" }, + // { "playful_refresh_w2_27", "Pocket Summit" }, + // { "playful_refresh_w2_28", "Love a day" }, + // { "playful_refresh_w2_29", "Passage imbroglio arc en ciel" }, + // { "playful_refresh_w2_30", "Fall Stars" }, + // { "playful_refresh_w2_31", "SPRING MOUNTAIN" }, + // { "playful_refresh_w2_32", "AquArsene" }, + // { "playful_refresh_w2_33", "Rainbow Riptide" }, + // { "playful_refresh_w2_34", "Cluster Cosmos" }, + // { "playful_refresh_w2_35", "Koala kingdom" }, + // { "playful_refresh_w2_36", "Fallyager 12 Repair Mission" }, + // { "playful_refresh_w2_37", "Lily River Run" }, + // { "playful_refresh_w2_38", "STARLIGHT STUMBLE" }, + // { "playful_refresh_w2_39", "Welcome to Namek" }, + // { "playful_refresh_w2_40", "Rainbow highway" }, + // { "playful_refresh_w2_41", "Past passage" }, + // { "playful_refresh_w2_42", "Neon pipe run" }, + // { "playful_refresh_w2_43", "NAUTICAL SHAMBLE" }, + // + // { "wle_mrs_winter_opener_01", "Winter Blunderland" }, + // { "wle_mrs_winter_opener_02", "Frosty fiesta" }, + // { "wle_mrs_winter_opener_03", "Knight Slide" }, + // { "wle_mrs_winter_opener_04", "Digi-Snow Stumble" }, + // { "wle_mrs_winter_opener_05", "Snowy Cave-in" }, + // { "wle_mrs_winter_opener_06", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "wle_mrs_winter_opener_07", "A Cold Race" }, + // { "wle_mrs_winter_opener_08", "Ice Rock" }, + // { "wle_mrs_winter_filler_01", "Snowy Flakes" }, + // { "wle_mrs_winter_filler_02", "Mountain of Ice" }, + // { "wle_mrs_winter_filler_03", "FROSTY FUMBLE" }, + // { "wle_mrs_winter_filler_04", "Winter Getaway" }, + // { "wle_mrs_winter_filler_05", "Snowy Speed Sprint" }, + // { "wle_mrs_winter_filler_06", "WINTER WONDERLAND" }, + // { "wle_mrs_winter_filler_07", "Gran Glaciar Paradicial" }, + // { "wle_mrs_winter_final_01", "The Ice Dragon's Lair" }, + // { "wle_mrs_winter_final_02", "Winter Wonderland" }, + // { "wle_mrs_winter_final_03", "Snowman Sprint" }, + // { "wle_mrs_winter_final_04", "MERRY CLIMBING!" }, + // { "wle_mrs_winter_final_05", "Winter Wonderland" }, + // + // { "wle_s10_cf_round_001", "Blocky Bridges" }, + // { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + // { "wle_s10_cf_round_003", "Drop n' Drag" }, + // { "wle_s10_cf_round_004", "Fun with Fans" }, + // + // { "wle_s10_bt_round_001", "Push Ups" }, + // { "wle_s10_bt_round_002", "Heave & Haul" }, + // { "wle_s10_bt_round_003", "Stepping Stones" }, + // { "wle_s10_bt_round_004", "Double Trouble" }, + // + // { "wle_mrs_bagel_opener_1", "Tunnel of Love" }, + // { "wle_mrs_bagel_opener_2", "Pink Parade" }, + // { "wle_mrs_bagel_opener_3", "Prideful Path" }, + // { "wle_mrs_bagel_opener_4", "Coming Together" }, + // { "wle_mrs_bagel_filler_1", "Clifftop Capers" }, + // { "wle_mrs_bagel_filler_2", "Waveway Splits" }, + // { "wle_mrs_bagel_filler_3", "In the Groove" }, + // { "wle_mrs_bagel_filler_4", "Heartfall Heat" }, + // { "wle_mrs_bagel_final_1", "Rainbow Rise" }, + // { "wle_mrs_bagel_final_2", "Out and About" }, + // + // { "wle_mrs_bouncy_bean_time_opener", "Frosty Frolics" }, + // { "wle_mrs_bouncy_bean_time_opener_02", "roll roll bean" }, + // { "wle_mrs_bouncy_bean_time_opener_03", "SPEEDROLLING" }, + // { "wle_mrs_bouncy_bean_time_filler", "Ball Park" }, + // { "wle_mrs_bouncy_bean_time_filler_02", "Ball Carnival" }, + // { "wle_mrs_bouncy_bean_time_filler_03", "Spiral Trial" }, + // { "wle_mrs_bouncy_bean_time_filler_04", "Golf Fall" }, + // { "wle_mrs_bouncy_bean_time_final", "Downtown Rush" }, + // { "wle_mrs_bouncy_bean_time_final_02", "Skyview Derby" }, + // { "wle_mrs_bouncy_bean_time_final_03", "Rolling Speedway" }, + // { "wle_mrs_bouncy_bean_time_final_04", "SEA FLOW!" }, + } + }, + { Language.SimplifiedChinese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "round_airtime", "空中竞赛" }, + { "round_bluejay", "糖豆山世界" }, + { "round_biggestfan", "大风车转转转" }, + { "round_hoops_revenge_symphony_launch_show", "弹跳派对" }, + { "round_king_of_the_hill", "泡泡危机" }, + { "round_1v1_button_basher", "砸键狂豆" }, + { "round_satellitehoppers_almond", "星际快道" }, + { "round_door_dash", "闯门冲关" }, + { "round_gauntlet_02", "目眩山巅" }, + { "round_ffa_button_bashers_squads_almond", "疯狂工厂" }, + { "round_iceclimb", "严寒冰峰" }, + { "round_dodge_fall", "连躲带落" }, + { "round_see_saw_360", "摇晃转盘" }, + { "round_chompchomp", "五花八门" }, + { "round_gauntlet_01", "障碍狂欢" }, + { "round_slippy_slide", "钻圈滑道" }, + { "round_hoops_blockade_solo", "钻圈王者" }, + { "round_gauntlet_04", "骑士狂热" }, + { "round_follow-the-leader_s6_launch", "万众焦点" }, + { "round_drumtop", "林间跃动" }, + { "round_gauntlet_08", "派对大道" }, + { "round_penguin_solos", "企鹅戏水" }, + { "round_pipedup_s6_launch", "梦幻管道" }, + { "round_pixelperfect_almond", "像素级还原" }, + { "round_follow_the_line", "谜题之路" }, + { "round_tunnel_race", "滚滚而去" }, + { "round_see_saw", "跷跷板" }, + { "round_shortcircuit", "田径短路" }, + { "round_skeefall", "雪山速降" }, + { "round_gauntlet_06", "天际大冲关" }, + { "round_lava", "水涨爬高" }, + { "round_slimeclimb_2", "摩天黏液" }, + { "round_gauntlet_10_almond", "太空竞速" }, + { "round_slide_chute", "糖豆坡上飞" }, + { "round_short_circuit_2_symphony_launch_show", "高速赛道" }, + { "round_starlink_almond", "隐匿星图" }, + { "round_tip_toe", "踮踮脚尖" }, + { "round_gauntlet_09_symphony_launch_show", "障碍田径赛" }, + { "round_gauntlet_07", "丛林探险" }, + { "round_gauntlet_05", "苔原冲关" }, + { "round_gauntlet_03", "旋转木马" }, + { "round_wall_guys", "攀墙豆士" }, + { "round_fruitpunch_s4_show", "跷跷喷喷" }, + { "round_blastballruins", "震荡竞技场" }, + { "round_block_party", "砖头派对" }, + { "round_hoverboardsurvival_s4_show", "悬浮板之王" }, + { "round_hoverboardsurvival2_almond", "超光速勇士" }, + { "round_jump_club", "蹦跳俱乐部" }, + { "round_match_fall", "完美配对" }, + { "round_tunnel", "滚石行动" }, + { "round_snowballsurvival", "雪球淘汰赛" }, + { "round_robotrampage_arena_2", "犀牛大冲撞" }, + { "round_fruit_bowl", "排排坐,数果果" }, + { "round_tail_tag", "追\"尾\"游戏" }, + { "round_spin_ring_symphony_launch_show", "传送带跑圈" }, + { "round_1v1_volleyfall_symphony_launch_show", "糖豆排球" }, + { "round_basketfall_s4_show", "糖豆篮球赛" }, + { "round_egg_grab", "抢蛋乱战" }, + { "round_egg_grab_02", "抢蛋攻城" }, + { "round_fall_ball_60_players", "激情足球" }, + { "round_ballhogs", "囤货狂人" }, + { "round_hoops", "钻圈圈" }, + { "round_jinxed", "鬼抓人" }, + { "round_chicken_chase", "企鹅大追捕" }, + { "round_territory_control_s4_show", "能量争夺战" }, + { "round_rocknroll", "硬石摇滚" }, + { "round_snowy_scrap", "雪球争霸" }, + { "round_invisibeans", "糖果窃贼" }, + { "round_pumpkin_pie", "万圣来盗" }, + { "round_conveyor_arena", "追尾大团战" }, + { "round_blastball_arenasurvival_symphony_launch_show", "震荡球" }, + { "round_fall_mountain_hub_complete", "登山比拼" }, + { "round_floor_fall", "蜂窝迷图" }, + { "round_hexaring_symphony_launch_show", "蜂窝迷环" }, + { "round_hexsnake_almond", "深空蜂窝" }, + { "round_jump_showdown", "巅峰对决" }, + { "round_kraken_attack", "海怪重击" }, + { "round_crown_maze", "失落神庙" }, + { "round_tunnel_final", "滚轮行动" }, + { "round_royal_rumble", "盛装团团转" }, + { "round_thin_ice", "如履薄冰" }, + { "round_tiptoefinale_almond", "决胜之踮" }, + + { "user_creative_race_round", "User Creative Race Round" }, + { "user_creative_survival_round", "User Creative Survival Round" }, + { "user_creative_hunt_round", "User Creative Hunt Round" }, + { "user_creative_logic_round", "User Creative Logic Round" }, + { "user_creative_team_round", "User Creative Team Round" }, + { "creative_race_round", "Creative Race Round" }, + { "creative_race_final_round", "Creative Race Final Round" }, + { "creative_survival_round", "Creative Survival Round" }, + { "creative_survival_final_round", "Creative Survival Final Round" }, + { "creative_hunt_round", "Creative Hunt Round" }, + { "creative_hunt_final_round", "Creative Hunt Final Round" }, + { "creative_logic_round", "Creative Logic Round" }, + { "creative_logic_final_round", "Creative Logic Final Round" }, + { "creative_team_round", "Creative Team Round" }, + { "creative_team_final_round", "Creative Team Final Round" }, + + // { "wle_main_filler_01", "Ruta en la selva" }, + // { "wle_main_filler_02", "ROTATION STATION" }, + // { "wle_main_filler_03", "canyon sun day" }, + // { "wle_main_opener_01", "Winter Disc-O" }, + // { "wle_main_opener_02", "Satellite Sprint" }, + // + // { "wle_s10_orig_round_001", "Beans Ahoy!" }, + // { "wle_s10_orig_round_002", "Airborne Antics" }, + // { "wle_s10_orig_round_003", "Scythes & Roundabouts" }, + // { "wle_s10_orig_round_004", "Cardio Runners" }, + // { "wle_s10_orig_round_005", "Fan Flingers" }, + // { "wle_s10_orig_round_006", "Uphill Struggle" }, + // { "wle_s10_orig_round_007", "Spinner Sprint" }, + // { "wle_s10_orig_round_008", "Lane Changers" }, + // { "wle_s10_orig_round_009", "Gentle Gauntlet" }, + // { "wle_s10_orig_round_010", "Square Up" }, + // { "wle_s10_orig_round_011", "Slide Showdown" }, + // { "wle_s10_orig_round_012", "Up & Down" }, + // { "wle_s10_orig_round_013", "Choo Choo Challenge" }, + // { "wle_s10_orig_round_014", "Runner Beans" }, + // { "wle_s10_orig_round_015", "Disc Dashers" }, + // { "wle_s10_orig_round_016", "Two Faced" }, + // { "wle_s10_orig_round_017", "Bellyflop Battlers" }, + // { "wle_s10_orig_round_018", "Apples & Oranges" }, + // { "wle_s10_orig_round_019", "Blueberry Bombardment" }, + // { "wle_s10_orig_round_020", "Chuting Stars" }, + // { "wle_s10_orig_round_021", "Slimy Slopes" }, + // { "wle_s10_orig_round_022", "Circuit Breakers" }, + // { "wle_s10_orig_round_023", "Winding Walkways" }, + // { "wle_s10_orig_round_024", "Wooseleum" }, + // { "wle_s10_orig_round_025", "Mount Boom" }, + // { "wle_s10_orig_round_026", "Hyperlink Hijinks" }, + // { "wle_s10_orig_round_027", "Fan Frolics" }, + // { "wle_s10_orig_round_028", "Windmill Road" }, + // { "wle_s10_orig_round_029", "Conveyor Clash" }, + // { "wle_s10_orig_round_030", "Mega Monument" }, + // { "wle_s10_orig_round_031", "Transfer Turnpike" }, + // { "wle_s10_orig_round_032", "Fortress Frolics" }, + // { "wle_s10_orig_round_033", "Super Door Dash" }, + // { "wle_s10_orig_round_034", "Spiral Of Woo" }, + // { "wle_s10_orig_round_035", "Tornado Trial" }, + // { "wle_s10_orig_round_036", "Hopscotch Havoc" }, + // { "wle_s10_orig_round_037", "Beat Bouncers" }, + // { "wle_s10_orig_round_038", "Blunder Bridges" }, + // { "wle_s10_orig_round_039", "Incline Rewind" }, + // { "wle_s10_orig_round_040", "Prismatic Parade" }, + // { "wle_s10_orig_round_041", "Swept Away" }, + // { "wle_s10_orig_round_042", "Balancing Act" }, + // { "wle_s10_orig_round_043", "Trouble Tower" }, + // { "wle_s10_orig_round_044", "Serpent Slalom" }, + // { "wle_s10_orig_round_045", "Floorless" }, + // { "wle_s10_orig_round_045_long", "Floorless" }, + // { "wle_s10_orig_round_046", "In The Cloud" }, + // { "wle_s10_orig_round_047", "Downstream Duel" }, + // { "wle_s10_orig_round_048", "Lost Palace" }, + // { "wle_s10_long_round_003", "Fall Speedway" }, + // { "wle_s10_long_round_004", "ZigZag Zoomies" }, + // { "wle_s10_long_round_005", "Terrabyte Trial" }, + // { "wle_s10_round_001", "Digi Trek" }, + // { "wle_s10_round_002", "Shortcut Links" }, + // { "wle_s10_round_003", "Upload Heights" }, + // { "wle_s10_round_004", "Parkour Panic" }, + // { "wle_s10_round_005", "Data Streams" }, + // { "wle_s10_round_006", "Gigabyte Gauntlet" }, + // { "wle_s10_round_007", "Cube Corruption" }, + // { "wle_s10_round_008", "Wham Bam Boom" }, + // { "wle_s10_round_009", "Firewall Finale" }, + // { "wle_s10_round_010", "Pixel Hearts" }, + // { "wle_s10_round_011", "Cyber Circuit" }, + // { "wle_s10_round_012", "Boom Blaster Trial" }, + // + // { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + // { "wle_s10_player_round_wk3_02", "Door Game" }, + // { "wle_s10_player_round_wk3_03", "Full Speed Sliding (FSS) - Jelly Road" }, + // { "wle_s10_player_round_wk3_04", "Sky High Run" }, + // { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + // { "wle_s10_player_round_wk3_07", "Descente Créative" }, + // { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + // { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + // { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + // { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + // { "wle_s10_player_round_wk3_12", "Variable Valley" }, + // { "wle_fp2_wk6_01", "Broken Course" }, + // { "wle_s10_player_round_wk3_14", "Tower of Fall" }, + // { "wle_s10_player_round_wk3_15", "Parkour Party" }, + // { "wle_s10_player_round_wk3_16", "Catastrophe Climb" }, + // { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + // { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + // { "wle_s10_player_round_wk3_19", "Sky Time" }, + // { "wle_s10_player_round_wk3_20", "EZz Map" }, + // + // { "wle_s10_player_round_wk4_01", "Slippery Stretch" }, + // { "wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + // { "wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + // { "wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + // { "wle_s10_player_round_wk4_06", "Topsie Tursie" }, + // { "wle_s10_player_round_wk4_07", "Arcade Assault" }, + // { "wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + // { "wle_s10_player_round_wk4_09", "Green Beans" }, + // { "wle_s10_player_round_wk4_10", "Hop Hill" }, + // { "wle_s10_player_round_wk4_11", "Quick Sliders" }, + // { "wle_s10_player_round_wk4_12", "Split Path" }, + // { "wle_s10_player_round_wk4_13", "Piso resbaloso" }, + // { "wle_s10_player_round_wk4_15", "Snowboard Street" }, + // { "wle_s10_player_round_wk4_18", "House Invasion" }, + // { "wle_s10_player_round_wk4_19", "SOLO FULL-TILT RAGE" }, + // { "wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + // { "wle_s10_player_round_wk4_21", "Spin" }, + // { "wle_s10_player_round_wk4_22", "Lane Changers" }, + // + // { "wle_s10_player_round_wk5_01", "Block Park" }, + // { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + // { "wle_s10_player_round_wk5_03", "Digital Temple" }, + // { "wle_s10_player_round_wk5_04", "Tower Escape" }, + // { "wle_s10_player_round_wk5_05", "Tower Dash" }, + // { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + // { "wle_s10_player_round_wk5_07", "Looooping" }, + // { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + // { "wle_s10_player_round_wk5_10", "Siank Arena" }, + // { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + // { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + // { "wle_s10_player_round_wk5_13", "Dessert Village" }, + // { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + // { "wle_s10_player_round_wk5_15", "Beast Route" }, + // { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + // { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + // { "wle_s10_player_round_wk5_18", "Digital Doom" }, + // + // { "wle_s10_player_round_wk6_01", "Hammer Heaven" }, + // { "wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + // { "wle_s10_player_round_wk6_03", "Castle Rush" }, + // { "wle_s10_player_round_wk6_04", "Chaotic Race" }, + // { "wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + // { "wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + // { "wle_s10_player_round_wk6_08", "Flower Power" }, + // { "wle_s10_player_round_wk6_09", "Dimension Explorer" }, + // { "wle_s10_player_round_wk6_10", "Forked Passage" }, + // { "wle_s10_player_round_wk6_12", "The Bee Hive" }, + // { "wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + // { "wle_s10_player_round_wk6_14", "Snek" }, + // { "wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + // { "wle_s10_player_round_wk6_17", "Slippery Helixes" }, + // { "wle_s10_player_round_wk6_18", "Recess" }, + // { "wle_s10_player_round_wk6_19", "Parrot river" }, + // { "wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + // + // { "current_wle_fp3_07_01", "Block Sledding" }, + // { "current_wle_fp3_07_02", "Layup Wallop" }, + // { "current_wle_fp3_07_03", "Minecart Mayhem" }, + // { "current_wle_fp3_07_04", "Bouncing Pass" }, + // { "current_wle_fp3_07_05", "Ball Factory" }, + // { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + // { "current_wle_fp3_07_0_02", "Woo-F-O" }, + // { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + // + // { "current_wle_fp3_08_01", "Grabbers Territory" }, + // { "current_wle_fp3_08_02", "A Way Out" }, + // { "current_wle_fp3_08_03", "Wall Block" }, + // { "current_wle_fp3_08_04", "The dream island" }, + // { "current_wle_fp3_08_05", "Rainbow pulsion" }, + // { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + // { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + // { "current_wle_fp3_08_10", "Crazy boxes" }, + // { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + // { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + // { "current_wle_fp3_08_15", "Stumble Teams" }, + // { "current_wle_fp3_08_16", "Twisting Tower" }, + // { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + // { "current_wle_fp3_08_18", "The Rising Blocks" }, + // { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + // { "current_wle_fp3_09_01", "The up tower" }, + // { "current_wle_fp3_09_02", "Short shuriken" }, + // { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + // { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + // { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + // { "current_wle_fp3_09_06", "Random Heights" }, + // { "current_wle_fp3_09_07", "Climb scramble" }, + // { "current_wle_fp3_09_08", "Collide Gaming" }, + // { "current_wle_fp3_09_09", "Very Compressed Level" }, + // { "current_wle_fp3_09_0_01", "Slippery Slope" }, + // { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + // { "current_wle_fp3_09_0_03", "Free Falling" }, + // { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + // { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + // { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + // { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + // + // { "current_wle_fp3_10_01", "When Nature Falls" }, + // { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + // { "current_wle_fp3_10_03", "The Slime Trials" }, + // { "current_wle_fp3_10_04", "Friendly Obstacles" }, + // { "current_wle_fp3_10_05", "Climb and Fall" }, + // { "current_wle_fp3_10_06", "Stairs and some other things" }, + // { "current_wle_fp3_10_07", "Meowgical World" }, + // { "current_wle_fp3_10_08", "Polluelo Speed" }, + // { "current_wle_fp3_10_09", "Pixel Parade" }, + // { "current_wle_fp3_10_10", "Total Madness" }, + // { "current_wle_fp3_10_11", "The Abstract Maze" }, + // { "current_wle_fp3_10_12", "Fan Off" }, + // { "current_wle_fp3_10_13", "cloud highway" }, + // { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + // { "current_wle_fp3_10_15", "Speedrunners be like" }, + // { "current_wle_fp3_10_16", "Tumble Tower" }, + // { "current_wle_fp3_10_17", "Silver's Snake Run" }, + // { "current_wle_fp3_10_18", "Now Boarding" }, + // { "current_wle_fp3_10_19", "Slime Scale" }, + // { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + // { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + // { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + // { "current_wle_fp3_10_23", "Controlled Chaos" }, + // { "current_wle_fp3_10_24", "Xtreme Jumping" }, + // { "current_wle_fp3_10_25", "Odin" }, + // { "current_wle_fp3_10_26", "Ciudad nube" }, + // { "current_wle_fp3_10_27", "Bean Voyage" }, + // { "current_wle_fp3_10_28", "SLIP-SAW" }, + // { "current_wle_fp3_10_29", "Bbq bacon burger" }, + // + // { "current_wle_fp4_05_01_01", "巅峰车站" }, + // { "current_wle_fp4_05_01_02", "Beba Park 7" }, + // { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + // { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + // { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + // { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + // { "current_wle_fp4_05_02", "Mini only up" }, + // { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + // { "current_wle_fp4_05_03_02", "Remote Control" }, + // { "current_wle_fp4_05_03", "Parkway Slide" }, + // { "current_wle_fp4_05_04", "Duel Dash" }, + // { "current_wle_fp4_05_05", "beaten trackless road" }, + // { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + // { "current_wle_fp4_05_2_02", "arch city" }, + // { "current_wle_fp4_05_2_03", "Desert Ruins" }, + // + // { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + // { "current_wle_fp4_06_02", "Pachislo" }, + // { "current_wle_fp4_06_0_01", "AquArsene" }, + // { "current_wle_fp4_06_0_02", "RainbowCloud" }, + // { "current_wle_fp4_06_0_03", "Pink Cascade" }, + // { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + // { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + // { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + // { "current_wle_fp4_06_1_01", "Buggin' Out" }, + // { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + // { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + // { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + // { "current_wle_fp4_06_1_05", "The climb of Trials" }, + // { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + // + // { "current_wle_fp4_07_01", "Rotational Runner" }, + // { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + // { "current_wle_fp4_07_03", "simple stage" }, + // { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + // { "current_wle_fp4_07_05", "Factory Valley" }, + // { "current_wle_fp4_07_06", "Jumpy Beans" }, + // { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + // { "current_wle_fp4_07_0_01", "Camino Ninja" }, + // + // { "current_wle_fp4_08_01", "co-op guys" }, + // { "current_wle_fp4_08_0_01", "The big slide" }, + // { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + // { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + // { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + // { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + // { "current_wle_fp4_08_0_06", "X-Course" }, + // { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + // { "current_wle_fp4_08_1_01", "Boost in Dash" }, + // { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + // { "current_wle_fp4_08_1_03", "Giddy up!" }, + // { "current_wle_fp4_08_1_04", "Mad lab" }, + // { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + // { "current_wle_fp4_08_3_01", "The Oasis" }, + // + // { "current_wle_fp4_09_01", "Crate Collector" }, + // { "current_wle_fp4_09_02", "Dribble Drills" }, + // { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + // { "current_wle_fp4_09_04", "Skyline Park" }, + // { "current_wle_fp4_09_05", "Birthday bonanza" }, + // { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + // { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + // { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + // { "current_wle_fp4_09_1_02", "Haute voltige" }, + // { "current_wle_fp4_09_2_01", "DNA Test" }, + // + // { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + // { "current_wle_fp4_10_02", "Hot Blast" }, + // { "current_wle_fp4_10_03", "Box Fan Blitz" }, + // { "current_wle_fp4_10_04", "Woo-terfall Way" }, + // { "current_wle_fp4_10_05", "Slime race" }, + // { "current_wle_fp4_10_06", "Moving Day" }, + // { "current_wle_fp4_10_07", "Birthday Dash" }, + // { "current_wle_fp4_10_08_m", "Wall Breaker" }, + // { "current_wle_fp4_10_08", "Chess History" }, + // { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + // { "current_wle_fp4_10_12", "Chickens run away" }, + // { "current_wle_fp4_10_20", "Co-op and CO" }, + // { "current_wle_fp4_10_21", "Construction Site" }, + // { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + // { "current_wle_fp4_10_0_02", "Molehills" }, + // + // { "current_wle_fp5_2_01_01", "Plummet Summit" }, + // { "current_wle_fp5_2_01_02", "タワークライム" }, + // { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + // { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + // { "current_wle_fp5_2_01", "Jabonsotes" }, + // { "current_wle_fp5_2_02_01", "のっぽタワー" }, + // { "current_wle_fp5_2_02_02", "Blaster Course" }, + // { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + // { "current_wle_fp5_2_02_04", "The hard Climb" }, + // { "current_wle_fp5_2_02_05", "sliding guys" }, + // { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + // { "current_wle_fp5_2_02", "Rainbow highway" }, + // { "current_wle_fp5_2_03", "Falligator" }, + // { "current_wle_fp5_2_04_01", "Lily Lovers" }, + // { "current_wle_fp5_2_04_02", "rainow rode" }, + // { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_04_04", "Super crazy level" }, + // { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + // { "current_wle_fp5_2_05_01", "Level XVIII" }, + // { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + // { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_05_04", "rainbow roade" }, + // { "current_wle_fp5_2_05", "The tension Parkour" }, + // { "current_wle_fp5_2_06", "Stairing Contest" }, + // { "current_wle_fp5_2_07", "Vibrant Ascension" }, + // + // { "current_wle_fp5_3_05_01", "Beany Golf!" }, + // { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + // { "current_wle_fp5_4_01_01", "Tilted Walls" }, + // { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + // { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + // { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + // { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + // + // { "current_wle_fp5_10_01", "Breezy Buddies" }, + // { "current_wle_fp5_10_0_01", "Salto Plancha" }, + // { "current_wle_fp5_10_0_02", "My house" }, + // { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + // { "current_wle_fp5_10_1_01", "Desert Ruins" }, + // { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_01", "Desert Ruins" }, + // { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_03", "Mystic River" }, + // { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + // { "current_wle_fp5_10_2_05", "Cliffside" }, + // { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + // { "current_wle_fp5_10_2_07", "The Avenue" }, + // { "current_wle_fp5_10_2_08", "Gold City" }, + // { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + // { "current_wle_fp5_10_2_10", "初心者用コース" }, + // { "current_wle_fp5_10_2_11", "Chain Reaction" }, + // + // { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + // { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + // { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + // { "current_wle_fp5_wk3_1_04", "El airecito" }, + // { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + // { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + // { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + // { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + // { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + // { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + // { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + // { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + // { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + // { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + // { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + // + // { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + // { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + // { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + // { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + // { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + // { "current_wle_fp5_falloween_1_06", "Mirage" }, + // { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + // { "current_wle_fp5_falloween_1_08", "Toon World" }, + // { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + // { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + // { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + // { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + // { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + // { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + // { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + // { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + // { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + // { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + // { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + // { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + // { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + // { "current_wle_fp5_falloween_2_03_06", "Spider" }, + // { "current_wle_fp5_falloween_2_03", "fastoween" }, + // { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + // { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + // { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + // { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + // { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + // { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + // { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + // { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + // { "current_wle_fp5_falloween_4_05", "Scary Final" }, + // { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + // { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + // { "current_wle_fp5_falloween_4_08", "Catoween" }, + // { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + // { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + // { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + // { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + // { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + // { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + // { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + // { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + // { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + // { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + // { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + // { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + // { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + // { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + // { "current_wle_fp5_falloween_5_04", "Halloween" }, + // { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + // { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + // { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + // { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + // { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + // { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + // { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + // { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + // { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + // { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + // { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + // { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + // { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + // { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + // { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + // { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + // { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + // { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + // { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + // { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + // { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + // { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + // { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + // { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + // { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + // { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + // { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + // { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + // { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + // { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + // { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + // { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + // { "current_wle_fp5_falloween_9_02", "Raveyard" }, + // { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + // { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + // { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + // { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + // { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + // { "current_wle_fp5_falloween_11_01", "Night Runners" }, + // { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + // { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + // { "current_wle_fp5_falloween_13_01", "Witch Way" }, + // { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + // { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + // + // { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + // { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + // { "current_wle_fp6_1_03", "SKULL KING" }, + // { "current_wle_fp6_1_04", "shorter circuit" }, + // { "current_wle_fp6_1_05", "be speedy" }, + // { "current_wle_fp6_1_06", "Sky-City Stumble" }, + // { "current_wle_fp6_1_07", "Wormhole Mountain" }, + // { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + // { "current_wle_fp6_1_09", "Splitspeed" }, + // { "current_wle_fp6_1_10", "Fall Canyon" }, + // { "current_wle_fp6_2_01", "Valise" }, + // { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + // { "current_wle_fp6_2_03", "Water Way" }, + // { "current_wle_fp6_2_04", "The Doors of Doom" }, + // { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + // { "current_wle_fp6_2_06", "Liana Swings" }, + // { "current_wle_fp6_2_07", "Colourful" }, + // { "current_wle_fp6_2_08", "The Heist!" }, + // { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + // { "current_wle_fp6_3_01", "Tricky Treat" }, + // { "current_wle_fp6_3_02", "The Lighthouse" }, + // { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + // { "current_wle_fp6_3_04", "The Scarescraper" }, + // { "current_wle_fp6_3_05", "Obstacle Road" }, + // { "current_wle_fp6_3_06", "Rest In Paris" }, + // { "current_wle_fp6_3_07", "Horror pumpkim" }, + // { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + // + // { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + // { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + // { "current_wle_fp6_wk2_03", "Slidy Road" }, + // { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + // { "current_wle_fp6_wk2_05", "Lost in space" }, + // { "current_wle_fp6_wk2_06", "Turbine Decline" }, + // { "current_wle_fp6_wk2_07", "Zero Displacement" }, + // { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + // { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + // { "current_wle_fp6_wk2_10", "Neoway" }, + // { "current_wle_fp6_wk2_11", "Niagara Falls" }, + // { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + // { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + // { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + // { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + // { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + // { "current_wle_fp6_wk2_1_06", "Locomoção" }, + // { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + // { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + // { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + // + // { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + // { "current_wle_fp6_wk3_02", "Compact 5" }, + // { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + // { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + // { "current_wle_fp6_wk3_05", "Alto voltaje" }, + // { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + // { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + // { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + // { "current_wle_fp6_wk3_09", "Work and Travel" }, + // { "current_wle_fp6_wk3_10", "connect the bridge" }, + // { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + // { "current_wle_fp6_wk3_2_02", "speed demon" }, + // { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + // { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + // { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + // { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + // { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + // + // { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + // { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + // { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + // { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + // { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + // { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + // { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + // { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + // { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + // { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + // { "current_wle_fp6_wk4_03_05", "Snow Style" }, + // { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + // { "current_wle_fp6_wk4_05_01", "Rebound" }, + // { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + // { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + // + // { "current_wle_community_10_5_01", "Snowy Starfall" }, + // { "current_wle_community_10_5_02", "The Earthquake" }, + // { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + // { "current_wle_community_10_5_1_04", "Garden of Woo" }, + // { "current_wle_community_10_5_1_05", "Out in the open" }, + // { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + // { "current_wle_community_10_5_1_08", "Jungle Journey" }, + // { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + // { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + // { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + // { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + // { "current_wle_community_10_5_1_15", "Three Rooms" }, + // { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + // { "current_wle_community_10_5_1_17", "Winter Slide" }, + // { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + // + // { "wle_discover_level_wk2_001", "Castle in the Clouds" }, + // { "wle_discover_level_wk2_002", "Christmas corner!" }, + // { "wle_discover_level_wk2_003", "Hot Wheels 2069" }, + // { "wle_discover_level_wk2_004", "Bounce Back Racetrack" }, + // { "wle_discover_level_wk2_005", "Space Getaway" }, + // { "wle_discover_level_wk2_006", "fall mountain (糖豆山涧)" }, + // { "wle_discover_level_wk2_007", "伝説のポケモン!" }, + // { "wle_discover_level_wk2_008", "Knight Slide" }, + // { "wle_discover_level_wk2_009", "Christmas Run" }, + // { "wle_discover_level_wk2_010", "Labyrinth (1986) Part1" }, + // { "wle_discover_level_wk2_011", "Rebound" }, + // { "wle_discover_level_wk2_012", "Trip to Santa's home" }, + // { "wle_discover_level_wk2_013", "ピッピカチュ☆彡" }, + // { "wle_discover_level_wk2_014", "Rainbow Race" }, + // { "wle_discover_level_wk2_015", "Speed Suburbs" }, + // { "wle_discover_level_wk2_016", "SUPER MARIO WONDER" }, + // { "wle_discover_level_wk2_017", "Punching Bridges" }, + // { "wle_discover_level_wk2_018", "The Slimescrapper" }, + // { "wle_discover_level_wk2_019", "Snowy Flakes" }, + // { "wle_discover_level_wk2_020", "Foggy Freeway" }, + // { "wle_discover_level_wk2_021", "Snowy Climb" }, + // { "wle_discover_level_wk2_022", "snow athletic valley" }, + // { "wle_discover_level_wk2_023", "詰め込んだだけレース4" }, + // { "wle_discover_level_wk2_024", "Winter Wonder Sprint" }, + // { "wle_discover_level_wk2_025", "Randonnée Galactique" }, + // { "wle_discover_level_wk2_026", "Cloudy with a Chance of Cannonballs" }, + // { "wle_discover_level_wk2_027", "Digital Snowland" }, + // { "wle_discover_level_wk2_028", "Shiver Beans" }, + // { "wle_discover_level_wk2_029", "SanTama Run" }, + // { "wle_discover_level_wk2_030", "Winter Run" }, + // { "wle_discover_level_wk2_031", "Jiggle Jingle" }, + // { "wle_discover_level_wk2_032", "Ice Pop Interstate" }, + // { "wle_discover_level_wk2_033", "クリエだよ全員集合" }, + // { "wle_discover_level_wk2_034", "Snow Day" }, + // { "wle_discover_level_wk2_035", "It's Tiiiiiiiimeee!" }, + // { "wle_discover_level_wk2_036", "KYOUFUU GUYS BACK" }, + // { "wle_discover_level_wk2_037", "Sonic's Sunset Adventure" }, + // { "wle_discover_level_wk2_038", "♪勝利のフォンフォーレ" }, + // { "wle_discover_level_wk2_039", "RACE ORIGINS" }, + // { "wle_discover_level_wk2_040", "Winter Wipeout" }, + // { "wle_discover_level_wk2_041", "Centripetal Circuit" }, + // { "wle_discover_level_wk2_042", "MERRY MAYHEM!" }, + // { "wle_discover_level_wk2_043", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_044", "The Scarescraper" }, + // { "wle_discover_level_wk2_045", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_046", "$$$¡The Casino Crew!$$$" }, + // { "wle_discover_level_wk2_047", "Dee's- Escape the Pirate Ship!" }, + // { "wle_discover_level_wk2_048", "ジャングル ぐるぐる" }, + // { "wle_discover_level_wk2_049", "ショートステージ" }, + // { "wle_discover_level_wk2_050", "スノーマウンテンクライム" }, + // + // { "wle_round_mrs_shuffle_discover_005", "My Melody" }, + // { "wle_round_mrs_shuffle_discover_006", "prismatic ice crystal" }, + // { "wle_round_mrs_shuffle_discover_007", "スキルアップステージ" }, + // { "wle_round_mrs_shuffle_discover_008", "WHITE TREE JUMBLE" }, + // { "wle_round_mrs_shuffle_discover_009", "Snowy Adventure" }, + // { "wle_round_mrs_shuffle_discover_010", "Happy Bean Food Fiesta" }, + // { "wle_round_mrs_shuffle_discover_011", "Belly Flop Bobsleigh" }, + // { "wle_round_mrs_shuffle_discover_012", "winter party" }, + // { "wle_round_mrs_shuffle_discover_013", "The lost keys" }, + // { "wle_round_mrs_shuffle_discover_014", "Bonk" }, + // { "wle_round_mrs_shuffle_discover_015", "Winter Disc-O" }, + // { "wle_round_mrs_shuffle_discover_016", "christmas wreath!" }, + // { "wle_round_mrs_shuffle_discover_017", "Winter BebaLand" }, + // { "wle_round_mrs_shuffle_discover_018", "Automatic FallGuys" }, + // { "wle_round_mrs_shuffle_discover_019", "Holiday Dash" }, + // { "wle_round_mrs_shuffle_discover_020", "Treetop Frost" }, + // { "wle_round_mrs_shuffle_discover_021", "Rainbow Run" }, + // { "wle_round_mrs_shuffle_discover_022", "BYE DONT HAVE A GREAT TIME PART LXIX" }, + // { "wle_round_mrs_shuffle_discover_023", "Hieroglysphinx Hurdles" }, + // { "wle_round_mrs_shuffle_discover_024", "ホなら" }, + // { "wle_round_mrs_shuffle_discover_025", "Bye have a great time part 45" }, + // { "wle_round_mrs_shuffle_discover_026", "POWDERY PEAK" }, + // { "wle_round_mrs_shuffle_discover_027", "It's Christmas Slime Climb Time!" }, + // { "wle_round_mrs_shuffle_discover_028", "MERRY CLIMBING!" }, + // { "wle_round_mrs_shuffle_discover_030", "Snow N' Speed" }, + // { "wle_round_mrs_shuffle_discover_032", "Lets Have Fun (74)" }, + // { "wle_round_mrs_shuffle_discover_033", "Concept Ladder Match (Pre-alpha)" }, + // { "wle_round_mrs_shuffle_discover_034", "Speedy City" }, + // { "wle_round_mrs_shuffle_discover_036", "Fall Village" }, + // { "wle_round_mrs_shuffle_discover_037", "超巨大な、クリスマスツリー" }, + // { "wle_round_mrs_shuffle_discover_038", "TINSELTOWN MELTDOWN!" }, + // { "wle_round_mrs_shuffle_discover_039", "Jump jar jar" }, + // { "wle_round_mrs_shuffle_discover_040", "FOOD FIESTA" }, + // { "wle_round_mrs_shuffle_discover_041", "Bye have a great time part 46" }, + // { "wle_round_mrs_shuffle_discover_044", "BEAN BALL" }, + // { "wle_round_mrs_shuffle_discover_045", "Python Pinball" }, + // { "wle_round_mrs_shuffle_discover_046", "Block Battle" }, + // { "wle_round_mrs_shuffle_discover_047", "Ice Cold Ascension" }, + // { "wle_round_mrs_shuffle_discover_048", "ボタンでGO!" }, + // { "wle_round_mrs_shuffle_discover_049", "ミクセル MIKUSERU" }, + // { "wle_round_mrs_shuffle_discover_050", "ホなら" }, + // + // { "wle_discovery_shuffle_up2_01", "The spooky trail" }, + // { "wle_discovery_shuffle_up2_05", "Balance Bean" }, + // { "wle_discovery_shuffle_up2_06", "digital slime road" }, + // { "wle_discovery_shuffle_up2_07", "The Punch Warriors! - Definitive Edition" }, + // { "wle_discovery_shuffle_up2_08", "Winter Mansion" }, + // { "wle_discovery_shuffle_up2_13", "Festive Rush" }, + // { "wle_discovery_shuffle_up2_14", "Mound Mountain" }, + // { "wle_discovery_shuffle_up2_15", "FEVER DREAM FUNHOUSE!" }, + // { "wle_discovery_shuffle_up2_17", "WinteRace" }, + // { "wle_discovery_shuffle_up2_18", "4 Seasons" }, + // { "wle_discovery_shuffle_up2_19", "WAVE RUNNERS!" }, + // { "wle_discovery_shuffle_up2_24", "Tool Up! Winter Season Fall Guys" }, + // { "wle_discovery_shuffle_up2_26", "Arctic Run" }, + // { "wle_discovery_shuffle_up2_28", "Grenouille X pinkixx" }, + // { "wle_discovery_shuffle_up2_29", "GAME OVER" }, + // { "wle_discovery_shuffle_up2_30", "Hot Wheels III" }, + // { "wle_discovery_shuffle_up2_32", "Ski Mountain" }, + // { "wle_discovery_shuffle_up2_33", "夜店" }, + // { "wle_discovery_shuffle_up2_34", "チャッキーのタイムアタックレース" }, + // { "wle_discovery_shuffle_up2_37", "Frosty run" }, + // { "wle_discovery_shuffle_up2_38", "MONUMENT FALLS!" }, + // + // { "wle_mrs_shuffle_show_roundpool_winter_01", "Spiral Trial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_02", "SNOWMAN CLIMB" }, + // { "wle_mrs_shuffle_show_roundpool_winter_03", "Perpetual motion" }, + // { "wle_mrs_shuffle_show_roundpool_winter_04", "No way to go" }, + // { "wle_mrs_shuffle_show_roundpool_winter_06", "The winter slime climb time!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_07", "The Speedy Zone" }, + // { "wle_mrs_shuffle_show_roundpool_winter_08", "The crown's race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_09", "Mitten Mountain" }, + // { "wle_mrs_shuffle_show_roundpool_winter_10", "Parcours arc en ciel" }, + // { "wle_mrs_shuffle_show_roundpool_winter_11", "forest balls" }, + // { "wle_mrs_shuffle_show_roundpool_winter_12", "FIREBALL FRENZY!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_13", "GIFT EXCHANGE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_14", "The Snowscraper" }, + // { "wle_mrs_shuffle_show_roundpool_winter_15", "roll roll bean" }, + // { "wle_mrs_shuffle_show_roundpool_winter_16", "Overclocked" }, + // { "wle_mrs_shuffle_show_roundpool_winter_17", "Spaceball Spin" }, + // { "wle_mrs_shuffle_show_roundpool_winter_18", "Winter Disc-O" }, + // { "wle_mrs_shuffle_show_roundpool_winter_19", "Chill 'n' Roll" }, + // { "wle_mrs_shuffle_show_roundpool_winter_20", "FEVER DREAM FUNHOUSE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_21", "Himalayan Railway" }, + // { "wle_mrs_shuffle_show_roundpool_winter_22", "Need for Speed" }, + // { "wle_mrs_shuffle_show_roundpool_winter_23", "Rebound" }, + // { "wle_mrs_shuffle_show_roundpool_winter_24", "スライムスクレイパー" }, + // { "wle_mrs_shuffle_show_roundpool_winter_25", "Frosty Cold Sprint" }, + // { "wle_mrs_shuffle_show_roundpool_winter_26", "Halfpipe Havoc" }, + // { "wle_mrs_shuffle_show_roundpool_winter_27", "Snowflake Wonderland" }, + // { "wle_mrs_shuffle_show_roundpool_winter_28", "Ball Guys" }, + // { "wle_mrs_shuffle_show_roundpool_winter_30", "REINDEER GAMES!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_31", "Belly Flop Bobsleigh" }, + // { "wle_mrs_shuffle_show_roundpool_winter_32", "Hot Wheels 2069" }, + // { "wle_mrs_shuffle_show_roundpool_winter_33", "Gingerbread Lane" }, + // { "wle_mrs_shuffle_show_roundpool_winter_34", "We ballin'" }, + // { "wle_mrs_shuffle_show_roundpool_winter_35", "Ice Cold Ascension" }, + // { "wle_mrs_shuffle_show_roundpool_winter_36", "étage sur étage" }, + // { "wle_mrs_shuffle_show_roundpool_winter_37", "Birthday Dash" }, + // { "wle_mrs_shuffle_show_roundpool_winter_39", "MARBLE RACE [Bean-Ball]" }, + // { "wle_mrs_shuffle_show_roundpool_winter_38", "The Jolly Express" }, + // { "wle_mrs_shuffle_show_roundpool_winter_40", "Roller Race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_41", "Return to Fall Rapids" }, + // { "wle_mrs_shuffle_show_roundpool_winter_42", "Frosty run" }, + // { "wle_mrs_shuffle_show_roundpool_winter_44", "Sirbeans garden racetrack" }, + // { "wle_mrs_shuffle_show_roundpool_winter_45", "Roll-a-Coaster" }, + // { "wle_mrs_shuffle_show_roundpool_winter_46", "Gran Glaciar Paradicial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_47", "Cave Exploration ~洞窟探検~" }, + // { "wle_mrs_shuffle_show_roundpool_winter_48", "SanTama Run" }, + // + // { "wle_shuffle_discover_fp7_1_01", "Green hill zone" }, + // { "wle_shuffle_discover_fp7_1_02", "Lost Temple" }, + // { "wle_shuffle_discover_fp7_1_03", "Champiñón Volante" }, + // { "wle_shuffle_discover_fp7_1_04", "Mitten Mountain" }, + // { "wle_shuffle_discover_fp7_1_05", "Jack-O'-Runners" }, + // { "wle_shuffle_discover_fp7_1_06", "Parcours arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_07", "Mario kart" }, + // { "wle_shuffle_discover_fp7_1_08", "A Day At The Holiday Race" }, + // { "wle_shuffle_discover_fp7_1_09", "2024 謹賀新年" }, + // { "wle_shuffle_discover_fp7_1_10", "Hustling run" }, + // { "wle_shuffle_discover_fp7_1_11", "tempête arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_12", "Wander- Weg" }, + // { "wle_shuffle_discover_fp7_1_13", "Ruta en la selva" }, + // { "wle_shuffle_discover_fp7_1_14", "Turboslide" }, + // { "wle_shuffle_discover_fp7_1_15", "A piece of cake" }, + // { "wle_shuffle_discover_fp7_1_16", "WOW" }, + // { "wle_shuffle_discover_fp7_1_18", "Magic Squirrel" }, + // { "wle_shuffle_discover_fp7_1_19", "Dinosaur Climb" }, + // { "wle_shuffle_discover_fp7_1_20", "bouing bouing" }, + // { "wle_shuffle_discover_fp7_1_21", "快感快速!!" }, + // { "wle_shuffle_discover_fp7_1_23", "challenge" }, + // { "wle_shuffle_discover_fp7_1_24", "Fnf final escape" }, + // { "wle_shuffle_discover_fp7_1_25", "Speedrun" }, + // { "wle_shuffle_discover_fp7_1_26", "AS AVENTURAS DO PIETRO" }, + // { "wle_shuffle_discover_fp7_1_27", "The Desert temple" }, + // { "wle_shuffle_discover_fp7_1_28", "Snowy Speed Sprint" }, + // { "wle_shuffle_discover_fp7_1_29", "Arcade escape" }, + // { "wle_shuffle_discover_fp7_1_30", "Guardian's Grace" }, + // { "wle_shuffle_discover_fp7_1_31", "Desertic Templus" }, + // { "wle_shuffle_discover_fp7_1_32", "Calamité arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_33", "Map Test V1" }, + // { "wle_shuffle_discover_fp7_1_34", "From A to Z" }, + // { "wle_shuffle_discover_fp7_1_35", "YULE LOG SPRINT" }, + // { "wle_shuffle_discover_fp7_1_37", "Turnaround Turnpike" }, + // { "wle_shuffle_discover_fp7_1_38", "Good morning 2024 world" }, + // { "wle_shuffle_discover_fp7_1_39", "Sirbeans garden racetrack" }, + // + // { "wle_shuffle_2_24_01", "classic sewer" }, + // { "wle_shuffle_2_24_02", "Speed Ball" }, + // { "wle_shuffle_2_24_03", "Rainbow Riser" }, + // { "wle_shuffle_2_24_04", "cave tree" }, + // { "wle_shuffle_2_24_05", "Orbital Junction" }, + // { "wle_shuffle_2_24_06", "Lily leapers remix v3" }, + // { "wle_shuffle_2_24_07", "Little Pipe Dream" }, + // { "wle_shuffle_2_24_08", "FIREBALL FRENZY!" }, + // { "wle_shuffle_2_24_09", "Ruta en la selva" }, + // { "wle_shuffle_2_24_10", "A piece of cake" }, + // { "wle_shuffle_2_24_11", "Monster Forest Road" }, + // { "wle_shuffle_2_24_12", "Slippery Stumble" }, + // { "wle_shuffle_2_24_13", "Mound Mountain" }, + // { "wle_shuffle_2_24_15", "Non-Stop Slide" }, + // { "wle_shuffle_2_24_16", "slime climb Creative" }, + // { "wle_shuffle_2_24_17", "(REBORN) WITH THE WIND OMAME-CHAN !!!" }, + // { "wle_shuffle_2_24_18", "The Desert Temple Escape" }, + // { "wle_shuffle_2_24_19", "Rebound" }, + // { "wle_shuffle_2_24_20", "Roundabout Route" }, + // { "wle_shuffle_2_24_21", "Sparkly gingerbred trail" }, + // { "wle_shuffle_2_24_22", "Ski Fall Remix" }, + // { "wle_shuffle_2_24_24", "Fan Flingers" }, + // { "wle_shuffle_2_24_25", "Ball Carnival" }, + // { "wle_shuffle_2_24_26", "Tool Up! Winter Season Fall Guys" }, + // { "wle_shuffle_2_24_27", "Trompeta Teatral" }, + // { "wle_shuffle_2_24_28", "Birthday bonanza" }, + // { "wle_shuffle_2_24_29", "BlueBlur Circuit" }, + // { "wle_shuffle_2_24_30", "Lemon Grass" }, + // { "wle_shuffle_2_24_31", "Tuyauterie au nez" }, + // { "wle_shuffle_2_24_32", "Slimey's showdown" }, + // { "wle_shuffle_2_24_33", "GOLF GUYS" }, + // { "wle_shuffle_2_24_34", "(REBORN) DIGI×2 LOVE×2 GUYS REVERSE !!!" }, + // { "wle_shuffle_2_24_35", "R" }, + // { "wle_shuffle_2_24_36", "Zelda is BANANAS!!!!" }, + // { "wle_shuffle_2_24_38", "Traffic Jamboree" }, + // { "wle_shuffle_2_24_39", "Turnaround Turnpike" }, + // { "wle_shuffle_2_24_40", "Great hunt" }, + // { "wle_shuffle_2_24_41", "HYPERSPACE HIGHWAY!" }, + // { "wle_shuffle_2_24_42", "Back in Slime" }, + // + // { "wle_shuffle_wk2405_01", "Duckling Beach" }, + // { "wle_shuffle_wk2405_02", "BUILDER GUYS" }, + // { "wle_shuffle_wk2405_03", "ヒヤヒヤハイウェイ Unstable Highway" }, + // { "wle_shuffle_wk2405_04", "Speed Ball" }, + // { "wle_shuffle_wk2405_05", "North Pole Traps" }, + // { "wle_shuffle_wk2405_06", "Volcanic Island Travel!" }, + // { "wle_shuffle_wk2405_07", "Kepler 21's town" }, + // { "wle_shuffle_wk2405_08", "Orbital Junction" }, + // { "wle_shuffle_wk2405_11", "Balance Bean" }, + // { "wle_shuffle_wk2405_12", "ťřūťű" }, + // { "wle_shuffle_wk2405_13", "Summer Vibes" }, + // { "wle_shuffle_wk2405_14", "Dee's- Pinball Lilly" }, + // { "wle_shuffle_wk2405_15", "Galactic Guys" }, + // { "wle_shuffle_wk2405_16", "Orbital Stumbling" }, + // { "wle_shuffle_wk2405_17", "Winter Mansion" }, + // { "wle_shuffle_wk2405_18", "Pole Jumper" }, + // { "wle_shuffle_wk2405_19", "Little Pipe Dream" }, + // { "wle_shuffle_wk2405_20", "FIREBALL FRENZY!" }, + // { "wle_shuffle_wk2405_21", "Ruta en la selva" }, + // { "wle_shuffle_wk2405_22", "The Spacescřaper" }, + // { "wle_shuffle_wk2405_23", "Downward Spiral! (& Beyond)" }, + // { "wle_shuffle_wk2405_24", "Slippery Swoop Showdown" }, + // { "wle_shuffle_wk2405_25", "Tunnel of tumble" }, + // { "wle_shuffle_wk2405_26", "Digital Paradise" }, + // { "wle_shuffle_wk2405_27", "Monster Forest Road" }, + // { "wle_shuffle_wk2405_28", "GALACTIC RUN" }, + // { "wle_shuffle_wk2405_29", "Non-Stop Slide" }, + // { "wle_shuffle_wk2405_30", "slime climb Creative" }, + // { "wle_shuffle_wk2405_31", "Love a day" }, + // { "wle_shuffle_wk2405_32", "serious circuit" }, + // { "wle_shuffle_wk2405_33", "Falling in Love" }, + // { "wle_shuffle_wk2405_34", "Rebound" }, + // { "wle_shuffle_wk2405_35", "Digifal Guys" }, + // { "wle_shuffle_wk2405_36", "Vaporia" }, + // { "wle_shuffle_wk2405_37", "Solar Speedway" }, + // { "wle_shuffle_wk2405_38", "Rollin' Ruins" }, + // { "wle_shuffle_wk2405_39", "The drum course" }, + // { "wle_shuffle_wk2405_40", "AX-ATTACK" }, + // { "wle_shuffle_wk2405_41", "Pipe beans" }, + // { "wle_shuffle_wk2405_42", "Ball World" }, + // { "wle_shuffle_wk2405_43", "Fan Flingers" }, + // { "wle_shuffle_wk2405_44", "Deserted Frontier" }, + // { "wle_shuffle_wk2405_45", "Torapo" }, + // { "wle_shuffle_wk2405_46", "No Name" }, + // { "wle_shuffle_wk2405_47", "Satellite Scramble" }, + // { "wle_shuffle_wk2405_48", "STATION SPRINT" }, + // { "wle_shuffle_wk2405_49", "Route 20" }, + // { "wle_shuffle_wk2405_50", "Jungle escape" }, + // { "wle_shuffle_wk2405_51", "Love at First Woo" }, + // { "wle_shuffle_wk2405_52", "Satellite Circuit" }, + // { "wle_shuffle_wk2405_53", "Round and around" }, + // { "wle_shuffle_wk2405_54", "World of rolling" }, + // { "wle_shuffle_wk2405_55", "Lemon Grass" }, + // { "wle_shuffle_wk2405_56", "Downward Spiral" }, + // { "wle_shuffle_wk2405_57", "STARS ALIGN!" }, + // { "wle_shuffle_wk2405_58", "Interstellar Sprint" }, + // { "wle_shuffle_wk2405_59", "World of cakes" }, + // { "wle_shuffle_wk2405_60", "ASTRAL AIRWAY" }, + // { "wle_shuffle_wk2405_61", "secret ways" }, + // { "wle_shuffle_wk2405_62", "No Name" }, + // { "wle_shuffle_wk2405_63", "Space adventure (part 1)" }, + // { "wle_shuffle_wk2405_64", "Rainbow Road" }, + // { "wle_shuffle_wk2405_65", "Falltropolis" }, + // + // { "wle_digishuffle_feb_01", "jungle fun run" }, + // { "wle_digishuffle_feb_02", "☆Witch Way☆" }, + // { "wle_digishuffle_feb_03", "Mushroom Mayhem" }, + // { "wle_digishuffle_feb_04", "Orbital Junction" }, + // { "wle_digishuffle_feb_06", "Day at the beach" }, + // { "wle_digishuffle_feb_07", "Summer Vibes" }, + // { "wle_digishuffle_feb_08", "Roll Asteroid Field" }, + // { "wle_digishuffle_feb_09", "Ruta en la selva" }, + // { "wle_digishuffle_feb_10", "Cosmic Dash" }, + // { "wle_digishuffle_feb_11", "Bouncing Frenzy" }, + // { "wle_digishuffle_feb_12", "Beehive Havoc" }, + // { "wle_digishuffle_feb_13", "Snowy Cave-in" }, + // { "wle_digishuffle_feb_15", "Winter Disc-O" }, + // { "wle_digishuffle_feb_16", "magician" }, + // { "wle_digishuffle_feb_17", "Love a day" }, + // { "wle_digishuffle_feb_18", "Chilly Leapers" }, + // { "wle_digishuffle_feb_19", "Colorful Year - Beans Memories" }, + // { "wle_digishuffle_feb_20", "BIPLANE BLUNDER" }, + // { "wle_digishuffle_feb_21", "Vaporia" }, + // { "wle_digishuffle_feb_22", "Satellite Sprint" }, + // { "wle_digishuffle_feb_23", "Galactic Gauntlet" }, + // { "wle_digishuffle_feb_24", "RUN COWBOY" }, + // { "wle_digishuffle_feb_25", "Breakfast Run" }, + // { "wle_digishuffle_feb_26", "Spin 'n' Swing" }, + // { "wle_digishuffle_feb_27", " Love at First Woo" }, + // { "wle_digishuffle_feb_28", "Astral Exploration" }, + // { "wle_digishuffle_feb_29", "Speedway 2069" }, + // { "wle_digishuffle_feb_30", "Data Eraser" }, + // { "wle_digishuffle_feb_31", "Mediefall Highway" }, + // { "wle_digishuffle_feb_33", "パンダフルワールド" }, + // { "wle_digishuffle_feb_34", "Celestial Tale" }, + // + // { "chill_01", "Ariko Jones" }, + // { "chill_02", "Floating island" }, + // { "chill_03", "Colorful World" }, + // { "chill_04", "Winter Wallop" }, + // { "chill_06", "Tropical Top2" }, + // { "chill_07", "rainbows and stickers" }, + // { "chill_08", "Ancient Fallstronomers" }, + // { "chill_11", "ORBITAL STUMBLE" }, + // { "chill_12", "The Bisounours" }, + // { "chill_13", "Adrenaline Force 2" }, + // { "chill_14", "Summer Vibes" }, + // { "chill_15", "Speedy Bounces" }, + // { "chill_16", "Data Dash" }, + // { "chill_17", "Snow Mountain" }, + // { "chill_18", "Monster Mayhem" }, + // { "chill_19", "Star Power!" }, + // { "chill_20", "Sketchy Sledding!" }, + // { "chill_21", "Musical Madness" }, + // { "chill_22", "BEANS ORBITAL ZONE" }, + // { "chill_23", "Safe Mode" }, + // { "chill_24", "Piste de neige" }, + // { "chill_25", "Love a day" }, + // { "chill_26", "Chilly Leapers" }, + // { "chill_27", "Passage imbroglio arc en ciel" }, + // { "chill_28", "Shogun Guys I" }, + // { "chill_29", "WINDMILL WAY" }, + // { "chill_30", "Solar Speedway" }, + // { "chill_31", "Micro Machine" }, + // { "chill_32", "Satellite Sprint" }, + // { "chill_33", "Rudinn's Garden Palace" }, + // { "chill_35", "Frosty Wonderland" }, + // { "chill_36", "Freezy Frolic" }, + // { "chill_37", "Extraterrestrial Terminal" }, + // { "chill_38", "Cluster Cosmos" }, + // { "chill_39", " Love at First Woo" }, + // { "chill_40", "A night in Paris" }, + // { "chill_41", "Float Parkour" }, + // + // { "wle_mrs_survival_showdown_opener", "Slime Surfers" }, + // { "wle_mrs_survival_showdown_opener_01", "Bean Fort" }, + // { "wle_mrs_survival_showdown_opener_02", "Back & Forth" }, + // { "wle_mrs_survival_showdown_final", "Hectic Hexagons" }, + // { "wle_mrs_survival_showdown_final_01", "Cosmic Clash" }, + // { "wle_mrs_survival_showdown_final_02", "Bouncy Castle" }, + // { "wle_mrs_survival_showdown_final_04", "Volcanic Chaos" }, + // + // { "wle_survival_shuffle_fp8_01", "More Blastball!" }, + // { "wle_survival_shuffle_fp8_02", "Rhino Runaway" }, + // { "wle_survival_shuffle_fp8_03", "Bouncy Castle" }, + // { "wle_survival_shuffle_fp8_04", "Snowy Stronghold" }, + // { "wle_survival_shuffle_fp8_05", "Hexa-Towers - Finals Arena" }, + // { "wle_survival_shuffle_fp8_06", "Satellite Delight" }, + // { "wle_survival_shuffle_fp8_07", "pacific jump" }, + // { "wle_survival_shuffle_fp8_08", "There can only be one" }, + // { "wle_survival_shuffle_fp8_09", "Ganj's Matter Baby" }, + // { "wle_survival_shuffle_fp8_10", "RHINOCHET" }, + // { "wle_survival_shuffle_fp8_11", "Rocky Rumble" }, + // { "wle_survival_shuffle_fp8_12", "Ludo War" }, + // { "wle_survival_shuffle_fp8_13", "Slimelantis" }, + // { "wle_survival_shuffle_fp8_14", "Dramatic Squirrel" }, + // { "wle_survival_shuffle_fp8_15", "HEX-A-BLAST" }, + // { "wle_survival_shuffle_fp8_16", "HEX-A-RUN" }, + // { "wle_survival_shuffle_fp8_17", "BLAST BRIDGES" }, + // { "wle_survival_shuffle_fp8_18", "HEX-A-BATTLE" }, + // { "wle_survival_shuffle_fp8_19", "Blast Ball X" }, + // { "wle_survival_shuffle_fp8_20", "Explosive Arena" }, + // { "wle_survival_shuffle_fp8_21", "Rhino Blast" }, + // { "wle_survival_shuffle_fp8_22", "Slime Surfers" }, + // { "wle_survival_shuffle_fp8_23", "Eduardo Escapades" }, + // { "wle_survival_shuffle_fp8_24", "Hex A Trouble" }, + // { "wle_survival_shuffle_fp8_25", "Roll In - Finals Arena" }, + // { "wle_survival_shuffle_fp8_26", "Back & Forth" }, + // { "wle_survival_shuffle_fp8_27", "HEXAGONAL RING BLAST" }, + // { "wle_survival_shuffle_fp8_29", "beens royal resurrection" }, + // { "wle_survival_shuffle_fp8_30", "Hexa-Toto" }, + // { "wle_survival_shuffle_fp8_31", "Blender Container" }, + // { "wle_survival_shuffle_fp8_32", "Circular Jump" }, + // { "wle_survival_shuffle_fp8_33", "hex-a-volcanic" }, + // { "wle_survival_shuffle_fp8_34", "ボマーぽよまつからの挑戦状☆ミ" }, + // { "wle_survival_shuffle_fp8_35", "Reverse Chaos" }, + // { "wle_survival_shuffle_fp8_36", "survival board" }, + // { "wle_survival_shuffle_fp8_37", "Volcanic Chaos" }, + // { "wle_survival_shuffle_fp8_38", "High-Ground Arena" }, + // { "wle_survival_shuffle_fp8_39", "rainbow convoyer" }, + // { "wle_survival_shuffle_fp8_40", "すぱいだーすっぱいんだー" }, + // { "wle_survival_shuffle_fp8_41", "HEX-A-PARTY" }, + // { "wle_survival_shuffle_fp8_42", "HEX A REBORN" }, + // { "wle_survival_shuffle_fp8_43", "CAROUSEL CHAOS" }, + // { "wle_survival_shuffle_fp8_44", "west sniper" }, + // { "wle_survival_shuffle_fp8_45", "Blast Balls Hexa Trials" }, + // { "wle_survival_shuffle_fp8_46", "自製生存關2-蹦蹦犀牛炸彈!" }, + // { "wle_survival_shuffle_fp8_47", "Hexagon Battle" }, + // { "wle_survival_shuffle_fp8_49", "Tick Tock Clock" }, + // { "wle_survival_shuffle_fp8_50", "ダイナミクスビート DYNAMICS BEAT" }, + // + // { "survival_shuffle_01", "Speed attack" }, + // { "survival_shuffle_02", "Garbage Chute V2" }, + // { "survival_shuffle_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_04", "Night Crashers" }, + // { "survival_shuffle_05", "Survival Area" }, + // { "survival_shuffle_06", "Can You Win!" }, + // { "survival_shuffle_07", "SPINNER SURVIVAL(Hard)" }, + // { "survival_shuffle_08", "NAMEK" }, + // { "survival_shuffle_09", "Hex-A-Blast" }, + // { "survival_shuffle_10", "HEX-A-JUMP" }, + // { "survival_shuffle_11", "Space Blast" }, + // { "survival_shuffle_12", "とまきけアイス" }, + // { "survival_shuffle_13", "SPINNER SURVIVAL(Very Hard)" }, + // { "survival_shuffle_14", "Caldera chaos" }, + // { "survival_shuffle_15", "hexatourne" }, + // { "survival_shuffle_16", "HEX-A-MANIA" }, + // { "survival_shuffle_17", "Slime leakage royale" }, + // { "survival_shuffle_18", "Merciless Traverse" }, + // { "survival_shuffle_19", "Stompin' Ground Challenge" }, + // { "survival_shuffle_20", "Bird is the Word" }, + // { "survival_shuffle_21", "Conflagration interstellaire" }, + // { "survival_shuffle_22", "Subzero Gale" }, + // { "survival_shuffle_23", "Piti afundando" }, + // { "survival_shuffle_24", "つかみ魔たちの祭典" }, + // { "survival_shuffle_25", "Slime Surfers" }, + // { "survival_shuffle_26", "Space Blast ball" }, + // { "survival_shuffle_27", "Fan wars survival" }, + // { "survival_shuffle_28", "World of Guys - Ultimate Shotout -" }, + // { "survival_shuffle_29", "Shogun's Arena" }, + // { "survival_shuffle_30", "Boulder Hex" }, + // { "survival_shuffle_31", "HEX-A-RENA" }, + // { "survival_shuffle_32", "BLAST BALL BASHERS" }, + // { "survival_shuffle_33", "hexa roll beta 2" }, + // { "survival_shuffle_34", "Running survivor ver1・3" }, + // { "survival_shuffle_35", "King of the Castle" }, + // { "survival_shuffle_36", "BATTLE OF SURVIVORS" }, + // { "survival_shuffle_37", "MINI STOMPIN' GROUND" }, + // { "survival_shuffle_38", "Royal Rumble" }, + // { "survival_shuffle_39", "Bataille au ²" }, + // { "survival_shuffle_40", "Hex-a-mountain" }, + // { "survival_shuffle_41", "Hex-A-Glory" }, + // { "survival_shuffle_42", "POOL PARTY" }, + // { "survival_shuffle_43", "King of the Pillar" }, + // { "survival_shuffle_44", "止まれない木" }, + // { "survival_shuffle_45", "slime battle pt2" }, + // { "survival_shuffle_46", "No Punching" }, + // { "survival_shuffle_47", "Blue and yellow showdown" }, + // { "survival_shuffle_48", "Retro Roundabout" }, + // { "survival_shuffle_49", "玉あそび" }, + // { "survival_shuffle_50", "Royal Rumble (Rofall Gumble)" }, + // { "survival_shuffle_51", "Aggressive survival" }, + // { "survival_shuffle_52", "Fight Zone" }, + // { "survival_shuffle_53", "Hex-A-Blaster" }, + // { "survival_shuffle_54", "SLIME RIOT!" }, + // { "survival_shuffle_55", "Es knallt richtig" }, + // { "survival_shuffle_56", "Super Fortress Factory" }, + // { "survival_shuffle_57", "Heavy hitters only" }, + // { "survival_shuffle_58", "へいたんバトロワ" }, + // { "survival_shuffle_59", "Volcanic Panic" }, + // { "survival_shuffle_60", "Volcanic Panic" }, + // { "survival_shuffle_61", "雷霆乱豆中心" }, + // { "survival_shuffle_62", "ブラストボール(十字形)" }, + // { "survival_shuffle_63", "Poison Pond PVP" }, + // { "survival_shuffle_64", "Puncher Brawl 2" }, + // { "survival_shuffle_65", "Atoll pétulant" }, + // { "survival_shuffle_66", "Blast Rhino" }, + // { "survival_shuffle_67", "Blast Arena" }, + // { "survival_shuffle_68", "Brewing Boxes" }, + // { "survival_shuffle_69", "The flood" }, + // { "survival_shuffle_70", "PUSHBACK" }, + // { "survival_shuffle_71", "Arena Guys" }, + // { "survival_shuffle_72", "Jungle Survival" }, + // { "survival_shuffle_73", "おしくらまんじゅうジャンプ" }, + // { "survival_shuffle_74", "blast fall X" }, + // { "survival_shuffle_75", "Tic-Tac-Blow" }, + // { "survival_shuffle_76", "CS Guys" }, + // { "survival_shuffle_77", "Bounce Battle" }, + // { "survival_shuffle_78", "Cheat's Only Fan" }, + // { "survival_shuffle_79", "Showdown Party" }, + // { "survival_shuffle_80", "Donut layers!" }, + // { "survival_shuffle_81", "パワーアップ・ノックアウト" }, + // { "survival_shuffle_82", "アップダウンバトル" }, + // { "survival_shuffle_83", "頂上対決" }, + // { "survival_shuffle_84", "Blast Ring" }, + // { "survival_shuffle_85", "Raft Rumble" }, + // { "survival_shuffle_86", "Rhino-hex-killer+invasion" }, + // { "survival_shuffle_87", "Survie des enfers" }, + // { "survival_shuffle_88", "blast ball HEXAGON" }, + // { "survival_shuffle_89", "The Bean-rena" }, + // { "survival_shuffle_90", "Lake in the mountains" }, + // { "survival_shuffle_91", "Playing area" }, + // { "survival_shuffle_92", "Hopping Party" }, + // { "survival_shuffle_93", "Shape Dimension" }, + // { "survival_shuffle_94", "Dramatic Flowers" }, + // + // { "wle_mrs_ugc_playful_01", "Neon pipe run" }, + // { "wle_mrs_ugc_playful_02", "SUNKEN CIRCUIT" }, + // { "wle_mrs_ugc_playful_03", "Blundercity Marathon" }, + // { "wle_mrs_ugc_playful_04", "Rainbow highway" }, + // { "wle_mrs_ugc_playful_05", "Rainbow Riptide" }, + // { "wle_mrs_ugc_playful_06", "Past passage" }, + // { "wle_mrs_ugc_playful_07", "Sandcastle Kingdom" }, + // { "wle_mrs_ugc_playful_08", "Jumping Season" }, + // { "wle_mrs_ugc_playful_09", "Fall Stars" }, + // { "wle_mrs_ugc_playful_10", "Medieval Sprint" }, + // { "wle_mrs_ugc_playful_11", "SPRING MOUNTAIN" }, + // { "wle_mrs_ugc_playful_12", "NAUTICAL SHAMBLE" }, + // { "wle_mrs_ugc_playful_13", "The Last Winter" }, + // + // { "playful_shuffle_01", "Fiebre medieval" }, + // { "playful_shuffle_02", "Triple Trial" }, + // { "playful_shuffle_03", "Trees (Waterfall)" }, + // { "playful_shuffle_05", "plat guys" }, + // { "playful_shuffle_06", "震えるキャベツ" }, + // { "playful_shuffle_07", "Winter Wallop" }, + // { "playful_shuffle_08", "Multi Leaper" }, + // { "playful_shuffle_09", "Golden Poodles" }, + // { "playful_shuffle_10", "ストレートスタンブル" }, + // { "playful_shuffle_11", "Easy Fun Speedrun" }, + // { "playful_shuffle_12", "RUN RUN Park" }, + // { "playful_shuffle_14", "ごちゃごちゃストリート" }, + // { "playful_shuffle_15", "Conveyors Obstacles" }, + // { "playful_shuffle_17", "Green Mountain" }, + // { "playful_shuffle_18", "Ancient Fallstronomers" }, + // { "playful_shuffle_19", "+slidin' in the air+ 10k play special" }, + // { "playful_shuffle_20", "Jumping Season" }, + // { "playful_shuffle_21", "Track attackers system" }, + // { "playful_shuffle_22", "CASTLE CLASH" }, + // { "playful_shuffle_24", "Falling Dreams" }, + // { "playful_shuffle_25", "ロケットでうちあげだ 2" }, + // { "playful_shuffle_26", "The Terrible Spiral Of Woo Remake" }, + // { "playful_shuffle_27", "Rainbow Dash" }, + // { "playful_shuffle_28", "TruPixel's Jungle Mash-up" }, + // { "playful_shuffle_30", "Monochromatic Manic" }, + // { "playful_shuffle_33", "Ramp It Up!" }, + // { "playful_shuffle_34", "Adrenaline Force 2" }, + // { "playful_shuffle_35", "DIGITAL MADNESS" }, + // { "playful_shuffle_36", "Cosmic Pipes" }, + // { "playful_shuffle_37", "Milky way" }, + // { "playful_shuffle_38", "Snow Style" }, + // { "playful_shuffle_39", "Data Dash" }, + // { "playful_shuffle_40", "Caida resbaladisa" }, + // { "playful_shuffle_41", "Frostbite Speed Fall Slider" }, + // { "playful_shuffle_42", "Snow Mountain" }, + // { "playful_shuffle_44", "Cosmic Dash" }, + // { "playful_shuffle_45", "Overclocked" }, + // { "playful_shuffle_46", " Wild Dunes" }, + // { "playful_shuffle_47", "Flutter-by!" }, + // { "playful_shuffle_48", "Blundercity Marathon" }, + // { "playful_shuffle_50", "Pixel Circuit像素环游" }, + // { "playful_shuffle_51", "Stars Guys" }, + // { "playful_shuffle_52", "SUNKEN CIRCUIT" }, + // { "playful_shuffle_54", "Pocket Summit" }, + // { "playful_shuffle_55", "Love a day" }, + // { "playful_shuffle_56", "Passage imbroglio arc en ciel" }, + // { "playful_shuffle_58", "コズミックミュージック COSMIC MUSIC" }, + // { "playful_shuffle_59", "glissoire arc en ciel" }, + // + // { "survival_shuffle_wk11_01", "Speed attack" }, + // { "survival_shuffle_wk11_02", "Garbage Chute V2" }, + // { "survival_shuffle_wk11_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_wk11_04", "Sobreviventes da Batalha" }, + // { "survival_shuffle_wk11_05", "今日の運勢サバイバル" }, + // { "survival_shuffle_wk11_06", "More Blastball!" }, + // { "survival_shuffle_wk11_07", "Hexagone Tower" }, + // { "survival_shuffle_wk11_08", "Bouncy Castle" }, + // { "survival_shuffle_wk11_09", "Snowy Stronghold" }, + // { "survival_shuffle_wk11_10", "NAMEK" }, + // { "survival_shuffle_wk11_11", "Hexa-Towers - Finals Arena" }, + // { "survival_shuffle_wk11_12", "Satellite Delight" }, + // { "survival_shuffle_wk11_13", "DEADLY VOLCANO" }, + // { "survival_shuffle_wk11_14", "Ganj's Matter Baby" }, + // { "survival_shuffle_wk11_15", "HEX-A-JUMP" }, + // { "survival_shuffle_wk11_16", "RHINOCHET" }, + // { "survival_shuffle_wk11_17", "Rocky Rumble" }, + // { "survival_shuffle_wk11_18", "Ludo War" }, + // { "survival_shuffle_wk11_19", "RING ROUND FIGHT" }, + // { "survival_shuffle_wk11_20", "Flight frenzy" }, + // { "survival_shuffle_wk11_21", "BLAST BRIDGES" }, + // { "survival_shuffle_wk11_22", "Blast Ball X" }, + // { "survival_shuffle_wk11_23", "Blast Trip" }, + // { "survival_shuffle_wk11_24", "Royal Rumble" }, + // { "survival_shuffle_wk11_25", "Bird is the Word" }, + // { "survival_shuffle_wk11_26", "The Whirligig" }, + // { "survival_shuffle_wk11_27", "Subzero Gale" }, + // { "survival_shuffle_wk11_28", "Slime Surfers" }, + // { "survival_shuffle_wk11_29", "Eduardo Escapades" }, + // { "survival_shuffle_wk11_30", "Hex A Trouble" }, + // { "survival_shuffle_wk11_31", "Back & Forth" }, + // { "survival_shuffle_wk11_32", "HEXAGONAL RING BLAST" }, + // { "survival_shuffle_wk11_33", "Carousel Mayhem" }, + // { "survival_shuffle_wk11_34", "Beens Royale RESURRECTION" }, + // { "survival_shuffle_wk11_35", "Hexa-Toto" }, + // { "survival_shuffle_wk11_36", "Blender Container" }, + // { "survival_shuffle_wk11_37", "Mid wars!" }, + // { "survival_shuffle_wk11_38", "hex-a-volcanic" }, + // { "survival_shuffle_wk11_39", "vamos rey del aire" }, + // { "survival_shuffle_wk11_40", "Shogun's Arena" }, + // { "survival_shuffle_wk11_41", "survival board" }, + // { "survival_shuffle_wk11_42", "survival factory" }, + // { "survival_shuffle_wk11_43", "rainbow convoyer" }, + // { "survival_shuffle_wk11_44", "すぱいだーすっぱいんだー" }, + // { "survival_shuffle_wk11_45", "HEX A REBORN" }, + // { "survival_shuffle_wk11_46", "The Hex-A-Gon House" }, + // { "survival_shuffle_wk11_47", "CAROUSEL CHAOS" }, + // { "survival_shuffle_wk11_48", "Ring Off" }, + // { "survival_shuffle_wk11_49", "âpre pélutant" }, + // { "survival_shuffle_wk11_50", "ダイナミクスビート DYNAMICS BEAT" }, + // { "survival_shuffle_wk11_51", "Fruit Chute Survival" }, + // { "survival_shuffle_wk11_52", "No Punching" }, + // { "survival_shuffle_wk11_53", "Hex-A-Blaster" }, + // { "survival_shuffle_wk11_54", "The Punch Warriors! - Survival Edition" }, + // { "survival_shuffle_wk11_55", "Volcanic Panic" }, + // { "survival_shuffle_wk11_56", "Hex-a-lowercase t" }, + // { "survival_shuffle_wk11_57", "Beta Jinxed" }, + // { "survival_shuffle_wk11_58", "Showdown Party" }, + // { "survival_shuffle_wk11_59", "Canyon Sand 1" }, + // { "survival_shuffle_wk11_60", "Aggro-Crag" }, + // { "survival_shuffle_wk11_61", "Bean Fort" }, + // { "survival_shuffle_wk11_62", "Tronco Gigante" }, + // { "survival_shuffle_wk11_63", "Block Battle - Survive" }, + // { "survival_shuffle_wk11_64", "Hot Shots" }, + // { "survival_shuffle_wk11_65", "blast royale" }, + // { "survival_shuffle_wk11_66", "Supervivencia del caos" }, + // { "survival_shuffle_wk11_67", "Hex-A-Mayhem" }, + // { "survival_shuffle_wk11_68", "The Falliseum" }, + // { "survival_shuffle_wk11_69", "終末列車" }, + // { "survival_shuffle_wk11_70", "O chão é lava" }, + // { "survival_shuffle_wk11_71", "Survival Carnival" }, + // { "survival_shuffle_wk11_72", "Kraken x balls x boxing" }, + // { "survival_shuffle_wk11_73", "Gum survival" }, + // { "survival_shuffle_wk11_74", "スライム研究室" }, + // { "survival_shuffle_wk11_75", "Colour switch" }, + // { "survival_shuffle_wk11_76", "Fall Royale" }, + // { "survival_shuffle_wk11_77", "Roll Out Explosion" }, + // { "survival_shuffle_wk11_78", "HELIX ROLL" }, + // { "survival_shuffle_wk11_79", "耐久出来ないサバイバル2" }, + // { "survival_shuffle_wk11_80", "detonates atlantis" }, + // { "survival_shuffle_wk11_81", "Conveyor Chaos" }, + // { "survival_shuffle_wk11_82", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_wk11_84", "Slime Crater" }, + // { "survival_shuffle_wk11_85", "Firewall Finale" }, + // { "survival_shuffle_wk11_86", "ブラストボールエンド" }, + // { "survival_shuffle_wk11_87", "ボタンコンフュージョン" }, + // { "survival_shuffle_wk11_88", "DEE'S- RHINO RUMBLE!!!!!!" }, + // { "survival_shuffle_wk11_89", "tournement de couleur" }, + // { "survival_shuffle_wk11_90", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_wk11_91", "HARD HEROES DRLVE SURVLVAL" }, + // { "survival_shuffle_wk11_92", "Jump Show Fall" }, + // { "survival_shuffle_wk11_93", "Hex-A-Lava" }, + // { "survival_shuffle_wk11_94", "Magma Meltdown" }, + // { "survival_shuffle_wk11_95", "恐怖のたまご" }, + // { "survival_shuffle_wk11_96", "Cosmic Clash" }, + // { "survival_shuffle_wk11_97", "Fall And Round" }, + // { "survival_shuffle_wk11_98", "フォールドッジブラストボール" }, + // { "survival_shuffle_wk11_99", "Sewer Stand-off" }, + // + // { "survival_shuffle_3wk3_01", "Sobreviventes da Batalha" }, + // { "survival_shuffle_3wk3_02", "Survival Festival" }, + // { "survival_shuffle_3wk3_03", "MEOW-FO ROYALE" }, + // { "survival_shuffle_3wk3_04", "Space Blast" }, + // { "survival_shuffle_3wk3_05", "meteor rain" }, + // { "survival_shuffle_3wk3_06", "Spiral-Cano" }, + // { "survival_shuffle_3wk3_07", "Bridge Island Boss" }, + // { "survival_shuffle_3wk3_08", "Caldera chaos" }, + // { "survival_shuffle_3wk3_09", "BLAST BRIDGES" }, + // { "survival_shuffle_3wk3_10", "Royal Rumble" }, + // { "survival_shuffle_3wk3_11", "flower ring" }, + // { "survival_shuffle_3wk3_12", "The Whirligig" }, + // { "survival_shuffle_3wk3_13", "?" }, + // { "survival_shuffle_3wk3_14", "熔岩蜂窝 Hex-A-Lava" }, + // { "survival_shuffle_3wk3_15", "Mid wars!" }, + // { "survival_shuffle_3wk3_16", "vamos rey del aire" }, + // { "survival_shuffle_3wk3_17", "Shogun's Arena" }, + // { "survival_shuffle_3wk3_18", "聖帝導夢ランボー!" }, + // { "survival_shuffle_3wk3_19", "Test Survival" }, + // { "survival_shuffle_3wk3_20", "Blunder Barge" }, + // { "survival_shuffle_3wk3_21", "Ring Off" }, + // { "survival_shuffle_3wk3_22", "âpre pélutant" }, + // { "survival_shuffle_3wk3_23", "Arena Nocaute Ultimate" }, + // { "survival_shuffle_3wk3_24", "Bataille au ²" }, + // { "survival_shuffle_3wk3_25", "Bom Bom Do" }, + // { "survival_shuffle_3wk3_26", "Super Smash Beans 2!" }, + // { "survival_shuffle_3wk3_27", "VOLLEY BRAWL!" }, + // { "survival_shuffle_3wk3_28", "Bamblast!" }, + // { "survival_shuffle_3wk3_29", "Extreme Block Party" }, + // { "survival_shuffle_3wk3_30", "Colisel da insegurança" }, + // { "survival_shuffle_3wk3_31", "hex-a-climb" }, + // { "survival_shuffle_3wk3_32", "Hex-a-lowercase t" }, + // { "survival_shuffle_3wk3_33", "Beta Jinxed" }, + // { "survival_shuffle_3wk3_34", "The flood" }, + // { "survival_shuffle_3wk3_35", "Explosive kraken!" }, + // { "survival_shuffle_3wk3_36", "Bean Abduction" }, + // { "survival_shuffle_3wk3_37", "blast fall X" }, + // { "survival_shuffle_3wk3_38", "HexaBoom" }, + // { "survival_shuffle_3wk3_39", "グラグラ足場" }, + // { "survival_shuffle_3wk3_40", "Floor-Fall-Survival" }, + // { "survival_shuffle_3wk3_41", "Batalha TRI-unFall" }, + // { "survival_shuffle_3wk3_42", "Détonation arc en ciel" }, + // { "survival_shuffle_3wk3_43", "Rustic Jungle" }, + // { "survival_shuffle_3wk3_44", "SLIME BLOCK PARTY" }, + // { "survival_shuffle_3wk3_45", "チーム(すもう)サバイバル!" }, + // { "survival_shuffle_3wk3_46", "Hex-apple" }, + // { "survival_shuffle_3wk3_47", "Aggro-Crag" }, + // { "survival_shuffle_3wk3_48", "Frenzied Factory" }, + // { "survival_shuffle_3wk3_49", "AIR BATTLE" }, + // { "survival_shuffle_3wk3_50", "The Bean-rena" }, + // { "survival_shuffle_3wk3_51", "Hex-A-Joust" }, + // { "survival_shuffle_3wk3_52", "Lake in the mountains" }, + // { "survival_shuffle_3wk3_53", "Tronco Gigante" }, + // { "survival_shuffle_3wk3_54", "Whirling Arena" }, + // { "survival_shuffle_3wk3_55", "Block Battle - Survive" }, + // { "survival_shuffle_3wk3_56", "Hot Shots" }, + // { "survival_shuffle_3wk3_57", "Gladiators" }, + // { "survival_shuffle_3wk3_58", "The Falliseum" }, + // { "survival_shuffle_3wk3_59", "Blast Chaos" }, + // { "survival_shuffle_3wk3_60", "Blast Ball Reveal" }, + // { "survival_shuffle_3wk3_61", "終末列車" }, + // { "survival_shuffle_3wk3_62", "Kraken x balls x boxing" }, + // { "survival_shuffle_3wk3_63", "Gum survival" }, + // { "survival_shuffle_3wk3_64", "スライム研究室" }, + // { "survival_shuffle_3wk3_65", "BEAN’S FIRST MATH TEST" }, + // { "survival_shuffle_3wk3_66", "Fight Land" }, + // { "survival_shuffle_3wk3_67", "Colour switch" }, + // { "survival_shuffle_3wk3_68", "Fall Royale" }, + // { "survival_shuffle_3wk3_69", "デジタルランティス" }, + // { "survival_shuffle_3wk3_70", "MAME RING" }, + // { "survival_shuffle_3wk3_71", "detonates atlantis" }, + // { "survival_shuffle_3wk3_72", "Flower Punch" }, + // { "survival_shuffle_3wk3_73", "Wobbly arena" }, + // { "survival_shuffle_3wk3_74", "TURMOIL--POWER UP PANIC" }, + // { "survival_shuffle_3wk3_75", "Why is it Spicy" }, + // { "survival_shuffle_3wk3_76", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_3wk3_77", "Slime Crater" }, + // { "survival_shuffle_3wk3_78", "ボタンコンフュージョン" }, + // { "survival_shuffle_3wk3_79", "tournement de couleur" }, + // { "survival_shuffle_3wk3_80", "Boxeo V69" }, + // { "survival_shuffle_3wk3_81", "fall in a storm" }, + // { "survival_shuffle_3wk3_82", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_3wk3_83", "Rebellion of block ver2" }, + // { "survival_shuffle_3wk3_86", "怒りのすとんぴんぐ・ぐらうんど" }, + // { "survival_shuffle_3wk3_87", "Jump Show Fall" }, + // { "survival_shuffle_3wk3_88", "カウントブロック" }, + // { "survival_shuffle_3wk3_89", "Hex-A-Lava" }, + // { "survival_shuffle_3wk3_90", "Mario" }, + // { "survival_shuffle_3wk3_91", "Magma Meltdown" }, + // { "survival_shuffle_3wk3_92", "ROOFTOP RUMBLE!" }, + // { "survival_shuffle_3wk3_93", "émoussement arc en ciel" }, + // { "survival_shuffle_3wk3_94", "Fall And Round" }, + // { "survival_shuffle_3wk3_95", "深空蜂窝" }, + // { "survival_shuffle_3wk3_96", "Pokémon Stadium" }, + // { "survival_shuffle_3wk3_97", "Safari survival" }, + // { "survival_shuffle_3wk3_98", "Slime Playground" }, + // { "survival_shuffle_3wk3_99", "Hexagonal Fadeout" }, + // { "survival_shuffle_3wk3_100", "ランダムエッグスイッチアクション" }, + // + // { "wle_shuggle_mwk3_01", "Ariko Jones" }, + // { "wle_shuggle_mwk3_02", "Triple Trial" }, + // { "wle_shuggle_mwk3_03", "Aerial Squirrel" }, + // { "wle_shuggle_mwk3_04", "ギリギリアウトチャレンジ公式競技場 1" }, + // { "wle_shuggle_mwk3_05", "シンスモウ(ブラストボール)" }, + // { "wle_shuggle_mwk3_06", "Winter Wallop" }, + // { "wle_shuggle_mwk3_07", "リリーリーパー再現" }, + // { "wle_shuggle_mwk3_08", "Wilderness Adventures!" }, + // { "wle_shuggle_mwk3_09", "Rets arc en ciel" }, + // { "wle_shuggle_mwk3_10", "egypt park" }, + // { "wle_shuggle_mwk3_11", "Green Mountain" }, + // { "wle_shuggle_mwk3_12", "super speedrun" }, + // { "wle_shuggle_mwk3_13", "ULTRA MEGA EXTREME HARD!!!" }, + // { "wle_shuggle_mwk3_14", "Заурядные Белки" }, + // { "wle_shuggle_mwk3_15", "Digital keyboard 😜✌️" }, + // { "wle_shuggle_mwk3_16", "artistic ELIMINATED challenge 1" }, + // { "wle_shuggle_mwk3_17", "TAKOのツボ" }, + // { "wle_shuggle_mwk3_18", "Jumping Season" }, + // { "wle_shuggle_mwk3_19", "Black" }, + // { "wle_shuggle_mwk3_20", "Digital Climb 3 ~Rainbow~" }, + // { "wle_shuggle_mwk3_21", "Volcanic Island Travel!" }, + // { "wle_shuggle_mwk3_22", "Sky Ball" }, + // { "wle_shuggle_mwk3_23", "Space Race Remake" }, + // { "wle_shuggle_mwk3_24", "危険なリス" }, + // { "wle_shuggle_mwk3_25", "Summer and the Wonder land of the Sea" }, + // { "wle_shuggle_mwk3_26", "Skim City" }, + // { "wle_shuggle_mwk3_27", "Prova do campeão (Champion Round)" }, + // { "wle_shuggle_mwk3_28", "Жёлтые Нарвалы" }, + // { "wle_shuggle_mwk3_29", "Tropical Punch" }, + // { "wle_shuggle_mwk3_30", "away from the slime" }, + // { "wle_shuggle_mwk3_31", "キョダイMAX黒き天空龍!PFNo02" }, + // { "wle_shuggle_mwk3_32", "Yellow Kingdoms" }, + // { "wle_shuggle_mwk3_33", "Milky way" }, + // { "wle_shuggle_mwk3_34", "SPACE ROUND" }, + // { "wle_shuggle_mwk3_35", "Speedy Bounces" }, + // { "wle_shuggle_mwk3_36", "Snow Style" }, + // { "wle_shuggle_mwk3_37", "bunny leapers V8" }, + // { "wle_shuggle_mwk3_38", "Mushroom" }, + // { "wle_shuggle_mwk3_39", "Data Dash" }, + // { "wle_shuggle_mwk3_40", "RUTA EN LA SELVA" }, + // { "wle_shuggle_mwk3_41", "Button infected desert temple" }, + // { "wle_shuggle_mwk3_42", "Carreira colorida" }, + // { "wle_shuggle_mwk3_43", "Cargo Drop" }, + // { "wle_shuggle_mwk3_44", "green dash" }, + // { "wle_shuggle_mwk3_45", "Jungle Guys" }, + // { "wle_shuggle_mwk3_46", "Golden gates" }, + // { "wle_shuggle_mwk3_47", "Evil Guys" }, + // { "wle_shuggle_mwk3_48", "Orange And Blue Leapers" }, + // { "wle_shuggle_mwk3_49", "Plinko Fall" }, + // { "wle_shuggle_mwk3_50", "Digital Bean Stumble (V2)" }, + // { "wle_shuggle_mwk3_51", "Estareo's Lele Lembe v9" }, + // { "wle_shuggle_mwk3_52", "THE GATE OF TRUTH" }, + // { "wle_shuggle_mwk3_53", "Flutter-by!" }, + // { "wle_shuggle_mwk3_54", "Sketchy Sledding!" }, + // { "wle_shuggle_mwk3_55", "A Cold Race" }, + // { "wle_shuggle_mwk3_56", "X-Treme MegaKaizo Ultra Fall GuysHardest" }, + // { "wle_shuggle_mwk3_57", "Snow Speed" }, + // { "wle_shuggle_mwk3_58", "Bean Fantasy" }, + // { "wle_shuggle_mwk3_59", "Runner(For Fame Pass)" }, + // { "wle_shuggle_mwk3_60", "French Station" }, + // { "wle_shuggle_mwk3_61", "slime climb Creative" }, + // { "wle_shuggle_mwk3_62", "CLASSROOM(PART 2)" }, + // { "wle_shuggle_mwk3_63", "Chilly Leapers" }, + // { "wle_shuggle_mwk3_64", "Fall Bridge" }, + // { "wle_shuggle_mwk3_65", "快感快速!!" }, + // { "wle_shuggle_mwk3_66", "Jungle Guys II" }, + // { "wle_shuggle_mwk3_67", "コズミックミュージック COSMIC MUSIC" }, + // { "wle_shuggle_mwk3_68", "Satellite Sprint" }, + // { "wle_shuggle_mwk3_69", "GROOVIN’ BANANA TEMPLE" }, + // { "wle_shuggle_mwk3_70", "Rumble Tumble" }, + // { "wle_shuggle_mwk3_71", "Fashion Show!" }, + // { "wle_shuggle_mwk3_72", "DROP TOWER 蹦极塔" }, + // { "wle_shuggle_mwk3_73", "Boggle-Bean Bridges" }, + // { "wle_shuggle_mwk3_74", "AquArsene" }, + // { "wle_shuggle_mwk3_75", "Winter Games" }, + // { "wle_shuggle_mwk3_76", "LOONEY TUNES" }, + // { "wle_shuggle_mwk3_77", "atlan-sprint" }, + // { "wle_shuggle_mwk3_78", "Koala kingdom" }, + // { "wle_shuggle_mwk3_79", "straight500" }, + // { "wle_shuggle_mwk3_80", "BIG CROWN MONUMENT" }, + // { "wle_shuggle_mwk3_81", "Lily River Run" }, + // { "wle_shuggle_mwk3_82", "Skyball" }, + // { "wle_shuggle_mwk3_83", "STARLIGHT STUMBLE" }, + // { "wle_shuggle_mwk3_84", "Speedway 2069" }, + // { "wle_shuggle_mwk3_85", "GOLD RUSH" }, + // { "wle_shuggle_mwk3_86", "Data Eraser" }, + // { "wle_shuggle_mwk3_87", "FESTIVE CROSSROADS" }, + // { "wle_shuggle_mwk3_88", "Rainbow highway" }, + // { "wle_shuggle_mwk3_89", "Candyland" }, + // { "wle_shuggle_mwk3_90", "hex-a-run" }, + // { "wle_shuggle_mwk3_91", "Rover Rumble" }, + // { "wle_shuggle_mwk3_92", "MEOW MEOW GALAXY" }, + // { "wle_shuggle_mwk3_93", "Speedy Lovers" }, + // { "wle_shuggle_mwk3_94", "THE Rivalry Game (Football)" }, + // { "wle_shuggle_mwk3_95", "MARIPEN PHOTOLOCATION(Digital)" }, + // { "wle_shuggle_mwk3_96", "Olympique Guys" }, + // { "wle_shuggle_mwk3_97", "Boo City" }, + // { "wle_shuggle_mwk3_98", "CARNIVORUS PLANTS" }, + // { "wle_shuggle_mwk3_99", "はしるまくれ!⊂{◎Å◎}⊃" }, + // { "wle_shuggle_mwk3_100", "Crazy Coaster" }, + // + // { "playful_refresh_w2_01", "Winter Wallop" }, + // { "playful_refresh_w2_02", "Multi Leaper" }, + // { "playful_refresh_w2_03", "ストレートスタンブル" }, + // { "playful_refresh_w2_04", "RUN RUN Park" }, + // { "playful_refresh_w2_05", "やってみな!" }, + // { "playful_refresh_w2_06", "ごちゃごちゃストリート" }, + // { "playful_refresh_w2_07", "Conveyors Obstacles" }, + // { "playful_refresh_w2_08", "Seeing The Bean Ball" }, + // { "playful_refresh_w2_09", "Green Mountain" }, + // { "playful_refresh_w2_10", "Ancient Fallstronomers" }, + // { "playful_refresh_w2_11", "Jumping Season" }, + // { "playful_refresh_w2_12", "Track attackers system" }, + // { "playful_refresh_w2_13", "CASTLE CLASH" }, + // { "playful_refresh_w2_14", "The Terrible Spiral Of Woo Remake" }, + // { "playful_refresh_w2_15", "Rainbow Dash" }, + // { "playful_refresh_w2_16", "TruPixel's Jungle Mash-up" }, + // { "playful_refresh_w2_17", "fall-in space" }, + // { "playful_refresh_w2_18", "Monochromatic Manic" }, + // { "playful_refresh_w2_19", "Adrenaline Force 2" }, + // { "playful_refresh_w2_20", "DIGITAL MADNESS" }, + // { "playful_refresh_w2_21", "Data Dash" }, + // { "playful_refresh_w2_22", "Caida resbaladisa" }, + // { "playful_refresh_w2_23", "Snow Mountain" }, + // { "playful_refresh_w2_24", "Orange And Blue Leapers" }, + // { "playful_refresh_w2_25", " Wild Dunes" }, + // { "playful_refresh_w2_26", "Blundercity Marathon" }, + // { "playful_refresh_w2_27", "Pocket Summit" }, + // { "playful_refresh_w2_28", "Love a day" }, + // { "playful_refresh_w2_29", "Passage imbroglio arc en ciel" }, + // { "playful_refresh_w2_30", "Fall Stars" }, + // { "playful_refresh_w2_31", "SPRING MOUNTAIN" }, + // { "playful_refresh_w2_32", "AquArsene" }, + // { "playful_refresh_w2_33", "Rainbow Riptide" }, + // { "playful_refresh_w2_34", "Cluster Cosmos" }, + // { "playful_refresh_w2_35", "Koala kingdom" }, + // { "playful_refresh_w2_36", "Fallyager 12 Repair Mission" }, + // { "playful_refresh_w2_37", "Lily River Run" }, + // { "playful_refresh_w2_38", "STARLIGHT STUMBLE" }, + // { "playful_refresh_w2_39", "Welcome to Namek" }, + // { "playful_refresh_w2_40", "Rainbow highway" }, + // { "playful_refresh_w2_41", "Past passage" }, + // { "playful_refresh_w2_42", "Neon pipe run" }, + // { "playful_refresh_w2_43", "NAUTICAL SHAMBLE" }, + // + // { "wle_mrs_winter_opener_01", "Winter Blunderland" }, + // { "wle_mrs_winter_opener_02", "Frosty fiesta" }, + // { "wle_mrs_winter_opener_03", "Knight Slide" }, + // { "wle_mrs_winter_opener_04", "Digi-Snow Stumble" }, + // { "wle_mrs_winter_opener_05", "Snowy Cave-in" }, + // { "wle_mrs_winter_opener_06", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "wle_mrs_winter_opener_07", "A Cold Race" }, + // { "wle_mrs_winter_opener_08", "Ice Rock" }, + // { "wle_mrs_winter_filler_01", "Snowy Flakes" }, + // { "wle_mrs_winter_filler_02", "Mountain of Ice" }, + // { "wle_mrs_winter_filler_03", "FROSTY FUMBLE" }, + // { "wle_mrs_winter_filler_04", "Winter Getaway" }, + // { "wle_mrs_winter_filler_05", "Snowy Speed Sprint" }, + // { "wle_mrs_winter_filler_06", "WINTER WONDERLAND" }, + // { "wle_mrs_winter_filler_07", "Gran Glaciar Paradicial" }, + // { "wle_mrs_winter_final_01", "The Ice Dragon's Lair" }, + // { "wle_mrs_winter_final_02", "Winter Wonderland" }, + // { "wle_mrs_winter_final_03", "Snowman Sprint" }, + // { "wle_mrs_winter_final_04", "MERRY CLIMBING!" }, + // { "wle_mrs_winter_final_05", "Winter Wonderland" }, + // + // { "wle_s10_cf_round_001", "Blocky Bridges" }, + // { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + // { "wle_s10_cf_round_003", "Drop n' Drag" }, + // { "wle_s10_cf_round_004", "Fun with Fans" }, + // + // { "wle_s10_bt_round_001", "Push Ups" }, + // { "wle_s10_bt_round_002", "Heave & Haul" }, + // { "wle_s10_bt_round_003", "Stepping Stones" }, + // { "wle_s10_bt_round_004", "Double Trouble" }, + // + // { "wle_mrs_bagel_opener_1", "Tunnel of Love" }, + // { "wle_mrs_bagel_opener_2", "Pink Parade" }, + // { "wle_mrs_bagel_opener_3", "Prideful Path" }, + // { "wle_mrs_bagel_opener_4", "Coming Together" }, + // { "wle_mrs_bagel_filler_1", "Clifftop Capers" }, + // { "wle_mrs_bagel_filler_2", "Waveway Splits" }, + // { "wle_mrs_bagel_filler_3", "In the Groove" }, + // { "wle_mrs_bagel_filler_4", "Heartfall Heat" }, + // { "wle_mrs_bagel_final_1", "Rainbow Rise" }, + // { "wle_mrs_bagel_final_2", "Out and About" }, + // + // { "wle_mrs_bouncy_bean_time_opener", "Frosty Frolics" }, + // { "wle_mrs_bouncy_bean_time_opener_02", "roll roll bean" }, + // { "wle_mrs_bouncy_bean_time_opener_03", "SPEEDROLLING" }, + // { "wle_mrs_bouncy_bean_time_filler", "Ball Park" }, + // { "wle_mrs_bouncy_bean_time_filler_02", "Ball Carnival" }, + // { "wle_mrs_bouncy_bean_time_filler_03", "Spiral Trial" }, + // { "wle_mrs_bouncy_bean_time_filler_04", "Golf Fall" }, + // { "wle_mrs_bouncy_bean_time_final", "Downtown Rush" }, + // { "wle_mrs_bouncy_bean_time_final_02", "Skyview Derby" }, + // { "wle_mrs_bouncy_bean_time_final_03", "Rolling Speedway" }, + // { "wle_mrs_bouncy_bean_time_final_04", "SEA FLOW!" }, + } + }, + { Language.TraditionalChinese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "round_airtime", "空中競賽" }, + { "round_bluejay", "糖豆山世界" }, + { "round_biggestfan", "大風車轉轉轉" }, + { "round_hoops_revenge_symphony_launch_show", "彈跳派對" }, + { "round_king_of_the_hill", "泡泡危機" }, + { "round_1v1_button_basher", "砸鍵狂豆" }, + { "round_satellitehoppers_almond", "星際快道" }, + { "round_door_dash", "闖門衝關" }, + { "round_gauntlet_02", "目眩山巔" }, + { "round_ffa_button_bashers_squads_almond", "瘋狂工廠" }, + { "round_iceclimb", "嚴寒冰峰" }, + { "round_dodge_fall", "連躲帶落" }, + { "round_see_saw_360", "搖晃轉盤" }, + { "round_chompchomp", "五花八門" }, + { "round_gauntlet_01", "障礙狂歡" }, + { "round_slippy_slide", "鑽圈滑道" }, + { "round_hoops_blockade_solo", "鑽圈王者" }, + { "round_gauntlet_04", "騎士狂熱" }, + { "round_follow-the-leader_s6_launch", "萬眾焦點" }, + { "round_drumtop", "林間躍動" }, + { "round_gauntlet_08", "派對大道" }, + { "round_penguin_solos", "企鵝戲水" }, + { "round_pipedup_s6_launch", "夢幻管道" }, + { "round_pixelperfect_almond", "像素級還原" }, + { "round_follow_the_line", "謎題之路" }, + { "round_tunnel_race", "滾滾而去" }, + { "round_see_saw", "蹺蹺板" }, + { "round_shortcircuit", "田徑短路" }, + { "round_skeefall", "雪山速降" }, + { "round_gauntlet_06", "天際大衝關" }, + { "round_lava", "水漲爬高" }, + { "round_slimeclimb_2", "摩天黏液" }, + { "round_gauntlet_10_almond", "太空競速" }, + { "round_slide_chute", "糖豆坡上飛" }, + { "round_short_circuit_2_symphony_launch_show", "高速賽道" }, + { "round_starlink_almond", "隱匿星圖" }, + { "round_tip_toe", "踮踮腳尖" }, + { "round_gauntlet_09_symphony_launch_show", "障礙田徑賽" }, + { "round_gauntlet_07", "叢林探險" }, + { "round_gauntlet_05", "苔原衝關" }, + { "round_gauntlet_03", "旋轉木馬" }, + { "round_wall_guys", "攀牆豆士" }, + { "round_fruitpunch_s4_show", "蹺蹺噴噴" }, + { "round_blastballruins", "震盪競技場" }, + { "round_block_party", "磚頭派對" }, + { "round_hoverboardsurvival_s4_show", "懸浮板之王" }, + { "round_hoverboardsurvival2_almond", "超光速勇士" }, + { "round_jump_club", "蹦跳俱樂部" }, + { "round_match_fall", "完美配對" }, + { "round_tunnel", "滾石行動" }, + { "round_snowballsurvival", "雪球淘汰賽" }, + { "round_robotrampage_arena_2", "犀牛大衝撞" }, + { "round_fruit_bowl", "排排坐,數果果" }, + { "round_tail_tag", "追\"尾\"遊戲" }, + { "round_spin_ring_symphony_launch_show", "傳送帶跑圈" }, + { "round_1v1_volleyfall_symphony_launch_show", "糖豆排球" }, + { "round_basketfall_s4_show", "糖豆籃球賽" }, + { "round_egg_grab", "搶蛋亂戰" }, + { "round_egg_grab_02", "搶蛋攻城" }, + { "round_fall_ball_60_players", "激情足球" }, + { "round_ballhogs", "囤貨狂人" }, + { "round_hoops", "鑽圈圈" }, + { "round_jinxed", "鬼抓人" }, + { "round_chicken_chase", "企鵝大追捕" }, + { "round_territory_control_s4_show", "能量爭奪戰" }, + { "round_rocknroll", "硬石搖滾" }, + { "round_snowy_scrap", "雪球爭霸" }, + { "round_invisibeans", "糖果竊賊" }, + { "round_pumpkin_pie", "萬聖來盜" }, + { "round_conveyor_arena", "追尾大團戰" }, + { "round_blastball_arenasurvival_symphony_launch_show", "震盪球" }, + { "round_fall_mountain_hub_complete", "登山比拼" }, + { "round_floor_fall", "蜂窩迷圖" }, + { "round_hexaring_symphony_launch_show", "蜂窩迷環" }, + { "round_hexsnake_almond", "深空蜂窩" }, + { "round_jump_showdown", "巔峰對決" }, + { "round_kraken_attack", "海怪重擊" }, + { "round_crown_maze", "失落神廟" }, + { "round_tunnel_final", "滾輪行動" }, + { "round_royal_rumble", "盛裝團團轉" }, + { "round_thin_ice", "如履薄冰" }, + { "round_tiptoefinale_almond", "決勝之踮" }, + + { "user_creative_race_round", "User Creative Race Round" }, + { "user_creative_survival_round", "User Creative Survival Round" }, + { "user_creative_hunt_round", "User Creative Hunt Round" }, + { "user_creative_logic_round", "User Creative Logic Round" }, + { "user_creative_team_round", "User Creative Team Round" }, + { "creative_race_round", "Creative Race Round" }, + { "creative_race_final_round", "Creative Race Final Round" }, + { "creative_survival_round", "Creative Survival Round" }, + { "creative_survival_final_round", "Creative Survival Final Round" }, + { "creative_hunt_round", "Creative Hunt Round" }, + { "creative_hunt_final_round", "Creative Hunt Final Round" }, + { "creative_logic_round", "Creative Logic Round" }, + { "creative_logic_final_round", "Creative Logic Final Round" }, + { "creative_team_round", "Creative Team Round" }, + { "creative_team_final_round", "Creative Team Final Round" }, + + // { "wle_main_filler_01", "Ruta en la selva" }, + // { "wle_main_filler_02", "ROTATION STATION" }, + // { "wle_main_filler_03", "canyon sun day" }, + // { "wle_main_opener_01", "Winter Disc-O" }, + // { "wle_main_opener_02", "Satellite Sprint" }, + // + // { "wle_s10_orig_round_001", "Beans Ahoy!" }, + // { "wle_s10_orig_round_002", "Airborne Antics" }, + // { "wle_s10_orig_round_003", "Scythes & Roundabouts" }, + // { "wle_s10_orig_round_004", "Cardio Runners" }, + // { "wle_s10_orig_round_005", "Fan Flingers" }, + // { "wle_s10_orig_round_006", "Uphill Struggle" }, + // { "wle_s10_orig_round_007", "Spinner Sprint" }, + // { "wle_s10_orig_round_008", "Lane Changers" }, + // { "wle_s10_orig_round_009", "Gentle Gauntlet" }, + // { "wle_s10_orig_round_010", "Square Up" }, + // { "wle_s10_orig_round_011", "Slide Showdown" }, + // { "wle_s10_orig_round_012", "Up & Down" }, + // { "wle_s10_orig_round_013", "Choo Choo Challenge" }, + // { "wle_s10_orig_round_014", "Runner Beans" }, + // { "wle_s10_orig_round_015", "Disc Dashers" }, + // { "wle_s10_orig_round_016", "Two Faced" }, + // { "wle_s10_orig_round_017", "Bellyflop Battlers" }, + // { "wle_s10_orig_round_018", "Apples & Oranges" }, + // { "wle_s10_orig_round_019", "Blueberry Bombardment" }, + // { "wle_s10_orig_round_020", "Chuting Stars" }, + // { "wle_s10_orig_round_021", "Slimy Slopes" }, + // { "wle_s10_orig_round_022", "Circuit Breakers" }, + // { "wle_s10_orig_round_023", "Winding Walkways" }, + // { "wle_s10_orig_round_024", "Wooseleum" }, + // { "wle_s10_orig_round_025", "Mount Boom" }, + // { "wle_s10_orig_round_026", "Hyperlink Hijinks" }, + // { "wle_s10_orig_round_027", "Fan Frolics" }, + // { "wle_s10_orig_round_028", "Windmill Road" }, + // { "wle_s10_orig_round_029", "Conveyor Clash" }, + // { "wle_s10_orig_round_030", "Mega Monument" }, + // { "wle_s10_orig_round_031", "Transfer Turnpike" }, + // { "wle_s10_orig_round_032", "Fortress Frolics" }, + // { "wle_s10_orig_round_033", "Super Door Dash" }, + // { "wle_s10_orig_round_034", "Spiral Of Woo" }, + // { "wle_s10_orig_round_035", "Tornado Trial" }, + // { "wle_s10_orig_round_036", "Hopscotch Havoc" }, + // { "wle_s10_orig_round_037", "Beat Bouncers" }, + // { "wle_s10_orig_round_038", "Blunder Bridges" }, + // { "wle_s10_orig_round_039", "Incline Rewind" }, + // { "wle_s10_orig_round_040", "Prismatic Parade" }, + // { "wle_s10_orig_round_041", "Swept Away" }, + // { "wle_s10_orig_round_042", "Balancing Act" }, + // { "wle_s10_orig_round_043", "Trouble Tower" }, + // { "wle_s10_orig_round_044", "Serpent Slalom" }, + // { "wle_s10_orig_round_045", "Floorless" }, + // { "wle_s10_orig_round_045_long", "Floorless" }, + // { "wle_s10_orig_round_046", "In The Cloud" }, + // { "wle_s10_orig_round_047", "Downstream Duel" }, + // { "wle_s10_orig_round_048", "Lost Palace" }, + // { "wle_s10_long_round_003", "Fall Speedway" }, + // { "wle_s10_long_round_004", "ZigZag Zoomies" }, + // { "wle_s10_long_round_005", "Terrabyte Trial" }, + // { "wle_s10_round_001", "Digi Trek" }, + // { "wle_s10_round_002", "Shortcut Links" }, + // { "wle_s10_round_003", "Upload Heights" }, + // { "wle_s10_round_004", "Parkour Panic" }, + // { "wle_s10_round_005", "Data Streams" }, + // { "wle_s10_round_006", "Gigabyte Gauntlet" }, + // { "wle_s10_round_007", "Cube Corruption" }, + // { "wle_s10_round_008", "Wham Bam Boom" }, + // { "wle_s10_round_009", "Firewall Finale" }, + // { "wle_s10_round_010", "Pixel Hearts" }, + // { "wle_s10_round_011", "Cyber Circuit" }, + // { "wle_s10_round_012", "Boom Blaster Trial" }, + // + // { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + // { "wle_s10_player_round_wk3_02", "Door Game" }, + // { "wle_s10_player_round_wk3_03", "Full Speed Sliding (FSS) - Jelly Road" }, + // { "wle_s10_player_round_wk3_04", "Sky High Run" }, + // { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + // { "wle_s10_player_round_wk3_07", "Descente Créative" }, + // { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + // { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + // { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + // { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + // { "wle_s10_player_round_wk3_12", "Variable Valley" }, + // { "wle_fp2_wk6_01", "Broken Course" }, + // { "wle_s10_player_round_wk3_14", "Tower of Fall" }, + // { "wle_s10_player_round_wk3_15", "Parkour Party" }, + // { "wle_s10_player_round_wk3_16", "Catastrophe Climb" }, + // { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + // { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + // { "wle_s10_player_round_wk3_19", "Sky Time" }, + // { "wle_s10_player_round_wk3_20", "EZz Map" }, + // + // { "wle_s10_player_round_wk4_01", "Slippery Stretch" }, + // { "wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + // { "wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + // { "wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + // { "wle_s10_player_round_wk4_06", "Topsie Tursie" }, + // { "wle_s10_player_round_wk4_07", "Arcade Assault" }, + // { "wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + // { "wle_s10_player_round_wk4_09", "Green Beans" }, + // { "wle_s10_player_round_wk4_10", "Hop Hill" }, + // { "wle_s10_player_round_wk4_11", "Quick Sliders" }, + // { "wle_s10_player_round_wk4_12", "Split Path" }, + // { "wle_s10_player_round_wk4_13", "Piso resbaloso" }, + // { "wle_s10_player_round_wk4_15", "Snowboard Street" }, + // { "wle_s10_player_round_wk4_18", "House Invasion" }, + // { "wle_s10_player_round_wk4_19", "SOLO FULL-TILT RAGE" }, + // { "wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + // { "wle_s10_player_round_wk4_21", "Spin" }, + // { "wle_s10_player_round_wk4_22", "Lane Changers" }, + // + // { "wle_s10_player_round_wk5_01", "Block Park" }, + // { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + // { "wle_s10_player_round_wk5_03", "Digital Temple" }, + // { "wle_s10_player_round_wk5_04", "Tower Escape" }, + // { "wle_s10_player_round_wk5_05", "Tower Dash" }, + // { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + // { "wle_s10_player_round_wk5_07", "Looooping" }, + // { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + // { "wle_s10_player_round_wk5_10", "Siank Arena" }, + // { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + // { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + // { "wle_s10_player_round_wk5_13", "Dessert Village" }, + // { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + // { "wle_s10_player_round_wk5_15", "Beast Route" }, + // { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + // { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + // { "wle_s10_player_round_wk5_18", "Digital Doom" }, + // + // { "wle_s10_player_round_wk6_01", "Hammer Heaven" }, + // { "wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + // { "wle_s10_player_round_wk6_03", "Castle Rush" }, + // { "wle_s10_player_round_wk6_04", "Chaotic Race" }, + // { "wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + // { "wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + // { "wle_s10_player_round_wk6_08", "Flower Power" }, + // { "wle_s10_player_round_wk6_09", "Dimension Explorer" }, + // { "wle_s10_player_round_wk6_10", "Forked Passage" }, + // { "wle_s10_player_round_wk6_12", "The Bee Hive" }, + // { "wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + // { "wle_s10_player_round_wk6_14", "Snek" }, + // { "wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + // { "wle_s10_player_round_wk6_17", "Slippery Helixes" }, + // { "wle_s10_player_round_wk6_18", "Recess" }, + // { "wle_s10_player_round_wk6_19", "Parrot river" }, + // { "wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + // + // { "current_wle_fp3_07_01", "Block Sledding" }, + // { "current_wle_fp3_07_02", "Layup Wallop" }, + // { "current_wle_fp3_07_03", "Minecart Mayhem" }, + // { "current_wle_fp3_07_04", "Bouncing Pass" }, + // { "current_wle_fp3_07_05", "Ball Factory" }, + // { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + // { "current_wle_fp3_07_0_02", "Woo-F-O" }, + // { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + // + // { "current_wle_fp3_08_01", "Grabbers Territory" }, + // { "current_wle_fp3_08_02", "A Way Out" }, + // { "current_wle_fp3_08_03", "Wall Block" }, + // { "current_wle_fp3_08_04", "The dream island" }, + // { "current_wle_fp3_08_05", "Rainbow pulsion" }, + // { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + // { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + // { "current_wle_fp3_08_10", "Crazy boxes" }, + // { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + // { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + // { "current_wle_fp3_08_15", "Stumble Teams" }, + // { "current_wle_fp3_08_16", "Twisting Tower" }, + // { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + // { "current_wle_fp3_08_18", "The Rising Blocks" }, + // { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + // { "current_wle_fp3_09_01", "The up tower" }, + // { "current_wle_fp3_09_02", "Short shuriken" }, + // { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + // { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + // { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + // { "current_wle_fp3_09_06", "Random Heights" }, + // { "current_wle_fp3_09_07", "Climb scramble" }, + // { "current_wle_fp3_09_08", "Collide Gaming" }, + // { "current_wle_fp3_09_09", "Very Compressed Level" }, + // { "current_wle_fp3_09_0_01", "Slippery Slope" }, + // { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + // { "current_wle_fp3_09_0_03", "Free Falling" }, + // { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + // { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + // { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + // { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + // + // { "current_wle_fp3_10_01", "When Nature Falls" }, + // { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + // { "current_wle_fp3_10_03", "The Slime Trials" }, + // { "current_wle_fp3_10_04", "Friendly Obstacles" }, + // { "current_wle_fp3_10_05", "Climb and Fall" }, + // { "current_wle_fp3_10_06", "Stairs and some other things" }, + // { "current_wle_fp3_10_07", "Meowgical World" }, + // { "current_wle_fp3_10_08", "Polluelo Speed" }, + // { "current_wle_fp3_10_09", "Pixel Parade" }, + // { "current_wle_fp3_10_10", "Total Madness" }, + // { "current_wle_fp3_10_11", "The Abstract Maze" }, + // { "current_wle_fp3_10_12", "Fan Off" }, + // { "current_wle_fp3_10_13", "cloud highway" }, + // { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + // { "current_wle_fp3_10_15", "Speedrunners be like" }, + // { "current_wle_fp3_10_16", "Tumble Tower" }, + // { "current_wle_fp3_10_17", "Silver's Snake Run" }, + // { "current_wle_fp3_10_18", "Now Boarding" }, + // { "current_wle_fp3_10_19", "Slime Scale" }, + // { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + // { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + // { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + // { "current_wle_fp3_10_23", "Controlled Chaos" }, + // { "current_wle_fp3_10_24", "Xtreme Jumping" }, + // { "current_wle_fp3_10_25", "Odin" }, + // { "current_wle_fp3_10_26", "Ciudad nube" }, + // { "current_wle_fp3_10_27", "Bean Voyage" }, + // { "current_wle_fp3_10_28", "SLIP-SAW" }, + // { "current_wle_fp3_10_29", "Bbq bacon burger" }, + // + // { "current_wle_fp4_05_01_01", "巅峰车站" }, + // { "current_wle_fp4_05_01_02", "Beba Park 7" }, + // { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + // { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + // { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + // { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + // { "current_wle_fp4_05_02", "Mini only up" }, + // { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + // { "current_wle_fp4_05_03_02", "Remote Control" }, + // { "current_wle_fp4_05_03", "Parkway Slide" }, + // { "current_wle_fp4_05_04", "Duel Dash" }, + // { "current_wle_fp4_05_05", "beaten trackless road" }, + // { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + // { "current_wle_fp4_05_2_02", "arch city" }, + // { "current_wle_fp4_05_2_03", "Desert Ruins" }, + // + // { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + // { "current_wle_fp4_06_02", "Pachislo" }, + // { "current_wle_fp4_06_0_01", "AquArsene" }, + // { "current_wle_fp4_06_0_02", "RainbowCloud" }, + // { "current_wle_fp4_06_0_03", "Pink Cascade" }, + // { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + // { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + // { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + // { "current_wle_fp4_06_1_01", "Buggin' Out" }, + // { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + // { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + // { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + // { "current_wle_fp4_06_1_05", "The climb of Trials" }, + // { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + // + // { "current_wle_fp4_07_01", "Rotational Runner" }, + // { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + // { "current_wle_fp4_07_03", "simple stage" }, + // { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + // { "current_wle_fp4_07_05", "Factory Valley" }, + // { "current_wle_fp4_07_06", "Jumpy Beans" }, + // { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + // { "current_wle_fp4_07_0_01", "Camino Ninja" }, + // + // { "current_wle_fp4_08_01", "co-op guys" }, + // { "current_wle_fp4_08_0_01", "The big slide" }, + // { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + // { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + // { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + // { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + // { "current_wle_fp4_08_0_06", "X-Course" }, + // { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + // { "current_wle_fp4_08_1_01", "Boost in Dash" }, + // { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + // { "current_wle_fp4_08_1_03", "Giddy up!" }, + // { "current_wle_fp4_08_1_04", "Mad lab" }, + // { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + // { "current_wle_fp4_08_3_01", "The Oasis" }, + // + // { "current_wle_fp4_09_01", "Crate Collector" }, + // { "current_wle_fp4_09_02", "Dribble Drills" }, + // { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + // { "current_wle_fp4_09_04", "Skyline Park" }, + // { "current_wle_fp4_09_05", "Birthday bonanza" }, + // { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + // { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + // { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + // { "current_wle_fp4_09_1_02", "Haute voltige" }, + // { "current_wle_fp4_09_2_01", "DNA Test" }, + // + // { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + // { "current_wle_fp4_10_02", "Hot Blast" }, + // { "current_wle_fp4_10_03", "Box Fan Blitz" }, + // { "current_wle_fp4_10_04", "Woo-terfall Way" }, + // { "current_wle_fp4_10_05", "Slime race" }, + // { "current_wle_fp4_10_06", "Moving Day" }, + // { "current_wle_fp4_10_07", "Birthday Dash" }, + // { "current_wle_fp4_10_08_m", "Wall Breaker" }, + // { "current_wle_fp4_10_08", "Chess History" }, + // { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + // { "current_wle_fp4_10_12", "Chickens run away" }, + // { "current_wle_fp4_10_20", "Co-op and CO" }, + // { "current_wle_fp4_10_21", "Construction Site" }, + // { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + // { "current_wle_fp4_10_0_02", "Molehills" }, + // + // { "current_wle_fp5_2_01_01", "Plummet Summit" }, + // { "current_wle_fp5_2_01_02", "タワークライム" }, + // { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + // { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + // { "current_wle_fp5_2_01", "Jabonsotes" }, + // { "current_wle_fp5_2_02_01", "のっぽタワー" }, + // { "current_wle_fp5_2_02_02", "Blaster Course" }, + // { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + // { "current_wle_fp5_2_02_04", "The hard Climb" }, + // { "current_wle_fp5_2_02_05", "sliding guys" }, + // { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + // { "current_wle_fp5_2_02", "Rainbow highway" }, + // { "current_wle_fp5_2_03", "Falligator" }, + // { "current_wle_fp5_2_04_01", "Lily Lovers" }, + // { "current_wle_fp5_2_04_02", "rainow rode" }, + // { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_04_04", "Super crazy level" }, + // { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + // { "current_wle_fp5_2_05_01", "Level XVIII" }, + // { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + // { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + // { "current_wle_fp5_2_05_04", "rainbow roade" }, + // { "current_wle_fp5_2_05", "The tension Parkour" }, + // { "current_wle_fp5_2_06", "Stairing Contest" }, + // { "current_wle_fp5_2_07", "Vibrant Ascension" }, + // + // { "current_wle_fp5_3_05_01", "Beany Golf!" }, + // { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + // { "current_wle_fp5_4_01_01", "Tilted Walls" }, + // { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + // { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + // { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + // { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + // + // { "current_wle_fp5_10_01", "Breezy Buddies" }, + // { "current_wle_fp5_10_0_01", "Salto Plancha" }, + // { "current_wle_fp5_10_0_02", "My house" }, + // { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + // { "current_wle_fp5_10_1_01", "Desert Ruins" }, + // { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_01", "Desert Ruins" }, + // { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + // { "current_wle_fp5_10_2_03", "Mystic River" }, + // { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + // { "current_wle_fp5_10_2_05", "Cliffside" }, + // { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + // { "current_wle_fp5_10_2_07", "The Avenue" }, + // { "current_wle_fp5_10_2_08", "Gold City" }, + // { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + // { "current_wle_fp5_10_2_10", "初心者用コース" }, + // { "current_wle_fp5_10_2_11", "Chain Reaction" }, + // + // { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + // { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + // { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + // { "current_wle_fp5_wk3_1_04", "El airecito" }, + // { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + // { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + // { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + // { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + // { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + // { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + // { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + // { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + // { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + // { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + // { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + // + // { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + // { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + // { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + // { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + // { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + // { "current_wle_fp5_falloween_1_06", "Mirage" }, + // { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + // { "current_wle_fp5_falloween_1_08", "Toon World" }, + // { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + // { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + // { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + // { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + // { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + // { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + // { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + // { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + // { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + // { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + // { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + // { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + // { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + // { "current_wle_fp5_falloween_2_03_06", "Spider" }, + // { "current_wle_fp5_falloween_2_03", "fastoween" }, + // { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + // { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + // { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + // { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + // { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + // { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + // { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + // { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + // { "current_wle_fp5_falloween_4_05", "Scary Final" }, + // { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + // { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + // { "current_wle_fp5_falloween_4_08", "Catoween" }, + // { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + // { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + // { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + // { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + // { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + // { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + // { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + // { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + // { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + // { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + // { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + // { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + // { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + // { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + // { "current_wle_fp5_falloween_5_04", "Halloween" }, + // { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + // { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + // { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + // { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + // { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + // { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + // { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + // { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + // { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + // { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + // { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + // { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + // { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + // { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + // { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + // { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + // { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + // { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + // { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + // { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + // { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + // { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + // { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + // { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + // { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + // { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + // { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + // { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + // { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + // { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + // { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + // { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + // { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + // { "current_wle_fp5_falloween_9_02", "Raveyard" }, + // { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + // { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + // { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + // { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + // { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + // { "current_wle_fp5_falloween_11_01", "Night Runners" }, + // { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + // { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + // { "current_wle_fp5_falloween_13_01", "Witch Way" }, + // { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + // { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + // + // { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + // { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + // { "current_wle_fp6_1_03", "SKULL KING" }, + // { "current_wle_fp6_1_04", "shorter circuit" }, + // { "current_wle_fp6_1_05", "be speedy" }, + // { "current_wle_fp6_1_06", "Sky-City Stumble" }, + // { "current_wle_fp6_1_07", "Wormhole Mountain" }, + // { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + // { "current_wle_fp6_1_09", "Splitspeed" }, + // { "current_wle_fp6_1_10", "Fall Canyon" }, + // { "current_wle_fp6_2_01", "Valise" }, + // { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + // { "current_wle_fp6_2_03", "Water Way" }, + // { "current_wle_fp6_2_04", "The Doors of Doom" }, + // { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + // { "current_wle_fp6_2_06", "Liana Swings" }, + // { "current_wle_fp6_2_07", "Colourful" }, + // { "current_wle_fp6_2_08", "The Heist!" }, + // { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + // { "current_wle_fp6_3_01", "Tricky Treat" }, + // { "current_wle_fp6_3_02", "The Lighthouse" }, + // { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + // { "current_wle_fp6_3_04", "The Scarescraper" }, + // { "current_wle_fp6_3_05", "Obstacle Road" }, + // { "current_wle_fp6_3_06", "Rest In Paris" }, + // { "current_wle_fp6_3_07", "Horror pumpkim" }, + // { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + // + // { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + // { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + // { "current_wle_fp6_wk2_03", "Slidy Road" }, + // { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + // { "current_wle_fp6_wk2_05", "Lost in space" }, + // { "current_wle_fp6_wk2_06", "Turbine Decline" }, + // { "current_wle_fp6_wk2_07", "Zero Displacement" }, + // { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + // { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + // { "current_wle_fp6_wk2_10", "Neoway" }, + // { "current_wle_fp6_wk2_11", "Niagara Falls" }, + // { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + // { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + // { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + // { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + // { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + // { "current_wle_fp6_wk2_1_06", "Locomoção" }, + // { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + // { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + // { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + // + // { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + // { "current_wle_fp6_wk3_02", "Compact 5" }, + // { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + // { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + // { "current_wle_fp6_wk3_05", "Alto voltaje" }, + // { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + // { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + // { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + // { "current_wle_fp6_wk3_09", "Work and Travel" }, + // { "current_wle_fp6_wk3_10", "connect the bridge" }, + // { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + // { "current_wle_fp6_wk3_2_02", "speed demon" }, + // { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + // { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + // { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + // { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + // { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + // + // { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + // { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + // { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + // { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + // { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + // { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + // { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + // { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + // { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + // { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + // { "current_wle_fp6_wk4_03_05", "Snow Style" }, + // { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + // { "current_wle_fp6_wk4_05_01", "Rebound" }, + // { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + // { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + // + // { "current_wle_community_10_5_01", "Snowy Starfall" }, + // { "current_wle_community_10_5_02", "The Earthquake" }, + // { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + // { "current_wle_community_10_5_1_04", "Garden of Woo" }, + // { "current_wle_community_10_5_1_05", "Out in the open" }, + // { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + // { "current_wle_community_10_5_1_08", "Jungle Journey" }, + // { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + // { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + // { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + // { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + // { "current_wle_community_10_5_1_15", "Three Rooms" }, + // { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + // { "current_wle_community_10_5_1_17", "Winter Slide" }, + // { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + // + // { "wle_discover_level_wk2_001", "Castle in the Clouds" }, + // { "wle_discover_level_wk2_002", "Christmas corner!" }, + // { "wle_discover_level_wk2_003", "Hot Wheels 2069" }, + // { "wle_discover_level_wk2_004", "Bounce Back Racetrack" }, + // { "wle_discover_level_wk2_005", "Space Getaway" }, + // { "wle_discover_level_wk2_006", "fall mountain (糖豆山涧)" }, + // { "wle_discover_level_wk2_007", "伝説のポケモン!" }, + // { "wle_discover_level_wk2_008", "Knight Slide" }, + // { "wle_discover_level_wk2_009", "Christmas Run" }, + // { "wle_discover_level_wk2_010", "Labyrinth (1986) Part1" }, + // { "wle_discover_level_wk2_011", "Rebound" }, + // { "wle_discover_level_wk2_012", "Trip to Santa's home" }, + // { "wle_discover_level_wk2_013", "ピッピカチュ☆彡" }, + // { "wle_discover_level_wk2_014", "Rainbow Race" }, + // { "wle_discover_level_wk2_015", "Speed Suburbs" }, + // { "wle_discover_level_wk2_016", "SUPER MARIO WONDER" }, + // { "wle_discover_level_wk2_017", "Punching Bridges" }, + // { "wle_discover_level_wk2_018", "The Slimescrapper" }, + // { "wle_discover_level_wk2_019", "Snowy Flakes" }, + // { "wle_discover_level_wk2_020", "Foggy Freeway" }, + // { "wle_discover_level_wk2_021", "Snowy Climb" }, + // { "wle_discover_level_wk2_022", "snow athletic valley" }, + // { "wle_discover_level_wk2_023", "詰め込んだだけレース4" }, + // { "wle_discover_level_wk2_024", "Winter Wonder Sprint" }, + // { "wle_discover_level_wk2_025", "Randonnée Galactique" }, + // { "wle_discover_level_wk2_026", "Cloudy with a Chance of Cannonballs" }, + // { "wle_discover_level_wk2_027", "Digital Snowland" }, + // { "wle_discover_level_wk2_028", "Shiver Beans" }, + // { "wle_discover_level_wk2_029", "SanTama Run" }, + // { "wle_discover_level_wk2_030", "Winter Run" }, + // { "wle_discover_level_wk2_031", "Jiggle Jingle" }, + // { "wle_discover_level_wk2_032", "Ice Pop Interstate" }, + // { "wle_discover_level_wk2_033", "クリエだよ全員集合" }, + // { "wle_discover_level_wk2_034", "Snow Day" }, + // { "wle_discover_level_wk2_035", "It's Tiiiiiiiimeee!" }, + // { "wle_discover_level_wk2_036", "KYOUFUU GUYS BACK" }, + // { "wle_discover_level_wk2_037", "Sonic's Sunset Adventure" }, + // { "wle_discover_level_wk2_038", "♪勝利のフォンフォーレ" }, + // { "wle_discover_level_wk2_039", "RACE ORIGINS" }, + // { "wle_discover_level_wk2_040", "Winter Wipeout" }, + // { "wle_discover_level_wk2_041", "Centripetal Circuit" }, + // { "wle_discover_level_wk2_042", "MERRY MAYHEM!" }, + // { "wle_discover_level_wk2_043", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_044", "The Scarescraper" }, + // { "wle_discover_level_wk2_045", "SQUID FALL GUYS" }, + // { "wle_discover_level_wk2_046", "$$$¡The Casino Crew!$$$" }, + // { "wle_discover_level_wk2_047", "Dee's- Escape the Pirate Ship!" }, + // { "wle_discover_level_wk2_048", "ジャングル ぐるぐる" }, + // { "wle_discover_level_wk2_049", "ショートステージ" }, + // { "wle_discover_level_wk2_050", "スノーマウンテンクライム" }, + // + // { "wle_round_mrs_shuffle_discover_005", "My Melody" }, + // { "wle_round_mrs_shuffle_discover_006", "prismatic ice crystal" }, + // { "wle_round_mrs_shuffle_discover_007", "スキルアップステージ" }, + // { "wle_round_mrs_shuffle_discover_008", "WHITE TREE JUMBLE" }, + // { "wle_round_mrs_shuffle_discover_009", "Snowy Adventure" }, + // { "wle_round_mrs_shuffle_discover_010", "Happy Bean Food Fiesta" }, + // { "wle_round_mrs_shuffle_discover_011", "Belly Flop Bobsleigh" }, + // { "wle_round_mrs_shuffle_discover_012", "winter party" }, + // { "wle_round_mrs_shuffle_discover_013", "The lost keys" }, + // { "wle_round_mrs_shuffle_discover_014", "Bonk" }, + // { "wle_round_mrs_shuffle_discover_015", "Winter Disc-O" }, + // { "wle_round_mrs_shuffle_discover_016", "christmas wreath!" }, + // { "wle_round_mrs_shuffle_discover_017", "Winter BebaLand" }, + // { "wle_round_mrs_shuffle_discover_018", "Automatic FallGuys" }, + // { "wle_round_mrs_shuffle_discover_019", "Holiday Dash" }, + // { "wle_round_mrs_shuffle_discover_020", "Treetop Frost" }, + // { "wle_round_mrs_shuffle_discover_021", "Rainbow Run" }, + // { "wle_round_mrs_shuffle_discover_022", "BYE DONT HAVE A GREAT TIME PART LXIX" }, + // { "wle_round_mrs_shuffle_discover_023", "Hieroglysphinx Hurdles" }, + // { "wle_round_mrs_shuffle_discover_024", "ホなら" }, + // { "wle_round_mrs_shuffle_discover_025", "Bye have a great time part 45" }, + // { "wle_round_mrs_shuffle_discover_026", "POWDERY PEAK" }, + // { "wle_round_mrs_shuffle_discover_027", "It's Christmas Slime Climb Time!" }, + // { "wle_round_mrs_shuffle_discover_028", "MERRY CLIMBING!" }, + // { "wle_round_mrs_shuffle_discover_030", "Snow N' Speed" }, + // { "wle_round_mrs_shuffle_discover_032", "Lets Have Fun (74)" }, + // { "wle_round_mrs_shuffle_discover_033", "Concept Ladder Match (Pre-alpha)" }, + // { "wle_round_mrs_shuffle_discover_034", "Speedy City" }, + // { "wle_round_mrs_shuffle_discover_036", "Fall Village" }, + // { "wle_round_mrs_shuffle_discover_037", "超巨大な、クリスマスツリー" }, + // { "wle_round_mrs_shuffle_discover_038", "TINSELTOWN MELTDOWN!" }, + // { "wle_round_mrs_shuffle_discover_039", "Jump jar jar" }, + // { "wle_round_mrs_shuffle_discover_040", "FOOD FIESTA" }, + // { "wle_round_mrs_shuffle_discover_041", "Bye have a great time part 46" }, + // { "wle_round_mrs_shuffle_discover_044", "BEAN BALL" }, + // { "wle_round_mrs_shuffle_discover_045", "Python Pinball" }, + // { "wle_round_mrs_shuffle_discover_046", "Block Battle" }, + // { "wle_round_mrs_shuffle_discover_047", "Ice Cold Ascension" }, + // { "wle_round_mrs_shuffle_discover_048", "ボタンでGO!" }, + // { "wle_round_mrs_shuffle_discover_049", "ミクセル MIKUSERU" }, + // { "wle_round_mrs_shuffle_discover_050", "ホなら" }, + // + // { "wle_discovery_shuffle_up2_01", "The spooky trail" }, + // { "wle_discovery_shuffle_up2_05", "Balance Bean" }, + // { "wle_discovery_shuffle_up2_06", "digital slime road" }, + // { "wle_discovery_shuffle_up2_07", "The Punch Warriors! - Definitive Edition" }, + // { "wle_discovery_shuffle_up2_08", "Winter Mansion" }, + // { "wle_discovery_shuffle_up2_13", "Festive Rush" }, + // { "wle_discovery_shuffle_up2_14", "Mound Mountain" }, + // { "wle_discovery_shuffle_up2_15", "FEVER DREAM FUNHOUSE!" }, + // { "wle_discovery_shuffle_up2_17", "WinteRace" }, + // { "wle_discovery_shuffle_up2_18", "4 Seasons" }, + // { "wle_discovery_shuffle_up2_19", "WAVE RUNNERS!" }, + // { "wle_discovery_shuffle_up2_24", "Tool Up! Winter Season Fall Guys" }, + // { "wle_discovery_shuffle_up2_26", "Arctic Run" }, + // { "wle_discovery_shuffle_up2_28", "Grenouille X pinkixx" }, + // { "wle_discovery_shuffle_up2_29", "GAME OVER" }, + // { "wle_discovery_shuffle_up2_30", "Hot Wheels III" }, + // { "wle_discovery_shuffle_up2_32", "Ski Mountain" }, + // { "wle_discovery_shuffle_up2_33", "夜店" }, + // { "wle_discovery_shuffle_up2_34", "チャッキーのタイムアタックレース" }, + // { "wle_discovery_shuffle_up2_37", "Frosty run" }, + // { "wle_discovery_shuffle_up2_38", "MONUMENT FALLS!" }, + // + // { "wle_mrs_shuffle_show_roundpool_winter_01", "Spiral Trial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_02", "SNOWMAN CLIMB" }, + // { "wle_mrs_shuffle_show_roundpool_winter_03", "Perpetual motion" }, + // { "wle_mrs_shuffle_show_roundpool_winter_04", "No way to go" }, + // { "wle_mrs_shuffle_show_roundpool_winter_06", "The winter slime climb time!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_07", "The Speedy Zone" }, + // { "wle_mrs_shuffle_show_roundpool_winter_08", "The crown's race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_09", "Mitten Mountain" }, + // { "wle_mrs_shuffle_show_roundpool_winter_10", "Parcours arc en ciel" }, + // { "wle_mrs_shuffle_show_roundpool_winter_11", "forest balls" }, + // { "wle_mrs_shuffle_show_roundpool_winter_12", "FIREBALL FRENZY!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_13", "GIFT EXCHANGE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_14", "The Snowscraper" }, + // { "wle_mrs_shuffle_show_roundpool_winter_15", "roll roll bean" }, + // { "wle_mrs_shuffle_show_roundpool_winter_16", "Overclocked" }, + // { "wle_mrs_shuffle_show_roundpool_winter_17", "Spaceball Spin" }, + // { "wle_mrs_shuffle_show_roundpool_winter_18", "Winter Disc-O" }, + // { "wle_mrs_shuffle_show_roundpool_winter_19", "Chill 'n' Roll" }, + // { "wle_mrs_shuffle_show_roundpool_winter_20", "FEVER DREAM FUNHOUSE!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_21", "Himalayan Railway" }, + // { "wle_mrs_shuffle_show_roundpool_winter_22", "Need for Speed" }, + // { "wle_mrs_shuffle_show_roundpool_winter_23", "Rebound" }, + // { "wle_mrs_shuffle_show_roundpool_winter_24", "スライムスクレイパー" }, + // { "wle_mrs_shuffle_show_roundpool_winter_25", "Frosty Cold Sprint" }, + // { "wle_mrs_shuffle_show_roundpool_winter_26", "Halfpipe Havoc" }, + // { "wle_mrs_shuffle_show_roundpool_winter_27", "Snowflake Wonderland" }, + // { "wle_mrs_shuffle_show_roundpool_winter_28", "Ball Guys" }, + // { "wle_mrs_shuffle_show_roundpool_winter_30", "REINDEER GAMES!" }, + // { "wle_mrs_shuffle_show_roundpool_winter_31", "Belly Flop Bobsleigh" }, + // { "wle_mrs_shuffle_show_roundpool_winter_32", "Hot Wheels 2069" }, + // { "wle_mrs_shuffle_show_roundpool_winter_33", "Gingerbread Lane" }, + // { "wle_mrs_shuffle_show_roundpool_winter_34", "We ballin'" }, + // { "wle_mrs_shuffle_show_roundpool_winter_35", "Ice Cold Ascension" }, + // { "wle_mrs_shuffle_show_roundpool_winter_36", "étage sur étage" }, + // { "wle_mrs_shuffle_show_roundpool_winter_37", "Birthday Dash" }, + // { "wle_mrs_shuffle_show_roundpool_winter_39", "MARBLE RACE [Bean-Ball]" }, + // { "wle_mrs_shuffle_show_roundpool_winter_38", "The Jolly Express" }, + // { "wle_mrs_shuffle_show_roundpool_winter_40", "Roller Race" }, + // { "wle_mrs_shuffle_show_roundpool_winter_41", "Return to Fall Rapids" }, + // { "wle_mrs_shuffle_show_roundpool_winter_42", "Frosty run" }, + // { "wle_mrs_shuffle_show_roundpool_winter_44", "Sirbeans garden racetrack" }, + // { "wle_mrs_shuffle_show_roundpool_winter_45", "Roll-a-Coaster" }, + // { "wle_mrs_shuffle_show_roundpool_winter_46", "Gran Glaciar Paradicial" }, + // { "wle_mrs_shuffle_show_roundpool_winter_47", "Cave Exploration ~洞窟探検~" }, + // { "wle_mrs_shuffle_show_roundpool_winter_48", "SanTama Run" }, + // + // { "wle_shuffle_discover_fp7_1_01", "Green hill zone" }, + // { "wle_shuffle_discover_fp7_1_02", "Lost Temple" }, + // { "wle_shuffle_discover_fp7_1_03", "Champiñón Volante" }, + // { "wle_shuffle_discover_fp7_1_04", "Mitten Mountain" }, + // { "wle_shuffle_discover_fp7_1_05", "Jack-O'-Runners" }, + // { "wle_shuffle_discover_fp7_1_06", "Parcours arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_07", "Mario kart" }, + // { "wle_shuffle_discover_fp7_1_08", "A Day At The Holiday Race" }, + // { "wle_shuffle_discover_fp7_1_09", "2024 謹賀新年" }, + // { "wle_shuffle_discover_fp7_1_10", "Hustling run" }, + // { "wle_shuffle_discover_fp7_1_11", "tempête arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_12", "Wander- Weg" }, + // { "wle_shuffle_discover_fp7_1_13", "Ruta en la selva" }, + // { "wle_shuffle_discover_fp7_1_14", "Turboslide" }, + // { "wle_shuffle_discover_fp7_1_15", "A piece of cake" }, + // { "wle_shuffle_discover_fp7_1_16", "WOW" }, + // { "wle_shuffle_discover_fp7_1_18", "Magic Squirrel" }, + // { "wle_shuffle_discover_fp7_1_19", "Dinosaur Climb" }, + // { "wle_shuffle_discover_fp7_1_20", "bouing bouing" }, + // { "wle_shuffle_discover_fp7_1_21", "快感快速!!" }, + // { "wle_shuffle_discover_fp7_1_23", "challenge" }, + // { "wle_shuffle_discover_fp7_1_24", "Fnf final escape" }, + // { "wle_shuffle_discover_fp7_1_25", "Speedrun" }, + // { "wle_shuffle_discover_fp7_1_26", "AS AVENTURAS DO PIETRO" }, + // { "wle_shuffle_discover_fp7_1_27", "The Desert temple" }, + // { "wle_shuffle_discover_fp7_1_28", "Snowy Speed Sprint" }, + // { "wle_shuffle_discover_fp7_1_29", "Arcade escape" }, + // { "wle_shuffle_discover_fp7_1_30", "Guardian's Grace" }, + // { "wle_shuffle_discover_fp7_1_31", "Desertic Templus" }, + // { "wle_shuffle_discover_fp7_1_32", "Calamité arc en ciel" }, + // { "wle_shuffle_discover_fp7_1_33", "Map Test V1" }, + // { "wle_shuffle_discover_fp7_1_34", "From A to Z" }, + // { "wle_shuffle_discover_fp7_1_35", "YULE LOG SPRINT" }, + // { "wle_shuffle_discover_fp7_1_37", "Turnaround Turnpike" }, + // { "wle_shuffle_discover_fp7_1_38", "Good morning 2024 world" }, + // { "wle_shuffle_discover_fp7_1_39", "Sirbeans garden racetrack" }, + // + // { "wle_shuffle_2_24_01", "classic sewer" }, + // { "wle_shuffle_2_24_02", "Speed Ball" }, + // { "wle_shuffle_2_24_03", "Rainbow Riser" }, + // { "wle_shuffle_2_24_04", "cave tree" }, + // { "wle_shuffle_2_24_05", "Orbital Junction" }, + // { "wle_shuffle_2_24_06", "Lily leapers remix v3" }, + // { "wle_shuffle_2_24_07", "Little Pipe Dream" }, + // { "wle_shuffle_2_24_08", "FIREBALL FRENZY!" }, + // { "wle_shuffle_2_24_09", "Ruta en la selva" }, + // { "wle_shuffle_2_24_10", "A piece of cake" }, + // { "wle_shuffle_2_24_11", "Monster Forest Road" }, + // { "wle_shuffle_2_24_12", "Slippery Stumble" }, + // { "wle_shuffle_2_24_13", "Mound Mountain" }, + // { "wle_shuffle_2_24_15", "Non-Stop Slide" }, + // { "wle_shuffle_2_24_16", "slime climb Creative" }, + // { "wle_shuffle_2_24_17", "(REBORN) WITH THE WIND OMAME-CHAN !!!" }, + // { "wle_shuffle_2_24_18", "The Desert Temple Escape" }, + // { "wle_shuffle_2_24_19", "Rebound" }, + // { "wle_shuffle_2_24_20", "Roundabout Route" }, + // { "wle_shuffle_2_24_21", "Sparkly gingerbred trail" }, + // { "wle_shuffle_2_24_22", "Ski Fall Remix" }, + // { "wle_shuffle_2_24_24", "Fan Flingers" }, + // { "wle_shuffle_2_24_25", "Ball Carnival" }, + // { "wle_shuffle_2_24_26", "Tool Up! Winter Season Fall Guys" }, + // { "wle_shuffle_2_24_27", "Trompeta Teatral" }, + // { "wle_shuffle_2_24_28", "Birthday bonanza" }, + // { "wle_shuffle_2_24_29", "BlueBlur Circuit" }, + // { "wle_shuffle_2_24_30", "Lemon Grass" }, + // { "wle_shuffle_2_24_31", "Tuyauterie au nez" }, + // { "wle_shuffle_2_24_32", "Slimey's showdown" }, + // { "wle_shuffle_2_24_33", "GOLF GUYS" }, + // { "wle_shuffle_2_24_34", "(REBORN) DIGI×2 LOVE×2 GUYS REVERSE !!!" }, + // { "wle_shuffle_2_24_35", "R" }, + // { "wle_shuffle_2_24_36", "Zelda is BANANAS!!!!" }, + // { "wle_shuffle_2_24_38", "Traffic Jamboree" }, + // { "wle_shuffle_2_24_39", "Turnaround Turnpike" }, + // { "wle_shuffle_2_24_40", "Great hunt" }, + // { "wle_shuffle_2_24_41", "HYPERSPACE HIGHWAY!" }, + // { "wle_shuffle_2_24_42", "Back in Slime" }, + // + // { "wle_shuffle_wk2405_01", "Duckling Beach" }, + // { "wle_shuffle_wk2405_02", "BUILDER GUYS" }, + // { "wle_shuffle_wk2405_03", "ヒヤヒヤハイウェイ Unstable Highway" }, + // { "wle_shuffle_wk2405_04", "Speed Ball" }, + // { "wle_shuffle_wk2405_05", "North Pole Traps" }, + // { "wle_shuffle_wk2405_06", "Volcanic Island Travel!" }, + // { "wle_shuffle_wk2405_07", "Kepler 21's town" }, + // { "wle_shuffle_wk2405_08", "Orbital Junction" }, + // { "wle_shuffle_wk2405_11", "Balance Bean" }, + // { "wle_shuffle_wk2405_12", "ťřūťű" }, + // { "wle_shuffle_wk2405_13", "Summer Vibes" }, + // { "wle_shuffle_wk2405_14", "Dee's- Pinball Lilly" }, + // { "wle_shuffle_wk2405_15", "Galactic Guys" }, + // { "wle_shuffle_wk2405_16", "Orbital Stumbling" }, + // { "wle_shuffle_wk2405_17", "Winter Mansion" }, + // { "wle_shuffle_wk2405_18", "Pole Jumper" }, + // { "wle_shuffle_wk2405_19", "Little Pipe Dream" }, + // { "wle_shuffle_wk2405_20", "FIREBALL FRENZY!" }, + // { "wle_shuffle_wk2405_21", "Ruta en la selva" }, + // { "wle_shuffle_wk2405_22", "The Spacescřaper" }, + // { "wle_shuffle_wk2405_23", "Downward Spiral! (& Beyond)" }, + // { "wle_shuffle_wk2405_24", "Slippery Swoop Showdown" }, + // { "wle_shuffle_wk2405_25", "Tunnel of tumble" }, + // { "wle_shuffle_wk2405_26", "Digital Paradise" }, + // { "wle_shuffle_wk2405_27", "Monster Forest Road" }, + // { "wle_shuffle_wk2405_28", "GALACTIC RUN" }, + // { "wle_shuffle_wk2405_29", "Non-Stop Slide" }, + // { "wle_shuffle_wk2405_30", "slime climb Creative" }, + // { "wle_shuffle_wk2405_31", "Love a day" }, + // { "wle_shuffle_wk2405_32", "serious circuit" }, + // { "wle_shuffle_wk2405_33", "Falling in Love" }, + // { "wle_shuffle_wk2405_34", "Rebound" }, + // { "wle_shuffle_wk2405_35", "Digifal Guys" }, + // { "wle_shuffle_wk2405_36", "Vaporia" }, + // { "wle_shuffle_wk2405_37", "Solar Speedway" }, + // { "wle_shuffle_wk2405_38", "Rollin' Ruins" }, + // { "wle_shuffle_wk2405_39", "The drum course" }, + // { "wle_shuffle_wk2405_40", "AX-ATTACK" }, + // { "wle_shuffle_wk2405_41", "Pipe beans" }, + // { "wle_shuffle_wk2405_42", "Ball World" }, + // { "wle_shuffle_wk2405_43", "Fan Flingers" }, + // { "wle_shuffle_wk2405_44", "Deserted Frontier" }, + // { "wle_shuffle_wk2405_45", "Torapo" }, + // { "wle_shuffle_wk2405_46", "No Name" }, + // { "wle_shuffle_wk2405_47", "Satellite Scramble" }, + // { "wle_shuffle_wk2405_48", "STATION SPRINT" }, + // { "wle_shuffle_wk2405_49", "Route 20" }, + // { "wle_shuffle_wk2405_50", "Jungle escape" }, + // { "wle_shuffle_wk2405_51", "Love at First Woo" }, + // { "wle_shuffle_wk2405_52", "Satellite Circuit" }, + // { "wle_shuffle_wk2405_53", "Round and around" }, + // { "wle_shuffle_wk2405_54", "World of rolling" }, + // { "wle_shuffle_wk2405_55", "Lemon Grass" }, + // { "wle_shuffle_wk2405_56", "Downward Spiral" }, + // { "wle_shuffle_wk2405_57", "STARS ALIGN!" }, + // { "wle_shuffle_wk2405_58", "Interstellar Sprint" }, + // { "wle_shuffle_wk2405_59", "World of cakes" }, + // { "wle_shuffle_wk2405_60", "ASTRAL AIRWAY" }, + // { "wle_shuffle_wk2405_61", "secret ways" }, + // { "wle_shuffle_wk2405_62", "No Name" }, + // { "wle_shuffle_wk2405_63", "Space adventure (part 1)" }, + // { "wle_shuffle_wk2405_64", "Rainbow Road" }, + // { "wle_shuffle_wk2405_65", "Falltropolis" }, + // + // { "wle_digishuffle_feb_01", "jungle fun run" }, + // { "wle_digishuffle_feb_02", "☆Witch Way☆" }, + // { "wle_digishuffle_feb_03", "Mushroom Mayhem" }, + // { "wle_digishuffle_feb_04", "Orbital Junction" }, + // { "wle_digishuffle_feb_06", "Day at the beach" }, + // { "wle_digishuffle_feb_07", "Summer Vibes" }, + // { "wle_digishuffle_feb_08", "Roll Asteroid Field" }, + // { "wle_digishuffle_feb_09", "Ruta en la selva" }, + // { "wle_digishuffle_feb_10", "Cosmic Dash" }, + // { "wle_digishuffle_feb_11", "Bouncing Frenzy" }, + // { "wle_digishuffle_feb_12", "Beehive Havoc" }, + // { "wle_digishuffle_feb_13", "Snowy Cave-in" }, + // { "wle_digishuffle_feb_15", "Winter Disc-O" }, + // { "wle_digishuffle_feb_16", "magician" }, + // { "wle_digishuffle_feb_17", "Love a day" }, + // { "wle_digishuffle_feb_18", "Chilly Leapers" }, + // { "wle_digishuffle_feb_19", "Colorful Year - Beans Memories" }, + // { "wle_digishuffle_feb_20", "BIPLANE BLUNDER" }, + // { "wle_digishuffle_feb_21", "Vaporia" }, + // { "wle_digishuffle_feb_22", "Satellite Sprint" }, + // { "wle_digishuffle_feb_23", "Galactic Gauntlet" }, + // { "wle_digishuffle_feb_24", "RUN COWBOY" }, + // { "wle_digishuffle_feb_25", "Breakfast Run" }, + // { "wle_digishuffle_feb_26", "Spin 'n' Swing" }, + // { "wle_digishuffle_feb_27", " Love at First Woo" }, + // { "wle_digishuffle_feb_28", "Astral Exploration" }, + // { "wle_digishuffle_feb_29", "Speedway 2069" }, + // { "wle_digishuffle_feb_30", "Data Eraser" }, + // { "wle_digishuffle_feb_31", "Mediefall Highway" }, + // { "wle_digishuffle_feb_33", "パンダフルワールド" }, + // { "wle_digishuffle_feb_34", "Celestial Tale" }, + // + // { "chill_01", "Ariko Jones" }, + // { "chill_02", "Floating island" }, + // { "chill_03", "Colorful World" }, + // { "chill_04", "Winter Wallop" }, + // { "chill_06", "Tropical Top2" }, + // { "chill_07", "rainbows and stickers" }, + // { "chill_08", "Ancient Fallstronomers" }, + // { "chill_11", "ORBITAL STUMBLE" }, + // { "chill_12", "The Bisounours" }, + // { "chill_13", "Adrenaline Force 2" }, + // { "chill_14", "Summer Vibes" }, + // { "chill_15", "Speedy Bounces" }, + // { "chill_16", "Data Dash" }, + // { "chill_17", "Snow Mountain" }, + // { "chill_18", "Monster Mayhem" }, + // { "chill_19", "Star Power!" }, + // { "chill_20", "Sketchy Sledding!" }, + // { "chill_21", "Musical Madness" }, + // { "chill_22", "BEANS ORBITAL ZONE" }, + // { "chill_23", "Safe Mode" }, + // { "chill_24", "Piste de neige" }, + // { "chill_25", "Love a day" }, + // { "chill_26", "Chilly Leapers" }, + // { "chill_27", "Passage imbroglio arc en ciel" }, + // { "chill_28", "Shogun Guys I" }, + // { "chill_29", "WINDMILL WAY" }, + // { "chill_30", "Solar Speedway" }, + // { "chill_31", "Micro Machine" }, + // { "chill_32", "Satellite Sprint" }, + // { "chill_33", "Rudinn's Garden Palace" }, + // { "chill_35", "Frosty Wonderland" }, + // { "chill_36", "Freezy Frolic" }, + // { "chill_37", "Extraterrestrial Terminal" }, + // { "chill_38", "Cluster Cosmos" }, + // { "chill_39", " Love at First Woo" }, + // { "chill_40", "A night in Paris" }, + // { "chill_41", "Float Parkour" }, + // + // { "wle_mrs_survival_showdown_opener", "Slime Surfers" }, + // { "wle_mrs_survival_showdown_opener_01", "Bean Fort" }, + // { "wle_mrs_survival_showdown_opener_02", "Back & Forth" }, + // { "wle_mrs_survival_showdown_final", "Hectic Hexagons" }, + // { "wle_mrs_survival_showdown_final_01", "Cosmic Clash" }, + // { "wle_mrs_survival_showdown_final_02", "Bouncy Castle" }, + // { "wle_mrs_survival_showdown_final_04", "Volcanic Chaos" }, + // + // { "wle_survival_shuffle_fp8_01", "More Blastball!" }, + // { "wle_survival_shuffle_fp8_02", "Rhino Runaway" }, + // { "wle_survival_shuffle_fp8_03", "Bouncy Castle" }, + // { "wle_survival_shuffle_fp8_04", "Snowy Stronghold" }, + // { "wle_survival_shuffle_fp8_05", "Hexa-Towers - Finals Arena" }, + // { "wle_survival_shuffle_fp8_06", "Satellite Delight" }, + // { "wle_survival_shuffle_fp8_07", "pacific jump" }, + // { "wle_survival_shuffle_fp8_08", "There can only be one" }, + // { "wle_survival_shuffle_fp8_09", "Ganj's Matter Baby" }, + // { "wle_survival_shuffle_fp8_10", "RHINOCHET" }, + // { "wle_survival_shuffle_fp8_11", "Rocky Rumble" }, + // { "wle_survival_shuffle_fp8_12", "Ludo War" }, + // { "wle_survival_shuffle_fp8_13", "Slimelantis" }, + // { "wle_survival_shuffle_fp8_14", "Dramatic Squirrel" }, + // { "wle_survival_shuffle_fp8_15", "HEX-A-BLAST" }, + // { "wle_survival_shuffle_fp8_16", "HEX-A-RUN" }, + // { "wle_survival_shuffle_fp8_17", "BLAST BRIDGES" }, + // { "wle_survival_shuffle_fp8_18", "HEX-A-BATTLE" }, + // { "wle_survival_shuffle_fp8_19", "Blast Ball X" }, + // { "wle_survival_shuffle_fp8_20", "Explosive Arena" }, + // { "wle_survival_shuffle_fp8_21", "Rhino Blast" }, + // { "wle_survival_shuffle_fp8_22", "Slime Surfers" }, + // { "wle_survival_shuffle_fp8_23", "Eduardo Escapades" }, + // { "wle_survival_shuffle_fp8_24", "Hex A Trouble" }, + // { "wle_survival_shuffle_fp8_25", "Roll In - Finals Arena" }, + // { "wle_survival_shuffle_fp8_26", "Back & Forth" }, + // { "wle_survival_shuffle_fp8_27", "HEXAGONAL RING BLAST" }, + // { "wle_survival_shuffle_fp8_29", "beens royal resurrection" }, + // { "wle_survival_shuffle_fp8_30", "Hexa-Toto" }, + // { "wle_survival_shuffle_fp8_31", "Blender Container" }, + // { "wle_survival_shuffle_fp8_32", "Circular Jump" }, + // { "wle_survival_shuffle_fp8_33", "hex-a-volcanic" }, + // { "wle_survival_shuffle_fp8_34", "ボマーぽよまつからの挑戦状☆ミ" }, + // { "wle_survival_shuffle_fp8_35", "Reverse Chaos" }, + // { "wle_survival_shuffle_fp8_36", "survival board" }, + // { "wle_survival_shuffle_fp8_37", "Volcanic Chaos" }, + // { "wle_survival_shuffle_fp8_38", "High-Ground Arena" }, + // { "wle_survival_shuffle_fp8_39", "rainbow convoyer" }, + // { "wle_survival_shuffle_fp8_40", "すぱいだーすっぱいんだー" }, + // { "wle_survival_shuffle_fp8_41", "HEX-A-PARTY" }, + // { "wle_survival_shuffle_fp8_42", "HEX A REBORN" }, + // { "wle_survival_shuffle_fp8_43", "CAROUSEL CHAOS" }, + // { "wle_survival_shuffle_fp8_44", "west sniper" }, + // { "wle_survival_shuffle_fp8_45", "Blast Balls Hexa Trials" }, + // { "wle_survival_shuffle_fp8_46", "自製生存關2-蹦蹦犀牛炸彈!" }, + // { "wle_survival_shuffle_fp8_47", "Hexagon Battle" }, + // { "wle_survival_shuffle_fp8_49", "Tick Tock Clock" }, + // { "wle_survival_shuffle_fp8_50", "ダイナミクスビート DYNAMICS BEAT" }, + // + // { "survival_shuffle_01", "Speed attack" }, + // { "survival_shuffle_02", "Garbage Chute V2" }, + // { "survival_shuffle_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_04", "Night Crashers" }, + // { "survival_shuffle_05", "Survival Area" }, + // { "survival_shuffle_06", "Can You Win!" }, + // { "survival_shuffle_07", "SPINNER SURVIVAL(Hard)" }, + // { "survival_shuffle_08", "NAMEK" }, + // { "survival_shuffle_09", "Hex-A-Blast" }, + // { "survival_shuffle_10", "HEX-A-JUMP" }, + // { "survival_shuffle_11", "Space Blast" }, + // { "survival_shuffle_12", "とまきけアイス" }, + // { "survival_shuffle_13", "SPINNER SURVIVAL(Very Hard)" }, + // { "survival_shuffle_14", "Caldera chaos" }, + // { "survival_shuffle_15", "hexatourne" }, + // { "survival_shuffle_16", "HEX-A-MANIA" }, + // { "survival_shuffle_17", "Slime leakage royale" }, + // { "survival_shuffle_18", "Merciless Traverse" }, + // { "survival_shuffle_19", "Stompin' Ground Challenge" }, + // { "survival_shuffle_20", "Bird is the Word" }, + // { "survival_shuffle_21", "Conflagration interstellaire" }, + // { "survival_shuffle_22", "Subzero Gale" }, + // { "survival_shuffle_23", "Piti afundando" }, + // { "survival_shuffle_24", "つかみ魔たちの祭典" }, + // { "survival_shuffle_25", "Slime Surfers" }, + // { "survival_shuffle_26", "Space Blast ball" }, + // { "survival_shuffle_27", "Fan wars survival" }, + // { "survival_shuffle_28", "World of Guys - Ultimate Shotout -" }, + // { "survival_shuffle_29", "Shogun's Arena" }, + // { "survival_shuffle_30", "Boulder Hex" }, + // { "survival_shuffle_31", "HEX-A-RENA" }, + // { "survival_shuffle_32", "BLAST BALL BASHERS" }, + // { "survival_shuffle_33", "hexa roll beta 2" }, + // { "survival_shuffle_34", "Running survivor ver1・3" }, + // { "survival_shuffle_35", "King of the Castle" }, + // { "survival_shuffle_36", "BATTLE OF SURVIVORS" }, + // { "survival_shuffle_37", "MINI STOMPIN' GROUND" }, + // { "survival_shuffle_38", "Royal Rumble" }, + // { "survival_shuffle_39", "Bataille au ²" }, + // { "survival_shuffle_40", "Hex-a-mountain" }, + // { "survival_shuffle_41", "Hex-A-Glory" }, + // { "survival_shuffle_42", "POOL PARTY" }, + // { "survival_shuffle_43", "King of the Pillar" }, + // { "survival_shuffle_44", "止まれない木" }, + // { "survival_shuffle_45", "slime battle pt2" }, + // { "survival_shuffle_46", "No Punching" }, + // { "survival_shuffle_47", "Blue and yellow showdown" }, + // { "survival_shuffle_48", "Retro Roundabout" }, + // { "survival_shuffle_49", "玉あそび" }, + // { "survival_shuffle_50", "Royal Rumble (Rofall Gumble)" }, + // { "survival_shuffle_51", "Aggressive survival" }, + // { "survival_shuffle_52", "Fight Zone" }, + // { "survival_shuffle_53", "Hex-A-Blaster" }, + // { "survival_shuffle_54", "SLIME RIOT!" }, + // { "survival_shuffle_55", "Es knallt richtig" }, + // { "survival_shuffle_56", "Super Fortress Factory" }, + // { "survival_shuffle_57", "Heavy hitters only" }, + // { "survival_shuffle_58", "へいたんバトロワ" }, + // { "survival_shuffle_59", "Volcanic Panic" }, + // { "survival_shuffle_60", "Volcanic Panic" }, + // { "survival_shuffle_61", "雷霆乱豆中心" }, + // { "survival_shuffle_62", "ブラストボール(十字形)" }, + // { "survival_shuffle_63", "Poison Pond PVP" }, + // { "survival_shuffle_64", "Puncher Brawl 2" }, + // { "survival_shuffle_65", "Atoll pétulant" }, + // { "survival_shuffle_66", "Blast Rhino" }, + // { "survival_shuffle_67", "Blast Arena" }, + // { "survival_shuffle_68", "Brewing Boxes" }, + // { "survival_shuffle_69", "The flood" }, + // { "survival_shuffle_70", "PUSHBACK" }, + // { "survival_shuffle_71", "Arena Guys" }, + // { "survival_shuffle_72", "Jungle Survival" }, + // { "survival_shuffle_73", "おしくらまんじゅうジャンプ" }, + // { "survival_shuffle_74", "blast fall X" }, + // { "survival_shuffle_75", "Tic-Tac-Blow" }, + // { "survival_shuffle_76", "CS Guys" }, + // { "survival_shuffle_77", "Bounce Battle" }, + // { "survival_shuffle_78", "Cheat's Only Fan" }, + // { "survival_shuffle_79", "Showdown Party" }, + // { "survival_shuffle_80", "Donut layers!" }, + // { "survival_shuffle_81", "パワーアップ・ノックアウト" }, + // { "survival_shuffle_82", "アップダウンバトル" }, + // { "survival_shuffle_83", "頂上対決" }, + // { "survival_shuffle_84", "Blast Ring" }, + // { "survival_shuffle_85", "Raft Rumble" }, + // { "survival_shuffle_86", "Rhino-hex-killer+invasion" }, + // { "survival_shuffle_87", "Survie des enfers" }, + // { "survival_shuffle_88", "blast ball HEXAGON" }, + // { "survival_shuffle_89", "The Bean-rena" }, + // { "survival_shuffle_90", "Lake in the mountains" }, + // { "survival_shuffle_91", "Playing area" }, + // { "survival_shuffle_92", "Hopping Party" }, + // { "survival_shuffle_93", "Shape Dimension" }, + // { "survival_shuffle_94", "Dramatic Flowers" }, + // + // { "wle_mrs_ugc_playful_01", "Neon pipe run" }, + // { "wle_mrs_ugc_playful_02", "SUNKEN CIRCUIT" }, + // { "wle_mrs_ugc_playful_03", "Blundercity Marathon" }, + // { "wle_mrs_ugc_playful_04", "Rainbow highway" }, + // { "wle_mrs_ugc_playful_05", "Rainbow Riptide" }, + // { "wle_mrs_ugc_playful_06", "Past passage" }, + // { "wle_mrs_ugc_playful_07", "Sandcastle Kingdom" }, + // { "wle_mrs_ugc_playful_08", "Jumping Season" }, + // { "wle_mrs_ugc_playful_09", "Fall Stars" }, + // { "wle_mrs_ugc_playful_10", "Medieval Sprint" }, + // { "wle_mrs_ugc_playful_11", "SPRING MOUNTAIN" }, + // { "wle_mrs_ugc_playful_12", "NAUTICAL SHAMBLE" }, + // { "wle_mrs_ugc_playful_13", "The Last Winter" }, + // + // { "playful_shuffle_01", "Fiebre medieval" }, + // { "playful_shuffle_02", "Triple Trial" }, + // { "playful_shuffle_03", "Trees (Waterfall)" }, + // { "playful_shuffle_05", "plat guys" }, + // { "playful_shuffle_06", "震えるキャベツ" }, + // { "playful_shuffle_07", "Winter Wallop" }, + // { "playful_shuffle_08", "Multi Leaper" }, + // { "playful_shuffle_09", "Golden Poodles" }, + // { "playful_shuffle_10", "ストレートスタンブル" }, + // { "playful_shuffle_11", "Easy Fun Speedrun" }, + // { "playful_shuffle_12", "RUN RUN Park" }, + // { "playful_shuffle_14", "ごちゃごちゃストリート" }, + // { "playful_shuffle_15", "Conveyors Obstacles" }, + // { "playful_shuffle_17", "Green Mountain" }, + // { "playful_shuffle_18", "Ancient Fallstronomers" }, + // { "playful_shuffle_19", "+slidin' in the air+ 10k play special" }, + // { "playful_shuffle_20", "Jumping Season" }, + // { "playful_shuffle_21", "Track attackers system" }, + // { "playful_shuffle_22", "CASTLE CLASH" }, + // { "playful_shuffle_24", "Falling Dreams" }, + // { "playful_shuffle_25", "ロケットでうちあげだ 2" }, + // { "playful_shuffle_26", "The Terrible Spiral Of Woo Remake" }, + // { "playful_shuffle_27", "Rainbow Dash" }, + // { "playful_shuffle_28", "TruPixel's Jungle Mash-up" }, + // { "playful_shuffle_30", "Monochromatic Manic" }, + // { "playful_shuffle_33", "Ramp It Up!" }, + // { "playful_shuffle_34", "Adrenaline Force 2" }, + // { "playful_shuffle_35", "DIGITAL MADNESS" }, + // { "playful_shuffle_36", "Cosmic Pipes" }, + // { "playful_shuffle_37", "Milky way" }, + // { "playful_shuffle_38", "Snow Style" }, + // { "playful_shuffle_39", "Data Dash" }, + // { "playful_shuffle_40", "Caida resbaladisa" }, + // { "playful_shuffle_41", "Frostbite Speed Fall Slider" }, + // { "playful_shuffle_42", "Snow Mountain" }, + // { "playful_shuffle_44", "Cosmic Dash" }, + // { "playful_shuffle_45", "Overclocked" }, + // { "playful_shuffle_46", " Wild Dunes" }, + // { "playful_shuffle_47", "Flutter-by!" }, + // { "playful_shuffle_48", "Blundercity Marathon" }, + // { "playful_shuffle_50", "Pixel Circuit像素环游" }, + // { "playful_shuffle_51", "Stars Guys" }, + // { "playful_shuffle_52", "SUNKEN CIRCUIT" }, + // { "playful_shuffle_54", "Pocket Summit" }, + // { "playful_shuffle_55", "Love a day" }, + // { "playful_shuffle_56", "Passage imbroglio arc en ciel" }, + // { "playful_shuffle_58", "コズミックミュージック COSMIC MUSIC" }, + // { "playful_shuffle_59", "glissoire arc en ciel" }, + // + // { "survival_shuffle_wk11_01", "Speed attack" }, + // { "survival_shuffle_wk11_02", "Garbage Chute V2" }, + // { "survival_shuffle_wk11_03", "Hex-a-Disco (20p Version)" }, + // { "survival_shuffle_wk11_04", "Sobreviventes da Batalha" }, + // { "survival_shuffle_wk11_05", "今日の運勢サバイバル" }, + // { "survival_shuffle_wk11_06", "More Blastball!" }, + // { "survival_shuffle_wk11_07", "Hexagone Tower" }, + // { "survival_shuffle_wk11_08", "Bouncy Castle" }, + // { "survival_shuffle_wk11_09", "Snowy Stronghold" }, + // { "survival_shuffle_wk11_10", "NAMEK" }, + // { "survival_shuffle_wk11_11", "Hexa-Towers - Finals Arena" }, + // { "survival_shuffle_wk11_12", "Satellite Delight" }, + // { "survival_shuffle_wk11_13", "DEADLY VOLCANO" }, + // { "survival_shuffle_wk11_14", "Ganj's Matter Baby" }, + // { "survival_shuffle_wk11_15", "HEX-A-JUMP" }, + // { "survival_shuffle_wk11_16", "RHINOCHET" }, + // { "survival_shuffle_wk11_17", "Rocky Rumble" }, + // { "survival_shuffle_wk11_18", "Ludo War" }, + // { "survival_shuffle_wk11_19", "RING ROUND FIGHT" }, + // { "survival_shuffle_wk11_20", "Flight frenzy" }, + // { "survival_shuffle_wk11_21", "BLAST BRIDGES" }, + // { "survival_shuffle_wk11_22", "Blast Ball X" }, + // { "survival_shuffle_wk11_23", "Blast Trip" }, + // { "survival_shuffle_wk11_24", "Royal Rumble" }, + // { "survival_shuffle_wk11_25", "Bird is the Word" }, + // { "survival_shuffle_wk11_26", "The Whirligig" }, + // { "survival_shuffle_wk11_27", "Subzero Gale" }, + // { "survival_shuffle_wk11_28", "Slime Surfers" }, + // { "survival_shuffle_wk11_29", "Eduardo Escapades" }, + // { "survival_shuffle_wk11_30", "Hex A Trouble" }, + // { "survival_shuffle_wk11_31", "Back & Forth" }, + // { "survival_shuffle_wk11_32", "HEXAGONAL RING BLAST" }, + // { "survival_shuffle_wk11_33", "Carousel Mayhem" }, + // { "survival_shuffle_wk11_34", "Beens Royale RESURRECTION" }, + // { "survival_shuffle_wk11_35", "Hexa-Toto" }, + // { "survival_shuffle_wk11_36", "Blender Container" }, + // { "survival_shuffle_wk11_37", "Mid wars!" }, + // { "survival_shuffle_wk11_38", "hex-a-volcanic" }, + // { "survival_shuffle_wk11_39", "vamos rey del aire" }, + // { "survival_shuffle_wk11_40", "Shogun's Arena" }, + // { "survival_shuffle_wk11_41", "survival board" }, + // { "survival_shuffle_wk11_42", "survival factory" }, + // { "survival_shuffle_wk11_43", "rainbow convoyer" }, + // { "survival_shuffle_wk11_44", "すぱいだーすっぱいんだー" }, + // { "survival_shuffle_wk11_45", "HEX A REBORN" }, + // { "survival_shuffle_wk11_46", "The Hex-A-Gon House" }, + // { "survival_shuffle_wk11_47", "CAROUSEL CHAOS" }, + // { "survival_shuffle_wk11_48", "Ring Off" }, + // { "survival_shuffle_wk11_49", "âpre pélutant" }, + // { "survival_shuffle_wk11_50", "ダイナミクスビート DYNAMICS BEAT" }, + // { "survival_shuffle_wk11_51", "Fruit Chute Survival" }, + // { "survival_shuffle_wk11_52", "No Punching" }, + // { "survival_shuffle_wk11_53", "Hex-A-Blaster" }, + // { "survival_shuffle_wk11_54", "The Punch Warriors! - Survival Edition" }, + // { "survival_shuffle_wk11_55", "Volcanic Panic" }, + // { "survival_shuffle_wk11_56", "Hex-a-lowercase t" }, + // { "survival_shuffle_wk11_57", "Beta Jinxed" }, + // { "survival_shuffle_wk11_58", "Showdown Party" }, + // { "survival_shuffle_wk11_59", "Canyon Sand 1" }, + // { "survival_shuffle_wk11_60", "Aggro-Crag" }, + // { "survival_shuffle_wk11_61", "Bean Fort" }, + // { "survival_shuffle_wk11_62", "Tronco Gigante" }, + // { "survival_shuffle_wk11_63", "Block Battle - Survive" }, + // { "survival_shuffle_wk11_64", "Hot Shots" }, + // { "survival_shuffle_wk11_65", "blast royale" }, + // { "survival_shuffle_wk11_66", "Supervivencia del caos" }, + // { "survival_shuffle_wk11_67", "Hex-A-Mayhem" }, + // { "survival_shuffle_wk11_68", "The Falliseum" }, + // { "survival_shuffle_wk11_69", "終末列車" }, + // { "survival_shuffle_wk11_70", "O chão é lava" }, + // { "survival_shuffle_wk11_71", "Survival Carnival" }, + // { "survival_shuffle_wk11_72", "Kraken x balls x boxing" }, + // { "survival_shuffle_wk11_73", "Gum survival" }, + // { "survival_shuffle_wk11_74", "スライム研究室" }, + // { "survival_shuffle_wk11_75", "Colour switch" }, + // { "survival_shuffle_wk11_76", "Fall Royale" }, + // { "survival_shuffle_wk11_77", "Roll Out Explosion" }, + // { "survival_shuffle_wk11_78", "HELIX ROLL" }, + // { "survival_shuffle_wk11_79", "耐久出来ないサバイバル2" }, + // { "survival_shuffle_wk11_80", "detonates atlantis" }, + // { "survival_shuffle_wk11_81", "Conveyor Chaos" }, + // { "survival_shuffle_wk11_82", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_wk11_84", "Slime Crater" }, + // { "survival_shuffle_wk11_85", "Firewall Finale" }, + // { "survival_shuffle_wk11_86", "ブラストボールエンド" }, + // { "survival_shuffle_wk11_87", "ボタンコンフュージョン" }, + // { "survival_shuffle_wk11_88", "DEE'S- RHINO RUMBLE!!!!!!" }, + // { "survival_shuffle_wk11_89", "tournement de couleur" }, + // { "survival_shuffle_wk11_90", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_wk11_91", "HARD HEROES DRLVE SURVLVAL" }, + // { "survival_shuffle_wk11_92", "Jump Show Fall" }, + // { "survival_shuffle_wk11_93", "Hex-A-Lava" }, + // { "survival_shuffle_wk11_94", "Magma Meltdown" }, + // { "survival_shuffle_wk11_95", "恐怖のたまご" }, + // { "survival_shuffle_wk11_96", "Cosmic Clash" }, + // { "survival_shuffle_wk11_97", "Fall And Round" }, + // { "survival_shuffle_wk11_98", "フォールドッジブラストボール" }, + // { "survival_shuffle_wk11_99", "Sewer Stand-off" }, + // + // { "survival_shuffle_3wk3_01", "Sobreviventes da Batalha" }, + // { "survival_shuffle_3wk3_02", "Survival Festival" }, + // { "survival_shuffle_3wk3_03", "MEOW-FO ROYALE" }, + // { "survival_shuffle_3wk3_04", "Space Blast" }, + // { "survival_shuffle_3wk3_05", "meteor rain" }, + // { "survival_shuffle_3wk3_06", "Spiral-Cano" }, + // { "survival_shuffle_3wk3_07", "Bridge Island Boss" }, + // { "survival_shuffle_3wk3_08", "Caldera chaos" }, + // { "survival_shuffle_3wk3_09", "BLAST BRIDGES" }, + // { "survival_shuffle_3wk3_10", "Royal Rumble" }, + // { "survival_shuffle_3wk3_11", "flower ring" }, + // { "survival_shuffle_3wk3_12", "The Whirligig" }, + // { "survival_shuffle_3wk3_13", "?" }, + // { "survival_shuffle_3wk3_14", "熔岩蜂窝 Hex-A-Lava" }, + // { "survival_shuffle_3wk3_15", "Mid wars!" }, + // { "survival_shuffle_3wk3_16", "vamos rey del aire" }, + // { "survival_shuffle_3wk3_17", "Shogun's Arena" }, + // { "survival_shuffle_3wk3_18", "聖帝導夢ランボー!" }, + // { "survival_shuffle_3wk3_19", "Test Survival" }, + // { "survival_shuffle_3wk3_20", "Blunder Barge" }, + // { "survival_shuffle_3wk3_21", "Ring Off" }, + // { "survival_shuffle_3wk3_22", "âpre pélutant" }, + // { "survival_shuffle_3wk3_23", "Arena Nocaute Ultimate" }, + // { "survival_shuffle_3wk3_24", "Bataille au ²" }, + // { "survival_shuffle_3wk3_25", "Bom Bom Do" }, + // { "survival_shuffle_3wk3_26", "Super Smash Beans 2!" }, + // { "survival_shuffle_3wk3_27", "VOLLEY BRAWL!" }, + // { "survival_shuffle_3wk3_28", "Bamblast!" }, + // { "survival_shuffle_3wk3_29", "Extreme Block Party" }, + // { "survival_shuffle_3wk3_30", "Colisel da insegurança" }, + // { "survival_shuffle_3wk3_31", "hex-a-climb" }, + // { "survival_shuffle_3wk3_32", "Hex-a-lowercase t" }, + // { "survival_shuffle_3wk3_33", "Beta Jinxed" }, + // { "survival_shuffle_3wk3_34", "The flood" }, + // { "survival_shuffle_3wk3_35", "Explosive kraken!" }, + // { "survival_shuffle_3wk3_36", "Bean Abduction" }, + // { "survival_shuffle_3wk3_37", "blast fall X" }, + // { "survival_shuffle_3wk3_38", "HexaBoom" }, + // { "survival_shuffle_3wk3_39", "グラグラ足場" }, + // { "survival_shuffle_3wk3_40", "Floor-Fall-Survival" }, + // { "survival_shuffle_3wk3_41", "Batalha TRI-unFall" }, + // { "survival_shuffle_3wk3_42", "Détonation arc en ciel" }, + // { "survival_shuffle_3wk3_43", "Rustic Jungle" }, + // { "survival_shuffle_3wk3_44", "SLIME BLOCK PARTY" }, + // { "survival_shuffle_3wk3_45", "チーム(すもう)サバイバル!" }, + // { "survival_shuffle_3wk3_46", "Hex-apple" }, + // { "survival_shuffle_3wk3_47", "Aggro-Crag" }, + // { "survival_shuffle_3wk3_48", "Frenzied Factory" }, + // { "survival_shuffle_3wk3_49", "AIR BATTLE" }, + // { "survival_shuffle_3wk3_50", "The Bean-rena" }, + // { "survival_shuffle_3wk3_51", "Hex-A-Joust" }, + // { "survival_shuffle_3wk3_52", "Lake in the mountains" }, + // { "survival_shuffle_3wk3_53", "Tronco Gigante" }, + // { "survival_shuffle_3wk3_54", "Whirling Arena" }, + // { "survival_shuffle_3wk3_55", "Block Battle - Survive" }, + // { "survival_shuffle_3wk3_56", "Hot Shots" }, + // { "survival_shuffle_3wk3_57", "Gladiators" }, + // { "survival_shuffle_3wk3_58", "The Falliseum" }, + // { "survival_shuffle_3wk3_59", "Blast Chaos" }, + // { "survival_shuffle_3wk3_60", "Blast Ball Reveal" }, + // { "survival_shuffle_3wk3_61", "終末列車" }, + // { "survival_shuffle_3wk3_62", "Kraken x balls x boxing" }, + // { "survival_shuffle_3wk3_63", "Gum survival" }, + // { "survival_shuffle_3wk3_64", "スライム研究室" }, + // { "survival_shuffle_3wk3_65", "BEAN’S FIRST MATH TEST" }, + // { "survival_shuffle_3wk3_66", "Fight Land" }, + // { "survival_shuffle_3wk3_67", "Colour switch" }, + // { "survival_shuffle_3wk3_68", "Fall Royale" }, + // { "survival_shuffle_3wk3_69", "デジタルランティス" }, + // { "survival_shuffle_3wk3_70", "MAME RING" }, + // { "survival_shuffle_3wk3_71", "detonates atlantis" }, + // { "survival_shuffle_3wk3_72", "Flower Punch" }, + // { "survival_shuffle_3wk3_73", "Wobbly arena" }, + // { "survival_shuffle_3wk3_74", "TURMOIL--POWER UP PANIC" }, + // { "survival_shuffle_3wk3_75", "Why is it Spicy" }, + // { "survival_shuffle_3wk3_76", "Skywars Guys - Freshlands Valley" }, + // { "survival_shuffle_3wk3_77", "Slime Crater" }, + // { "survival_shuffle_3wk3_78", "ボタンコンフュージョン" }, + // { "survival_shuffle_3wk3_79", "tournement de couleur" }, + // { "survival_shuffle_3wk3_80", "Boxeo V69" }, + // { "survival_shuffle_3wk3_81", "fall in a storm" }, + // { "survival_shuffle_3wk3_82", "BATTLE IN THE SEAS" }, + // { "survival_shuffle_3wk3_83", "Rebellion of block ver2" }, + // { "survival_shuffle_3wk3_86", "怒りのすとんぴんぐ・ぐらうんど" }, + // { "survival_shuffle_3wk3_87", "Jump Show Fall" }, + // { "survival_shuffle_3wk3_88", "カウントブロック" }, + // { "survival_shuffle_3wk3_89", "Hex-A-Lava" }, + // { "survival_shuffle_3wk3_90", "Mario" }, + // { "survival_shuffle_3wk3_91", "Magma Meltdown" }, + // { "survival_shuffle_3wk3_92", "ROOFTOP RUMBLE!" }, + // { "survival_shuffle_3wk3_93", "émoussement arc en ciel" }, + // { "survival_shuffle_3wk3_94", "Fall And Round" }, + // { "survival_shuffle_3wk3_95", "深空蜂窝" }, + // { "survival_shuffle_3wk3_96", "Pokémon Stadium" }, + // { "survival_shuffle_3wk3_97", "Safari survival" }, + // { "survival_shuffle_3wk3_98", "Slime Playground" }, + // { "survival_shuffle_3wk3_99", "Hexagonal Fadeout" }, + // { "survival_shuffle_3wk3_100", "ランダムエッグスイッチアクション" }, + // + // { "wle_shuggle_mwk3_01", "Ariko Jones" }, + // { "wle_shuggle_mwk3_02", "Triple Trial" }, + // { "wle_shuggle_mwk3_03", "Aerial Squirrel" }, + // { "wle_shuggle_mwk3_04", "ギリギリアウトチャレンジ公式競技場 1" }, + // { "wle_shuggle_mwk3_05", "シンスモウ(ブラストボール)" }, + // { "wle_shuggle_mwk3_06", "Winter Wallop" }, + // { "wle_shuggle_mwk3_07", "リリーリーパー再現" }, + // { "wle_shuggle_mwk3_08", "Wilderness Adventures!" }, + // { "wle_shuggle_mwk3_09", "Rets arc en ciel" }, + // { "wle_shuggle_mwk3_10", "egypt park" }, + // { "wle_shuggle_mwk3_11", "Green Mountain" }, + // { "wle_shuggle_mwk3_12", "super speedrun" }, + // { "wle_shuggle_mwk3_13", "ULTRA MEGA EXTREME HARD!!!" }, + // { "wle_shuggle_mwk3_14", "Заурядные Белки" }, + // { "wle_shuggle_mwk3_15", "Digital keyboard 😜✌️" }, + // { "wle_shuggle_mwk3_16", "artistic ELIMINATED challenge 1" }, + // { "wle_shuggle_mwk3_17", "TAKOのツボ" }, + // { "wle_shuggle_mwk3_18", "Jumping Season" }, + // { "wle_shuggle_mwk3_19", "Black" }, + // { "wle_shuggle_mwk3_20", "Digital Climb 3 ~Rainbow~" }, + // { "wle_shuggle_mwk3_21", "Volcanic Island Travel!" }, + // { "wle_shuggle_mwk3_22", "Sky Ball" }, + // { "wle_shuggle_mwk3_23", "Space Race Remake" }, + // { "wle_shuggle_mwk3_24", "危険なリス" }, + // { "wle_shuggle_mwk3_25", "Summer and the Wonder land of the Sea" }, + // { "wle_shuggle_mwk3_26", "Skim City" }, + // { "wle_shuggle_mwk3_27", "Prova do campeão (Champion Round)" }, + // { "wle_shuggle_mwk3_28", "Жёлтые Нарвалы" }, + // { "wle_shuggle_mwk3_29", "Tropical Punch" }, + // { "wle_shuggle_mwk3_30", "away from the slime" }, + // { "wle_shuggle_mwk3_31", "キョダイMAX黒き天空龍!PFNo02" }, + // { "wle_shuggle_mwk3_32", "Yellow Kingdoms" }, + // { "wle_shuggle_mwk3_33", "Milky way" }, + // { "wle_shuggle_mwk3_34", "SPACE ROUND" }, + // { "wle_shuggle_mwk3_35", "Speedy Bounces" }, + // { "wle_shuggle_mwk3_36", "Snow Style" }, + // { "wle_shuggle_mwk3_37", "bunny leapers V8" }, + // { "wle_shuggle_mwk3_38", "Mushroom" }, + // { "wle_shuggle_mwk3_39", "Data Dash" }, + // { "wle_shuggle_mwk3_40", "RUTA EN LA SELVA" }, + // { "wle_shuggle_mwk3_41", "Button infected desert temple" }, + // { "wle_shuggle_mwk3_42", "Carreira colorida" }, + // { "wle_shuggle_mwk3_43", "Cargo Drop" }, + // { "wle_shuggle_mwk3_44", "green dash" }, + // { "wle_shuggle_mwk3_45", "Jungle Guys" }, + // { "wle_shuggle_mwk3_46", "Golden gates" }, + // { "wle_shuggle_mwk3_47", "Evil Guys" }, + // { "wle_shuggle_mwk3_48", "Orange And Blue Leapers" }, + // { "wle_shuggle_mwk3_49", "Plinko Fall" }, + // { "wle_shuggle_mwk3_50", "Digital Bean Stumble (V2)" }, + // { "wle_shuggle_mwk3_51", "Estareo's Lele Lembe v9" }, + // { "wle_shuggle_mwk3_52", "THE GATE OF TRUTH" }, + // { "wle_shuggle_mwk3_53", "Flutter-by!" }, + // { "wle_shuggle_mwk3_54", "Sketchy Sledding!" }, + // { "wle_shuggle_mwk3_55", "A Cold Race" }, + // { "wle_shuggle_mwk3_56", "X-Treme MegaKaizo Ultra Fall GuysHardest" }, + // { "wle_shuggle_mwk3_57", "Snow Speed" }, + // { "wle_shuggle_mwk3_58", "Bean Fantasy" }, + // { "wle_shuggle_mwk3_59", "Runner(For Fame Pass)" }, + // { "wle_shuggle_mwk3_60", "French Station" }, + // { "wle_shuggle_mwk3_61", "slime climb Creative" }, + // { "wle_shuggle_mwk3_62", "CLASSROOM(PART 2)" }, + // { "wle_shuggle_mwk3_63", "Chilly Leapers" }, + // { "wle_shuggle_mwk3_64", "Fall Bridge" }, + // { "wle_shuggle_mwk3_65", "快感快速!!" }, + // { "wle_shuggle_mwk3_66", "Jungle Guys II" }, + // { "wle_shuggle_mwk3_67", "コズミックミュージック COSMIC MUSIC" }, + // { "wle_shuggle_mwk3_68", "Satellite Sprint" }, + // { "wle_shuggle_mwk3_69", "GROOVIN’ BANANA TEMPLE" }, + // { "wle_shuggle_mwk3_70", "Rumble Tumble" }, + // { "wle_shuggle_mwk3_71", "Fashion Show!" }, + // { "wle_shuggle_mwk3_72", "DROP TOWER 蹦极塔" }, + // { "wle_shuggle_mwk3_73", "Boggle-Bean Bridges" }, + // { "wle_shuggle_mwk3_74", "AquArsene" }, + // { "wle_shuggle_mwk3_75", "Winter Games" }, + // { "wle_shuggle_mwk3_76", "LOONEY TUNES" }, + // { "wle_shuggle_mwk3_77", "atlan-sprint" }, + // { "wle_shuggle_mwk3_78", "Koala kingdom" }, + // { "wle_shuggle_mwk3_79", "straight500" }, + // { "wle_shuggle_mwk3_80", "BIG CROWN MONUMENT" }, + // { "wle_shuggle_mwk3_81", "Lily River Run" }, + // { "wle_shuggle_mwk3_82", "Skyball" }, + // { "wle_shuggle_mwk3_83", "STARLIGHT STUMBLE" }, + // { "wle_shuggle_mwk3_84", "Speedway 2069" }, + // { "wle_shuggle_mwk3_85", "GOLD RUSH" }, + // { "wle_shuggle_mwk3_86", "Data Eraser" }, + // { "wle_shuggle_mwk3_87", "FESTIVE CROSSROADS" }, + // { "wle_shuggle_mwk3_88", "Rainbow highway" }, + // { "wle_shuggle_mwk3_89", "Candyland" }, + // { "wle_shuggle_mwk3_90", "hex-a-run" }, + // { "wle_shuggle_mwk3_91", "Rover Rumble" }, + // { "wle_shuggle_mwk3_92", "MEOW MEOW GALAXY" }, + // { "wle_shuggle_mwk3_93", "Speedy Lovers" }, + // { "wle_shuggle_mwk3_94", "THE Rivalry Game (Football)" }, + // { "wle_shuggle_mwk3_95", "MARIPEN PHOTOLOCATION(Digital)" }, + // { "wle_shuggle_mwk3_96", "Olympique Guys" }, + // { "wle_shuggle_mwk3_97", "Boo City" }, + // { "wle_shuggle_mwk3_98", "CARNIVORUS PLANTS" }, + // { "wle_shuggle_mwk3_99", "はしるまくれ!⊂{◎Å◎}⊃" }, + // { "wle_shuggle_mwk3_100", "Crazy Coaster" }, + // + // { "playful_refresh_w2_01", "Winter Wallop" }, + // { "playful_refresh_w2_02", "Multi Leaper" }, + // { "playful_refresh_w2_03", "ストレートスタンブル" }, + // { "playful_refresh_w2_04", "RUN RUN Park" }, + // { "playful_refresh_w2_05", "やってみな!" }, + // { "playful_refresh_w2_06", "ごちゃごちゃストリート" }, + // { "playful_refresh_w2_07", "Conveyors Obstacles" }, + // { "playful_refresh_w2_08", "Seeing The Bean Ball" }, + // { "playful_refresh_w2_09", "Green Mountain" }, + // { "playful_refresh_w2_10", "Ancient Fallstronomers" }, + // { "playful_refresh_w2_11", "Jumping Season" }, + // { "playful_refresh_w2_12", "Track attackers system" }, + // { "playful_refresh_w2_13", "CASTLE CLASH" }, + // { "playful_refresh_w2_14", "The Terrible Spiral Of Woo Remake" }, + // { "playful_refresh_w2_15", "Rainbow Dash" }, + // { "playful_refresh_w2_16", "TruPixel's Jungle Mash-up" }, + // { "playful_refresh_w2_17", "fall-in space" }, + // { "playful_refresh_w2_18", "Monochromatic Manic" }, + // { "playful_refresh_w2_19", "Adrenaline Force 2" }, + // { "playful_refresh_w2_20", "DIGITAL MADNESS" }, + // { "playful_refresh_w2_21", "Data Dash" }, + // { "playful_refresh_w2_22", "Caida resbaladisa" }, + // { "playful_refresh_w2_23", "Snow Mountain" }, + // { "playful_refresh_w2_24", "Orange And Blue Leapers" }, + // { "playful_refresh_w2_25", " Wild Dunes" }, + // { "playful_refresh_w2_26", "Blundercity Marathon" }, + // { "playful_refresh_w2_27", "Pocket Summit" }, + // { "playful_refresh_w2_28", "Love a day" }, + // { "playful_refresh_w2_29", "Passage imbroglio arc en ciel" }, + // { "playful_refresh_w2_30", "Fall Stars" }, + // { "playful_refresh_w2_31", "SPRING MOUNTAIN" }, + // { "playful_refresh_w2_32", "AquArsene" }, + // { "playful_refresh_w2_33", "Rainbow Riptide" }, + // { "playful_refresh_w2_34", "Cluster Cosmos" }, + // { "playful_refresh_w2_35", "Koala kingdom" }, + // { "playful_refresh_w2_36", "Fallyager 12 Repair Mission" }, + // { "playful_refresh_w2_37", "Lily River Run" }, + // { "playful_refresh_w2_38", "STARLIGHT STUMBLE" }, + // { "playful_refresh_w2_39", "Welcome to Namek" }, + // { "playful_refresh_w2_40", "Rainbow highway" }, + // { "playful_refresh_w2_41", "Past passage" }, + // { "playful_refresh_w2_42", "Neon pipe run" }, + // { "playful_refresh_w2_43", "NAUTICAL SHAMBLE" }, + // + // { "wle_mrs_winter_opener_01", "Winter Blunderland" }, + // { "wle_mrs_winter_opener_02", "Frosty fiesta" }, + // { "wle_mrs_winter_opener_03", "Knight Slide" }, + // { "wle_mrs_winter_opener_04", "Digi-Snow Stumble" }, + // { "wle_mrs_winter_opener_05", "Snowy Cave-in" }, + // { "wle_mrs_winter_opener_06", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + // { "wle_mrs_winter_opener_07", "A Cold Race" }, + // { "wle_mrs_winter_opener_08", "Ice Rock" }, + // { "wle_mrs_winter_filler_01", "Snowy Flakes" }, + // { "wle_mrs_winter_filler_02", "Mountain of Ice" }, + // { "wle_mrs_winter_filler_03", "FROSTY FUMBLE" }, + // { "wle_mrs_winter_filler_04", "Winter Getaway" }, + // { "wle_mrs_winter_filler_05", "Snowy Speed Sprint" }, + // { "wle_mrs_winter_filler_06", "WINTER WONDERLAND" }, + // { "wle_mrs_winter_filler_07", "Gran Glaciar Paradicial" }, + // { "wle_mrs_winter_final_01", "The Ice Dragon's Lair" }, + // { "wle_mrs_winter_final_02", "Winter Wonderland" }, + // { "wle_mrs_winter_final_03", "Snowman Sprint" }, + // { "wle_mrs_winter_final_04", "MERRY CLIMBING!" }, + // { "wle_mrs_winter_final_05", "Winter Wonderland" }, + // + // { "wle_s10_cf_round_001", "Blocky Bridges" }, + // { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + // { "wle_s10_cf_round_003", "Drop n' Drag" }, + // { "wle_s10_cf_round_004", "Fun with Fans" }, + // + // { "wle_s10_bt_round_001", "Push Ups" }, + // { "wle_s10_bt_round_002", "Heave & Haul" }, + // { "wle_s10_bt_round_003", "Stepping Stones" }, + // { "wle_s10_bt_round_004", "Double Trouble" }, + // + // { "wle_mrs_bagel_opener_1", "Tunnel of Love" }, + // { "wle_mrs_bagel_opener_2", "Pink Parade" }, + // { "wle_mrs_bagel_opener_3", "Prideful Path" }, + // { "wle_mrs_bagel_opener_4", "Coming Together" }, + // { "wle_mrs_bagel_filler_1", "Clifftop Capers" }, + // { "wle_mrs_bagel_filler_2", "Waveway Splits" }, + // { "wle_mrs_bagel_filler_3", "In the Groove" }, + // { "wle_mrs_bagel_filler_4", "Heartfall Heat" }, + // { "wle_mrs_bagel_final_1", "Rainbow Rise" }, + // { "wle_mrs_bagel_final_2", "Out and About" }, + // + // { "wle_mrs_bouncy_bean_time_opener", "Frosty Frolics" }, + // { "wle_mrs_bouncy_bean_time_opener_02", "roll roll bean" }, + // { "wle_mrs_bouncy_bean_time_opener_03", "SPEEDROLLING" }, + // { "wle_mrs_bouncy_bean_time_filler", "Ball Park" }, + // { "wle_mrs_bouncy_bean_time_filler_02", "Ball Carnival" }, + // { "wle_mrs_bouncy_bean_time_filler_03", "Spiral Trial" }, + // { "wle_mrs_bouncy_bean_time_filler_04", "Golf Fall" }, + // { "wle_mrs_bouncy_bean_time_final", "Downtown Rush" }, + // { "wle_mrs_bouncy_bean_time_final_02", "Skyview Derby" }, + // { "wle_mrs_bouncy_bean_time_final_03", "Rolling Speedway" }, + // { "wle_mrs_bouncy_bean_time_final_04", "SEA FLOW!" }, + } + }, + }; + + private static readonly Dictionary> MultilingualShowsDictionary = new Dictionary> { + { Language.English, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "anniversary_fp12_ltm", "Anniversary Party" }, + { "casual_show", "Explore" }, + { "classic_duos_show", "Duos" }, + { "classic_solo_main_show", "Solos" }, + { "classic_squads_show", "Squads" }, + { "collectables_ss2_batch_01", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model1", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model2", "Debug Lobbies Show" }, + { "collectables_ss2_batch_02", "Debug Lobbies Show" }, + { "collectables_ss2_batch_02_model1", "Debug Lobbies Show" }, + { "collectables_ss2_batch_02_model2", "Debug Lobbies Show" }, + { "collectables_ss2_batch_03", "Debug Lobbies Show" }, + { "collectables_ss2_batch_03_model1", "Debug Lobbies Show" }, + { "collectables_ss2_batch_03_model2", "Debug Lobbies Show" }, + { "collectables_ss2_batch_04", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model1", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model2", "Batch 4 Collectables" }, + { "collectables_ss2_batch_05", "batch5" }, + { "collectables_ss2_batch_05_model1", "batch5" }, + { "collectables_ss2_batch_05_model2", "batch5" }, + { "duos_show_ss2_launch", "Duos Show SS2" }, + { "duos_show_ss2_parrot", "Duos" }, + { "event_animals_template", "Beasty Guys" }, + { "event_anniversary_season_1", "Anniversary Party" }, + { "event_anniversary_season_1_0408_to_0808_2022", "Anniversary Party" }, + { "event_anniversary_season_1_1706_to_2106_2022", "Classic Knockout" }, + { "event_anniversary_season_1_alternate_name", "Classic Knockout" }, + { "event_aprilstart_0404_1004", "Title" }, + { "event_autumn_festival_squads_1708_to_1808_2022", "Squad Celebration" }, + { "event_autumn_festival_squads_2109_2709_21", "Squad Celebration" }, + { "event_autumn_festival_squads_2110_2210_2022", "Squad Celebration" }, + { "event_blast_ball_banger_1309_to_1409_2022", "Blast Ball Bangers" }, + { "event_blast_ball_banger_1710_1810_2022", "Blast Ball Bangers" }, + { "event_blast_ball_banger_2310_2410_2022", "Blast Ball Bangers" }, + { "event_blast_ball_banger_2408_to_2808_2022", "Blast Ball Bangers" }, + { "event_blast_ball_banger_2609_to_2809_2022", "Blast Ball Bangers" }, + { "event_blast_ball_banger_template", "Blast Ball Bangers" }, + { "event_bubble_template", "Anniversary Party" }, + { "event_clan_of_yeetus_2509_to_2709_2022", "Clan of Yeetus" }, + { "event_clan_of_yeetus_ss2_2110_2210_2022", "Clan of Yeetus" }, + { "event_clan_of_yeetus_ss2_2509_2709_2022", "Clan of Yeetus" }, + { "event_day_at_races_squads_1610_1710_2022", "Day at the Races Squads" }, + { "event_day_at_races_squads_2308_to_2408_2022", "Day at the Races Squads" }, + { "event_day_at_races_squads_2707_to_2807_2022", "Day at the Races Squads" }, + { "event_day_at_races_squads_template", "Day at the Races Squads" }, + { "event_day_at_the_races_ltm", "Day at the Races Solo" }, + { "event_end_of_season_s1", "Finale 1/5: The Thursday Show" }, + { "event_end_of_season_s2", "Finale 2/5: The Friday Show" }, + { "event_end_of_season_s3", "Finale 3/5: The Saturday Show" }, + { "event_end_of_season_s4", "Finale 4/5: The Sunday Show" }, + { "event_end_of_season_s5", "Finale 5/5: The Monday Show" }, + { "event_fall_ball_101022_121022", "Fall Ball Cup" }, + { "event_fan_favourites_1807_to_2107_2022", "Fan Favourites" }, + { "event_fan_favourites_1908_to_2108_2022", "Fan Favourites" }, + { "event_fan_favourites_s6_template", "Fan Favourites" }, + { "event_fan_favourites_template", "Fan Favourites" }, + { "event_fanfare_template", "Blow Up" }, + { "event_fruit_basket", "Fruit Basket" }, + { "event_hilaria_2022", "???????????" }, + { "event_invisibeans_ss2_1010_1210_2022", "SWEET THIEVES" }, + { "event_kudos_blow_up_0910_to_1110_2021", "Time Is Kudos!: Blow Up" }, + { "event_kudos_blow_up_template", "Time Is Kudos!: Blow Up" }, + { "event_kudos_bollard_greens_1310_to_1510_2021", "Time Is Kudos!: Bollard Greens" }, + { "event_kudos_bollard_greens_1510_to_1710_2021", "Time Is Kudos!: Bollard Greens" }, + { "event_kudos_bollard_greens_template", "Time Is Kudos!: Bollard Greens" }, + { "event_kudos_gravity_wield_1110_to_1310_2021", "Time Is Kudos!: Gravity Wield" }, + { "event_kudos_gravity_wield_1310_to_1510_2021", "Time Is Kudos!: Gravity Wield" }, + { "event_kudos_gravity_wield_template", "Time Is Kudos!: Gravity Wield" }, + { "event_kudos_jumping_for_joy_0510_to_0710_2021", "Time Is Kudos!: Jumping For Joy" }, + { "event_kudos_jumping_for_joy_0710_to_0910_2021", "Time Is Kudos!: Jumping For Joy" }, + { "event_kudos_jumping_for_joy_template", "Time Is Kudos!: Jumping For Joy" }, + { "event_kudos_spin_cycle_0710_to_0910_2021", "Time Is Kudos!: Spin Cycle" }, + { "event_kudos_spin_cycle_1110_to_1310_2021", "Time Is Kudos!: Spin Cycle" }, + { "event_kudos_spin_cycle_template", "Time Is Kudos!: Spin Cycle" }, + { "event_le_anchovy_private_lobbies", "Let's Get Kraken" }, + { "event_le_anchovy_template", "Let's Get Kraken" }, + { "event_le_halloween_slime_climb", "TRICK Show" }, + { "event_le_halloween_slime_climb_2110_to_0111_2021", "TRICK Show" }, + { "event_le_halloween_team_squads", "TREAT Show (Trios)" }, + { "event_le_halloween_team_squads_2110_to_0111_2021", "TREAT Show (Trios)" }, + { "event_new_year_s6", "Bean Body Ready" }, + { "event_no_teams", "No Teams" }, + { "event_only_1v1_volleyfall_squads_ss1_or_ss2_show2", "Volleyfall Tournament" }, + { "event_only_basketfall", "Slam Dunk" }, + { "event_only_blast_ball_trials_0609_to_0709_2022", "Blast Ball Trials" }, + { "event_only_blast_ball_trials_1608_to_1708_2022", "Blast Ball Trials" }, + { "event_only_blast_ball_trials_1907_to_2007_2022", "Blast Ball Trials" }, + { "event_only_blast_ball_trials_template", "Blast Ball Trials" }, + { "event_only_bubbles_template", "Bubble Trouble Trials" }, + { "event_only_button_bashers_template", "Button Basher Royale" }, + { "event_only_drumtop_0607_to_0707_2022", "Lily Leapers Limbo" }, + { "event_only_drumtop_0908_to_1008_2022", "Lily Leapers Limbo" }, + { "event_only_drumtop_3108_to_0109_2022", "Lily Leapers Limbo" }, + { "event_only_drumtop_template", "Lily Leapers Limbo" }, + { "event_only_fall_ball_011122_031122", "Fall Ball Cup" }, + { "event_only_fall_ball_0407_to_0507_2022", "Fall Ball Cup" }, + { "event_only_fall_ball_1810_2010_2022", "Fall Ball Cup" }, + { "event_only_fall_ball_custom_lobby", "Fall Ball Cup" }, + { "event_only_fall_ball_squads_0106_to_0206_2022", "Fall Ball Cup" }, + { "event_only_fall_ball_squads_1609_to_1809_2022", "Fall Ball Cup" }, + { "event_only_fall_ball_squads_template", "Fall Ball Cup" }, + { "event_only_fall_ball_template", "Fall Ball Cup" }, + { "event_only_fall_ball_trios_ranked", "Fall Ball Cup Trios Ranked" }, + { "event_only_finals_2904_to_0105_2022", "Finals Marathon" }, + { "event_only_finals_template", "Finals Marathon" }, + { "event_only_finals_v2_template", "Finals Marathon" }, + { "event_only_finals_v3_ranked", "Finals Marathon Ranked" }, + { "event_only_finals_v3_template", "Finals Marathon" }, + { "event_only_floor_fall_0510_to_0610_2022", "Hex-a-gone Trials" }, + { "event_only_floor_fall_2510_2610_2022", "Hex-a-gone Trials" }, + { "event_only_floor_fall_custom_lobby", "Hex-a-gone Trials" }, + { "event_only_floor_fall_low_grav", "Hex-a-Gravity Trials" }, + { "event_only_floor_fall_low_grav_0108_to_0208_2022", "Hex-a-Gravity Trials" }, + { "event_only_floor_fall_low_grav_0507_to_0607_2022", "Hex-a-Gravity Trials" }, + { "event_only_floor_fall_low_grav_2208_to_2308_2022", "Hex-a-Gravity Trials" }, + { "event_only_floor_fall_template", "Hex-a-gone Trials" }, + { "event_only_hard_mode_1306_to_1406_2022", "Hard Mode" }, + { "event_only_hard_mode_private_lobbies", "Hard Mode" }, + { "event_only_hard_mode_template", "Hard Mode" }, + { "event_only_hexaring_1808_to_2208_2022", "Ring Hexathlon" }, + { "event_only_hexaring_template", "Ring Hexathlon" }, + { "event_only_hoverboard_template", "Hoverboarding Time" }, + { "event_only_jump_club_0109_to_0209_2022", "Jump Around" }, + { "event_only_jump_club_1008_to_1108_2022", "Jump Around" }, + { "event_only_jump_club_1907_to_2007_2022", "Jump Around" }, + { "event_only_jump_club_2305_to_2405_2022_v2", "Jump Around" }, + { "event_only_jump_club_2706_to_2806_2022", "Jump Around" }, + { "event_only_jump_club_custom_lobby", "Jump Around" }, + { "event_only_jump_club_ss2_0310_0410_2022", "Jump Around" }, + { "event_only_jump_club_template", "Jump Around" }, + { "event_only_pixelperfect", "PIXEL PAINTERS" }, + { "event_only_races_any_final_2406_to_2606_2022", "Day at the Races Solo" }, + { "event_only_races_any_final_2505_to_2605_2022", "Day at the Races Solo" }, + { "event_only_races_any_final_private_lobbies", "Day at the Races Solo" }, + { "event_only_races_any_final_template", "Day at the Races Solo" }, + { "event_only_races_no_lava_template", "Day at the Races Solo" }, + { "event_only_races_template", "Day at the Races Solo" }, + { "event_only_roll_on", "Roll On Only" }, + { "event_only_roll_out", "Roll Call" }, + { "event_only_roll_out_0806_to_0906_2022", "Roll Call" }, + { "event_only_roll_out_2005_to_2205_2022", "Roll Call" }, + { "event_only_roll_out_custom_lobby", "Roll Call" }, + { "event_only_season_2_variation_template", "Medieval Mix Up" }, + { "event_only_season_3_variation_template", "Mix it Up!" }, + { "event_only_season_4", "Future Fumble" }, + { "event_only_season_4_1507_to_1707_2022", "Future Fumble" }, + { "event_only_season_4_2705_to_2905_2022", "Future Fumble" }, + { "event_only_season_4_custom_lobby", "Future Fumble" }, + { "event_only_season_4_variation_template", "Mix it Up!" }, + { "event_only_season_5_0309_1209", "Jungle Jumble" }, + { "event_only_season_5_0409_to_0509_2022", "Jungle Jumble" }, + { "event_only_season_5_0807_to_1007_2022", "Jungle Jumble" }, + { "event_only_season_5_0909_to_1009_2022", "Jungle Jumble" }, + { "event_only_season_5_custom_lobby", "Jungle Jumble" }, + { "event_only_season_5_template", "Jungle Jumble" }, + { "event_only_season_5_variation_template", "Mix it Up!" }, + { "event_only_season_6_launch_party", "Party Time Tumble" }, + { "event_only_season_6_launch_party_1703_to_1903_2022", "Party Time Tumble" }, + { "event_only_season_6_template", "Party Time Tumble" }, + { "event_only_skeefall_timetrial_0309_to_0409_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_0711_0711_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_1307_to_1407_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_1508_to_1608_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_1909_to_2009_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_2710_2810_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_s6_1", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_ss2_1909_2009_2022", "Ski Fall High Scorers" }, + { "event_only_slime_climb", "Slime Climb Time" }, + { "event_only_slime_climb_0110_to_0210_2022", "Slime Climb Time" }, + { "event_only_slime_climb_0308_to_0408_2022", "Slime Climb Time" }, + { "event_only_slime_climb_0709_to_0809_2022", "Slime Climb Time" }, + { "event_only_slime_climb_1107_to_1207_2022", "Slime Climb Time" }, + { "event_only_slime_climb_1506_to_1606_2022", "Slime Climb Time" }, + { "event_only_slime_climb_2608_to_2708_2022", "Slime Climb Time" }, + { "event_only_slime_climb_2_0606_to_0706_2022", "Slimescraper Time" }, + { "event_only_slime_climb_2_0709_to_0909_2021", "Slimescraper Time" }, + { "event_only_slime_climb_2_2910_3010_2022", "Slimescraper Time" }, + { "event_only_slime_climb_2_template", "Slimescraper Time" }, + { "event_only_slime_climb_ss2_0110_0210_2022", "Slime Climb Time" }, + { "event_only_ss2_squads_1910_2110_2022", "3,2,1, SPACE!" }, + { "event_only_ss2_squads_template", "3,2,1, SPACE!" }, + { "event_only_survival_fittest_3110_0111_2022", "Survival of the Fittest" }, + { "event_only_survival_private_lobbies", "Slime Survivors" }, + { "event_only_survival_ss2_3009_0210_2022", "Survival of the Fittest" }, + { "event_only_thin_ice_0205_to_0205_2022", "Thin Ice Trials" }, + { "event_only_thin_ice_template", "Thin Ice Trials" }, + { "event_only_tip_toe_0204_to_0304_2022", "Tip Toe Tournament" }, + { "event_only_tip_toe_0209_to_0309_2022", "Tip Toe Tournament" }, + { "event_only_tip_toe_2507_to_2607_2022", "Tip Toe Tournament" }, + { "event_only_tip_toe_2809_to_2909_2022", "Tip Toe Tournament" }, + { "event_only_tip_toe_2909_to_3009_2022", "Tip Toe Tournament" }, + { "event_only_tip_toe_template", "Tip Toe Tournament" }, + { "event_only_volleyfall_squads_ss2_1110_1210_2022", "Volleyfall Tournament" }, + { "event_only_volleyfall_squads_ss2_2010_2110_2022", "Volleyfall Tournament" }, + { "event_oriole_0612_to_1212_2021", "Aloy's Blaze Canister Mayhem" }, + { "event_oriole_template", "Aloy's Blaze Canister Mayhem" }, + { "event_pixel_palooza_2210_2310_2022", "Pixel Palooza" }, + { "event_pixel_palooza_template", "Pixel Palooza" }, + { "event_s6_651_template", "PLACEHOLDER SHOW" }, + { "event_s9_crayfish_template", "Gift Grab" }, + { "event_season_2_highlight_1006_to_1206_2022", "Medieval Muddle" }, + { "event_season_2_highlight_2907_to_3107_2022", "Medieval Muddle" }, + { "event_season_2_highlight_template", "Medieval Muddle" }, + { "event_season_3_highlight_0306_to_0506_2022", "Snow Day Stumble" }, + { "event_season_3_highlight_2607_to_2707_2022", "Snow Day Stumble" }, + { "event_season_3_highlight_template", "Snow Day Stumble" }, + { "event_snowday_stumble", "Snow Day Stumble" }, + { "event_sports_suddendeath_squads", "Golden Goal Challenge" }, + { "event_sports_suddendeath_squads_0208_to_0308_2022", "Golden Goal Challenge" }, + { "event_sports_suddendeath_squads_0407_to_0507_2022", "Golden Goal Challenge" }, + { "event_sports_suddendeath_squads_0509_to_0609_2022", "Golden Goal Challenge" }, + { "event_sports_suddendeath_squads_2603_to_2803_2022", "Golden Goal Challenge" }, + { "event_sports_template", "Sports Fest" }, + { "event_squads_festival_ss2_2409_2509_2022", "Squad Celebration" }, + { "event_squads_survival_0509_to_0609_2022", "Survival Squads" }, + { "event_squads_survival_0511_0711_2022", "Survival Squads" }, + { "event_squads_survival_0808_to_0908_2022", "Survival Squads" }, + { "event_squads_survival_ss2_0710_0910_2022", "Survival Squads" }, + { "event_squads_survival_template", "Survival Squads" }, + { "event_stars01_0404_1004", "Adapt!" }, + { "event_stars02_1804_to_2404_2022", "Logic!" }, + { "event_stars03_0305_to_0805_2022", "Bravery!" }, + { "event_summer_squads_0107_0407_2022", "Squad Celebration" }, + { "event_summer_squads_2107_2507", "Squad Celebration" }, + { "event_symphony_launch_show_1310_1610_2022", "Stadium Stars Show" }, + { "event_symphony_launch_show_template", "Stadium Stars Show" }, + { "event_tail_tag_april_show", "ERROR 01APR" }, + { "event_test_season_5", "Duos" }, + { "event_twitch_rivals", "Twitch Rivals" }, + { "event_vulture_1612_to_2712_2021", "Naughty or Nice Show" }, + { "event_vulture_template", "Naughty or Nice Show" }, + { "event_walnut_template", "Hex-a-thon" }, + { "event_week_of_romance_s6_duo_teams", "Duos Festival" }, + { "event_xtreme_fall_guys_0211_0411_2022", "X-treme Solos" }, + { "event_xtreme_fall_guys_2207_to_2407_2022", "X-treme Solos" }, + { "event_xtreme_fall_guys_2903_to_3103_2022", "X-treme Solos" }, + { "event_xtreme_fall_guys_2908_to_3108_2022", "X-treme Solos" }, + { "event_xtreme_fall_guys_squads_1208_to_1408_2022", "X-treme Squads" }, + { "event_xtreme_fall_guys_squads_2906_to_3006_2022", "X-treme Squads" }, + { "event_xtreme_fall_guys_squads_2908_to_3108_2022", "X-treme Squads" }, + { "event_xtreme_fall_guys_squads_ss2_1310_1510_2022", "X-treme Squads" }, + { "event_xtreme_fall_guys_squads_ss2_2109_2309_2022", "X-treme Squads" }, + { "event_xtreme_fall_guys_squads_template", "X-treme Squads" }, + { "event_xtreme_fall_guys_ss2_0310_0510_2022", "X-treme Solos" }, + { "event_xtreme_fall_guys_template", "X-treme Solos" }, + { "event_yeetus_111022_121022", "Big Yeetus Tour" }, + { "event_yeetus_3005_to_3105_2022", "Big Yeetus Tour" }, + { "event_yeetus_template", "Big Yeetus Tour" }, + { "explore_points", "Explore - Points" }, + { "fp16_ski_fall_high_scorers", "Ski Fall High Scorers" }, + { "ftue_uk_show", "Knockout" }, + { "greatestsquads_ltm", "Squads Spectacular" }, + { "greatestsquads_ranked", "Squads Spectacular Ranked" }, + { "invisibeans_0508_to_0708_2022", "SWEET THIEVES" }, + { "invisibeans_0707_to_1107_2022", "SWEET THIEVES" }, + { "invisibeans_0803_to_1303_2022", "SWEET THIEVES" }, + { "invisibeans_181022_201022", "SWEET THIEVES" }, + { "invisibeans_2209_to_2409_2022", "SWEET THIEVES" }, + { "invisibeans_2808_to_3008_2022", "SWEET THIEVES" }, + { "invisibeans_pistachio_template", "Treat Thieves" }, + { "invisibeans_template", "SWEET THIEVES" }, + { "knockout_duos", "Duos" }, + { "knockout_mode", "Knockout" }, + { "knockout_mode_pl", "Knockout" }, + { "knockout_squads", "Squads" }, + { "live_event_bluejay", "Gotta Go Fast!" }, + { "live_event_clan_of_yeetus_0411_0611_2022", "Clan of Yeetus" }, + { "live_event_clan_of_yeetus_ss1_template", "Clan of Yeetus" }, + { "live_event_peanut_ss2_01", "t. Lost c" }, + { "live_event_peanut_ss2_02", "t city, f" }, + { "live_event_peanut_ss2_03", "y, found a" }, + { "live_event_peanut_ss2_04", "d at l" }, + { "live_event_peanut_ss2_05", "t last. B" }, + { "live_event_peanut_ss2_06", "t. Beyond t" }, + { "live_event_peanut_ss2_07", "d the B" }, + { "live_event_peanut_ss2_08", "e Blunderdome, s" }, + { "live_event_peanut_ss2_09", "e, sunken p" }, + { "live_event_peanut_ss2_10", "n past. L" }, + { "live_event_pelican_template", "Spartan Showdown" }, + { "live_event_satellite_collectibles_solo_template", "Satellite Repair Mission" }, + { "live_event_satellite_collectibles_template", "Satellite Repair Mission" }, + { "live_event_ss2_potoo_template", "THE POWER OF BEANSKULL" }, + { "live_event_ss2_potoo_template_test", "POTOO TEST! NOT FINAL!" }, + { "live_event_symphony_launch_show_template", "Stadium Stars Show" }, + { "live_event_timeattack_dizzyheights", "Time Attack Trial - Dizzy Heights" }, + { "live_event_timeattack_lilyleapers", "Time Attack Trial - Lily Leapers" }, + { "live_event_timeattack_partyprom", "Time Attack Trial - Party Promenade" }, + { "live_event_timeattack_shuffle", "Time Attack Shuffle" }, + { "live_event_timeattack_shuffle_pl", "Time Attack Shuffle" }, + { "live_event_timeattack_trackattack", "Time Attack Trial - Track Attack" }, + { "live_event_timeattack_treetoptumble", "Time Attack Trial - Treetop Tumble" }, + { "live_event_timeattack_tundrarun", "Time Attack Trial - Tundra Run" }, + { "main_show", "Solos" }, + { "main_show_2player", "Main Show (2 Player)" }, + { "main_show_private_lobbies", "Solos" }, + { "main_show_ss2_launch_pl", "Solos" }, + { "main_show_template_base", "Main Show" }, + { "main_show_template_large", "Main Show" }, + { "main_show_template_medium", "Main Show" }, + { "mrs_pegwin_winter_2teamsfinal", "Pegwin Palooza" }, + { "no_elimination_explore", "Explore - Classic" }, + { "no_elimination_show", "SOLOS CHILL" }, + { "only_1v1_volleyfall", "Volleyfall Tournament" }, + { "only_1v1_volleyfall_191022_211022", "Volleyfall Tournament" }, + { "only_solo_ss2_rounds_show", "3,2,1, SPACE!" }, + { "pl_blastball", "Blast Ball" }, + { "pl_duos_show", "Duos" }, + { "pl_fallmountain", "Fall Mountain" }, + { "pl_hexagone", "Hex-A-Gone" }, + { "pl_hexaring", "Hex-A-Ring" }, + { "pl_hexaterrestrial", "Hex-A-Terrestrial" }, + { "pl_jumpshowdown", "Jump Showdown" }, + { "pl_krakenslam", "Kraken Slam" }, + { "pl_losttemple", "Lost Temple" }, + { "pl_rolloff", "Roll Off" }, + { "pl_royal_fumble", "Royal Fumble" }, + { "pl_solo_main_show", "Solos" }, + { "pl_squads_show", "Squads" }, + { "pl_thin_ice", "Thin Ice" }, + { "pl_tiptoefinale", "Tip Toe Finale" }, + { "pl_vaulted_show", "The Vault" }, + { "placeholder", ""}, + { "playlist_fallguys_skill", "playlist_fallguys_skill" }, + { "playlist_fallguys_solo", "playlist_fallguys_solo" }, + { "playlist_fallguys_soloskill", "playlist_fallguys_soloskill" }, + { "playlist_fallguys_squad", "playlist_fallguys_squad" }, + { "ranked_duos_show", "Ranked Duos" }, + { "ranked_show_knockout", "Ranked Knockout" }, + { "ranked_solo_show", "Ranked Solos" }, + { "ranked_squads_show", "Ranked Squads" }, + { "ranked_trios_show", "Ranked Trios" }, + { "reversed_knockout_show", "Tuokconk" }, + { "showcase_fp13", "Scrapyard Stumble" }, + { "showcase_fp16", "Frosty Frolics" }, + { "showcase_fp17", "Fallentines Festival" }, + { "showcase_fp18", "Foolish Trios" }, + { "showcase_fp19", "Yeetropolis GO!!!" }, + { "showcase_fp20", "Blunderbeach Bonanza" }, + { "show_episode_level_variation_sy2_launch_01", "Mix it Up!" }, + { "show_episode_level_variation_sy2_launch_02", "Mix it Up!" }, + { "show_episode_level_variation_sy2_launch_03", "Mix it Up!" }, + { "show_episode_level_variation_sy2_launch_04", "Mix it Up!" }, + { "show_episode_level_variation_sy2_launch_05", "Mix it Up!" }, + { "show_episode_level_variation_victoria_1", "Mix it Up!" }, + { "show_episode_level_variation_victoria_2", "Mix it Up!" }, + { "show_episode_level_variation_victoria_3", "Mix it Up!" }, + { "show_episode_level_variation_victoria_4_squads", "Mix it Up!" }, + { "show_robotrampage_ss2_2809_to_2909_2022", "Stompin' Ground Stand-Off" }, + { "show_robotrampage_ss2_show1_2510_2610_2022", "Stompin' Ground Stand-Off" }, + { "show_robotrampage_ss2_show1_template", "Stompin' Ground Stand-Off" }, + { "slime_survivors", "Slime Survivors" }, + { "solo_show_pl_all_rounds", "Solo Variety Show" }, + { "solo_show_ss2_launch", "Solo Show SS2" }, + { "solo_show_ss2_parrot", "Solos" }, + { "spectator_show", "Spectator Sport" }, + { "sports_show", "Fall Guys Games" }, + { "squad_duo_slimeclimbs", ""}, + { "squad_show", "SQUAD SHOW" }, + { "squad_show_2player", "SQUAD SHOW" }, + { "squad_show_2player_laps", "SQUAD SHOW" }, + { "squad_show_survival", "DEBUG Squad Show Survival" }, + { "squad_show_team_2player", "Connection Error" }, + { "squadcelebration", "Squad Celebration" }, + { "squads_2player_1403_to_0205_2022", "Squads Duos" }, + { "squads_2player_automation", "Squads Duos" }, + { "squads_2player_points_test", "Duos" }, + { "squads_2player_template", "Duos" }, + { "squads_3player_0111_1511_21", "Squads Trios" }, + { "squads_3player_0208_to_1508_2021", "Squads Trios" }, + { "squads_3player_04012022_to_13012022", "Squads Trios" }, + { "squads_3player_automation", "Squads Trios" }, + { "squads_3player_template", "Squads Trios" }, + { "squads_4player", "Squads" }, + { "squads_4player_2812_no_end", "Squads" }, + { "squads_4player_after_potoo", "Squads" }, + { "squads_show_ss2_launch", "Squads Show SS2" }, + { "squads_show_ss2_parrot", "Squads" }, + { "survival_of_the_fittest", "Survival of the Fittest" }, + { "teams_show", "Connection Error" }, + { "teams_show_ltm", "Dynamic Duos" }, + { "timeattack_mode", "Time Attack" }, + { "toms_main_show_5_2", "Main Show" }, + { "toms_show2", "Toms Show 2" }, + { "turbo_show", "Solos" }, + { "turbo_2_show", "Solos" }, + { "ultimate_party_adventure", "Ultimate Party - Adventure" }, + { "wallguys_test", "WALL
GUYS" }, + { "wle_lobby_template", "Show Name" }, + { "wle_lobby_template_validation", "Show Name" }, + { "wle_mrs_template", "placeholder" }, + { "wle_srs_multi_winner_template_filler", "placeholder" }, + { "wle_srs_multi_winner_template_final", "placeholder" }, + { "wle_srs_multi_winner_template_opener", "placeholder" }, + { "wle_srs_single_winner_template_filler", "placeholder" }, + { "wle_srs_single_winner_template_final", "placeholder" }, + { "wle_srs_single_winner_template_opener", "placeholder" }, + { "xtreme_explore", "Explore - Xtreme" }, + { "xtreme_party", "X-treme Party" }, + { "xtreme_solos_template_ranked", "X-treme Solos Ranked" }, + + { "show_wle_s10_wk01_mrs", "Creator Round Playlist 1" }, + { "show_wle_s10_wk3_mrs", "Creator Round Playlist 2" }, + { "event_wle_s10_wk4_mrs", "Creator Round Playlist 3" }, + { "show_wle_s10_wk5_mrs", "Creator Round Playlist 4" }, + + { "show_wle_s10_wk01_srs_01", "Boom Blaster Trial" }, + { "show_wle_s10_wk01_srs_02", "Cyber Circuit" }, + { "show_wle_s10_wk01_srs_03", "Pixel Hearts" }, + { "show_wle_s10_wk01_srs_04", "Fortress Frolics" }, + { "show_wle_s10_wk02_srs_05", "Super Door Dash" }, + { "show_wle_s10_wk02_srs_06", "Spiral of Woo" }, + { "show_wle_s10_wk02_srs_07", "Tornado Trial" }, + { "show_wle_s10_wk02_srs_08", "Hopscotch Havoc" }, + { "show_wle_s10_wk03_srs_9", "Incline Rewind" }, + { "show_wle_s10_wk03_srs_10", "Beat Bouncers" }, + { "show_wle_s10_wk03_srs_11", "Prismatic Parade" }, + { "show_wle_s10_wk03_srs_12", "Blunder Bridges" }, + { "show_wle_s10_wk04_srs_01", "Trouble Tower" }, + { "show_wle_s10_wk04_srs_02", "Swept Away" }, + { "show_wle_s10_wk04_srs_03", "Balancing Act" }, + { "show_wle_s10_wk04_srs_04", "Serpent Slalom" }, + { "show_wle_s10_wk05_srs_long_01", "Floorless" }, + { "show_wle_s10_wk05_srs_long_02", "Fall Speedway" }, + { "show_wle_s10_wk05_srs_long_03", "Zig Zag Zoomies" }, + { "show_wle_s10_wk05_srs_long_04", "Terrabyte Trial" }, + + { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + { "wle_s10_player_round_wk3_02", "Door Game" }, + { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + { "wle_s10_player_round_wk3_07", "Descente Créative" }, + { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + { "wle_s10_player_round_wk3_12", "Variable Valley" }, + { "wle_s10_player_round_wk3_13", "Broken Course" }, + { "wle_s10_player_round_wk3_15", "Parkour Party" }, + { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + { "wle_s10_player_round_wk3_19", "Sky Time" }, + { "wle_s10_player_round_wk3_20", "EZz Map" }, + + { "show_wle_s10_player_round_wk4_01", "Slippery Stretch" }, + { "show_wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + { "show_wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + { "show_wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + { "show_wle_s10_player_round_wk4_06", "Topsie Tursie" }, + { "show_wle_s10_player_round_wk4_07", "Arcade Assault" }, + { "show_wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + { "show_wle_s10_player_round_wk4_09", "Green Beans" }, + { "show_wle_s10_player_round_wk4_10", "Hop Hill" }, + { "show_wle_s10_player_round_wk4_11", "Quick Sliders" }, + { "show_wle_s10_player_round_wk4_12", "Split Path" }, + { "show_wle_s10_player_round_wk4_15", "Snowboard Street" }, + { "show_wle_s10_player_round_wk4_18", "House Invasion" }, + { "show_wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + { "show_wle_s10_player_round_wk4_21", "Spin" }, + { "show_wle_s10_player_round_wk4_22", "Lane Changers" }, + + { "wle_s10_player_round_wk5_01", "Block Park" }, + { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + { "wle_s10_player_round_wk5_03", "Digital Temple" }, + { "wle_s10_player_round_wk5_04", "Tower Escape" }, + { "wle_s10_player_round_wk5_05", "Tower Dash" }, + { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + { "wle_s10_player_round_wk5_07", "Looooping" }, + { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + { "wle_s10_player_round_wk5_10", "Siank Arena" }, + { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + { "wle_s10_player_round_wk5_13", "Dessert Village" }, + { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + { "wle_s10_player_round_wk5_15", "Beast Route" }, + { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + { "wle_s10_player_round_wk5_18", "Digital Doom" }, + + { "show_wle_s10_player_round_wk6_01", "Hammer Heaven" }, + { "show_wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + { "show_wle_s10_player_round_wk6_03", "Castle Rush" }, + { "show_wle_s10_player_round_wk6_04", "Chaotic Race" }, + { "show_wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + { "show_wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + { "show_wle_s10_player_round_wk6_08", "Flower Power" }, + { "show_wle_s10_player_round_wk6_09", "Dimension Explorer" }, + { "show_wle_s10_player_round_wk6_10", "Forked Passage" }, + { "show_wle_s10_player_round_wk6_12", "The Bee Hive" }, + { "show_wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + { "show_wle_s10_player_round_wk6_14", "Snek" }, + { "show_wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + { "show_wle_s10_player_round_wk6_17", "Slippery Helixes" }, + { "show_wle_s10_player_round_wk6_18", "Recess" }, + { "show_wle_s10_player_round_wk6_19", "Parrot river" }, + { "show_wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + + { "show_wle_s10_wk07_srs_01", "Tower of Fall" }, + { "show_wle_s10_wk07_srs_02", "SOLO FULL-TILT RAGE" }, + { "show_wle_s10_wk07_srs_03", "Piso resbaloso" }, + { "show_wle_s10_wk07_srs_04", "Catastrophe Climb" }, + { "show_wle_s10_wk07_srs_05", "Sky High Run" }, + { "show_wle_s10_wk07_srs_06", "Full Speed Sliding (FSS) - Jelly Road" }, + + { "show_wle_s10_wk08_srs_01", "Push Ups" }, + { "show_wle_s10_wk08_srs_02", "Heave & Haul" }, + { "show_wle_s10_wk08_srs_03", "Stepping Stones" }, + { "show_wle_s10_wk08_srs_04", "Double Trouble" }, + + { "current_wle_fp3_07_01", "Block Sledding" }, + { "current_wle_fp3_07_02", "Layup Wallop" }, + { "current_wle_fp3_07_03", "Minecart Mayhem" }, + { "current_wle_fp3_07_04", "Bouncing Pass" }, + { "current_wle_fp3_07_05", "Ball Factory" }, + { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + { "current_wle_fp3_07_0_02", "Woo-F-O" }, + { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + + { "current_wle_fp3_08_01", "Grabbers Territory" }, + { "current_wle_fp3_08_02", "A Way Out" }, + { "current_wle_fp3_08_03", "Wall Block" }, + { "current_wle_fp3_08_04", "The dream island" }, + { "current_wle_fp3_08_05", "Rainbow pulsion" }, + { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + { "current_wle_fp3_08_10", "Crazy boxes" }, + { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + { "current_wle_fp3_08_15", "Stumble Teams" }, + { "current_wle_fp3_08_16", "Twisting Tower" }, + { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + { "current_wle_fp3_08_18", "The Rising Blocks" }, + { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + { "current_wle_fp3_09_01", "The up tower" }, + { "current_wle_fp3_09_02", "Short shuriken" }, + { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + { "current_wle_fp3_09_06", "Random Heights" }, + { "current_wle_fp3_09_07", "Climb scramble" }, + { "current_wle_fp3_09_08", "Collide Gaming" }, + { "current_wle_fp3_09_09", "Very Compressed Level" }, + { "current_wle_fp3_09_0_01", "Slippery Slope" }, + { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + { "current_wle_fp3_09_0_03", "Free Falling" }, + { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + + { "current_wle_fp3_10_01", "When Nature Falls" }, + { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + { "current_wle_fp3_10_03", "The Slime Trials" }, + { "current_wle_fp3_10_04", "Friendly Obstacles" }, + { "current_wle_fp3_10_05", "Climb and Fall" }, + { "current_wle_fp3_10_06", "Stairs and some other things" }, + { "current_wle_fp3_10_07", "Meowgical World" }, + { "current_wle_fp3_10_08", "Polluelo Speed" }, + { "current_wle_fp3_10_09", "Pixel Parade" }, + { "current_wle_fp3_10_10", "Total Madness" }, + { "current_wle_fp3_10_11", "The Abstract Maze" }, + { "current_wle_fp3_10_12", "Fan Off" }, + { "current_wle_fp3_10_13", "cloud highway" }, + { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + { "current_wle_fp3_10_15", "Speedrunners be like" }, + { "current_wle_fp3_10_16", "Tumble Tower" }, + { "current_wle_fp3_10_17", "Silver's Snake Run" }, + { "current_wle_fp3_10_18", "Now Boarding" }, + { "current_wle_fp3_10_19", "Slime Scale" }, + { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + { "current_wle_fp3_10_23", "Controlled Chaos" }, + { "current_wle_fp3_10_24", "Xtreme Jumping" }, + { "current_wle_fp3_10_25", "Odin" }, + { "current_wle_fp3_10_26", "Ciudad nube" }, + { "current_wle_fp3_10_27", "Bean Voyage" }, + { "current_wle_fp3_10_28", "SLIP-SAW" }, + { "current_wle_fp3_10_29", "Bbq bacon burger" }, + + { "current_wle_fp4_05_01_01", "巅峰车站" }, + { "current_wle_fp4_05_01_02", "Beba Park 7" }, + { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + { "current_wle_fp4_05_02", "Mini only up" }, + { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + { "current_wle_fp4_05_03_02", "Remote Control" }, + { "current_wle_fp4_05_03", "Parkway Slide" }, + { "current_wle_fp4_05_04", "Duel Dash" }, + { "current_wle_fp4_05_05", "beaten trackless road" }, + { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + { "current_wle_fp4_05_2_02", "arch city" }, + { "current_wle_fp4_05_2_03", "Desert Ruins" }, + + { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + { "current_wle_fp4_06_02", "Pachislo" }, + { "current_wle_fp4_06_0_01", "AquArsene" }, + { "current_wle_fp4_06_0_02", "RainbowCloud" }, + { "current_wle_fp4_06_0_03", "Pink Cascade" }, + { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + { "current_wle_fp4_06_1_01", "Buggin' Out" }, + { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + { "current_wle_fp4_06_1_05", "The climb of Trials" }, + { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + + { "current_wle_fp4_07_01", "Rotational Runner" }, + { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + { "current_wle_fp4_07_03", "simple stage" }, + { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + { "current_wle_fp4_07_05", "Factory Valley" }, + { "current_wle_fp4_07_06", "Jumpy Beans" }, + { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + { "current_wle_fp4_07_0_01", "Camino Ninja" }, + + { "current_wle_fp4_08_01", "co-op guys" }, + { "current_wle_fp4_08_0_01", "The big slide" }, + { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + { "current_wle_fp4_08_0_06", "X-Course" }, + { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + { "current_wle_fp4_08_1_01", "Boost in Dash" }, + { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + { "current_wle_fp4_08_1_03", "Giddy up!" }, + { "current_wle_fp4_08_1_04", "Mad lab" }, + { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + { "current_wle_fp4_08_3_01", "The Oasis" }, + + { "current_wle_fp4_09_01", "Crate Collector" }, + { "current_wle_fp4_09_02", "Dribble Drills" }, + { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + { "current_wle_fp4_09_04", "Skyline Park" }, + { "current_wle_fp4_09_05", "Birthday bonanza" }, + { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + { "current_wle_fp4_09_1_02", "Haute voltige" }, + { "current_wle_fp4_09_2_01", "DNA Test" }, + + { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + { "current_wle_fp4_10_02", "Hot Blast" }, + { "current_wle_fp4_10_03", "Box Fan Blitz" }, + { "current_wle_fp4_10_04", "Woo-terfall Way" }, + { "current_wle_fp4_10_05", "Slime race" }, + { "current_wle_fp4_10_06", "Moving Day" }, + { "current_wle_fp4_10_07", "Birthday Dash" }, + { "current_wle_fp4_10_08_m", "Wall Breaker" }, + { "current_wle_fp4_10_08", "Chess History" }, + { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + { "current_wle_fp4_10_12", "Chickens run away" }, + { "current_wle_fp4_10_20", "Co-op and CO" }, + { "current_wle_fp4_10_23", "Construction Site" }, + { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + { "current_wle_fp4_10_0_02", "Molehills" }, + + { "current_wle_fp5_2_01_01", "Plummet Summit" }, + { "current_wle_fp5_2_01_02", "タワークライム" }, + { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + { "current_wle_fp5_2_01", "Jabonsotes" }, + { "current_wle_fp5_2_02_01", "のっぽタワー" }, + { "current_wle_fp5_2_02_02", "Blaster Course" }, + { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + { "current_wle_fp5_2_02_04", "The hard Climb" }, + { "current_wle_fp5_2_02_05", "sliding guys" }, + { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + { "current_wle_fp5_2_02", "Rainbow highway" }, + { "current_wle_fp5_2_03", "Falligator" }, + { "current_wle_fp5_2_04_01", "Lily Lovers" }, + { "current_wle_fp5_2_04_02", "rainow rode" }, + { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + { "current_wle_fp5_2_04_04", "Super crazy level" }, + { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + { "current_wle_fp5_2_05_01", "Level XVIII" }, + { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + { "current_wle_fp5_2_05_04", "rainbow roade" }, + { "current_wle_fp5_2_05", "The tension Parkour" }, + { "current_wle_fp5_2_06", "Stairing Contest" }, + { "current_wle_fp5_2_07", "Vibrant Ascension" }, + + { "current_wle_fp5_3_05_01", "Beany Golf!" }, + { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + { "current_wle_fp5_4_01_01", "Tilted Walls" }, + { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + + { "current_wle_fp5_10_01", "Breezy Buddies" }, + { "current_wle_fp5_10_0_01", "Salto Plancha" }, + { "current_wle_fp5_10_0_02", "My house" }, + { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + { "current_wle_fp5_10_1_01", "Desert Ruins" }, + { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_01", "Desert Ruins" }, + { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_03", "Mystic River" }, + { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + { "current_wle_fp5_10_2_05", "Cliffside" }, + { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + { "current_wle_fp5_10_2_07", "The Avenue" }, + { "current_wle_fp5_10_2_08", "Gold City" }, + { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + { "current_wle_fp5_10_2_10", "初心者用コース" }, + { "current_wle_fp5_10_2_11", "Chain Reaction" }, + + { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + { "current_wle_fp5_wk3_1_04", "El airecito" }, + { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + + { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + { "current_wle_fp5_falloween_1_06", "Mirage" }, + { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + { "current_wle_fp5_falloween_1_08", "Toon World" }, + { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + { "current_wle_fp5_falloween_2_03_06", "Spider" }, + { "current_wle_fp5_falloween_2_03", "fastoween" }, + { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + { "current_wle_fp5_falloween_4_05", "Scary Final" }, + { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + { "current_wle_fp5_falloween_4_08", "Catoween" }, + { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + { "current_wle_fp5_falloween_5_04", "Halloween" }, + { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + { "current_wle_fp5_falloween_9_02", "Raveyard" }, + { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + { "current_wle_fp5_falloween_11_01", "Night Runners" }, + { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + { "current_wle_fp5_falloween_13_01", "Witch Way" }, + { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + + { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + { "current_wle_fp6_1_03", "SKULL KING" }, + { "current_wle_fp6_1_04", "shorter circuit" }, + { "current_wle_fp6_1_05", "be speedy" }, + { "current_wle_fp6_1_06", "Sky-City Stumble" }, + { "current_wle_fp6_1_07", "Wormhole Mountain" }, + { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + { "current_wle_fp6_1_09", "Splitspeed" }, + { "current_wle_fp6_1_10", "Fall Canyon" }, + { "current_wle_fp6_2_01", "Valise" }, + { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + { "current_wle_fp6_2_03", "Water Way" }, + { "current_wle_fp6_2_04", "The Doors of Doom" }, + { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + { "current_wle_fp6_2_06", "Liana Swings" }, + { "current_wle_fp6_2_07", "Colourful" }, + { "current_wle_fp6_2_08", "The Heist!" }, + { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + { "current_wle_fp6_3_01", "Tricky Treat" }, + { "current_wle_fp6_3_02", "The Lighthouse" }, + { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + { "current_wle_fp6_3_04", "The Scarescraper" }, + { "current_wle_fp6_3_05", "Obstacle Road" }, + { "current_wle_fp6_3_06", "Rest In Paris" }, + { "current_wle_fp6_3_07", "Horror pumpkim" }, + { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + + { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + { "current_wle_fp6_wk2_03", "Slidy Road" }, + { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + { "current_wle_fp6_wk2_05", "Lost in space" }, + { "current_wle_fp6_wk2_06", "Turbine Decline" }, + { "current_wle_fp6_wk2_07", "Zero Displacement" }, + { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + { "current_wle_fp6_wk2_10", "Neoway" }, + { "current_wle_fp6_wk2_11", "Niagara Falls" }, + { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + { "current_wle_fp6_wk2_1_06", "Locomoção" }, + { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + + { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + { "current_wle_fp6_wk3_02", "Compact 5" }, + { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + { "current_wle_fp6_wk3_05", "Alto voltaje" }, + { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + { "current_wle_fp6_wk3_09", "Work and Travel" }, + { "current_wle_fp6_wk3_10", "connect the bridge" }, + { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + { "current_wle_fp6_wk3_2_02", "speed demon" }, + { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + + { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + { "current_wle_fp6_wk4_03_05", "Snow Style" }, + { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + { "current_wle_fp6_wk4_05_01", "Rebound" }, + { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + + { "current_wle_community_10_5_01", "Snowy Starfall" }, + { "current_wle_community_10_5_02", "The Earthquake" }, + { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + { "current_wle_community_10_5_1_04", "Garden of Woo" }, + { "current_wle_community_10_5_1_05", "Out in the open" }, + { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + { "current_wle_community_10_5_1_08", "Jungle Journey" }, + { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + { "current_wle_community_10_5_1_15", "Three Rooms" }, + { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + { "current_wle_community_10_5_1_17", "Winter Slide" }, + { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + + { "wle_s10_cf_round_001", "Blocky Bridges" }, + { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + { "wle_s10_cf_round_003", "Drop n' Drag" }, + { "wle_s10_cf_round_004", "Fun with Fans" }, + + { "wle_mrs_bagel", "Rainbow Rally" }, + { "wle_mrs_shuffle_show", "Digi's Shuffle Selection" }, + { "wle_mrs_shuffle_show_squads", "Squads Scramble" }, + { "wle_shuffle_discover", "SOLOS SHUFFLE" }, + { "wle_mrs_bouncy_bean_time", "Bouncy Bean Time" }, + { "wle_mrs_winter", "Winter Wonders" }, + { "wle_shuffle_chill", "Chill Shuffle" }, + { "wle_mrs_survival_showdown", "Survival Showdown" }, + { "wle_shuffle_survival", "Survival Shuffle" }, + { "wle_mrs_ugc_playful_pioneers", "Playful Pioneers" }, + { "wle_playful_shuffle", "Playful Pioneers Shuffle" }, + { "event_april_fools", "Fool and Fall Shuffle" }, + { "wle_nature_ltm", "Wilderness Falls" }, + + { "private_lobbies", "Custom Show" }, + { "fall_guys_creative_mode", "Fall Guys Creative" }, + { "invisibeans_mode", "Sweet Thieves" }, + } + }, + { Language.French, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "anniversary_fp12_ltm", "Fête d'anniversaire" }, + { "casual_show", "Exploration" }, + { "classic_duos_show", "Duos" }, + { "classic_solo_main_show", "Solo" }, + { "classic_squads_show", "Groupes" }, + { "collectables_ss2_batch_01", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model1", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model2", "Émission dans lobbies de debug" }, + { "collectables_ss2_batch_02", "Émission dans lobbies de debug" }, + { "collectables_ss2_batch_02_model1", "Émission dans lobbies de debug" }, + { "collectables_ss2_batch_02_model2", "Émission dans lobbies de debug" }, + { "collectables_ss2_batch_03", "Émission dans lobbies de debug" }, + { "collectables_ss2_batch_03_model1", "Émission dans lobbies de debug" }, + { "collectables_ss2_batch_03_model2", "Émission dans lobbies de debug" }, + { "collectables_ss2_batch_04", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model1", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model2", "Batch 4 Collectables" }, + { "collectables_ss2_batch_05", "batch5" }, + { "collectables_ss2_batch_05_model1", "batch5" }, + { "collectables_ss2_batch_05_model2", "batch5" }, + { "duos_show_ss2_launch", "Duos SS2" }, + { "duos_show_ss2_parrot", "Duos" }, + { "event_animals_template", "Fête aux bébêtes" }, + { "event_anniversary_season_1", "Fête d'anniversaire" }, + { "event_anniversary_season_1_0408_to_0808_2022", "Fête d'anniversaire" }, + { "event_anniversary_season_1_1706_to_2106_2022", "K.-O. classique" }, + { "event_anniversary_season_1_alternate_name", "K.-O. classique" }, + { "event_aprilstart_0404_1004", "Title" }, + { "event_autumn_festival_squads_1708_to_1808_2022", "Célébration de groupe" }, + { "event_autumn_festival_squads_2109_2709_21", "Célébration de groupe" }, + { "event_autumn_festival_squads_2110_2210_2022", "Célébration de groupe" }, + { "event_blast_ball_banger_1309_to_1409_2022", "Balles rebondissantes à gogo" }, + { "event_blast_ball_banger_1710_1810_2022", "Balles rebondissantes à gogo" }, + { "event_blast_ball_banger_2310_2410_2022", "Balles rebondissantes à gogo" }, + { "event_blast_ball_banger_2408_to_2808_2022", "Balles rebondissantes à gogo" }, + { "event_blast_ball_banger_2609_to_2809_2022", "Balles rebondissantes à gogo" }, + { "event_blast_ball_banger_template", "Balles rebondissantes à gogo" }, + { "event_bubble_template", "Fête d'anniversaire" }, + { "event_clan_of_yeetus_2509_to_2709_2022", "Clan Yeetus" }, + { "event_clan_of_yeetus_ss2_2110_2210_2022", "Clan Yeetus" }, + { "event_clan_of_yeetus_ss2_2509_2709_2022", "Clan Yeetus" }, + { "event_day_at_races_squads_1610_1710_2022", "Sur la piste de course en groupe" }, + { "event_day_at_races_squads_2308_to_2408_2022", "Sur la piste de course en groupe" }, + { "event_day_at_races_squads_2707_to_2807_2022", "Sur la piste de course en groupe" }, + { "event_day_at_races_squads_template", "Sur la piste de course en groupe" }, + { "event_day_at_the_races_ltm", "Sur la piste de course en solo" }, + { "event_end_of_season_s1", "Épisode final 1/5 : L'émission du jeudi" }, + { "event_end_of_season_s2", "Épisode final 2/5 : L'émission du vendredi" }, + { "event_end_of_season_s3", "Épisode final 3/5 : L'émission du samedi" }, + { "event_end_of_season_s4", "Épisode final 4/5 : L'émission du dimanche" }, + { "event_end_of_season_s5", "Épisode final 5/5 : L'émission du lundi" }, + { "event_fall_ball_101022_121022", "Tournoi de Fall Ball" }, + { "event_fan_favourites_1807_to_2107_2022", "Best of des Fans" }, + { "event_fan_favourites_1908_to_2108_2022", "Best of des Fans" }, + { "event_fan_favourites_s6_template", "Best of des Fans" }, + { "event_fan_favourites_template", "Best of des Fans" }, + { "event_fanfare_template", "Explosion" }, + { "event_fruit_basket", "Corbeille de fruits" }, + { "event_hilaria_2022", "???????????" }, + { "event_invisibeans_ss2_1010_1210_2022", "VOLEURS SUCRÉS" }, + { "event_kudos_blow_up_0910_to_1110_2021", "Le temps c'est des Kudos ! : Emporté par le vent" }, + { "event_kudos_blow_up_template", "Le temps c'est des Kudos ! : Emporté par le vent" }, + { "event_kudos_bollard_greens_1310_to_1510_2021", "Le temps c'est des Kudos ! : Fête de poteaux" }, + { "event_kudos_bollard_greens_1510_to_1710_2021", "Le temps c'est des Kudos ! : Fête de poteaux" }, + { "event_kudos_bollard_greens_template", "Le temps c'est des Kudos ! : Fête de poteaux" }, + { "event_kudos_gravity_wield_1110_to_1310_2021", "Le temps c'est des Kudos ! : Maniement de la gravité" }, + { "event_kudos_gravity_wield_1310_to_1510_2021", "Le temps c'est des Kudos ! : Maniement de la gravité" }, + { "event_kudos_gravity_wield_template", "Le temps c'est des Kudos ! : Maniement de la gravité" }, + { "event_kudos_jumping_for_joy_0510_to_0710_2021", "Le temps c'est des Kudos ! : Sauter de joie" }, + { "event_kudos_jumping_for_joy_0710_to_0910_2021", "Le temps c'est des Kudos ! : Sauter de joie" }, + { "event_kudos_jumping_for_joy_template", "Le temps c'est des Kudos ! : Sauter de joie" }, + { "event_kudos_spin_cycle_0710_to_0910_2021", "Le temps c'est des Kudos ! : Cycle de rotation" }, + { "event_kudos_spin_cycle_1110_to_1310_2021", "Le temps c'est des Kudos ! : Cycle de rotation" }, + { "event_kudos_spin_cycle_template", "Le temps c'est des Kudos ! : Cycle de rotation" }, + { "event_le_anchovy_private_lobbies", "Tu me fais Kraken" }, + { "event_le_anchovy_template", "Tu me fais Kraken" }, + { "event_le_halloween_slime_climb", "COUP DE BÂTON" }, + { "event_le_halloween_slime_climb_2110_to_0111_2021", "COUP DE BÂTON" }, + { "event_le_halloween_team_squads", "BONBON (Trios)" }, + { "event_le_halloween_team_squads_2110_to_0111_2021", "BONBON (Trios)" }, + { "event_new_year_s6", "Corps de haricot prêt" }, + { "event_no_teams", "Sans équipe" }, + { "event_only_1v1_volleyfall_squads_ss1_or_ss2_show2", "Tournoi de volleyfall" }, + { "event_only_basketfall", "Slam Dunk" }, + { "event_only_blast_ball_trials_0609_to_0709_2022", "Épreuves Balle rebondissante" }, + { "event_only_blast_ball_trials_1608_to_1708_2022", "Épreuves Balle rebondissante" }, + { "event_only_blast_ball_trials_1907_to_2007_2022", "Épreuves Balle rebondissante" }, + { "event_only_blast_ball_trials_template", "Épreuves Balle rebondissante" }, + { "event_only_bubbles_template", "Bulles qui s'accumulent" }, + { "event_only_button_bashers_template", "Top Massacreur de boutons" }, + { "event_only_drumtop_0607_to_0707_2022", "Fol'Virevoltes tropicales" }, + { "event_only_drumtop_0908_to_1008_2022", "Fol'Virevoltes tropicales" }, + { "event_only_drumtop_3108_to_0109_2022", "Fol'Virevoltes tropicales" }, + { "event_only_drumtop_template", "Fol'Virevoltes tropicales" }, + { "event_only_fall_ball_011122_031122", "Tournoi de Fall Ball" }, + { "event_only_fall_ball_0407_to_0507_2022", "Tournoi de Fall Ball" }, + { "event_only_fall_ball_1810_2010_2022", "Tournoi de Fall Ball" }, + { "event_only_fall_ball_custom_lobby", "Tournoi de Fall Ball" }, + { "event_only_fall_ball_squads_0106_to_0206_2022", "Tournoi de Fall Ball" }, + { "event_only_fall_ball_squads_1609_to_1809_2022", "Tournoi de Fall Ball" }, + { "event_only_fall_ball_squads_template", "Tournoi de Fall Ball" }, + { "event_only_fall_ball_template", "Tournoi de Fall Ball" }, + { "event_only_fall_ball_trios_ranked", "Trios Tournoi de Fall Ball - Classé" }, + { "event_only_finals_2904_to_0105_2022", "Marathon de finales" }, + { "event_only_finals_template", "Marathon de finales" }, + { "event_only_finals_v2_template", "Marathon de finales" }, + { "event_only_finals_v3_ranked", "Marathon des finales - Classé" }, + { "event_only_finals_v3_template", "Marathon de finales" }, + { "event_only_floor_fall_0510_to_0610_2022", "Ronde hexagonale" }, + { "event_only_floor_fall_2510_2610_2022", "Ronde hexagonale" }, + { "event_only_floor_fall_custom_lobby", "Ronde hexagonale" }, + { "event_only_floor_fall_low_grav", "Ronde Hex-Gravité" }, + { "event_only_floor_fall_low_grav_0108_to_0208_2022", "Ronde Hex-Gravité" }, + { "event_only_floor_fall_low_grav_0507_to_0607_2022", "Ronde Hex-Gravité" }, + { "event_only_floor_fall_low_grav_2208_to_2308_2022", "Ronde Hex-Gravité" }, + { "event_only_floor_fall_template", "Ronde hexagonale" }, + { "event_only_hard_mode_1306_to_1406_2022", "Concours d'élite" }, + { "event_only_hard_mode_private_lobbies", "Concours d'élite" }, + { "event_only_hard_mode_template", "Concours d'élite" }, + { "event_only_hexaring_1808_to_2208_2022", "Ronde Hexathlon" }, + { "event_only_hexaring_template", "Ronde Hexathlon" }, + { "event_only_hoverboard_template", "Cap Hoverboard" }, + { "event_only_jump_club_0109_to_0209_2022", "Et que ça saute !" }, + { "event_only_jump_club_1008_to_1108_2022", "Et que ça saute !" }, + { "event_only_jump_club_1907_to_2007_2022", "Et que ça saute !" }, + { "event_only_jump_club_2305_to_2405_2022_v2", "Et que ça saute !" }, + { "event_only_jump_club_2706_to_2806_2022", "Et que ça saute !" }, + { "event_only_jump_club_custom_lobby", "Et que ça saute !" }, + { "event_only_jump_club_ss2_0310_0410_2022", "Et que ça saute !" }, + { "event_only_jump_club_template", "Et que ça saute !" }, + { "event_only_pixelperfect", "AU PIXEL PRÈS" }, + { "event_only_races_any_final_2406_to_2606_2022", "Sur la piste de course en solo" }, + { "event_only_races_any_final_2505_to_2605_2022", "Sur la piste de course en solo" }, + { "event_only_races_any_final_private_lobbies", "Sur la piste de course en solo" }, + { "event_only_races_any_final_template", "Sur la piste de course en solo" }, + { "event_only_races_no_lava_template", "Sur la piste de course en solo" }, + { "event_only_races_template", "Sur la piste de course en solo" }, + { "event_only_roll_on", "Roulé-Boulé uniquement" }, + { "event_only_roll_out", "Tournée Générale" }, + { "event_only_roll_out_0806_to_0906_2022", "Tournée Générale" }, + { "event_only_roll_out_2005_to_2205_2022", "Tournée Générale" }, + { "event_only_roll_out_custom_lobby", "Tournée Générale" }, + { "event_only_season_2_variation_template", "Joutes médiévales" }, + { "event_only_season_3_variation_template", "Remix" }, + { "event_only_season_4", "Cafouillis futuristes" }, + { "event_only_season_4_1507_to_1707_2022", "Cafouillis futuristes" }, + { "event_only_season_4_2705_to_2905_2022", "Cafouillis futuristes" }, + { "event_only_season_4_custom_lobby", "Cafouillis futuristes" }, + { "event_only_season_4_variation_template", "Remix" }, + { "event_only_season_5_0309_1209", "La jungle dans tous ses états" }, + { "event_only_season_5_0409_to_0509_2022", "La jungle dans tous ses états" }, + { "event_only_season_5_0807_to_1007_2022", "La jungle dans tous ses états" }, + { "event_only_season_5_0909_to_1009_2022", "La jungle dans tous ses états" }, + { "event_only_season_5_custom_lobby", "La jungle dans tous ses états" }, + { "event_only_season_5_template", "La jungle dans tous ses états" }, + { "event_only_season_5_variation_template", "Remix" }, + { "event_only_season_6_launch_party", "Jour de fête et de pirouettes" }, + { "event_only_season_6_launch_party_1703_to_1903_2022", "Jour de fête et de pirouettes" }, + { "event_only_season_6_template", "Jour de fête et de pirouettes" }, + { "event_only_skeefall_timetrial_0309_to_0409_2022", "Les hauts scores des pistes folles" }, + { "event_only_skeefall_timetrial_0711_0711_2022", "Les hauts scores des pistes folles" }, + { "event_only_skeefall_timetrial_1307_to_1407_2022", "Les hauts scores des pistes folles" }, + { "event_only_skeefall_timetrial_1508_to_1608_2022", "Les hauts scores des pistes folles" }, + { "event_only_skeefall_timetrial_1909_to_2009_2022", "Les hauts scores des pistes folles" }, + { "event_only_skeefall_timetrial_2710_2810_2022", "Les hauts scores des pistes folles" }, + { "event_only_skeefall_timetrial_s6_1", "Les hauts scores des pistes folles" }, + { "event_only_skeefall_timetrial_ss2_1909_2009_2022", "Les hauts scores des pistes folles" }, + { "event_only_slime_climb", "Trek gélatineux" }, + { "event_only_slime_climb_0110_to_0210_2022", "Trek gélatineux" }, + { "event_only_slime_climb_0308_to_0408_2022", "Trek gélatineux" }, + { "event_only_slime_climb_0709_to_0809_2022", "Trek gélatineux" }, + { "event_only_slime_climb_1107_to_1207_2022", "Trek gélatineux" }, + { "event_only_slime_climb_1506_to_1606_2022", "Trek gélatineux" }, + { "event_only_slime_climb_2608_to_2708_2022", "Trek gélatineux" }, + { "event_only_slime_climb_2_0606_to_0706_2022", "Cap : Tour gélatineuse" }, + { "event_only_slime_climb_2_0709_to_0909_2021", "Cap : Tour gélatineuse" }, + { "event_only_slime_climb_2_2910_3010_2022", "Cap : Tour gélatineuse" }, + { "event_only_slime_climb_2_template", "Cap : Tour gélatineuse" }, + { "event_only_slime_climb_ss2_0110_0210_2022", "Trek gélatineux" }, + { "event_only_ss2_squads_1910_2110_2022", "1, 2, 3, VERS LES ÉTOILES !" }, + { "event_only_ss2_squads_template", "1, 2, 3, VERS LES ÉTOILES !" }, + { "event_only_survival_fittest_3110_0111_2022", "Le plus fort survivra" }, + { "event_only_survival_private_lobbies", "Survivants de la gélatine" }, + { "event_only_survival_ss2_3009_0210_2022", "Le plus fort survivra" }, + { "event_only_thin_ice_0205_to_0205_2022", "Ronde la Glace" }, + { "event_only_thin_ice_template", "Ronde la Glace" }, + { "event_only_tip_toe_0204_to_0304_2022", "Tournoi Pointe des pieds" }, + { "event_only_tip_toe_0209_to_0309_2022", "Tournoi Pointe des pieds" }, + { "event_only_tip_toe_2507_to_2607_2022", "Tournoi Pointe des pieds" }, + { "event_only_tip_toe_2809_to_2909_2022", "Tournoi Pointe des pieds" }, + { "event_only_tip_toe_2909_to_3009_2022", "Tournoi Pointe des pieds" }, + { "event_only_tip_toe_template", "Tournoi Pointe des pieds" }, + { "event_only_volleyfall_squads_ss2_1110_1210_2022", "Tournoi de volleyfall" }, + { "event_only_volleyfall_squads_ss2_2010_2110_2022", "Tournoi de volleyfall" }, + { "event_oriole_0612_to_1212_2021", "Le chaos des bonbonnes à flambée d'Aloy" }, + { "event_oriole_template", "Le chaos des bonbonnes à flambée d'Aloy" }, + { "event_pixel_palooza_2210_2310_2022", "Pixels en folie" }, + { "event_pixel_palooza_template", "Pixels en folie" }, + { "event_s6_651_template", "PLACEHOLDER SHOW" }, + { "event_s9_crayfish_template", "Foire aux cadeaux" }, + { "event_season_2_highlight_1006_to_1206_2022", "Pagaille médiévale" }, + { "event_season_2_highlight_2907_to_3107_2022", "Pagaille médiévale" }, + { "event_season_2_highlight_template", "Pagaille médiévale" }, + { "event_season_3_highlight_0306_to_0506_2022", "Batailles hivernales" }, + { "event_season_3_highlight_2607_to_2707_2022", "Batailles hivernales" }, + { "event_season_3_highlight_template", "Batailles hivernales" }, + { "event_snowday_stumble", "Batailles hivernales" }, + { "event_sports_suddendeath_squads", "Défi de but doré" }, + { "event_sports_suddendeath_squads_0208_to_0308_2022", "Défi de but doré" }, + { "event_sports_suddendeath_squads_0407_to_0507_2022", "Défi de but doré" }, + { "event_sports_suddendeath_squads_0509_to_0609_2022", "Défi de but doré" }, + { "event_sports_suddendeath_squads_2603_to_2803_2022", "Défi de but doré" }, + { "event_sports_template", "Festival des sports" }, + { "event_squads_festival_ss2_2409_2509_2022", "Célébration de groupe" }, + { "event_squads_survival_0509_to_0609_2022", "Groupes de survie" }, + { "event_squads_survival_0511_0711_2022", "Groupes de survie" }, + { "event_squads_survival_0808_to_0908_2022", "Groupes de survie" }, + { "event_squads_survival_ss2_0710_0910_2022", "Groupes de survie" }, + { "event_squads_survival_template", "Groupes de survie" }, + { "event_stars01_0404_1004", "Adaptation !" }, + { "event_stars02_1804_to_2404_2022", "Logique !" }, + { "event_stars03_0305_to_0805_2022", "Courage !" }, + { "event_summer_squads_0107_0407_2022", "Célébration de groupe" }, + { "event_summer_squads_2107_2507", "Célébration de groupe" }, + { "event_symphony_launch_show_1310_1610_2022", "Stars du stade" }, + { "event_symphony_launch_show_template", "Stars du stade" }, + { "event_tail_tag_april_show", "ERREUR 01/04" }, + { "event_test_season_5", "Duos" }, + { "event_twitch_rivals", "Twitch Rivals" }, + { "event_vulture_1612_to_2712_2021", "Vilain ou Sage" }, + { "event_vulture_template", "Vilain ou Sage" }, + { "event_walnut_template", "Hex-athon" }, + { "event_week_of_romance_s6_duo_teams", "Festival de Duos" }, + { "event_xtreme_fall_guys_0211_0411_2022", "Solo Xtrême" }, + { "event_xtreme_fall_guys_2207_to_2407_2022", "Solo Xtrême" }, + { "event_xtreme_fall_guys_2903_to_3103_2022", "Solo Xtrême" }, + { "event_xtreme_fall_guys_2908_to_3108_2022", "Solo Xtrême" }, + { "event_xtreme_fall_guys_squads_1208_to_1408_2022", "Groupes Xtrême" }, + { "event_xtreme_fall_guys_squads_2906_to_3006_2022", "Groupes Xtrême" }, + { "event_xtreme_fall_guys_squads_2908_to_3108_2022", "Groupes Xtrême" }, + { "event_xtreme_fall_guys_squads_ss2_1310_1510_2022", "Groupes Xtrême" }, + { "event_xtreme_fall_guys_squads_ss2_2109_2309_2022", "Groupes Xtrême" }, + { "event_xtreme_fall_guys_squads_template", "Groupes Xtrême" }, + { "event_xtreme_fall_guys_ss2_0310_0510_2022", "Solo Xtrême" }, + { "event_xtreme_fall_guys_template", "Solo Xtrême" }, + { "event_yeetus_111022_121022", "Spéciale Big Yeetus" }, + { "event_yeetus_3005_to_3105_2022", "Spéciale Big Yeetus" }, + { "event_yeetus_template", "Spéciale Big Yeetus" }, + { "explore_points", "Exploration - Points" }, + { "fp16_ski_fall_high_scorers", "Les hauts scores des pistes folles" }, + { "ftue_uk_show", "Tournois" }, + { "greatestsquads_ltm", "Groupes spectaculaires" }, + { "greatestsquads_ranked", "Groupes spectaculaires - Classé" }, + { "invisibeans_0508_to_0708_2022", "VOLEURS SUCRÉS" }, + { "invisibeans_0707_to_1107_2022", "VOLEURS SUCRÉS" }, + { "invisibeans_0803_to_1303_2022", "VOLEURS SUCRÉS" }, + { "invisibeans_181022_201022", "VOLEURS SUCRÉS" }, + { "invisibeans_2209_to_2409_2022", "VOLEURS SUCRÉS" }, + { "invisibeans_2808_to_3008_2022", "VOLEURS SUCRÉS" }, + { "invisibeans_pistachio_template", "Voleurs de bonbons" }, + { "invisibeans_template", "VOLEURS SUCRÉS" }, + { "knockout_duos", "Duos" }, + { "knockout_mode", "Tournois" }, + { "knockout_mode_pl", "Tournois" }, + { "knockout_squads", "Groupes" }, + { "live_event_bluejay", "Gotta Go Fast !" }, + { "live_event_clan_of_yeetus_0411_0611_2022", "Clan Yeetus" }, + { "live_event_clan_of_yeetus_ss1_template", "Clan Yeetus" }, + { "live_event_peanut_ss2_01", "e. J'ai t" }, + { "live_event_peanut_ss2_02", "i trouvé u" }, + { "live_event_peanut_ss2_03", "é une v" }, + { "live_event_peanut_ss2_04", "e ville p" }, + { "live_event_peanut_ss2_05", "e perdue s" }, + { "live_event_peanut_ss2_06", "e sous l" }, + { "live_event_peanut_ss2_07", "s les e" }, + { "live_event_peanut_ss2_08", "s eaux d" }, + { "live_event_peanut_ss2_09", "x du B" }, + { "live_event_peanut_ss2_10", "u Blunderdome. J" }, + { "live_event_pelican_template", "Épreuve Spartan" }, + { "live_event_satellite_collectibles_solo_template", "Opération de réparation du satellite" }, + { "live_event_satellite_collectibles_template", "Opération de réparation du satellite" }, + { "live_event_ss2_potoo_template", "LE POUVOIR DU HARICOT ANCESTRAL" }, + { "live_event_ss2_potoo_template_test", "POTOO TEST! NOT FINAL!" }, + { "live_event_symphony_launch_show_template", "Stars du stade" }, + { "live_event_timeattack_dizzyheights", "Épreuve c.-la-m. – Hauteurs vertigineuses" }, + { "live_event_timeattack_lilyleapers", "Épreuve c.-la-m. – Virevoltes tropicales" }, + { "live_event_timeattack_partyprom", "Épreuve c.-la-m. – Promenade festive" }, + { "live_event_timeattack_shuffle", "C.-la-m. aléatoire" }, + { "live_event_timeattack_shuffle_pl", "C.-la-m. aléatoire" }, + { "live_event_timeattack_trackattack", "Épreuve c.-la-m. – Attaque sur piste" }, + { "live_event_timeattack_treetoptumble", "Épreuve c.-la-m. – Culbut'Arbre" }, + { "live_event_timeattack_tundrarun", "Épreuve c.-la-m. – Dans la toundra" }, + { "main_show", "Solo" }, + { "main_show_2player", "Émission principale" }, + { "main_show_private_lobbies", "Solo" }, + { "main_show_ss2_launch_pl", "Solo" }, + { "main_show_template_base", "Émission principale" }, + { "main_show_template_large", "Émission principale" }, + { "main_show_template_medium", "Émission principale" }, + { "mrs_pegwin_winter_2teamsfinal", "Pingouins en folie" }, + { "no_elimination_explore", "Exploration - Classique" }, + { "no_elimination_show", "SOLO SIMPLE" }, + { "only_1v1_volleyfall", "Tournoi de volleyfall" }, + { "only_1v1_volleyfall_191022_211022", "Tournoi de volleyfall" }, + { "only_solo_ss2_rounds_show", "1, 2, 3, VERS LES ÉTOILES !" }, + { "pl_blastball", "Balle Rebondissante" }, + { "pl_duos_show", "Duos" }, + { "pl_fallmountain", "La Grimpette" }, + { "pl_hexagone", "Hexagone Infernal" }, + { "pl_hexaring", "Hex-Anneau" }, + { "pl_hexaterrestrial", "Hexa-Terrestre" }, + { "pl_jumpshowdown", "Les Rois du Saut" }, + { "pl_krakenslam", "Valse du Kraken" }, + { "pl_losttemple", "Temple Perdu" }, + { "pl_rolloff", "Ça Coule" }, + { "pl_royal_fumble", "Bazar Royal" }, + { "pl_solo_main_show", "Solo" }, + { "pl_squads_show", "Groupes" }, + { "pl_thin_ice", "Fonte des Glaces" }, + { "pl_tiptoefinale", "Finale sur la Pointe des Pieds" }, + { "pl_vaulted_show", "Le Coffre fort" }, + { "placeholder", ""}, + { "playlist_fallguys_skill", "playlist_fallguys_skill" }, + { "playlist_fallguys_solo", "playlist_fallguys_solo" }, + { "playlist_fallguys_soloskill", "playlist_fallguys_soloskill" }, + { "playlist_fallguys_squad", "playlist_fallguys_squad" }, + { "ranked_duos_show", "Duo classé" }, + { "ranked_show_knockout", "Tournois classés" }, + { "ranked_solo_show", "Solo classé" }, + { "ranked_squads_show", "Groupe classé" }, + { "ranked_trios_show", "Trio classé" }, + { "reversed_knockout_show", "Sionruot" }, + { "showcase_fp13", "Férus de ferraille" }, + { "showcase_fp16", "Folie givrée" }, + { "showcase_fp17", "Festival haricœur à prendre" }, + { "showcase_fp18", "Trios fous" }, + { "showcase_fp19", "Chaud devant à Dégringopolis !!!" }, + { "showcase_fp20", "Blunderplage des haricots" }, + { "show_episode_level_variation_sy2_launch_01", "Remix" }, + { "show_episode_level_variation_sy2_launch_02", "Remix" }, + { "show_episode_level_variation_sy2_launch_03", "Remix" }, + { "show_episode_level_variation_sy2_launch_04", "Remix" }, + { "show_episode_level_variation_sy2_launch_05", "Remix" }, + { "show_episode_level_variation_victoria_1", "Remix" }, + { "show_episode_level_variation_victoria_2", "Remix" }, + { "show_episode_level_variation_victoria_3", "Remix" }, + { "show_episode_level_variation_victoria_4_squads", "Remix" }, + { "show_robotrampage_ss2_2809_to_2909_2022", "Confront. C'est du lourd" }, + { "show_robotrampage_ss2_show1_2510_2610_2022", "Confront. C'est du lourd" }, + { "show_robotrampage_ss2_show1_template", "Confront. C'est du lourd" }, + { "slime_survivors", "Survivants de la gélatine" }, + { "solo_show_pl_all_rounds", "Émission de variété solo" }, + { "solo_show_ss2_launch", "Solo SS2" }, + { "solo_show_ss2_parrot", "Solo" }, + { "spectator_show", "Sport spectateur" }, + { "sports_show", "Jeux de Fall Guys" }, + { "squad_duo_slimeclimbs", ""}, + { "squad_show", "GROUPES" }, + { "squad_show_2player", "GROUPES" }, + { "squad_show_2player_laps", "GROUPES" }, + { "squad_show_survival", "DEBUG Squad Show Survival" }, + { "squad_show_team_2player", "Erreur de connexion" }, + { "squadcelebration", "Célébration de groupe" }, + { "squads_2player_1403_to_0205_2022", "Duos" }, + { "squads_2player_automation", "Duos" }, + { "squads_2player_points_test", "Duos" }, + { "squads_2player_template", "Duos" }, + { "squads_3player_0111_1511_21", "Trios" }, + { "squads_3player_0208_to_1508_2021", "Trios" }, + { "squads_3player_04012022_to_13012022", "Trios" }, + { "squads_3player_automation", "Trios" }, + { "squads_3player_template", "Trios" }, + { "squads_4player", "Groupes" }, + { "squads_4player_2812_no_end", "Groupes" }, + { "squads_4player_after_potoo", "Groupes" }, + { "squads_show_ss2_launch", "Groupes SS2" }, + { "squads_show_ss2_parrot", "Groupes" }, + { "survival_of_the_fittest", "Le plus fort survivra" }, + { "teams_show", "Erreur de connexion" }, + { "teams_show_ltm", "Duos dynamiques" }, + { "timeattack_mode", "Contre-la-montre" }, + { "toms_main_show_5_2", "Émission principale" }, + { "toms_show2", "Toms Show 2" }, + { "turbo_show", "Solo" }, + { "turbo_2_show", "Solo" }, + { "ultimate_party_adventure", "Groupe ultime - Aventure" }, + { "wallguys_test", "MURS
SANS FRONTIÈRES" }, + { "wle_lobby_template", "Show Name" }, + { "wle_lobby_template_validation", "Show Name" }, + { "wle_mrs_template", "placeholder" }, + { "wle_srs_multi_winner_template_filler", "placeholder" }, + { "wle_srs_multi_winner_template_final", "placeholder" }, + { "wle_srs_multi_winner_template_opener", "placeholder" }, + { "wle_srs_single_winner_template_filler", "placeholder" }, + { "wle_srs_single_winner_template_final", "placeholder" }, + { "wle_srs_single_winner_template_opener", "placeholder" }, + { "xtreme_explore", "Exploration - Xtrême" }, + { "xtreme_party", "Fête Xtrême" }, + { "xtreme_solos_template_ranked", "Solo Xtrême classé" }, + + { "show_wle_s10_wk01_mrs", "Playlist de Manche de créateur 1" }, + { "show_wle_s10_wk3_mrs", "Playlist de Manche de créateur 2" }, + { "event_wle_s10_wk4_mrs", "Playlist de Manche de créateur 3" }, + { "show_wle_s10_wk5_mrs", "Playlist de Manche de créateur 4" }, + + { "show_wle_s10_wk01_srs_01", "Le défi des tramporythmes" }, + { "show_wle_s10_wk01_srs_02", "Cyber-circuit" }, + { "show_wle_s10_wk01_srs_03", "Cœurs pixélisés" }, + { "show_wle_s10_wk01_srs_04", "Forteresse de folie" }, + { "show_wle_s10_wk02_srs_05", "Super ruée vers les portes" }, + { "show_wle_s10_wk02_srs_06", "Spirales de wouhouuu" }, + { "show_wle_s10_wk02_srs_07", "Défi des tornades" }, + { "show_wle_s10_wk02_srs_08", "Marelle chaotique" }, + { "show_wle_s10_wk03_srs_9", "Incliné et à l'envers" }, + { "show_wle_s10_wk03_srs_10", "Rythmes rebondissants" }, + { "show_wle_s10_wk03_srs_11", "Arcs-en-ciel en Masse" }, + { "show_wle_s10_wk03_srs_12", "Pont sur pont" }, + { "show_wle_s10_wk04_srs_01", "L'épreuve de la tour" }, + { "show_wle_s10_wk04_srs_02", "Emporté, balayé" }, + { "show_wle_s10_wk04_srs_03", "Leçon de voltige" }, + { "show_wle_s10_wk04_srs_04", "Slalom serpentin" }, + { "show_wle_s10_wk05_srs_long_01", "Attention, sol manquant" }, + { "show_wle_s10_wk05_srs_long_02", "Fall Speedway" }, + { "show_wle_s10_wk05_srs_long_03", "Zig Zag Zoomies" }, + { "show_wle_s10_wk05_srs_long_04", "Terrabyte Trial" }, + + { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + { "wle_s10_player_round_wk3_02", "Door Game" }, + { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + { "wle_s10_player_round_wk3_07", "Descente Créative" }, + { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + { "wle_s10_player_round_wk3_12", "Variable Valley" }, + { "wle_s10_player_round_wk3_13", "Broken Course" }, + { "wle_s10_player_round_wk3_15", "Parkour Party" }, + { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + { "wle_s10_player_round_wk3_19", "Sky Time" }, + { "wle_s10_player_round_wk3_20", "EZz Map" }, + + { "show_wle_s10_player_round_wk4_01", "Slippery Stretch" }, + { "show_wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + { "show_wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + { "show_wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + { "show_wle_s10_player_round_wk4_06", "Topsie Tursie" }, + { "show_wle_s10_player_round_wk4_07", "Arcade Assault" }, + { "show_wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + { "show_wle_s10_player_round_wk4_09", "Green Beans" }, + { "show_wle_s10_player_round_wk4_10", "Hop Hill" }, + { "show_wle_s10_player_round_wk4_11", "Quick Sliders" }, + { "show_wle_s10_player_round_wk4_12", "Split Path" }, + { "show_wle_s10_player_round_wk4_15", "Snowboard Street" }, + { "show_wle_s10_player_round_wk4_18", "House Invasion" }, + { "show_wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + { "show_wle_s10_player_round_wk4_21", "Spin" }, + { "show_wle_s10_player_round_wk4_22", "Lane Changers" }, + + { "wle_s10_player_round_wk5_01", "Block Park" }, + { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + { "wle_s10_player_round_wk5_03", "Digital Temple" }, + { "wle_s10_player_round_wk5_04", "Tower Escape" }, + { "wle_s10_player_round_wk5_05", "Tower Dash" }, + { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + { "wle_s10_player_round_wk5_07", "Looooping" }, + { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + { "wle_s10_player_round_wk5_10", "Siank Arena" }, + { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + { "wle_s10_player_round_wk5_13", "Dessert Village" }, + { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + { "wle_s10_player_round_wk5_15", "Beast Route" }, + { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + { "wle_s10_player_round_wk5_18", "Digital Doom" }, + + { "show_wle_s10_player_round_wk6_01", "Hammer Heaven" }, + { "show_wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + { "show_wle_s10_player_round_wk6_03", "Castle Rush" }, + { "show_wle_s10_player_round_wk6_04", "Chaotic Race" }, + { "show_wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + { "show_wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + { "show_wle_s10_player_round_wk6_08", "Flower Power" }, + { "show_wle_s10_player_round_wk6_09", "Dimension Explorer" }, + { "show_wle_s10_player_round_wk6_10", "Forked Passage" }, + { "show_wle_s10_player_round_wk6_12", "The Bee Hive" }, + { "show_wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + { "show_wle_s10_player_round_wk6_14", "Snek" }, + { "show_wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + { "show_wle_s10_player_round_wk6_17", "Slippery Helixes" }, + { "show_wle_s10_player_round_wk6_18", "Recess" }, + { "show_wle_s10_player_round_wk6_19", "Parrot river" }, + { "show_wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + + { "show_wle_s10_wk07_srs_01", "Tower of Fall" }, + { "show_wle_s10_wk07_srs_02", "SOLO FULL-TILT RAGE" }, + { "show_wle_s10_wk07_srs_03", "Piso resbaloso" }, + { "show_wle_s10_wk07_srs_04", "Catastrophe Climb" }, + { "show_wle_s10_wk07_srs_05", "Sky High Run" }, + { "show_wle_s10_wk07_srs_06", "Full Speed Sliding (FSS) - Jelly Road" }, + + { "show_wle_s10_wk08_srs_01", "Push Ups" }, + { "show_wle_s10_wk08_srs_02", "Heave & Haul" }, + { "show_wle_s10_wk08_srs_03", "Stepping Stones" }, + { "show_wle_s10_wk08_srs_04", "Double Trouble" }, + + { "current_wle_fp3_07_01", "Block Sledding" }, + { "current_wle_fp3_07_02", "Layup Wallop" }, + { "current_wle_fp3_07_03", "Minecart Mayhem" }, + { "current_wle_fp3_07_04", "Bouncing Pass" }, + { "current_wle_fp3_07_05", "Ball Factory" }, + { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + { "current_wle_fp3_07_0_02", "Woo-F-O" }, + { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + + { "current_wle_fp3_08_01", "Grabbers Territory" }, + { "current_wle_fp3_08_02", "A Way Out" }, + { "current_wle_fp3_08_03", "Wall Block" }, + { "current_wle_fp3_08_04", "The dream island" }, + { "current_wle_fp3_08_05", "Rainbow pulsion" }, + { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + { "current_wle_fp3_08_10", "Crazy boxes" }, + { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + { "current_wle_fp3_08_15", "Stumble Teams" }, + { "current_wle_fp3_08_16", "Twisting Tower" }, + { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + { "current_wle_fp3_08_18", "The Rising Blocks" }, + { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + { "current_wle_fp3_09_01", "The up tower" }, + { "current_wle_fp3_09_02", "Short shuriken" }, + { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + { "current_wle_fp3_09_06", "Random Heights" }, + { "current_wle_fp3_09_07", "Climb scramble" }, + { "current_wle_fp3_09_08", "Collide Gaming" }, + { "current_wle_fp3_09_09", "Very Compressed Level" }, + { "current_wle_fp3_09_0_01", "Slippery Slope" }, + { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + { "current_wle_fp3_09_0_03", "Free Falling" }, + { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + + { "current_wle_fp3_10_01", "When Nature Falls" }, + { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + { "current_wle_fp3_10_03", "The Slime Trials" }, + { "current_wle_fp3_10_04", "Friendly Obstacles" }, + { "current_wle_fp3_10_05", "Climb and Fall" }, + { "current_wle_fp3_10_06", "Stairs and some other things" }, + { "current_wle_fp3_10_07", "Meowgical World" }, + { "current_wle_fp3_10_08", "Polluelo Speed" }, + { "current_wle_fp3_10_09", "Pixel Parade" }, + { "current_wle_fp3_10_10", "Total Madness" }, + { "current_wle_fp3_10_11", "The Abstract Maze" }, + { "current_wle_fp3_10_12", "Fan Off" }, + { "current_wle_fp3_10_13", "cloud highway" }, + { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + { "current_wle_fp3_10_15", "Speedrunners be like" }, + { "current_wle_fp3_10_16", "Tumble Tower" }, + { "current_wle_fp3_10_17", "Silver's Snake Run" }, + { "current_wle_fp3_10_18", "Now Boarding" }, + { "current_wle_fp3_10_19", "Slime Scale" }, + { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + { "current_wle_fp3_10_23", "Controlled Chaos" }, + { "current_wle_fp3_10_24", "Xtreme Jumping" }, + { "current_wle_fp3_10_25", "Odin" }, + { "current_wle_fp3_10_26", "Ciudad nube" }, + { "current_wle_fp3_10_27", "Bean Voyage" }, + { "current_wle_fp3_10_28", "SLIP-SAW" }, + { "current_wle_fp3_10_29", "Bbq bacon burger" }, + + { "current_wle_fp4_05_01_01", "巅峰车站" }, + { "current_wle_fp4_05_01_02", "Beba Park 7" }, + { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + { "current_wle_fp4_05_02", "Mini only up" }, + { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + { "current_wle_fp4_05_03_02", "Remote Control" }, + { "current_wle_fp4_05_03", "Parkway Slide" }, + { "current_wle_fp4_05_04", "Duel Dash" }, + { "current_wle_fp4_05_05", "beaten trackless road" }, + { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + { "current_wle_fp4_05_2_02", "arch city" }, + { "current_wle_fp4_05_2_03", "Desert Ruins" }, + + { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + { "current_wle_fp4_06_02", "Pachislo" }, + { "current_wle_fp4_06_0_01", "AquArsene" }, + { "current_wle_fp4_06_0_02", "RainbowCloud" }, + { "current_wle_fp4_06_0_03", "Pink Cascade" }, + { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + { "current_wle_fp4_06_1_01", "Buggin' Out" }, + { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + { "current_wle_fp4_06_1_05", "The climb of Trials" }, + { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + + { "current_wle_fp4_07_01", "Rotational Runner" }, + { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + { "current_wle_fp4_07_03", "simple stage" }, + { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + { "current_wle_fp4_07_05", "Factory Valley" }, + { "current_wle_fp4_07_06", "Jumpy Beans" }, + { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + { "current_wle_fp4_07_0_01", "Camino Ninja" }, + + { "current_wle_fp4_08_01", "co-op guys" }, + { "current_wle_fp4_08_0_01", "The big slide" }, + { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + { "current_wle_fp4_08_0_06", "X-Course" }, + { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + { "current_wle_fp4_08_1_01", "Boost in Dash" }, + { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + { "current_wle_fp4_08_1_03", "Giddy up!" }, + { "current_wle_fp4_08_1_04", "Mad lab" }, + { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + { "current_wle_fp4_08_3_01", "The Oasis" }, + + { "current_wle_fp4_09_01", "Crate Collector" }, + { "current_wle_fp4_09_02", "Dribble Drills" }, + { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + { "current_wle_fp4_09_04", "Skyline Park" }, + { "current_wle_fp4_09_05", "Birthday bonanza" }, + { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + { "current_wle_fp4_09_1_02", "Haute voltige" }, + { "current_wle_fp4_09_2_01", "DNA Test" }, + + { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + { "current_wle_fp4_10_02", "Hot Blast" }, + { "current_wle_fp4_10_03", "Box Fan Blitz" }, + { "current_wle_fp4_10_04", "Woo-terfall Way" }, + { "current_wle_fp4_10_05", "Slime race" }, + { "current_wle_fp4_10_06", "Moving Day" }, + { "current_wle_fp4_10_07", "Birthday Dash" }, + { "current_wle_fp4_10_08_m", "Wall Breaker" }, + { "current_wle_fp4_10_08", "Chess History" }, + { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + { "current_wle_fp4_10_12", "Chickens run away" }, + { "current_wle_fp4_10_20", "Co-op and CO" }, + { "current_wle_fp4_10_23", "Construction Site" }, + { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + { "current_wle_fp4_10_0_02", "Molehills" }, + + { "current_wle_fp5_2_01_01", "Plummet Summit" }, + { "current_wle_fp5_2_01_02", "タワークライム" }, + { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + { "current_wle_fp5_2_01", "Jabonsotes" }, + { "current_wle_fp5_2_02_01", "のっぽタワー" }, + { "current_wle_fp5_2_02_02", "Blaster Course" }, + { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + { "current_wle_fp5_2_02_04", "The hard Climb" }, + { "current_wle_fp5_2_02_05", "sliding guys" }, + { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + { "current_wle_fp5_2_02", "Rainbow highway" }, + { "current_wle_fp5_2_03", "Falligator" }, + { "current_wle_fp5_2_04_01", "Lily Lovers" }, + { "current_wle_fp5_2_04_02", "rainow rode" }, + { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + { "current_wle_fp5_2_04_04", "Super crazy level" }, + { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + { "current_wle_fp5_2_05_01", "Level XVIII" }, + { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + { "current_wle_fp5_2_05_04", "rainbow roade" }, + { "current_wle_fp5_2_05", "The tension Parkour" }, + { "current_wle_fp5_2_06", "Stairing Contest" }, + { "current_wle_fp5_2_07", "Vibrant Ascension" }, + + { "current_wle_fp5_3_05_01", "Beany Golf!" }, + { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + { "current_wle_fp5_4_01_01", "Tilted Walls" }, + { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + + { "current_wle_fp5_10_01", "Breezy Buddies" }, + { "current_wle_fp5_10_0_01", "Salto Plancha" }, + { "current_wle_fp5_10_0_02", "My house" }, + { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + { "current_wle_fp5_10_1_01", "Desert Ruins" }, + { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_01", "Desert Ruins" }, + { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_03", "Mystic River" }, + { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + { "current_wle_fp5_10_2_05", "Cliffside" }, + { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + { "current_wle_fp5_10_2_07", "The Avenue" }, + { "current_wle_fp5_10_2_08", "Gold City" }, + { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + { "current_wle_fp5_10_2_10", "初心者用コース" }, + { "current_wle_fp5_10_2_11", "Chain Reaction" }, + + { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + { "current_wle_fp5_wk3_1_04", "El airecito" }, + { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + + { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + { "current_wle_fp5_falloween_1_06", "Mirage" }, + { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + { "current_wle_fp5_falloween_1_08", "Toon World" }, + { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + { "current_wle_fp5_falloween_2_03_06", "Spider" }, + { "current_wle_fp5_falloween_2_03", "fastoween" }, + { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + { "current_wle_fp5_falloween_4_05", "Scary Final" }, + { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + { "current_wle_fp5_falloween_4_08", "Catoween" }, + { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + { "current_wle_fp5_falloween_5_04", "Halloween" }, + { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + { "current_wle_fp5_falloween_9_02", "Raveyard" }, + { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + { "current_wle_fp5_falloween_11_01", "Night Runners" }, + { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + { "current_wle_fp5_falloween_13_01", "Witch Way" }, + { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + + { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + { "current_wle_fp6_1_03", "SKULL KING" }, + { "current_wle_fp6_1_04", "shorter circuit" }, + { "current_wle_fp6_1_05", "be speedy" }, + { "current_wle_fp6_1_06", "Sky-City Stumble" }, + { "current_wle_fp6_1_07", "Wormhole Mountain" }, + { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + { "current_wle_fp6_1_09", "Splitspeed" }, + { "current_wle_fp6_1_10", "Fall Canyon" }, + { "current_wle_fp6_2_01", "Valise" }, + { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + { "current_wle_fp6_2_03", "Water Way" }, + { "current_wle_fp6_2_04", "The Doors of Doom" }, + { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + { "current_wle_fp6_2_06", "Liana Swings" }, + { "current_wle_fp6_2_07", "Colourful" }, + { "current_wle_fp6_2_08", "The Heist!" }, + { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + { "current_wle_fp6_3_01", "Tricky Treat" }, + { "current_wle_fp6_3_02", "The Lighthouse" }, + { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + { "current_wle_fp6_3_04", "The Scarescraper" }, + { "current_wle_fp6_3_05", "Obstacle Road" }, + { "current_wle_fp6_3_06", "Rest In Paris" }, + { "current_wle_fp6_3_07", "Horror pumpkim" }, + { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + + { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + { "current_wle_fp6_wk2_03", "Slidy Road" }, + { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + { "current_wle_fp6_wk2_05", "Lost in space" }, + { "current_wle_fp6_wk2_06", "Turbine Decline" }, + { "current_wle_fp6_wk2_07", "Zero Displacement" }, + { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + { "current_wle_fp6_wk2_10", "Neoway" }, + { "current_wle_fp6_wk2_11", "Niagara Falls" }, + { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + { "current_wle_fp6_wk2_1_06", "Locomoção" }, + { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + + { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + { "current_wle_fp6_wk3_02", "Compact 5" }, + { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + { "current_wle_fp6_wk3_05", "Alto voltaje" }, + { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + { "current_wle_fp6_wk3_09", "Work and Travel" }, + { "current_wle_fp6_wk3_10", "connect the bridge" }, + { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + { "current_wle_fp6_wk3_2_02", "speed demon" }, + { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + + { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + { "current_wle_fp6_wk4_03_05", "Snow Style" }, + { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + { "current_wle_fp6_wk4_05_01", "Rebound" }, + { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + + { "current_wle_community_10_5_01", "Snowy Starfall" }, + { "current_wle_community_10_5_02", "The Earthquake" }, + { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + { "current_wle_community_10_5_1_04", "Garden of Woo" }, + { "current_wle_community_10_5_1_05", "Out in the open" }, + { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + { "current_wle_community_10_5_1_08", "Jungle Journey" }, + { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + { "current_wle_community_10_5_1_15", "Three Rooms" }, + { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + { "current_wle_community_10_5_1_17", "Winter Slide" }, + { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + + { "wle_s10_cf_round_001", "Blocky Bridges" }, + { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + { "wle_s10_cf_round_003", "Drop n' Drag" }, + { "wle_s10_cf_round_004", "Fun with Fans" }, + + { "wle_mrs_bagel", "Festival Arc-en-ciel" }, + { "wle_mrs_shuffle_show", "Sélection Dérangée De Digi" }, + { "wle_mrs_shuffle_show_squads", "Ruée De Groupes" }, + { "wle_shuffle_discover", "SOLO ALÉATOIRE" }, + { "wle_mrs_bouncy_bean_time", "C'est L'heure Du Rebondidou" }, + { "wle_mrs_winter", "Winter Wonders" }, + { "wle_shuffle_chill", "Mix Simple" }, + { "wle_mrs_survival_showdown", "Défi De Survie" }, + { "wle_shuffle_survival", "Survie Aléatoire" }, + { "wle_mrs_ugc_playful_pioneers", "Inventif" }, + { "wle_playful_shuffle", "Mix Inventif" }, + { "event_april_fools", "Fall Mix Fou Aléatoire" }, + { "wle_nature_ltm", "Nature indomptable" }, + + { "private_lobbies", "Partie Personnalisée" }, + { "fall_guys_creative_mode", "Créatif de Fall Guys" }, + { "invisibeans_mode", "Voleurs Sucrés" }, + } + }, + { Language.Spanish, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "anniversary_fp12_ltm", "Anniversary Party" }, + { "casual_show", "Explore" }, + { "classic_duos_show", "Duos" }, + { "classic_solo_main_show", "Solos" }, + { "classic_squads_show", "Squads" }, + { "collectables_ss2_batch_01", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model1", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model2", "Debug Lobbies Show" }, + { "collectables_ss2_batch_02", "Debug Lobbies Show" }, + { "collectables_ss2_batch_02_model1", "Debug Lobbies Show" }, + { "collectables_ss2_batch_02_model2", "Debug Lobbies Show" }, + { "collectables_ss2_batch_03", "Debug Lobbies Show" }, + { "collectables_ss2_batch_03_model1", "Debug Lobbies Show" }, + { "collectables_ss2_batch_03_model2", "Debug Lobbies Show" }, + { "collectables_ss2_batch_04", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model1", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model2", "Batch 4 Collectables" }, + { "collectables_ss2_batch_05", "batch5" }, + { "collectables_ss2_batch_05_model1", "batch5" }, + { "collectables_ss2_batch_05_model2", "batch5" }, + { "duos_show_ss2_launch", "Duos Show SS2" }, + { "duos_show_ss2_parrot", "Duos" }, + { "event_animals_template", "Beasty Guys" }, + { "event_anniversary_season_1", "Anniversary Party" }, + { "event_anniversary_season_1_0408_to_0808_2022", "Anniversary Party" }, + { "event_anniversary_season_1_1706_to_2106_2022", "Classic Knockout" }, + { "event_anniversary_season_1_alternate_name", "Classic Knockout" }, + { "event_aprilstart_0404_1004", "Title" }, + { "event_autumn_festival_squads_1708_to_1808_2022", "Squad Celebration" }, + { "event_autumn_festival_squads_2109_2709_21", "Squad Celebration" }, + { "event_autumn_festival_squads_2110_2210_2022", "Squad Celebration" }, + { "event_blast_ball_banger_1309_to_1409_2022", "Blast Ball Bangers" }, + { "event_blast_ball_banger_1710_1810_2022", "Blast Ball Bangers" }, + { "event_blast_ball_banger_2310_2410_2022", "Blast Ball Bangers" }, + { "event_blast_ball_banger_2408_to_2808_2022", "Blast Ball Bangers" }, + { "event_blast_ball_banger_2609_to_2809_2022", "Blast Ball Bangers" }, + { "event_blast_ball_banger_template", "Blast Ball Bangers" }, + { "event_bubble_template", "Anniversary Party" }, + { "event_clan_of_yeetus_2509_to_2709_2022", "Clan of Yeetus" }, + { "event_clan_of_yeetus_ss2_2110_2210_2022", "Clan of Yeetus" }, + { "event_clan_of_yeetus_ss2_2509_2709_2022", "Clan of Yeetus" }, + { "event_day_at_races_squads_1610_1710_2022", "Day at the Races Squads" }, + { "event_day_at_races_squads_2308_to_2408_2022", "Day at the Races Squads" }, + { "event_day_at_races_squads_2707_to_2807_2022", "Day at the Races Squads" }, + { "event_day_at_races_squads_template", "Day at the Races Squads" }, + { "event_day_at_the_races_ltm", "Day at the Races Solo" }, + { "event_end_of_season_s1", "Finale 1/5: The Thursday Show" }, + { "event_end_of_season_s2", "Finale 2/5: The Friday Show" }, + { "event_end_of_season_s3", "Finale 3/5: The Saturday Show" }, + { "event_end_of_season_s4", "Finale 4/5: The Sunday Show" }, + { "event_end_of_season_s5", "Finale 5/5: The Monday Show" }, + { "event_fall_ball_101022_121022", "Fall Ball Cup" }, + { "event_fan_favourites_1807_to_2107_2022", "Fan Favourites" }, + { "event_fan_favourites_1908_to_2108_2022", "Fan Favourites" }, + { "event_fan_favourites_s6_template", "Fan Favourites" }, + { "event_fan_favourites_template", "Fan Favourites" }, + { "event_fanfare_template", "Blow Up" }, + { "event_fruit_basket", "Fruit Basket" }, + { "event_hilaria_2022", "???????????" }, + { "event_invisibeans_ss2_1010_1210_2022", "SWEET THIEVES" }, + { "event_kudos_blow_up_0910_to_1110_2021", "Time Is Kudos!: Blow Up" }, + { "event_kudos_blow_up_template", "Time Is Kudos!: Blow Up" }, + { "event_kudos_bollard_greens_1310_to_1510_2021", "Time Is Kudos!: Bollard Greens" }, + { "event_kudos_bollard_greens_1510_to_1710_2021", "Time Is Kudos!: Bollard Greens" }, + { "event_kudos_bollard_greens_template", "Time Is Kudos!: Bollard Greens" }, + { "event_kudos_gravity_wield_1110_to_1310_2021", "Time Is Kudos!: Gravity Wield" }, + { "event_kudos_gravity_wield_1310_to_1510_2021", "Time Is Kudos!: Gravity Wield" }, + { "event_kudos_gravity_wield_template", "Time Is Kudos!: Gravity Wield" }, + { "event_kudos_jumping_for_joy_0510_to_0710_2021", "Time Is Kudos!: Jumping For Joy" }, + { "event_kudos_jumping_for_joy_0710_to_0910_2021", "Time Is Kudos!: Jumping For Joy" }, + { "event_kudos_jumping_for_joy_template", "Time Is Kudos!: Jumping For Joy" }, + { "event_kudos_spin_cycle_0710_to_0910_2021", "Time Is Kudos!: Spin Cycle" }, + { "event_kudos_spin_cycle_1110_to_1310_2021", "Time Is Kudos!: Spin Cycle" }, + { "event_kudos_spin_cycle_template", "Time Is Kudos!: Spin Cycle" }, + { "event_le_anchovy_private_lobbies", "Let's Get Kraken" }, + { "event_le_anchovy_template", "Let's Get Kraken" }, + { "event_le_halloween_slime_climb", "TRICK Show" }, + { "event_le_halloween_slime_climb_2110_to_0111_2021", "TRICK Show" }, + { "event_le_halloween_team_squads", "TREAT Show (Trios)" }, + { "event_le_halloween_team_squads_2110_to_0111_2021", "TREAT Show (Trios)" }, + { "event_new_year_s6", "Bean Body Ready" }, + { "event_no_teams", "No Teams" }, + { "event_only_1v1_volleyfall_squads_ss1_or_ss2_show2", "Volleyfall Tournament" }, + { "event_only_basketfall", "Slam Dunk" }, + { "event_only_blast_ball_trials_0609_to_0709_2022", "Blast Ball Trials" }, + { "event_only_blast_ball_trials_1608_to_1708_2022", "Blast Ball Trials" }, + { "event_only_blast_ball_trials_1907_to_2007_2022", "Blast Ball Trials" }, + { "event_only_blast_ball_trials_template", "Blast Ball Trials" }, + { "event_only_bubbles_template", "Bubble Trouble Trials" }, + { "event_only_button_bashers_template", "Button Basher Royale" }, + { "event_only_drumtop_0607_to_0707_2022", "Lily Leapers Limbo" }, + { "event_only_drumtop_0908_to_1008_2022", "Lily Leapers Limbo" }, + { "event_only_drumtop_3108_to_0109_2022", "Lily Leapers Limbo" }, + { "event_only_drumtop_template", "Lily Leapers Limbo" }, + { "event_only_fall_ball_011122_031122", "Fall Ball Cup" }, + { "event_only_fall_ball_0407_to_0507_2022", "Fall Ball Cup" }, + { "event_only_fall_ball_1810_2010_2022", "Fall Ball Cup" }, + { "event_only_fall_ball_custom_lobby", "Fall Ball Cup" }, + { "event_only_fall_ball_squads_0106_to_0206_2022", "Fall Ball Cup" }, + { "event_only_fall_ball_squads_1609_to_1809_2022", "Fall Ball Cup" }, + { "event_only_fall_ball_squads_template", "Fall Ball Cup" }, + { "event_only_fall_ball_template", "Fall Ball Cup" }, + { "event_only_fall_ball_trios_ranked", "Fall Ball Cup Trios Ranked" }, + { "event_only_finals_2904_to_0105_2022", "Finals Marathon" }, + { "event_only_finals_template", "Finals Marathon" }, + { "event_only_finals_v2_template", "Finals Marathon" }, + { "event_only_finals_v3_ranked", "Finals Marathon Ranked" }, + { "event_only_finals_v3_template", "Finals Marathon" }, + { "event_only_floor_fall_0510_to_0610_2022", "Hex-a-gone Trials" }, + { "event_only_floor_fall_2510_2610_2022", "Hex-a-gone Trials" }, + { "event_only_floor_fall_custom_lobby", "Hex-a-gone Trials" }, + { "event_only_floor_fall_low_grav", "Hex-a-Gravity Trials" }, + { "event_only_floor_fall_low_grav_0108_to_0208_2022", "Hex-a-Gravity Trials" }, + { "event_only_floor_fall_low_grav_0507_to_0607_2022", "Hex-a-Gravity Trials" }, + { "event_only_floor_fall_low_grav_2208_to_2308_2022", "Hex-a-Gravity Trials" }, + { "event_only_floor_fall_template", "Hex-a-gone Trials" }, + { "event_only_hard_mode_1306_to_1406_2022", "Hard Mode" }, + { "event_only_hard_mode_private_lobbies", "Hard Mode" }, + { "event_only_hard_mode_template", "Hard Mode" }, + { "event_only_hexaring_1808_to_2208_2022", "Ring Hexathlon" }, + { "event_only_hexaring_template", "Ring Hexathlon" }, + { "event_only_hoverboard_template", "Hoverboarding Time" }, + { "event_only_jump_club_0109_to_0209_2022", "Jump Around" }, + { "event_only_jump_club_1008_to_1108_2022", "Jump Around" }, + { "event_only_jump_club_1907_to_2007_2022", "Jump Around" }, + { "event_only_jump_club_2305_to_2405_2022_v2", "Jump Around" }, + { "event_only_jump_club_2706_to_2806_2022", "Jump Around" }, + { "event_only_jump_club_custom_lobby", "Jump Around" }, + { "event_only_jump_club_ss2_0310_0410_2022", "Jump Around" }, + { "event_only_jump_club_template", "Jump Around" }, + { "event_only_pixelperfect", "PIXEL PAINTERS" }, + { "event_only_races_any_final_2406_to_2606_2022", "Day at the Races Solo" }, + { "event_only_races_any_final_2505_to_2605_2022", "Day at the Races Solo" }, + { "event_only_races_any_final_private_lobbies", "Day at the Races Solo" }, + { "event_only_races_any_final_template", "Day at the Races Solo" }, + { "event_only_races_no_lava_template", "Day at the Races Solo" }, + { "event_only_races_template", "Day at the Races Solo" }, + { "event_only_roll_on", "Roll On Only" }, + { "event_only_roll_out", "Roll Call" }, + { "event_only_roll_out_0806_to_0906_2022", "Roll Call" }, + { "event_only_roll_out_2005_to_2205_2022", "Roll Call" }, + { "event_only_roll_out_custom_lobby", "Roll Call" }, + { "event_only_season_2_variation_template", "Medieval Mix Up" }, + { "event_only_season_3_variation_template", "Mix it Up!" }, + { "event_only_season_4", "Future Fumble" }, + { "event_only_season_4_1507_to_1707_2022", "Future Fumble" }, + { "event_only_season_4_2705_to_2905_2022", "Future Fumble" }, + { "event_only_season_4_custom_lobby", "Future Fumble" }, + { "event_only_season_4_variation_template", "Mix it Up!" }, + { "event_only_season_5_0309_1209", "Jungle Jumble" }, + { "event_only_season_5_0409_to_0509_2022", "Jungle Jumble" }, + { "event_only_season_5_0807_to_1007_2022", "Jungle Jumble" }, + { "event_only_season_5_0909_to_1009_2022", "Jungle Jumble" }, + { "event_only_season_5_custom_lobby", "Jungle Jumble" }, + { "event_only_season_5_template", "Jungle Jumble" }, + { "event_only_season_5_variation_template", "Mix it Up!" }, + { "event_only_season_6_launch_party", "Party Time Tumble" }, + { "event_only_season_6_launch_party_1703_to_1903_2022", "Party Time Tumble" }, + { "event_only_season_6_template", "Party Time Tumble" }, + { "event_only_skeefall_timetrial_0309_to_0409_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_0711_0711_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_1307_to_1407_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_1508_to_1608_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_1909_to_2009_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_2710_2810_2022", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_s6_1", "Ski Fall High Scorers" }, + { "event_only_skeefall_timetrial_ss2_1909_2009_2022", "Ski Fall High Scorers" }, + { "event_only_slime_climb", "Slime Climb Time" }, + { "event_only_slime_climb_0110_to_0210_2022", "Slime Climb Time" }, + { "event_only_slime_climb_0308_to_0408_2022", "Slime Climb Time" }, + { "event_only_slime_climb_0709_to_0809_2022", "Slime Climb Time" }, + { "event_only_slime_climb_1107_to_1207_2022", "Slime Climb Time" }, + { "event_only_slime_climb_1506_to_1606_2022", "Slime Climb Time" }, + { "event_only_slime_climb_2608_to_2708_2022", "Slime Climb Time" }, + { "event_only_slime_climb_2_0606_to_0706_2022", "Slimescraper Time" }, + { "event_only_slime_climb_2_0709_to_0909_2021", "Slimescraper Time" }, + { "event_only_slime_climb_2_2910_3010_2022", "Slimescraper Time" }, + { "event_only_slime_climb_2_template", "Slimescraper Time" }, + { "event_only_slime_climb_ss2_0110_0210_2022", "Slime Climb Time" }, + { "event_only_ss2_squads_1910_2110_2022", "3,2,1, SPACE!" }, + { "event_only_ss2_squads_template", "3,2,1, SPACE!" }, + { "event_only_survival_fittest_3110_0111_2022", "Survival of the Fittest" }, + { "event_only_survival_private_lobbies", "Slime Survivors" }, + { "event_only_survival_ss2_3009_0210_2022", "Survival of the Fittest" }, + { "event_only_thin_ice_0205_to_0205_2022", "Thin Ice Trials" }, + { "event_only_thin_ice_template", "Thin Ice Trials" }, + { "event_only_tip_toe_0204_to_0304_2022", "Tip Toe Tournament" }, + { "event_only_tip_toe_0209_to_0309_2022", "Tip Toe Tournament" }, + { "event_only_tip_toe_2507_to_2607_2022", "Tip Toe Tournament" }, + { "event_only_tip_toe_2809_to_2909_2022", "Tip Toe Tournament" }, + { "event_only_tip_toe_2909_to_3009_2022", "Tip Toe Tournament" }, + { "event_only_tip_toe_template", "Tip Toe Tournament" }, + { "event_only_volleyfall_squads_ss2_1110_1210_2022", "Volleyfall Tournament" }, + { "event_only_volleyfall_squads_ss2_2010_2110_2022", "Volleyfall Tournament" }, + { "event_oriole_0612_to_1212_2021", "Aloy's Blaze Canister Mayhem" }, + { "event_oriole_template", "Aloy's Blaze Canister Mayhem" }, + { "event_pixel_palooza_2210_2310_2022", "Pixel Palooza" }, + { "event_pixel_palooza_template", "Pixel Palooza" }, + { "event_s6_651_template", "PLACEHOLDER SHOW" }, + { "event_s9_crayfish_template", "Gift Grab" }, + { "event_season_2_highlight_1006_to_1206_2022", "Medieval Muddle" }, + { "event_season_2_highlight_2907_to_3107_2022", "Medieval Muddle" }, + { "event_season_2_highlight_template", "Medieval Muddle" }, + { "event_season_3_highlight_0306_to_0506_2022", "Snow Day Stumble" }, + { "event_season_3_highlight_2607_to_2707_2022", "Snow Day Stumble" }, + { "event_season_3_highlight_template", "Snow Day Stumble" }, + { "event_snowday_stumble", "Snow Day Stumble" }, + { "event_sports_suddendeath_squads", "Golden Goal Challenge" }, + { "event_sports_suddendeath_squads_0208_to_0308_2022", "Golden Goal Challenge" }, + { "event_sports_suddendeath_squads_0407_to_0507_2022", "Golden Goal Challenge" }, + { "event_sports_suddendeath_squads_0509_to_0609_2022", "Golden Goal Challenge" }, + { "event_sports_suddendeath_squads_2603_to_2803_2022", "Golden Goal Challenge" }, + { "event_sports_template", "Sports Fest" }, + { "event_squads_festival_ss2_2409_2509_2022", "Squad Celebration" }, + { "event_squads_survival_0509_to_0609_2022", "Survival Squads" }, + { "event_squads_survival_0511_0711_2022", "Survival Squads" }, + { "event_squads_survival_0808_to_0908_2022", "Survival Squads" }, + { "event_squads_survival_ss2_0710_0910_2022", "Survival Squads" }, + { "event_squads_survival_template", "Survival Squads" }, + { "event_stars01_0404_1004", "Adapt!" }, + { "event_stars02_1804_to_2404_2022", "Logic!" }, + { "event_stars03_0305_to_0805_2022", "Bravery!" }, + { "event_summer_squads_0107_0407_2022", "Squad Celebration" }, + { "event_summer_squads_2107_2507", "Squad Celebration" }, + { "event_symphony_launch_show_1310_1610_2022", "Stadium Stars Show" }, + { "event_symphony_launch_show_template", "Stadium Stars Show" }, + { "event_tail_tag_april_show", "ERROR 01APR" }, + { "event_test_season_5", "Duos" }, + { "event_twitch_rivals", "Twitch Rivals" }, + { "event_vulture_1612_to_2712_2021", "Naughty or Nice Show" }, + { "event_vulture_template", "Naughty or Nice Show" }, + { "event_walnut_template", "Hex-a-thon" }, + { "event_week_of_romance_s6_duo_teams", "Duos Festival" }, + { "event_xtreme_fall_guys_0211_0411_2022", "X-treme Solos" }, + { "event_xtreme_fall_guys_2207_to_2407_2022", "X-treme Solos" }, + { "event_xtreme_fall_guys_2903_to_3103_2022", "X-treme Solos" }, + { "event_xtreme_fall_guys_2908_to_3108_2022", "X-treme Solos" }, + { "event_xtreme_fall_guys_squads_1208_to_1408_2022", "X-treme Squads" }, + { "event_xtreme_fall_guys_squads_2906_to_3006_2022", "X-treme Squads" }, + { "event_xtreme_fall_guys_squads_2908_to_3108_2022", "X-treme Squads" }, + { "event_xtreme_fall_guys_squads_ss2_1310_1510_2022", "X-treme Squads" }, + { "event_xtreme_fall_guys_squads_ss2_2109_2309_2022", "X-treme Squads" }, + { "event_xtreme_fall_guys_squads_template", "X-treme Squads" }, + { "event_xtreme_fall_guys_ss2_0310_0510_2022", "X-treme Solos" }, + { "event_xtreme_fall_guys_template", "X-treme Solos" }, + { "event_yeetus_111022_121022", "Big Yeetus Tour" }, + { "event_yeetus_3005_to_3105_2022", "Big Yeetus Tour" }, + { "event_yeetus_template", "Big Yeetus Tour" }, + { "explore_points", "Explore - Points" }, + { "fp16_ski_fall_high_scorers", "Ski Fall High Scorers" }, + { "ftue_uk_show", "Knockout" }, + { "greatestsquads_ltm", "Squads Spectacular" }, + { "greatestsquads_ranked", "Squads Spectacular Ranked" }, + { "invisibeans_0508_to_0708_2022", "SWEET THIEVES" }, + { "invisibeans_0707_to_1107_2022", "SWEET THIEVES" }, + { "invisibeans_0803_to_1303_2022", "SWEET THIEVES" }, + { "invisibeans_181022_201022", "SWEET THIEVES" }, + { "invisibeans_2209_to_2409_2022", "SWEET THIEVES" }, + { "invisibeans_2808_to_3008_2022", "SWEET THIEVES" }, + { "invisibeans_pistachio_template", "Treat Thieves" }, + { "invisibeans_template", "SWEET THIEVES" }, + { "knockout_duos", "Duos" }, + { "knockout_mode", "Knockout" }, + { "knockout_mode_pl", "Knockout" }, + { "knockout_squads", "Squads" }, + { "live_event_bluejay", "Gotta Go Fast!" }, + { "live_event_clan_of_yeetus_0411_0611_2022", "Clan of Yeetus" }, + { "live_event_clan_of_yeetus_ss1_template", "Clan of Yeetus" }, + { "live_event_peanut_ss2_01", "t. Lost c" }, + { "live_event_peanut_ss2_02", "t city, f" }, + { "live_event_peanut_ss2_03", "y, found a" }, + { "live_event_peanut_ss2_04", "d at l" }, + { "live_event_peanut_ss2_05", "t last. B" }, + { "live_event_peanut_ss2_06", "t. Beyond t" }, + { "live_event_peanut_ss2_07", "d the B" }, + { "live_event_peanut_ss2_08", "e Blunderdome, s" }, + { "live_event_peanut_ss2_09", "e, sunken p" }, + { "live_event_peanut_ss2_10", "n past. L" }, + { "live_event_pelican_template", "Spartan Showdown" }, + { "live_event_satellite_collectibles_solo_template", "Satellite Repair Mission" }, + { "live_event_satellite_collectibles_template", "Satellite Repair Mission" }, + { "live_event_ss2_potoo_template", "THE POWER OF BEANSKULL" }, + { "live_event_ss2_potoo_template_test", "POTOO TEST! NOT FINAL!" }, + { "live_event_symphony_launch_show_template", "Stadium Stars Show" }, + { "live_event_timeattack_dizzyheights", "Time Attack Trial - Dizzy Heights" }, + { "live_event_timeattack_lilyleapers", "Time Attack Trial - Lily Leapers" }, + { "live_event_timeattack_partyprom", "Time Attack Trial - Party Promenade" }, + { "live_event_timeattack_shuffle", "Time Attack Shuffle" }, + { "live_event_timeattack_shuffle_pl", "Time Attack Shuffle" }, + { "live_event_timeattack_trackattack", "Time Attack Trial - Track Attack" }, + { "live_event_timeattack_treetoptumble", "Time Attack Trial - Treetop Tumble" }, + { "live_event_timeattack_tundrarun", "Time Attack Trial - Tundra Run" }, + { "main_show", "Solos" }, + { "main_show_2player", "Main Show (2 Player)" }, + { "main_show_private_lobbies", "Solos" }, + { "main_show_ss2_launch_pl", "Solos" }, + { "main_show_template_base", "Main Show" }, + { "main_show_template_large", "Main Show" }, + { "main_show_template_medium", "Main Show" }, + { "mrs_pegwin_winter_2teamsfinal", "Pegwin Palooza" }, + { "no_elimination_explore", "Explore - Classic" }, + { "no_elimination_show", "SOLOS CHILL" }, + { "only_1v1_volleyfall", "Volleyfall Tournament" }, + { "only_1v1_volleyfall_191022_211022", "Volleyfall Tournament" }, + { "only_solo_ss2_rounds_show", "3,2,1, SPACE!" }, + { "pl_blastball", "Blast Ball" }, + { "pl_duos_show", "Duos" }, + { "pl_fallmountain", "Fall Mountain" }, + { "pl_hexagone", "Hex-A-Gone" }, + { "pl_hexaring", "Hex-A-Ring" }, + { "pl_hexaterrestrial", "Hex-A-Terrestrial" }, + { "pl_jumpshowdown", "Jump Showdown" }, + { "pl_krakenslam", "Kraken Slam" }, + { "pl_losttemple", "Lost Temple" }, + { "pl_rolloff", "Roll Off" }, + { "pl_royal_fumble", "Royal Fumble" }, + { "pl_solo_main_show", "Solos" }, + { "pl_squads_show", "Squads" }, + { "pl_thin_ice", "Thin Ice" }, + { "pl_tiptoefinale", "Tip Toe Finale" }, + { "pl_vaulted_show", "The Vault" }, + { "placeholder", ""}, + { "playlist_fallguys_skill", "playlist_fallguys_skill" }, + { "playlist_fallguys_solo", "playlist_fallguys_solo" }, + { "playlist_fallguys_soloskill", "playlist_fallguys_soloskill" }, + { "playlist_fallguys_squad", "playlist_fallguys_squad" }, + { "ranked_duos_show", "Ranked Duos" }, + { "ranked_show_knockout", "Ranked Knockout" }, + { "ranked_solo_show", "Ranked Solos" }, + { "ranked_squads_show", "Ranked Squads" }, + { "ranked_trios_show", "Ranked Trios" }, + { "reversed_knockout_show", "Tuokconk" }, + { "showcase_fp13", "Scrapyard Stumble" }, + { "showcase_fp16", "Frosty Frolics" }, + { "showcase_fp17", "Fallentines Festival" }, + { "showcase_fp18", "Foolish Trios" }, + { "showcase_fp19", "Yeetropolis GO!!!" }, + { "showcase_fp20", "Blunderbeach Bonanza" }, + { "show_episode_level_variation_sy2_launch_01", "Mix it Up!" }, + { "show_episode_level_variation_sy2_launch_02", "Mix it Up!" }, + { "show_episode_level_variation_sy2_launch_03", "Mix it Up!" }, + { "show_episode_level_variation_sy2_launch_04", "Mix it Up!" }, + { "show_episode_level_variation_sy2_launch_05", "Mix it Up!" }, + { "show_episode_level_variation_victoria_1", "Mix it Up!" }, + { "show_episode_level_variation_victoria_2", "Mix it Up!" }, + { "show_episode_level_variation_victoria_3", "Mix it Up!" }, + { "show_episode_level_variation_victoria_4_squads", "Mix it Up!" }, + { "show_robotrampage_ss2_2809_to_2909_2022", "Stompin' Ground Stand-Off" }, + { "show_robotrampage_ss2_show1_2510_2610_2022", "Stompin' Ground Stand-Off" }, + { "show_robotrampage_ss2_show1_template", "Stompin' Ground Stand-Off" }, + { "slime_survivors", "Slime Survivors" }, + { "solo_show_pl_all_rounds", "Solo Variety Show" }, + { "solo_show_ss2_launch", "Solo Show SS2" }, + { "solo_show_ss2_parrot", "Solos" }, + { "spectator_show", "Spectator Sport" }, + { "sports_show", "Fall Guys Games" }, + { "squad_duo_slimeclimbs", ""}, + { "squad_show", "SQUAD SHOW" }, + { "squad_show_2player", "SQUAD SHOW" }, + { "squad_show_2player_laps", "SQUAD SHOW" }, + { "squad_show_survival", "DEBUG Squad Show Survival" }, + { "squad_show_team_2player", "Connection Error" }, + { "squadcelebration", "Squad Celebration" }, + { "squads_2player_1403_to_0205_2022", "Squads Duos" }, + { "squads_2player_automation", "Squads Duos" }, + { "squads_2player_points_test", "Duos" }, + { "squads_2player_template", "Duos" }, + { "squads_3player_0111_1511_21", "Squads Trios" }, + { "squads_3player_0208_to_1508_2021", "Squads Trios" }, + { "squads_3player_04012022_to_13012022", "Squads Trios" }, + { "squads_3player_automation", "Squads Trios" }, + { "squads_3player_template", "Squads Trios" }, + { "squads_4player", "Squads" }, + { "squads_4player_2812_no_end", "Squads" }, + { "squads_4player_after_potoo", "Squads" }, + { "squads_show_ss2_launch", "Squads Show SS2" }, + { "squads_show_ss2_parrot", "Squads" }, + { "survival_of_the_fittest", "Survival of the Fittest" }, + { "teams_show", "Connection Error" }, + { "teams_show_ltm", "Dynamic Duos" }, + { "timeattack_mode", "Time Attack" }, + { "toms_main_show_5_2", "Main Show" }, + { "toms_show2", "Toms Show 2" }, + { "turbo_show", "Solos" }, + { "turbo_2_show", "Solos" }, + { "ultimate_party_adventure", "Ultimate Party - Adventure" }, + { "wallguys_test", "WALL
GUYS" }, + { "wle_lobby_template", "Show Name" }, + { "wle_lobby_template_validation", "Show Name" }, + { "wle_mrs_template", "placeholder" }, + { "wle_srs_multi_winner_template_filler", "placeholder" }, + { "wle_srs_multi_winner_template_final", "placeholder" }, + { "wle_srs_multi_winner_template_opener", "placeholder" }, + { "wle_srs_single_winner_template_filler", "placeholder" }, + { "wle_srs_single_winner_template_final", "placeholder" }, + { "wle_srs_single_winner_template_opener", "placeholder" }, + { "xtreme_explore", "Explore - Xtreme" }, + { "xtreme_party", "X-treme Party" }, + { "xtreme_solos_template_ranked", "X-treme Solos Ranked" }, + + { "show_wle_s10_wk01_mrs", "Creator Round Playlist 1" }, + { "show_wle_s10_wk3_mrs", "Creator Round Playlist 2" }, + { "event_wle_s10_wk4_mrs", "Creator Round Playlist 3" }, + { "show_wle_s10_wk5_mrs", "Creator Round Playlist 4" }, + + { "show_wle_s10_wk01_srs_01", "Boom Blaster Trial" }, + { "show_wle_s10_wk01_srs_02", "Cyber Circuit" }, + { "show_wle_s10_wk01_srs_03", "Pixel Hearts" }, + { "show_wle_s10_wk01_srs_04", "Fortress Frolics" }, + { "show_wle_s10_wk02_srs_05", "Super Door Dash" }, + { "show_wle_s10_wk02_srs_06", "Spiral of Woo" }, + { "show_wle_s10_wk02_srs_07", "Tornado Trial" }, + { "show_wle_s10_wk02_srs_08", "Hopscotch Havoc" }, + { "show_wle_s10_wk03_srs_9", "Incline Rewind" }, + { "show_wle_s10_wk03_srs_10", "Beat Bouncers" }, + { "show_wle_s10_wk03_srs_11", "Prismatic Parade" }, + { "show_wle_s10_wk03_srs_12", "Blunder Bridges" }, + { "show_wle_s10_wk04_srs_01", "Trouble Tower" }, + { "show_wle_s10_wk04_srs_02", "Swept Away" }, + { "show_wle_s10_wk04_srs_03", "Balancing Act" }, + { "show_wle_s10_wk04_srs_04", "Serpent Slalom" }, + { "show_wle_s10_wk05_srs_long_01", "Floorless" }, + { "show_wle_s10_wk05_srs_long_02", "Fall Speedway" }, + { "show_wle_s10_wk05_srs_long_03", "Zig Zag Zoomies" }, + { "show_wle_s10_wk05_srs_long_04", "Terrabyte Trial" }, + + { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + { "wle_s10_player_round_wk3_02", "Door Game" }, + { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + { "wle_s10_player_round_wk3_07", "Descente Créative" }, + { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + { "wle_s10_player_round_wk3_12", "Variable Valley" }, + { "wle_s10_player_round_wk3_13", "Broken Course" }, + { "wle_s10_player_round_wk3_15", "Parkour Party" }, + { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + { "wle_s10_player_round_wk3_19", "Sky Time" }, + { "wle_s10_player_round_wk3_20", "EZz Map" }, + + { "show_wle_s10_player_round_wk4_01", "Slippery Stretch" }, + { "show_wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + { "show_wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + { "show_wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + { "show_wle_s10_player_round_wk4_06", "Topsie Tursie" }, + { "show_wle_s10_player_round_wk4_07", "Arcade Assault" }, + { "show_wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + { "show_wle_s10_player_round_wk4_09", "Green Beans" }, + { "show_wle_s10_player_round_wk4_10", "Hop Hill" }, + { "show_wle_s10_player_round_wk4_11", "Quick Sliders" }, + { "show_wle_s10_player_round_wk4_12", "Split Path" }, + { "show_wle_s10_player_round_wk4_15", "Snowboard Street" }, + { "show_wle_s10_player_round_wk4_18", "House Invasion" }, + { "show_wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + { "show_wle_s10_player_round_wk4_21", "Spin" }, + { "show_wle_s10_player_round_wk4_22", "Lane Changers" }, + + { "wle_s10_player_round_wk5_01", "Block Park" }, + { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + { "wle_s10_player_round_wk5_03", "Digital Temple" }, + { "wle_s10_player_round_wk5_04", "Tower Escape" }, + { "wle_s10_player_round_wk5_05", "Tower Dash" }, + { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + { "wle_s10_player_round_wk5_07", "Looooping" }, + { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + { "wle_s10_player_round_wk5_10", "Siank Arena" }, + { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + { "wle_s10_player_round_wk5_13", "Dessert Village" }, + { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + { "wle_s10_player_round_wk5_15", "Beast Route" }, + { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + { "wle_s10_player_round_wk5_18", "Digital Doom" }, + + { "show_wle_s10_player_round_wk6_01", "Hammer Heaven" }, + { "show_wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + { "show_wle_s10_player_round_wk6_03", "Castle Rush" }, + { "show_wle_s10_player_round_wk6_04", "Chaotic Race" }, + { "show_wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + { "show_wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + { "show_wle_s10_player_round_wk6_08", "Flower Power" }, + { "show_wle_s10_player_round_wk6_09", "Dimension Explorer" }, + { "show_wle_s10_player_round_wk6_10", "Forked Passage" }, + { "show_wle_s10_player_round_wk6_12", "The Bee Hive" }, + { "show_wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + { "show_wle_s10_player_round_wk6_14", "Snek" }, + { "show_wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + { "show_wle_s10_player_round_wk6_17", "Slippery Helixes" }, + { "show_wle_s10_player_round_wk6_18", "Recess" }, + { "show_wle_s10_player_round_wk6_19", "Parrot river" }, + { "show_wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + + { "show_wle_s10_wk07_srs_01", "Tower of Fall" }, + { "show_wle_s10_wk07_srs_02", "SOLO FULL-TILT RAGE" }, + { "show_wle_s10_wk07_srs_03", "Piso resbaloso" }, + { "show_wle_s10_wk07_srs_04", "Catastrophe Climb" }, + { "show_wle_s10_wk07_srs_05", "Sky High Run" }, + { "show_wle_s10_wk07_srs_06", "Full Speed Sliding (FSS) - Jelly Road" }, + + { "show_wle_s10_wk08_srs_01", "Push Ups" }, + { "show_wle_s10_wk08_srs_02", "Heave & Haul" }, + { "show_wle_s10_wk08_srs_03", "Stepping Stones" }, + { "show_wle_s10_wk08_srs_04", "Double Trouble" }, + + { "current_wle_fp3_07_01", "Block Sledding" }, + { "current_wle_fp3_07_02", "Layup Wallop" }, + { "current_wle_fp3_07_03", "Minecart Mayhem" }, + { "current_wle_fp3_07_04", "Bouncing Pass" }, + { "current_wle_fp3_07_05", "Ball Factory" }, + { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + { "current_wle_fp3_07_0_02", "Woo-F-O" }, + { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + + { "current_wle_fp3_08_01", "Grabbers Territory" }, + { "current_wle_fp3_08_02", "A Way Out" }, + { "current_wle_fp3_08_03", "Wall Block" }, + { "current_wle_fp3_08_04", "The dream island" }, + { "current_wle_fp3_08_05", "Rainbow pulsion" }, + { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + { "current_wle_fp3_08_10", "Crazy boxes" }, + { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + { "current_wle_fp3_08_15", "Stumble Teams" }, + { "current_wle_fp3_08_16", "Twisting Tower" }, + { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + { "current_wle_fp3_08_18", "The Rising Blocks" }, + { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + { "current_wle_fp3_09_01", "The up tower" }, + { "current_wle_fp3_09_02", "Short shuriken" }, + { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + { "current_wle_fp3_09_06", "Random Heights" }, + { "current_wle_fp3_09_07", "Climb scramble" }, + { "current_wle_fp3_09_08", "Collide Gaming" }, + { "current_wle_fp3_09_09", "Very Compressed Level" }, + { "current_wle_fp3_09_0_01", "Slippery Slope" }, + { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + { "current_wle_fp3_09_0_03", "Free Falling" }, + { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + + { "current_wle_fp3_10_01", "When Nature Falls" }, + { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + { "current_wle_fp3_10_03", "The Slime Trials" }, + { "current_wle_fp3_10_04", "Friendly Obstacles" }, + { "current_wle_fp3_10_05", "Climb and Fall" }, + { "current_wle_fp3_10_06", "Stairs and some other things" }, + { "current_wle_fp3_10_07", "Meowgical World" }, + { "current_wle_fp3_10_08", "Polluelo Speed" }, + { "current_wle_fp3_10_09", "Pixel Parade" }, + { "current_wle_fp3_10_10", "Total Madness" }, + { "current_wle_fp3_10_11", "The Abstract Maze" }, + { "current_wle_fp3_10_12", "Fan Off" }, + { "current_wle_fp3_10_13", "cloud highway" }, + { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + { "current_wle_fp3_10_15", "Speedrunners be like" }, + { "current_wle_fp3_10_16", "Tumble Tower" }, + { "current_wle_fp3_10_17", "Silver's Snake Run" }, + { "current_wle_fp3_10_18", "Now Boarding" }, + { "current_wle_fp3_10_19", "Slime Scale" }, + { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + { "current_wle_fp3_10_23", "Controlled Chaos" }, + { "current_wle_fp3_10_24", "Xtreme Jumping" }, + { "current_wle_fp3_10_25", "Odin" }, + { "current_wle_fp3_10_26", "Ciudad nube" }, + { "current_wle_fp3_10_27", "Bean Voyage" }, + { "current_wle_fp3_10_28", "SLIP-SAW" }, + { "current_wle_fp3_10_29", "Bbq bacon burger" }, + + { "current_wle_fp4_05_01_01", "巅峰车站" }, + { "current_wle_fp4_05_01_02", "Beba Park 7" }, + { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + { "current_wle_fp4_05_02", "Mini only up" }, + { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + { "current_wle_fp4_05_03_02", "Remote Control" }, + { "current_wle_fp4_05_03", "Parkway Slide" }, + { "current_wle_fp4_05_04", "Duel Dash" }, + { "current_wle_fp4_05_05", "beaten trackless road" }, + { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + { "current_wle_fp4_05_2_02", "arch city" }, + { "current_wle_fp4_05_2_03", "Desert Ruins" }, + + { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + { "current_wle_fp4_06_02", "Pachislo" }, + { "current_wle_fp4_06_0_01", "AquArsene" }, + { "current_wle_fp4_06_0_02", "RainbowCloud" }, + { "current_wle_fp4_06_0_03", "Pink Cascade" }, + { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + { "current_wle_fp4_06_1_01", "Buggin' Out" }, + { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + { "current_wle_fp4_06_1_05", "The climb of Trials" }, + { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + + { "current_wle_fp4_07_01", "Rotational Runner" }, + { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + { "current_wle_fp4_07_03", "simple stage" }, + { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + { "current_wle_fp4_07_05", "Factory Valley" }, + { "current_wle_fp4_07_06", "Jumpy Beans" }, + { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + { "current_wle_fp4_07_0_01", "Camino Ninja" }, + + { "current_wle_fp4_08_01", "co-op guys" }, + { "current_wle_fp4_08_0_01", "The big slide" }, + { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + { "current_wle_fp4_08_0_06", "X-Course" }, + { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + { "current_wle_fp4_08_1_01", "Boost in Dash" }, + { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + { "current_wle_fp4_08_1_03", "Giddy up!" }, + { "current_wle_fp4_08_1_04", "Mad lab" }, + { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + { "current_wle_fp4_08_3_01", "The Oasis" }, + + { "current_wle_fp4_09_01", "Crate Collector" }, + { "current_wle_fp4_09_02", "Dribble Drills" }, + { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + { "current_wle_fp4_09_04", "Skyline Park" }, + { "current_wle_fp4_09_05", "Birthday bonanza" }, + { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + { "current_wle_fp4_09_1_02", "Haute voltige" }, + { "current_wle_fp4_09_2_01", "DNA Test" }, + + { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + { "current_wle_fp4_10_02", "Hot Blast" }, + { "current_wle_fp4_10_03", "Box Fan Blitz" }, + { "current_wle_fp4_10_04", "Woo-terfall Way" }, + { "current_wle_fp4_10_05", "Slime race" }, + { "current_wle_fp4_10_06", "Moving Day" }, + { "current_wle_fp4_10_07", "Birthday Dash" }, + { "current_wle_fp4_10_08_m", "Wall Breaker" }, + { "current_wle_fp4_10_08", "Chess History" }, + { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + { "current_wle_fp4_10_12", "Chickens run away" }, + { "current_wle_fp4_10_20", "Co-op and CO" }, + { "current_wle_fp4_10_23", "Construction Site" }, + { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + { "current_wle_fp4_10_0_02", "Molehills" }, + + { "current_wle_fp5_2_01_01", "Plummet Summit" }, + { "current_wle_fp5_2_01_02", "タワークライム" }, + { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + { "current_wle_fp5_2_01", "Jabonsotes" }, + { "current_wle_fp5_2_02_01", "のっぽタワー" }, + { "current_wle_fp5_2_02_02", "Blaster Course" }, + { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + { "current_wle_fp5_2_02_04", "The hard Climb" }, + { "current_wle_fp5_2_02_05", "sliding guys" }, + { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + { "current_wle_fp5_2_02", "Rainbow highway" }, + { "current_wle_fp5_2_03", "Falligator" }, + { "current_wle_fp5_2_04_01", "Lily Lovers" }, + { "current_wle_fp5_2_04_02", "rainow rode" }, + { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + { "current_wle_fp5_2_04_04", "Super crazy level" }, + { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + { "current_wle_fp5_2_05_01", "Level XVIII" }, + { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + { "current_wle_fp5_2_05_04", "rainbow roade" }, + { "current_wle_fp5_2_05", "The tension Parkour" }, + { "current_wle_fp5_2_06", "Stairing Contest" }, + { "current_wle_fp5_2_07", "Vibrant Ascension" }, + + { "current_wle_fp5_3_05_01", "Beany Golf!" }, + { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + { "current_wle_fp5_4_01_01", "Tilted Walls" }, + { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + + { "current_wle_fp5_10_01", "Breezy Buddies" }, + { "current_wle_fp5_10_0_01", "Salto Plancha" }, + { "current_wle_fp5_10_0_02", "My house" }, + { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + { "current_wle_fp5_10_1_01", "Desert Ruins" }, + { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_01", "Desert Ruins" }, + { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_03", "Mystic River" }, + { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + { "current_wle_fp5_10_2_05", "Cliffside" }, + { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + { "current_wle_fp5_10_2_07", "The Avenue" }, + { "current_wle_fp5_10_2_08", "Gold City" }, + { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + { "current_wle_fp5_10_2_10", "初心者用コース" }, + { "current_wle_fp5_10_2_11", "Chain Reaction" }, + + { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + { "current_wle_fp5_wk3_1_04", "El airecito" }, + { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + + { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + { "current_wle_fp5_falloween_1_06", "Mirage" }, + { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + { "current_wle_fp5_falloween_1_08", "Toon World" }, + { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + { "current_wle_fp5_falloween_2_03_06", "Spider" }, + { "current_wle_fp5_falloween_2_03", "fastoween" }, + { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + { "current_wle_fp5_falloween_4_05", "Scary Final" }, + { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + { "current_wle_fp5_falloween_4_08", "Catoween" }, + { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + { "current_wle_fp5_falloween_5_04", "Halloween" }, + { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + { "current_wle_fp5_falloween_9_02", "Raveyard" }, + { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + { "current_wle_fp5_falloween_11_01", "Night Runners" }, + { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + { "current_wle_fp5_falloween_13_01", "Witch Way" }, + { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + + { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + { "current_wle_fp6_1_03", "SKULL KING" }, + { "current_wle_fp6_1_04", "shorter circuit" }, + { "current_wle_fp6_1_05", "be speedy" }, + { "current_wle_fp6_1_06", "Sky-City Stumble" }, + { "current_wle_fp6_1_07", "Wormhole Mountain" }, + { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + { "current_wle_fp6_1_09", "Splitspeed" }, + { "current_wle_fp6_1_10", "Fall Canyon" }, + { "current_wle_fp6_2_01", "Valise" }, + { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + { "current_wle_fp6_2_03", "Water Way" }, + { "current_wle_fp6_2_04", "The Doors of Doom" }, + { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + { "current_wle_fp6_2_06", "Liana Swings" }, + { "current_wle_fp6_2_07", "Colourful" }, + { "current_wle_fp6_2_08", "The Heist!" }, + { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + { "current_wle_fp6_3_01", "Tricky Treat" }, + { "current_wle_fp6_3_02", "The Lighthouse" }, + { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + { "current_wle_fp6_3_04", "The Scarescraper" }, + { "current_wle_fp6_3_05", "Obstacle Road" }, + { "current_wle_fp6_3_06", "Rest In Paris" }, + { "current_wle_fp6_3_07", "Horror pumpkim" }, + { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + + { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + { "current_wle_fp6_wk2_03", "Slidy Road" }, + { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + { "current_wle_fp6_wk2_05", "Lost in space" }, + { "current_wle_fp6_wk2_06", "Turbine Decline" }, + { "current_wle_fp6_wk2_07", "Zero Displacement" }, + { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + { "current_wle_fp6_wk2_10", "Neoway" }, + { "current_wle_fp6_wk2_11", "Niagara Falls" }, + { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + { "current_wle_fp6_wk2_1_06", "Locomoção" }, + { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + + { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + { "current_wle_fp6_wk3_02", "Compact 5" }, + { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + { "current_wle_fp6_wk3_05", "Alto voltaje" }, + { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + { "current_wle_fp6_wk3_09", "Work and Travel" }, + { "current_wle_fp6_wk3_10", "connect the bridge" }, + { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + { "current_wle_fp6_wk3_2_02", "speed demon" }, + { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + + { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + { "current_wle_fp6_wk4_03_05", "Snow Style" }, + { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + { "current_wle_fp6_wk4_05_01", "Rebound" }, + { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + + { "current_wle_community_10_5_01", "Snowy Starfall" }, + { "current_wle_community_10_5_02", "The Earthquake" }, + { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + { "current_wle_community_10_5_1_04", "Garden of Woo" }, + { "current_wle_community_10_5_1_05", "Out in the open" }, + { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + { "current_wle_community_10_5_1_08", "Jungle Journey" }, + { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + { "current_wle_community_10_5_1_15", "Three Rooms" }, + { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + { "current_wle_community_10_5_1_17", "Winter Slide" }, + { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + + { "wle_s10_cf_round_001", "Blocky Bridges" }, + { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + { "wle_s10_cf_round_003", "Drop n' Drag" }, + { "wle_s10_cf_round_004", "Fun with Fans" }, + + { "wle_mrs_bagel", "Rainbow Rally" }, + { "wle_mrs_shuffle_show", "Digi's Shuffle Selection" }, + { "wle_mrs_shuffle_show_squads", "Squads Scramble" }, + { "wle_shuffle_discover", "SOLOS SHUFFLE" }, + { "wle_mrs_bouncy_bean_time", "Bouncy Bean Time" }, + { "wle_mrs_winter", "Winter Wonders" }, + { "wle_shuffle_chill", "Chill Shuffle" }, + { "wle_mrs_survival_showdown", "Survival Showdown" }, + { "wle_shuffle_survival", "Survival Shuffle" }, + { "wle_mrs_ugc_playful_pioneers", "Playful Pioneers" }, + { "wle_playful_shuffle", "Playful Pioneers Shuffle" }, + { "event_april_fools", "Fool and Fall Shuffle" }, + { "wle_nature_ltm", "Wilderness Falls" }, + + { "private_lobbies", "Custom Show" }, + { "fall_guys_creative_mode", "Fall Guys Creative" }, + { "invisibeans_mode", "Sweet Thieves" }, + } + }, + { Language.Korean, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "anniversary_fp12_ltm", "기념 파티" }, + { "casual_show", "탐험" }, + { "classic_duos_show", "듀오" }, + { "classic_solo_main_show", "솔로" }, + { "classic_squads_show", "스쿼드" }, + { "collectables_ss2_batch_01", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model1", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model2", "대기실 쇼 디버그" }, + { "collectables_ss2_batch_02", "대기실 쇼 디버그" }, + { "collectables_ss2_batch_02_model1", "대기실 쇼 디버그" }, + { "collectables_ss2_batch_02_model2", "대기실 쇼 디버그" }, + { "collectables_ss2_batch_03", "대기실 쇼 디버그" }, + { "collectables_ss2_batch_03_model1", "대기실 쇼 디버그" }, + { "collectables_ss2_batch_03_model2", "대기실 쇼 디버그" }, + { "collectables_ss2_batch_04", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model1", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model2", "Batch 4 Collectables" }, + { "collectables_ss2_batch_05", "batch5" }, + { "collectables_ss2_batch_05_model1", "batch5" }, + { "collectables_ss2_batch_05_model2", "batch5" }, + { "duos_show_ss2_launch", "Duos Show SS2" }, + { "duos_show_ss2_parrot", "듀오" }, + { "event_animals_template", "비스티 가이" }, + { "event_anniversary_season_1", "기념 파티" }, + { "event_anniversary_season_1_0408_to_0808_2022", "기념 파티" }, + { "event_anniversary_season_1_1706_to_2106_2022", "클래식 넉아웃" }, + { "event_anniversary_season_1_alternate_name", "클래식 넉아웃" }, + { "event_aprilstart_0404_1004", "Title" }, + { "event_autumn_festival_squads_1708_to_1808_2022", "스쿼드 기념" }, + { "event_autumn_festival_squads_2109_2709_21", "스쿼드 기념" }, + { "event_autumn_festival_squads_2110_2210_2022", "스쿼드 기념" }, + { "event_blast_ball_banger_1309_to_1409_2022", "블라스트 공 파티" }, + { "event_blast_ball_banger_1710_1810_2022", "블라스트 공 파티" }, + { "event_blast_ball_banger_2310_2410_2022", "블라스트 공 파티" }, + { "event_blast_ball_banger_2408_to_2808_2022", "블라스트 공 파티" }, + { "event_blast_ball_banger_2609_to_2809_2022", "블라스트 공 파티" }, + { "event_blast_ball_banger_template", "블라스트 공 파티" }, + { "event_bubble_template", "기념 파티" }, + { "event_clan_of_yeetus_2509_to_2709_2022", "망치 클랜" }, + { "event_clan_of_yeetus_ss2_2110_2210_2022", "망치 클랜" }, + { "event_clan_of_yeetus_ss2_2509_2709_2022", "망치 클랜" }, + { "event_day_at_races_squads_1610_1710_2022", "경주의 날 스쿼드" }, + { "event_day_at_races_squads_2308_to_2408_2022", "경주의 날 스쿼드" }, + { "event_day_at_races_squads_2707_to_2807_2022", "경주의 날 스쿼드" }, + { "event_day_at_races_squads_template", "경주의 날 스쿼드" }, + { "event_day_at_the_races_ltm", "경주의 날 솔로" }, + { "event_end_of_season_s1", "피날레 1/5: 목요일 쇼" }, + { "event_end_of_season_s2", "피날레 2/5: 금요일 쇼" }, + { "event_end_of_season_s3", "피날레 3/5: 토요일 쇼" }, + { "event_end_of_season_s4", "피날레 4/5: 일요일 쇼" }, + { "event_end_of_season_s5", "피날레 5/5: 월요일 쇼" }, + { "event_fall_ball_101022_121022", "공 떨어져유 컵" }, + { "event_fan_favourites_1807_to_2107_2022", "최강 인기" }, + { "event_fan_favourites_1908_to_2108_2022", "최강 인기" }, + { "event_fan_favourites_s6_template", "최강 인기" }, + { "event_fan_favourites_template", "최강 인기" }, + { "event_fanfare_template", "선풍기 바람" }, + { "event_fruit_basket", "과일 바구니" }, + { "event_hilaria_2022", "???????????" }, + { "event_invisibeans_ss2_1010_1210_2022", "달콤한 도둑들" }, + { "event_kudos_blow_up_0910_to_1110_2021", "시간이 곧 쿠도스!: 날려버리기" }, + { "event_kudos_blow_up_template", "시간이 곧 쿠도스!: 날려버리기" }, + { "event_kudos_bollard_greens_1310_to_1510_2021", "시간이 곧 쿠도스!: 볼라드 그린스" }, + { "event_kudos_bollard_greens_1510_to_1710_2021", "시간이 곧 쿠도스!: 볼라드 그린스" }, + { "event_kudos_bollard_greens_template", "시간이 곧 쿠도스!: 볼라드 그린스" }, + { "event_kudos_gravity_wield_1110_to_1310_2021", "시간이 곧 쿠도스!: 중력 휘두르기" }, + { "event_kudos_gravity_wield_1310_to_1510_2021", "시간이 곧 쿠도스!: 중력 휘두르기" }, + { "event_kudos_gravity_wield_template", "시간이 곧 쿠도스!: 중력 휘두르기" }, + { "event_kudos_jumping_for_joy_0510_to_0710_2021", "시간이 곧 쿠도스!: 기뻐 날뛰기" }, + { "event_kudos_jumping_for_joy_0710_to_0910_2021", "시간이 곧 쿠도스!: 기뻐 날뛰기" }, + { "event_kudos_jumping_for_joy_template", "시간이 곧 쿠도스!: 기뻐 날뛰기" }, + { "event_kudos_spin_cycle_0710_to_0910_2021", "시간이 곧 쿠도스!: 스핀 사이클" }, + { "event_kudos_spin_cycle_1110_to_1310_2021", "시간이 곧 쿠도스!: 스핀 사이클" }, + { "event_kudos_spin_cycle_template", "시간이 곧 쿠도스!: 스핀 사이클" }, + { "event_le_anchovy_private_lobbies", "크라켄 사냥" }, + { "event_le_anchovy_template", "크라켄 사냥" }, + { "event_le_halloween_slime_climb", "트릭 쇼" }, + { "event_le_halloween_slime_climb_2110_to_0111_2021", "트릭 쇼" }, + { "event_le_halloween_team_squads", "트리트 쇼(트리오)" }, + { "event_le_halloween_team_squads_2110_to_0111_2021", "트리트 쇼(트리오)" }, + { "event_new_year_s6", "젤리빈 신체 단련" }, + { "event_no_teams", "노 팀" }, + { "event_only_1v1_volleyfall_squads_ss1_or_ss2_show2", "배구 토너먼트" }, + { "event_only_basketfall", "슬램 덩크" }, + { "event_only_blast_ball_trials_0609_to_0709_2022", "블라스트 공 트라이얼" }, + { "event_only_blast_ball_trials_1608_to_1708_2022", "블라스트 공 트라이얼" }, + { "event_only_blast_ball_trials_1907_to_2007_2022", "블라스트 공 트라이얼" }, + { "event_only_blast_ball_trials_template", "블라스트 공 트라이얼" }, + { "event_only_bubbles_template", "<비눗방울 퐁퐁> 트라이얼" }, + { "event_only_button_bashers_template", "버튼 누르기 배틀로얄" }, + { "event_only_drumtop_0607_to_0707_2022", "정글 바운스 림보" }, + { "event_only_drumtop_0908_to_1008_2022", "정글 바운스 림보" }, + { "event_only_drumtop_3108_to_0109_2022", "정글 바운스 림보" }, + { "event_only_drumtop_template", "정글 바운스 림보" }, + { "event_only_fall_ball_011122_031122", "공 떨어져유 컵" }, + { "event_only_fall_ball_0407_to_0507_2022", "공 떨어져유 컵" }, + { "event_only_fall_ball_1810_2010_2022", "공 떨어져유 컵" }, + { "event_only_fall_ball_custom_lobby", "공 떨어져유 컵" }, + { "event_only_fall_ball_squads_0106_to_0206_2022", "공 떨어져유 컵" }, + { "event_only_fall_ball_squads_1609_to_1809_2022", "공 떨어져유 컵" }, + { "event_only_fall_ball_squads_template", "공 떨어져유 컵" }, + { "event_only_fall_ball_template", "공 떨어져유 컵" }, + { "event_only_fall_ball_trios_ranked", "공 떨어져유 컵 트리오 랭크" }, + { "event_only_finals_2904_to_0105_2022", "결승전 마라톤" }, + { "event_only_finals_template", "결승전 마라톤" }, + { "event_only_finals_v2_template", "결승전 마라톤" }, + { "event_only_finals_v3_ranked", "결승전 마라톤 랭크" }, + { "event_only_finals_v3_template", "결승전 마라톤" }, + { "event_only_floor_fall_0510_to_0610_2022", "바닥 떨어져유 트라이얼" }, + { "event_only_floor_fall_2510_2610_2022", "바닥 떨어져유 트라이얼" }, + { "event_only_floor_fall_custom_lobby", "바닥 떨어져유 트라이얼" }, + { "event_only_floor_fall_low_grav", "육각 저중력 트라이얼" }, + { "event_only_floor_fall_low_grav_0108_to_0208_2022", "육각 저중력 트라이얼" }, + { "event_only_floor_fall_low_grav_0507_to_0607_2022", "육각 저중력 트라이얼" }, + { "event_only_floor_fall_low_grav_2208_to_2308_2022", "육각 저중력 트라이얼" }, + { "event_only_floor_fall_template", "바닥 떨어져유 트라이얼" }, + { "event_only_hard_mode_1306_to_1406_2022", "하드 모드" }, + { "event_only_hard_mode_private_lobbies", "하드 모드" }, + { "event_only_hard_mode_template", "하드 모드" }, + { "event_only_hexaring_1808_to_2208_2022", "링 헥사슬론" }, + { "event_only_hexaring_template", "링 헥사슬론" }, + { "event_only_hoverboard_template", "호버보드 탈 시간" }, + { "event_only_jump_club_0109_to_0209_2022", "신나게 점프" }, + { "event_only_jump_club_1008_to_1108_2022", "신나게 점프" }, + { "event_only_jump_club_1907_to_2007_2022", "신나게 점프" }, + { "event_only_jump_club_2305_to_2405_2022_v2", "신나게 점프" }, + { "event_only_jump_club_2706_to_2806_2022", "신나게 점프" }, + { "event_only_jump_club_custom_lobby", "신나게 점프" }, + { "event_only_jump_club_ss2_0310_0410_2022", "신나게 점프" }, + { "event_only_jump_club_template", "신나게 점프" }, + { "event_only_pixelperfect", "픽셀 페인터" }, + { "event_only_races_any_final_2406_to_2606_2022", "경주의 날 솔로" }, + { "event_only_races_any_final_2505_to_2605_2022", "경주의 날 솔로" }, + { "event_only_races_any_final_private_lobbies", "경주의 날 솔로" }, + { "event_only_races_any_final_template", "경주의 날 솔로" }, + { "event_only_races_no_lava_template", "경주의 날 솔로" }, + { "event_only_races_template", "경주의 날 솔로" }, + { "event_only_roll_on", "롤온 전용" }, + { "event_only_roll_out", "돌고 또 돌고" }, + { "event_only_roll_out_0806_to_0906_2022", "돌고 또 돌고" }, + { "event_only_roll_out_2005_to_2205_2022", "돌고 또 돌고" }, + { "event_only_roll_out_custom_lobby", "돌고 또 돌고" }, + { "event_only_season_2_variation_template", "중세 믹스업" }, + { "event_only_season_3_variation_template", "믹스업!" }, + { "event_only_season_4", "미래 펌블" }, + { "event_only_season_4_1507_to_1707_2022", "미래 펌블" }, + { "event_only_season_4_2705_to_2905_2022", "미래 펌블" }, + { "event_only_season_4_custom_lobby", "미래 펌블" }, + { "event_only_season_4_variation_template", "믹스업!" }, + { "event_only_season_5_0309_1209", "정글 점블" }, + { "event_only_season_5_0409_to_0509_2022", "정글 점블" }, + { "event_only_season_5_0807_to_1007_2022", "정글 점블" }, + { "event_only_season_5_0909_to_1009_2022", "정글 점블" }, + { "event_only_season_5_custom_lobby", "정글 점블" }, + { "event_only_season_5_template", "정글 점블" }, + { "event_only_season_5_variation_template", "믹스업!" }, + { "event_only_season_6_launch_party", "파티 타임 텀블" }, + { "event_only_season_6_launch_party_1703_to_1903_2022", "파티 타임 텀블" }, + { "event_only_season_6_template", "파티 타임 텀블" }, + { "event_only_skeefall_timetrial_0309_to_0409_2022", "스키 점프 고득점" }, + { "event_only_skeefall_timetrial_0711_0711_2022", "스키 점프 고득점" }, + { "event_only_skeefall_timetrial_1307_to_1407_2022", "스키 점프 고득점" }, + { "event_only_skeefall_timetrial_1508_to_1608_2022", "스키 점프 고득점" }, + { "event_only_skeefall_timetrial_1909_to_2009_2022", "스키 점프 고득점" }, + { "event_only_skeefall_timetrial_2710_2810_2022", "스키 점프 고득점" }, + { "event_only_skeefall_timetrial_s6_1", "스키 점프 고득점" }, + { "event_only_skeefall_timetrial_ss2_1909_2009_2022", "스키 점프 고득점" }, + { "event_only_slime_climb", "슬라임 오르기 타임" }, + { "event_only_slime_climb_0110_to_0210_2022", "슬라임 오르기 타임" }, + { "event_only_slime_climb_0308_to_0408_2022", "슬라임 오르기 타임" }, + { "event_only_slime_climb_0709_to_0809_2022", "슬라임 오르기 타임" }, + { "event_only_slime_climb_1107_to_1207_2022", "슬라임 오르기 타임" }, + { "event_only_slime_climb_1506_to_1606_2022", "슬라임 오르기 타임" }, + { "event_only_slime_climb_2608_to_2708_2022", "슬라임 오르기 타임" }, + { "event_only_slime_climb_2_0606_to_0706_2022", "슬라임 등반 타임" }, + { "event_only_slime_climb_2_0709_to_0909_2021", "슬라임 등반 타임" }, + { "event_only_slime_climb_2_2910_3010_2022", "슬라임 등반 타임" }, + { "event_only_slime_climb_2_template", "슬라임 등반 타임" }, + { "event_only_slime_climb_ss2_0110_0210_2022", "슬라임 오르기 타임" }, + { "event_only_ss2_squads_1910_2110_2022", "3,2,1, 우주로!" }, + { "event_only_ss2_squads_template", "3,2,1, 우주로!" }, + { "event_only_survival_fittest_3110_0111_2022", "적자 생존" }, + { "event_only_survival_private_lobbies", "슬라임 서바이벌" }, + { "event_only_survival_ss2_3009_0210_2022", "적자 생존" }, + { "event_only_thin_ice_0205_to_0205_2022", "살얼음판 트라이얼" }, + { "event_only_thin_ice_template", "살얼음판 트라이얼" }, + { "event_only_tip_toe_0204_to_0304_2022", "<살금살금> 토너먼트" }, + { "event_only_tip_toe_0209_to_0309_2022", "<살금살금> 토너먼트" }, + { "event_only_tip_toe_2507_to_2607_2022", "<살금살금> 토너먼트" }, + { "event_only_tip_toe_2809_to_2909_2022", "<살금살금> 토너먼트" }, + { "event_only_tip_toe_2909_to_3009_2022", "<살금살금> 토너먼트" }, + { "event_only_tip_toe_template", "<살금살금> 토너먼트" }, + { "event_only_volleyfall_squads_ss2_1110_1210_2022", "배구 토너먼트" }, + { "event_only_volleyfall_squads_ss2_2010_2110_2022", "배구 토너먼트" }, + { "event_oriole_0612_to_1212_2021", "에일로이의 블레이즈 캐니스터 난장판" }, + { "event_oriole_template", "에일로이의 블레이즈 캐니스터 난장판" }, + { "event_pixel_palooza_2210_2310_2022", "픽셀 축제" }, + { "event_pixel_palooza_template", "픽셀 축제" }, + { "event_s6_651_template", "PLACEHOLDER SHOW" }, + { "event_s9_crayfish_template", "선물 찾기" }, + { "event_season_2_highlight_1006_to_1206_2022", "중세 뒤죽박죽" }, + { "event_season_2_highlight_2907_to_3107_2022", "중세 뒤죽박죽" }, + { "event_season_2_highlight_template", "중세 뒤죽박죽" }, + { "event_season_3_highlight_0306_to_0506_2022", "눈 오는 날 스텀블" }, + { "event_season_3_highlight_2607_to_2707_2022", "눈 오는 날 스텀블" }, + { "event_season_3_highlight_template", "눈 오는 날 스텀블" }, + { "event_snowday_stumble", "눈 오는 날 스텀블" }, + { "event_sports_suddendeath_squads", "골든 골 도전" }, + { "event_sports_suddendeath_squads_0208_to_0308_2022", "골든 골 도전" }, + { "event_sports_suddendeath_squads_0407_to_0507_2022", "골든 골 도전" }, + { "event_sports_suddendeath_squads_0509_to_0609_2022", "골든 골 도전" }, + { "event_sports_suddendeath_squads_2603_to_2803_2022", "골든 골 도전" }, + { "event_sports_template", "스포츠 축제" }, + { "event_squads_festival_ss2_2409_2509_2022", "스쿼드 기념" }, + { "event_squads_survival_0509_to_0609_2022", "생존 스쿼드" }, + { "event_squads_survival_0511_0711_2022", "생존 스쿼드" }, + { "event_squads_survival_0808_to_0908_2022", "생존 스쿼드" }, + { "event_squads_survival_ss2_0710_0910_2022", "생존 스쿼드" }, + { "event_squads_survival_template", "생존 스쿼드" }, + { "event_stars01_0404_1004", "적응하기!" }, + { "event_stars02_1804_to_2404_2022", "논리!" }, + { "event_stars03_0305_to_0805_2022", "용기!" }, + { "event_summer_squads_0107_0407_2022", "스쿼드 기념" }, + { "event_summer_squads_2107_2507", "스쿼드 기념" }, + { "event_symphony_launch_show_1310_1610_2022", "스타디움 스타 쇼" }, + { "event_symphony_launch_show_template", "스타디움 스타 쇼" }, + { "event_tail_tag_april_show", "오류 4월 1일" }, + { "event_test_season_5", "듀오" }, + { "event_twitch_rivals", "Twitch Rivals" }, + { "event_vulture_1612_to_2712_2021", "누가 착한 앤지 나쁜 앤지 쇼" }, + { "event_vulture_template", "누가 착한 앤지 나쁜 앤지 쇼" }, + { "event_walnut_template", "육각 마라톤" }, + { "event_week_of_romance_s6_duo_teams", "듀오 축제" }, + { "event_xtreme_fall_guys_0211_0411_2022", "X-익스트림 솔로" }, + { "event_xtreme_fall_guys_2207_to_2407_2022", "X-익스트림 솔로" }, + { "event_xtreme_fall_guys_2903_to_3103_2022", "X-익스트림 솔로" }, + { "event_xtreme_fall_guys_2908_to_3108_2022", "X-익스트림 솔로" }, + { "event_xtreme_fall_guys_squads_1208_to_1408_2022", "X-익스트림 스쿼드" }, + { "event_xtreme_fall_guys_squads_2906_to_3006_2022", "X-익스트림 스쿼드" }, + { "event_xtreme_fall_guys_squads_2908_to_3108_2022", "X-익스트림 스쿼드" }, + { "event_xtreme_fall_guys_squads_ss2_1310_1510_2022", "X-익스트림 스쿼드" }, + { "event_xtreme_fall_guys_squads_ss2_2109_2309_2022", "X-익스트림 스쿼드" }, + { "event_xtreme_fall_guys_squads_template", "X-익스트림 스쿼드" }, + { "event_xtreme_fall_guys_ss2_0310_0510_2022", "X-익스트림 솔로" }, + { "event_xtreme_fall_guys_template", "X-익스트림 솔로" }, + { "event_yeetus_111022_121022", "대형 망치 투어" }, + { "event_yeetus_3005_to_3105_2022", "대형 망치 투어" }, + { "event_yeetus_template", "대형 망치 투어" }, + { "explore_points", "탐험 - 포인트" }, + { "fp16_ski_fall_high_scorers", "스키 점프 고득점" }, + { "ftue_uk_show", "넉아웃" }, + { "greatestsquads_ltm", "환상의 스쿼드" }, + { "greatestsquads_ranked", "환상의 스쿼드 랭크" }, + { "invisibeans_0508_to_0708_2022", "달콤한 도둑들" }, + { "invisibeans_0707_to_1107_2022", "달콤한 도둑들" }, + { "invisibeans_0803_to_1303_2022", "달콤한 도둑들" }, + { "invisibeans_181022_201022", "달콤한 도둑들" }, + { "invisibeans_2209_to_2409_2022", "달콤한 도둑들" }, + { "invisibeans_2808_to_3008_2022", "달콤한 도둑들" }, + { "invisibeans_pistachio_template", "사탕 도둑들" }, + { "invisibeans_template", "달콤한 도둑들" }, + { "knockout_duos", "듀오" }, + { "knockout_mode", "넉아웃" }, + { "knockout_mode_pl", "넉아웃" }, + { "knockout_squads", "스쿼드" }, + { "live_event_bluejay", "어서어서 빨리빨리!" }, + { "live_event_clan_of_yeetus_0411_0611_2022", "망치 클랜" }, + { "live_event_clan_of_yeetus_ss1_template", "망치 클랜" }, + { "live_event_peanut_ss2_01", "서. 잃어버" }, + { "live_event_peanut_ss2_02", "버린 도시, 마" }, + { "live_event_peanut_ss2_03", "시, 마침내" }, + { "live_event_peanut_ss2_04", "침내 발" }, + { "live_event_peanut_ss2_05", "발견. 블런" }, + { "live_event_peanut_ss2_06", "견. 블런더돔 너" }, + { "live_event_peanut_ss2_07", "런더돔 너머" }, + { "live_event_peanut_ss2_08", "돔 너머, 침" }, + { "live_event_peanut_ss2_09", "머, 침몰한 과" }, + { "live_event_peanut_ss2_10", "과거에서. 잃" }, + { "live_event_pelican_template", "스파르탄 쇼다운" }, + { "live_event_satellite_collectibles_solo_template", "위성 수리 임무" }, + { "live_event_satellite_collectibles_template", "위성 수리 임무" }, + { "live_event_ss2_potoo_template", "젤리빈스컬의 힘" }, + { "live_event_ss2_potoo_template_test", "POTOO TEST! NOT FINAL!" }, + { "live_event_symphony_launch_show_template", "스타디움 스타 쇼" }, + { "live_event_timeattack_dizzyheights", "타임 어택 트라이얼 - 어질어질 장애물 코스" }, + { "live_event_timeattack_lilyleapers", "타임 어택 트라이얼 - 정글 바운스" }, + { "live_event_timeattack_partyprom", "타임 어택 트라이얼 - 신나는 축제" }, + { "live_event_timeattack_shuffle", "타임 어택 셔플" }, + { "live_event_timeattack_shuffle_pl", "타임 어택 셔플" }, + { "live_event_timeattack_trackattack", "타임 어택 트라이얼 - 진격의 트랙" }, + { "live_event_timeattack_treetoptumble", "타임 어택 트라이얼 - 정글 탐험" }, + { "live_event_timeattack_tundrarun", "타임 어택 트라이얼 - 툰드라 런" }, + { "main_show", "솔로" }, + { "main_show_2player", "메인 쇼" }, + { "main_show_private_lobbies", "솔로" }, + { "main_show_ss2_launch_pl", "솔로" }, + { "main_show_template_base", "메인 쇼" }, + { "main_show_template_large", "메인 쇼" }, + { "main_show_template_medium", "메인 쇼" }, + { "mrs_pegwin_winter_2teamsfinal", "펭귄 축제" }, + { "no_elimination_explore", "탐험 - 클래식" }, + { "no_elimination_show", "솔로 느긋함" }, + { "only_1v1_volleyfall", "배구 토너먼트" }, + { "only_1v1_volleyfall_191022_211022", "배구 토너먼트" }, + { "only_solo_ss2_rounds_show", "3,2,1, 우주로!" }, + { "pl_blastball", "블라스트 공" }, + { "pl_duos_show", "듀오" }, + { "pl_fallmountain", "산 무너져유" }, + { "pl_hexagone", "바닥 떨어져유" }, + { "pl_hexaring", "육각링" }, + { "pl_hexaterrestrial", "육각형 바닥" }, + { "pl_jumpshowdown", "점프 쇼다운" }, + { "pl_krakenslam", "크라켄 슬램" }, + { "pl_losttemple", "버려진 사원" }, + { "pl_rolloff", "롤 오프" }, + { "pl_royal_fumble", "꼬리 쟁탈전" }, + { "pl_solo_main_show", "솔로" }, + { "pl_squads_show", "스쿼드" }, + { "pl_thin_ice", "살얼음판" }, + { "pl_tiptoefinale", "살금 살금 피날레" }, + { "pl_vaulted_show", "볼트" }, + { "placeholder", ""}, + { "playlist_fallguys_skill", "playlist_fallguys_skill" }, + { "playlist_fallguys_solo", "playlist_fallguys_solo" }, + { "playlist_fallguys_soloskill", "playlist_fallguys_soloskill" }, + { "playlist_fallguys_squad", "playlist_fallguys_squad" }, + { "ranked_duos_show", "랭크 듀오" }, + { "ranked_show_knockout", "랭크 넉아웃" }, + { "ranked_solo_show", "랭크 솔로" }, + { "ranked_squads_show", "랭크 스쿼드" }, + { "ranked_trios_show", "랭크 트리오" }, + { "reversed_knockout_show", "웃아넉" }, + { "showcase_fp13", "고철 스텀블" }, + { "showcase_fp16", "프로스티 뜀박질" }, + { "showcase_fp17", "폴렌타인 페스티벌" }, + { "showcase_fp18", "장난꾸러기 삼총사" }, + { "showcase_fp19", "폴짝대도시 고 고!!!" }, + { "showcase_fp20", "블런더비치 노다지" }, + { "show_episode_level_variation_sy2_launch_01", "믹스업!" }, + { "show_episode_level_variation_sy2_launch_02", "믹스업!" }, + { "show_episode_level_variation_sy2_launch_03", "믹스업!" }, + { "show_episode_level_variation_sy2_launch_04", "믹스업!" }, + { "show_episode_level_variation_sy2_launch_05", "믹스업!" }, + { "show_episode_level_variation_victoria_1", "믹스업!" }, + { "show_episode_level_variation_victoria_2", "믹스업!" }, + { "show_episode_level_variation_victoria_3", "믹스업!" }, + { "show_episode_level_variation_victoria_4_squads", "믹스업!" }, + { "show_robotrampage_ss2_2809_to_2909_2022", "코뿔소 피하기 스탠드오프" }, + { "show_robotrampage_ss2_show1_2510_2610_2022", "코뿔소 피하기 스탠드오프" }, + { "show_robotrampage_ss2_show1_template", "코뿔소 피하기 스탠드오프" }, + { "slime_survivors", "슬라임 서바이벌" }, + { "solo_show_pl_all_rounds", "솔로 버라이어티 쇼" }, + { "solo_show_ss2_launch", "Solo Show SS2" }, + { "solo_show_ss2_parrot", "솔로" }, + { "spectator_show", "스포츠 관전" }, + { "sports_show", "폴가이즈 운동회" }, + { "squad_duo_slimeclimbs", ""}, + { "squad_show", "스쿼드 쇼" }, + { "squad_show_2player", "스쿼드 쇼" }, + { "squad_show_2player_laps", "스쿼드 쇼" }, + { "squad_show_survival", "DEBUG Squad Show Survival" }, + { "squad_show_team_2player", "접속 오류" }, + { "squadcelebration", "스쿼드 축하" }, + { "squads_2player_1403_to_0205_2022", "스쿼드 듀오" }, + { "squads_2player_automation", "스쿼드 듀오" }, + { "squads_2player_points_test", "듀오" }, + { "squads_2player_template", "듀오" }, + { "squads_3player_0111_1511_21", "스쿼드 트리오" }, + { "squads_3player_0208_to_1508_2021", "스쿼드 트리오" }, + { "squads_3player_04012022_to_13012022", "스쿼드 트리오" }, + { "squads_3player_automation", "스쿼드 트리오" }, + { "squads_3player_template", "스쿼드 트리오" }, + { "squads_4player", "스쿼드" }, + { "squads_4player_2812_no_end", "스쿼드" }, + { "squads_4player_after_potoo", "스쿼드" }, + { "squads_show_ss2_launch", "Squads Show SS2" }, + { "squads_show_ss2_parrot", "스쿼드" }, + { "survival_of_the_fittest", "적자 생존" }, + { "teams_show", "접속 오류" }, + { "teams_show_ltm", "다이나믹 듀오" }, + { "timeattack_mode", "타임 어택" }, + { "toms_main_show_5_2", "메인 쇼" }, + { "toms_show2", "Toms Show 2" }, + { "turbo_show", "솔로" }, + { "turbo_2_show", "솔로" }, + { "ultimate_party_adventure", "최고의 파티 - 모험" }, + { "wallguys_test", "벽
가이즈" }, + { "wle_lobby_template", "Show Name" }, + { "wle_lobby_template_validation", "Show Name" }, + { "wle_mrs_template", "placeholder" }, + { "wle_srs_multi_winner_template_filler", "placeholder" }, + { "wle_srs_multi_winner_template_final", "placeholder" }, + { "wle_srs_multi_winner_template_opener", "placeholder" }, + { "wle_srs_single_winner_template_filler", "placeholder" }, + { "wle_srs_single_winner_template_final", "placeholder" }, + { "wle_srs_single_winner_template_opener", "placeholder" }, + { "xtreme_explore", "탐험 - X-익스트림" }, + { "xtreme_party", "X-익스트림 파티" }, + { "xtreme_solos_template_ranked", "X-익스트림 솔로 랭크" }, + + { "show_wle_s10_wk01_mrs", "크리에이터 라운드 플레이리스트 1" }, + { "show_wle_s10_wk3_mrs", "크리에이터 라운드 플레이리스트 2" }, + { "event_wle_s10_wk4_mrs", "크리에이터 라운드 플레이리스트 3" }, + { "show_wle_s10_wk5_mrs", "크리에이터 라운드 플레이리스트 4" }, + + { "show_wle_s10_wk01_srs_01", "붐 블라스트 도전" }, + { "show_wle_s10_wk01_srs_02", "사이버 경주장" }, + { "show_wle_s10_wk01_srs_03", "픽셀 하트" }, + { "show_wle_s10_wk01_srs_04", "요새에서 뜀박질" }, + { "show_wle_s10_wk02_srs_05", "슈퍼 문으로 돌진" }, + { "show_wle_s10_wk02_srs_06", "우우 함성의 나선" }, + { "show_wle_s10_wk02_srs_07", "토네이도 도전" }, + { "show_wle_s10_wk02_srs_08", "사방팔방 난장판" }, + { "show_wle_s10_wk03_srs_9", "경사 되감기" }, + { "show_wle_s10_wk03_srs_10", "비트 바운서" }, + { "show_wle_s10_wk03_srs_11", "프리즈마 축제" }, + { "show_wle_s10_wk03_srs_12", "블런더 다리" }, + { "show_wle_s10_wk04_srs_01", "고충의 타워" }, + { "show_wle_s10_wk04_srs_02", "떠밀려 나가기" }, + { "show_wle_s10_wk04_srs_03", "균형 잡기" }, + { "show_wle_s10_wk04_srs_04", "뱀 슐라롬" }, + { "show_wle_s10_wk05_srs_long_01", "사라진 바닥" }, + { "show_wle_s10_wk05_srs_long_02", "Fall Speedway" }, + { "show_wle_s10_wk05_srs_long_03", "Zig Zag Zoomies" }, + { "show_wle_s10_wk05_srs_long_04", "Terrabyte Trial" }, + + { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + { "wle_s10_player_round_wk3_02", "Door Game" }, + { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + { "wle_s10_player_round_wk3_07", "Descente Créative" }, + { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + { "wle_s10_player_round_wk3_12", "Variable Valley" }, + { "wle_s10_player_round_wk3_13", "Broken Course" }, + { "wle_s10_player_round_wk3_15", "Parkour Party" }, + { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + { "wle_s10_player_round_wk3_19", "Sky Time" }, + { "wle_s10_player_round_wk3_20", "EZz Map" }, + + { "show_wle_s10_player_round_wk4_01", "Slippery Stretch" }, + { "show_wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + { "show_wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + { "show_wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + { "show_wle_s10_player_round_wk4_06", "Topsie Tursie" }, + { "show_wle_s10_player_round_wk4_07", "Arcade Assault" }, + { "show_wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + { "show_wle_s10_player_round_wk4_09", "Green Beans" }, + { "show_wle_s10_player_round_wk4_10", "Hop Hill" }, + { "show_wle_s10_player_round_wk4_11", "Quick Sliders" }, + { "show_wle_s10_player_round_wk4_12", "Split Path" }, + { "show_wle_s10_player_round_wk4_15", "Snowboard Street" }, + { "show_wle_s10_player_round_wk4_18", "House Invasion" }, + { "show_wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + { "show_wle_s10_player_round_wk4_21", "Spin" }, + { "show_wle_s10_player_round_wk4_22", "Lane Changers" }, + + { "wle_s10_player_round_wk5_01", "Block Park" }, + { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + { "wle_s10_player_round_wk5_03", "Digital Temple" }, + { "wle_s10_player_round_wk5_04", "Tower Escape" }, + { "wle_s10_player_round_wk5_05", "Tower Dash" }, + { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + { "wle_s10_player_round_wk5_07", "Looooping" }, + { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + { "wle_s10_player_round_wk5_10", "Siank Arena" }, + { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + { "wle_s10_player_round_wk5_13", "Dessert Village" }, + { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + { "wle_s10_player_round_wk5_15", "Beast Route" }, + { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + { "wle_s10_player_round_wk5_18", "Digital Doom" }, + + { "show_wle_s10_player_round_wk6_01", "Hammer Heaven" }, + { "show_wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + { "show_wle_s10_player_round_wk6_03", "Castle Rush" }, + { "show_wle_s10_player_round_wk6_04", "Chaotic Race" }, + { "show_wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + { "show_wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + { "show_wle_s10_player_round_wk6_08", "Flower Power" }, + { "show_wle_s10_player_round_wk6_09", "Dimension Explorer" }, + { "show_wle_s10_player_round_wk6_10", "Forked Passage" }, + { "show_wle_s10_player_round_wk6_12", "The Bee Hive" }, + { "show_wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + { "show_wle_s10_player_round_wk6_14", "Snek" }, + { "show_wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + { "show_wle_s10_player_round_wk6_17", "Slippery Helixes" }, + { "show_wle_s10_player_round_wk6_18", "Recess" }, + { "show_wle_s10_player_round_wk6_19", "Parrot river" }, + { "show_wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + + { "show_wle_s10_wk07_srs_01", "Tower of Fall" }, + { "show_wle_s10_wk07_srs_02", "SOLO FULL-TILT RAGE" }, + { "show_wle_s10_wk07_srs_03", "Piso resbaloso" }, + { "show_wle_s10_wk07_srs_04", "Catastrophe Climb" }, + { "show_wle_s10_wk07_srs_05", "Sky High Run" }, + { "show_wle_s10_wk07_srs_06", "Full Speed Sliding (FSS) - Jelly Road" }, + + { "show_wle_s10_wk08_srs_01", "Push Ups" }, + { "show_wle_s10_wk08_srs_02", "Heave & Haul" }, + { "show_wle_s10_wk08_srs_03", "Stepping Stones" }, + { "show_wle_s10_wk08_srs_04", "Double Trouble" }, + + { "current_wle_fp3_07_01", "Block Sledding" }, + { "current_wle_fp3_07_02", "Layup Wallop" }, + { "current_wle_fp3_07_03", "Minecart Mayhem" }, + { "current_wle_fp3_07_04", "Bouncing Pass" }, + { "current_wle_fp3_07_05", "Ball Factory" }, + { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + { "current_wle_fp3_07_0_02", "Woo-F-O" }, + { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + + { "current_wle_fp3_08_01", "Grabbers Territory" }, + { "current_wle_fp3_08_02", "A Way Out" }, + { "current_wle_fp3_08_03", "Wall Block" }, + { "current_wle_fp3_08_04", "The dream island" }, + { "current_wle_fp3_08_05", "Rainbow pulsion" }, + { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + { "current_wle_fp3_08_10", "Crazy boxes" }, + { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + { "current_wle_fp3_08_15", "Stumble Teams" }, + { "current_wle_fp3_08_16", "Twisting Tower" }, + { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + { "current_wle_fp3_08_18", "The Rising Blocks" }, + { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + { "current_wle_fp3_09_01", "The up tower" }, + { "current_wle_fp3_09_02", "Short shuriken" }, + { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + { "current_wle_fp3_09_06", "Random Heights" }, + { "current_wle_fp3_09_07", "Climb scramble" }, + { "current_wle_fp3_09_08", "Collide Gaming" }, + { "current_wle_fp3_09_09", "Very Compressed Level" }, + { "current_wle_fp3_09_0_01", "Slippery Slope" }, + { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + { "current_wle_fp3_09_0_03", "Free Falling" }, + { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + + { "current_wle_fp3_10_01", "When Nature Falls" }, + { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + { "current_wle_fp3_10_03", "The Slime Trials" }, + { "current_wle_fp3_10_04", "Friendly Obstacles" }, + { "current_wle_fp3_10_05", "Climb and Fall" }, + { "current_wle_fp3_10_06", "Stairs and some other things" }, + { "current_wle_fp3_10_07", "Meowgical World" }, + { "current_wle_fp3_10_08", "Polluelo Speed" }, + { "current_wle_fp3_10_09", "Pixel Parade" }, + { "current_wle_fp3_10_10", "Total Madness" }, + { "current_wle_fp3_10_11", "The Abstract Maze" }, + { "current_wle_fp3_10_12", "Fan Off" }, + { "current_wle_fp3_10_13", "cloud highway" }, + { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + { "current_wle_fp3_10_15", "Speedrunners be like" }, + { "current_wle_fp3_10_16", "Tumble Tower" }, + { "current_wle_fp3_10_17", "Silver's Snake Run" }, + { "current_wle_fp3_10_18", "Now Boarding" }, + { "current_wle_fp3_10_19", "Slime Scale" }, + { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + { "current_wle_fp3_10_23", "Controlled Chaos" }, + { "current_wle_fp3_10_24", "Xtreme Jumping" }, + { "current_wle_fp3_10_25", "Odin" }, + { "current_wle_fp3_10_26", "Ciudad nube" }, + { "current_wle_fp3_10_27", "Bean Voyage" }, + { "current_wle_fp3_10_28", "SLIP-SAW" }, + { "current_wle_fp3_10_29", "Bbq bacon burger" }, + + { "current_wle_fp4_05_01_01", "巅峰车站" }, + { "current_wle_fp4_05_01_02", "Beba Park 7" }, + { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + { "current_wle_fp4_05_02", "Mini only up" }, + { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + { "current_wle_fp4_05_03_02", "Remote Control" }, + { "current_wle_fp4_05_03", "Parkway Slide" }, + { "current_wle_fp4_05_04", "Duel Dash" }, + { "current_wle_fp4_05_05", "beaten trackless road" }, + { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + { "current_wle_fp4_05_2_02", "arch city" }, + { "current_wle_fp4_05_2_03", "Desert Ruins" }, + + { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + { "current_wle_fp4_06_02", "Pachislo" }, + { "current_wle_fp4_06_0_01", "AquArsene" }, + { "current_wle_fp4_06_0_02", "RainbowCloud" }, + { "current_wle_fp4_06_0_03", "Pink Cascade" }, + { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + { "current_wle_fp4_06_1_01", "Buggin' Out" }, + { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + { "current_wle_fp4_06_1_05", "The climb of Trials" }, + { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + + { "current_wle_fp4_07_01", "Rotational Runner" }, + { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + { "current_wle_fp4_07_03", "simple stage" }, + { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + { "current_wle_fp4_07_05", "Factory Valley" }, + { "current_wle_fp4_07_06", "Jumpy Beans" }, + { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + { "current_wle_fp4_07_0_01", "Camino Ninja" }, + + { "current_wle_fp4_08_01", "co-op guys" }, + { "current_wle_fp4_08_0_01", "The big slide" }, + { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + { "current_wle_fp4_08_0_06", "X-Course" }, + { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + { "current_wle_fp4_08_1_01", "Boost in Dash" }, + { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + { "current_wle_fp4_08_1_03", "Giddy up!" }, + { "current_wle_fp4_08_1_04", "Mad lab" }, + { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + { "current_wle_fp4_08_3_01", "The Oasis" }, + + { "current_wle_fp4_09_01", "Crate Collector" }, + { "current_wle_fp4_09_02", "Dribble Drills" }, + { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + { "current_wle_fp4_09_04", "Skyline Park" }, + { "current_wle_fp4_09_05", "Birthday bonanza" }, + { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + { "current_wle_fp4_09_1_02", "Haute voltige" }, + { "current_wle_fp4_09_2_01", "DNA Test" }, + + { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + { "current_wle_fp4_10_02", "Hot Blast" }, + { "current_wle_fp4_10_03", "Box Fan Blitz" }, + { "current_wle_fp4_10_04", "Woo-terfall Way" }, + { "current_wle_fp4_10_05", "Slime race" }, + { "current_wle_fp4_10_06", "Moving Day" }, + { "current_wle_fp4_10_07", "Birthday Dash" }, + { "current_wle_fp4_10_08_m", "Wall Breaker" }, + { "current_wle_fp4_10_08", "Chess History" }, + { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + { "current_wle_fp4_10_12", "Chickens run away" }, + { "current_wle_fp4_10_20", "Co-op and CO" }, + { "current_wle_fp4_10_23", "Construction Site" }, + { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + { "current_wle_fp4_10_0_02", "Molehills" }, + + { "current_wle_fp5_2_01_01", "Plummet Summit" }, + { "current_wle_fp5_2_01_02", "タワークライム" }, + { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + { "current_wle_fp5_2_01", "Jabonsotes" }, + { "current_wle_fp5_2_02_01", "のっぽタワー" }, + { "current_wle_fp5_2_02_02", "Blaster Course" }, + { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + { "current_wle_fp5_2_02_04", "The hard Climb" }, + { "current_wle_fp5_2_02_05", "sliding guys" }, + { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + { "current_wle_fp5_2_02", "Rainbow highway" }, + { "current_wle_fp5_2_03", "Falligator" }, + { "current_wle_fp5_2_04_01", "Lily Lovers" }, + { "current_wle_fp5_2_04_02", "rainow rode" }, + { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + { "current_wle_fp5_2_04_04", "Super crazy level" }, + { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + { "current_wle_fp5_2_05_01", "Level XVIII" }, + { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + { "current_wle_fp5_2_05_04", "rainbow roade" }, + { "current_wle_fp5_2_05", "The tension Parkour" }, + { "current_wle_fp5_2_06", "Stairing Contest" }, + { "current_wle_fp5_2_07", "Vibrant Ascension" }, + + { "current_wle_fp5_3_05_01", "Beany Golf!" }, + { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + { "current_wle_fp5_4_01_01", "Tilted Walls" }, + { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + + { "current_wle_fp5_10_01", "Breezy Buddies" }, + { "current_wle_fp5_10_0_01", "Salto Plancha" }, + { "current_wle_fp5_10_0_02", "My house" }, + { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + { "current_wle_fp5_10_1_01", "Desert Ruins" }, + { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_01", "Desert Ruins" }, + { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_03", "Mystic River" }, + { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + { "current_wle_fp5_10_2_05", "Cliffside" }, + { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + { "current_wle_fp5_10_2_07", "The Avenue" }, + { "current_wle_fp5_10_2_08", "Gold City" }, + { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + { "current_wle_fp5_10_2_10", "初心者用コース" }, + { "current_wle_fp5_10_2_11", "Chain Reaction" }, + + { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + { "current_wle_fp5_wk3_1_04", "El airecito" }, + { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + + { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + { "current_wle_fp5_falloween_1_06", "Mirage" }, + { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + { "current_wle_fp5_falloween_1_08", "Toon World" }, + { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + { "current_wle_fp5_falloween_2_03_06", "Spider" }, + { "current_wle_fp5_falloween_2_03", "fastoween" }, + { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + { "current_wle_fp5_falloween_4_05", "Scary Final" }, + { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + { "current_wle_fp5_falloween_4_08", "Catoween" }, + { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + { "current_wle_fp5_falloween_5_04", "Halloween" }, + { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + { "current_wle_fp5_falloween_9_02", "Raveyard" }, + { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + { "current_wle_fp5_falloween_11_01", "Night Runners" }, + { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + { "current_wle_fp5_falloween_13_01", "Witch Way" }, + { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + + { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + { "current_wle_fp6_1_03", "SKULL KING" }, + { "current_wle_fp6_1_04", "shorter circuit" }, + { "current_wle_fp6_1_05", "be speedy" }, + { "current_wle_fp6_1_06", "Sky-City Stumble" }, + { "current_wle_fp6_1_07", "Wormhole Mountain" }, + { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + { "current_wle_fp6_1_09", "Splitspeed" }, + { "current_wle_fp6_1_10", "Fall Canyon" }, + { "current_wle_fp6_2_01", "Valise" }, + { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + { "current_wle_fp6_2_03", "Water Way" }, + { "current_wle_fp6_2_04", "The Doors of Doom" }, + { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + { "current_wle_fp6_2_06", "Liana Swings" }, + { "current_wle_fp6_2_07", "Colourful" }, + { "current_wle_fp6_2_08", "The Heist!" }, + { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + { "current_wle_fp6_3_01", "Tricky Treat" }, + { "current_wle_fp6_3_02", "The Lighthouse" }, + { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + { "current_wle_fp6_3_04", "The Scarescraper" }, + { "current_wle_fp6_3_05", "Obstacle Road" }, + { "current_wle_fp6_3_06", "Rest In Paris" }, + { "current_wle_fp6_3_07", "Horror pumpkim" }, + { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + + { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + { "current_wle_fp6_wk2_03", "Slidy Road" }, + { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + { "current_wle_fp6_wk2_05", "Lost in space" }, + { "current_wle_fp6_wk2_06", "Turbine Decline" }, + { "current_wle_fp6_wk2_07", "Zero Displacement" }, + { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + { "current_wle_fp6_wk2_10", "Neoway" }, + { "current_wle_fp6_wk2_11", "Niagara Falls" }, + { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + { "current_wle_fp6_wk2_1_06", "Locomoção" }, + { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + + { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + { "current_wle_fp6_wk3_02", "Compact 5" }, + { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + { "current_wle_fp6_wk3_05", "Alto voltaje" }, + { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + { "current_wle_fp6_wk3_09", "Work and Travel" }, + { "current_wle_fp6_wk3_10", "connect the bridge" }, + { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + { "current_wle_fp6_wk3_2_02", "speed demon" }, + { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + + { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + { "current_wle_fp6_wk4_03_05", "Snow Style" }, + { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + { "current_wle_fp6_wk4_05_01", "Rebound" }, + { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + + { "current_wle_community_10_5_01", "Snowy Starfall" }, + { "current_wle_community_10_5_02", "The Earthquake" }, + { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + { "current_wle_community_10_5_1_04", "Garden of Woo" }, + { "current_wle_community_10_5_1_05", "Out in the open" }, + { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + { "current_wle_community_10_5_1_08", "Jungle Journey" }, + { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + { "current_wle_community_10_5_1_15", "Three Rooms" }, + { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + { "current_wle_community_10_5_1_17", "Winter Slide" }, + { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + + { "wle_s10_cf_round_001", "Blocky Bridges" }, + { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + { "wle_s10_cf_round_003", "Drop n' Drag" }, + { "wle_s10_cf_round_004", "Fun with Fans" }, + + { "wle_mrs_bagel", "레인보우 랠리" }, + { "wle_mrs_shuffle_show", "디지의 셔플 셀렉션" }, + { "wle_mrs_shuffle_show_squads", "스쿼드 대소동" }, + { "wle_shuffle_discover", "솔로 셔플" }, + { "wle_mrs_bouncy_bean_time", "탱탱이 젤리빈 시간" }, + { "wle_mrs_winter", "Winter Wonders" }, + { "wle_shuffle_chill", "느긋함 셔플" }, + { "wle_mrs_survival_showdown", "생존 쇼다운" }, + { "wle_shuffle_survival", "생존 셔플" }, + { "wle_mrs_ugc_playful_pioneers", "장난스런 개척자" }, + { "wle_playful_shuffle", "장난스런 개척자 셔플" }, + { "event_april_fools", "만우절 셔플" }, + { "wle_nature_ltm", "야생으로 뛰어들기" }, + + { "private_lobbies", "커스텀 쇼" }, + { "fall_guys_creative_mode", "폴크리" }, + { "invisibeans_mode", "달콤한 도둑들" }, + } + }, + { Language.Japanese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "anniversary_fp12_ltm", "アニバーサリーパーティー" }, + { "casual_show", "自由探索" }, + { "classic_duos_show", "デュオ" }, + { "classic_solo_main_show", "ソロ" }, + { "classic_squads_show", "スクワッド" }, + { "collectables_ss2_batch_01", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model1", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model2", "デバッグロビーショー" }, + { "collectables_ss2_batch_02", "デバッグロビーショー" }, + { "collectables_ss2_batch_02_model1", "デバッグロビーショー" }, + { "collectables_ss2_batch_02_model2", "デバッグロビーショー" }, + { "collectables_ss2_batch_03", "デバッグロビーショー" }, + { "collectables_ss2_batch_03_model1", "デバッグロビーショー" }, + { "collectables_ss2_batch_03_model2", "デバッグロビーショー" }, + { "collectables_ss2_batch_04", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model1", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model2", "Batch 4 Collectables" }, + { "collectables_ss2_batch_05", "batch5" }, + { "collectables_ss2_batch_05_model1", "batch5" }, + { "collectables_ss2_batch_05_model2", "batch5" }, + { "duos_show_ss2_launch", "Duos Show SS2" }, + { "duos_show_ss2_parrot", "デュオ" }, + { "event_animals_template", "ビーストガイズ" }, + { "event_anniversary_season_1", "アニバーサリーパーティー" }, + { "event_anniversary_season_1_0408_to_0808_2022", "アニバーサリーパーティー" }, + { "event_anniversary_season_1_1706_to_2106_2022", "クラシックノックアウト" }, + { "event_anniversary_season_1_alternate_name", "クラシックノックアウト" }, + { "event_aprilstart_0404_1004", "Title" }, + { "event_autumn_festival_squads_1708_to_1808_2022", "スクワッドビクトリー" }, + { "event_autumn_festival_squads_2109_2709_21", "スクワッドビクトリー" }, + { "event_autumn_festival_squads_2110_2210_2022", "スクワッドビクトリー" }, + { "event_blast_ball_banger_1309_to_1409_2022", "ブラストボールバンガー" }, + { "event_blast_ball_banger_1710_1810_2022", "ブラストボールバンガー" }, + { "event_blast_ball_banger_2310_2410_2022", "ブラストボールバンガー" }, + { "event_blast_ball_banger_2408_to_2808_2022", "ブラストボールバンガー" }, + { "event_blast_ball_banger_2609_to_2809_2022", "ブラストボールバンガー" }, + { "event_blast_ball_banger_template", "ブラストボールバンガー" }, + { "event_bubble_template", "アニバーサリーパーティー" }, + { "event_clan_of_yeetus_2509_to_2709_2022", "ハンマークラン" }, + { "event_clan_of_yeetus_ss2_2110_2210_2022", "ハンマークラン" }, + { "event_clan_of_yeetus_ss2_2509_2709_2022", "ハンマークラン" }, + { "event_day_at_races_squads_1610_1710_2022", "華麗なるレース・スクワッド" }, + { "event_day_at_races_squads_2308_to_2408_2022", "華麗なるレース・スクワッド" }, + { "event_day_at_races_squads_2707_to_2807_2022", "華麗なるレース・スクワッド" }, + { "event_day_at_races_squads_template", "華麗なるレース・スクワッド" }, + { "event_day_at_the_races_ltm", "華麗なるレース・ソロ" }, + { "event_end_of_season_s1", "フィナーレ1/5:木曜日のショー" }, + { "event_end_of_season_s2", "フィナーレ2/5:金曜日のショー" }, + { "event_end_of_season_s3", "フィナーレ3/5:土曜日のショー" }, + { "event_end_of_season_s4", "フィナーレ4/5:日曜日のショー" }, + { "event_end_of_season_s5", "フィナーレ5/5:月曜日のショー" }, + { "event_fall_ball_101022_121022", "フォールボールカップ" }, + { "event_fan_favourites_1807_to_2107_2022", "コミュニティセレクト" }, + { "event_fan_favourites_1908_to_2108_2022", "コミュニティセレクト" }, + { "event_fan_favourites_s6_template", "コミュニティセレクト" }, + { "event_fan_favourites_template", "コミュニティセレクト" }, + { "event_fanfare_template", "ブローアップ" }, + { "event_fruit_basket", "フルーツバスケット" }, + { "event_hilaria_2022", "???????????" }, + { "event_invisibeans_ss2_1010_1210_2022", "キャンディードロボー" }, + { "event_kudos_blow_up_0910_to_1110_2021", "時はKudosなり!:ブローアップ" }, + { "event_kudos_blow_up_template", "時はKudosなり!:ブローアップ" }, + { "event_kudos_bollard_greens_1310_to_1510_2021", "時はKudosなり!:ボラード・グリーン" }, + { "event_kudos_bollard_greens_1510_to_1710_2021", "時はKudosなり!:ボラード・グリーン" }, + { "event_kudos_bollard_greens_template", "時はKudosなり!:ボラード・グリーン" }, + { "event_kudos_gravity_wield_1110_to_1310_2021", "時はKudosなり!:重力効果" }, + { "event_kudos_gravity_wield_1310_to_1510_2021", "時はKudosなり!:重力効果" }, + { "event_kudos_gravity_wield_template", "時はKudosなり!:重力効果" }, + { "event_kudos_jumping_for_joy_0510_to_0710_2021", "時はKudosなり!:ハッピー・ジャンプ" }, + { "event_kudos_jumping_for_joy_0710_to_0910_2021", "時はKudosなり!:ハッピー・ジャンプ" }, + { "event_kudos_jumping_for_joy_template", "時はKudosなり!:ハッピー・ジャンプ" }, + { "event_kudos_spin_cycle_0710_to_0910_2021", "時はKudosなり!:スピン・サイクル" }, + { "event_kudos_spin_cycle_1110_to_1310_2021", "時はKudosなり!:スピン・サイクル" }, + { "event_kudos_spin_cycle_template", "時はKudosなり!:スピン・サイクル" }, + { "event_le_anchovy_private_lobbies", "クラーケンに挑戦" }, + { "event_le_anchovy_template", "クラーケンに挑戦" }, + { "event_le_halloween_slime_climb", "トリックショー" }, + { "event_le_halloween_slime_climb_2110_to_0111_2021", "トリックショー" }, + { "event_le_halloween_team_squads", "トリートショー(トリオ)" }, + { "event_le_halloween_team_squads_2110_to_0111_2021", "トリートショー(トリオ)" }, + { "event_new_year_s6", "ジェリービーンズ・エクササイズ" }, + { "event_no_teams", "ノーチーム" }, + { "event_only_1v1_volleyfall_squads_ss1_or_ss2_show2", "バレーフォールトーナメント" }, + { "event_only_basketfall", "スラムダンク" }, + { "event_only_blast_ball_trials_0609_to_0709_2022", "ブラストボールトライアル" }, + { "event_only_blast_ball_trials_1608_to_1708_2022", "ブラストボールトライアル" }, + { "event_only_blast_ball_trials_1907_to_2007_2022", "ブラストボールトライアル" }, + { "event_only_blast_ball_trials_template", "ブラストボールトライアル" }, + { "event_only_bubbles_template", "バブルトラブルトライアル" }, + { "event_only_button_bashers_template", "ボタンバッシャーロワイヤル" }, + { "event_only_drumtop_0607_to_0707_2022", "リリー・リーパー・リンボ" }, + { "event_only_drumtop_0908_to_1008_2022", "リリー・リーパー・リンボ" }, + { "event_only_drumtop_3108_to_0109_2022", "リリー・リーパー・リンボ" }, + { "event_only_drumtop_template", "リリー・リーパー・リンボ" }, + { "event_only_fall_ball_011122_031122", "フォールボールカップ" }, + { "event_only_fall_ball_0407_to_0507_2022", "フォールボールカップ" }, + { "event_only_fall_ball_1810_2010_2022", "フォールボールカップ" }, + { "event_only_fall_ball_custom_lobby", "フォールボールカップ" }, + { "event_only_fall_ball_squads_0106_to_0206_2022", "フォールボールカップ" }, + { "event_only_fall_ball_squads_1609_to_1809_2022", "フォールボールカップ" }, + { "event_only_fall_ball_squads_template", "フォールボールカップ" }, + { "event_only_fall_ball_template", "フォールボールカップ" }, + { "event_only_fall_ball_trios_ranked", "フォールボールカップ・トリオ ランク戦" }, + { "event_only_finals_2904_to_0105_2022", "ファイナルマラソン" }, + { "event_only_finals_template", "ファイナルマラソン" }, + { "event_only_finals_v2_template", "ファイナルマラソン" }, + { "event_only_finals_v3_ranked", "ファイナルマラソン ランク戦" }, + { "event_only_finals_v3_template", "ファイナルマラソン" }, + { "event_only_floor_fall_0510_to_0610_2022", "止まるなキケン勝ち抜き戦" }, + { "event_only_floor_fall_2510_2610_2022", "止まるなキケン勝ち抜き戦" }, + { "event_only_floor_fall_custom_lobby", "止まるなキケン勝ち抜き戦" }, + { "event_only_floor_fall_low_grav", "止まるなキケン低重力トライアル" }, + { "event_only_floor_fall_low_grav_0108_to_0208_2022", "止まるなキケン低重力トライアル" }, + { "event_only_floor_fall_low_grav_0507_to_0607_2022", "止まるなキケン低重力トライアル" }, + { "event_only_floor_fall_low_grav_2208_to_2308_2022", "止まるなキケン低重力トライアル" }, + { "event_only_floor_fall_template", "止まるなキケン勝ち抜き戦" }, + { "event_only_hard_mode_1306_to_1406_2022", "ハードモード" }, + { "event_only_hard_mode_private_lobbies", "ハードモード" }, + { "event_only_hard_mode_template", "ハードモード" }, + { "event_only_hexaring_1808_to_2208_2022", "リングのノロイアスロン" }, + { "event_only_hexaring_template", "リングのノロイアスロン" }, + { "event_only_hoverboard_template", "ホバーボード・タイム" }, + { "event_only_jump_club_0109_to_0209_2022", "ジャンプアラウンド" }, + { "event_only_jump_club_1008_to_1108_2022", "ジャンプアラウンド" }, + { "event_only_jump_club_1907_to_2007_2022", "ジャンプアラウンド" }, + { "event_only_jump_club_2305_to_2405_2022_v2", "ジャンプアラウンド" }, + { "event_only_jump_club_2706_to_2806_2022", "ジャンプアラウンド" }, + { "event_only_jump_club_custom_lobby", "ジャンプアラウンド" }, + { "event_only_jump_club_ss2_0310_0410_2022", "ジャンプアラウンド" }, + { "event_only_jump_club_template", "ジャンプアラウンド" }, + { "event_only_pixelperfect", "ピクセル名人" }, + { "event_only_races_any_final_2406_to_2606_2022", "華麗なるレース・ソロ" }, + { "event_only_races_any_final_2505_to_2605_2022", "華麗なるレース・ソロ" }, + { "event_only_races_any_final_private_lobbies", "華麗なるレース・ソロ" }, + { "event_only_races_any_final_template", "華麗なるレース・ソロ" }, + { "event_only_races_no_lava_template", "華麗なるレース・ソロ" }, + { "event_only_races_template", "華麗なるレース・ソロ" }, + { "event_only_roll_on", "ロールオン限定" }, + { "event_only_roll_out", "ロールコール" }, + { "event_only_roll_out_0806_to_0906_2022", "ロールコール" }, + { "event_only_roll_out_2005_to_2205_2022", "ロールコール" }, + { "event_only_roll_out_custom_lobby", "ロールコール" }, + { "event_only_season_2_variation_template", "中世ざんまい" }, + { "event_only_season_3_variation_template", "ミックスアップ!" }, + { "event_only_season_4", "近未来ファンブル" }, + { "event_only_season_4_1507_to_1707_2022", "近未来ファンブル" }, + { "event_only_season_4_2705_to_2905_2022", "近未来ファンブル" }, + { "event_only_season_4_custom_lobby", "近未来ファンブル" }, + { "event_only_season_4_variation_template", "ミックスアップ!" }, + { "event_only_season_5_0309_1209", "ジャングルミックス" }, + { "event_only_season_5_0409_to_0509_2022", "ジャングルミックス" }, + { "event_only_season_5_0807_to_1007_2022", "ジャングルミックス" }, + { "event_only_season_5_0909_to_1009_2022", "ジャングルミックス" }, + { "event_only_season_5_custom_lobby", "ジャングルミックス" }, + { "event_only_season_5_template", "ジャングルミックス" }, + { "event_only_season_5_variation_template", "ミックスアップ!" }, + { "event_only_season_6_launch_party", "パーティータイム・タンブル" }, + { "event_only_season_6_launch_party_1703_to_1903_2022", "パーティータイム・タンブル" }, + { "event_only_season_6_template", "パーティータイム・タンブル" }, + { "event_only_skeefall_timetrial_0309_to_0409_2022", "スキーフォール・ハイスコア" }, + { "event_only_skeefall_timetrial_0711_0711_2022", "スキーフォール・ハイスコア" }, + { "event_only_skeefall_timetrial_1307_to_1407_2022", "スキーフォール・ハイスコア" }, + { "event_only_skeefall_timetrial_1508_to_1608_2022", "スキーフォール・ハイスコア" }, + { "event_only_skeefall_timetrial_1909_to_2009_2022", "スキーフォール・ハイスコア" }, + { "event_only_skeefall_timetrial_2710_2810_2022", "スキーフォール・ハイスコア" }, + { "event_only_skeefall_timetrial_s6_1", "スキーフォール・ハイスコア" }, + { "event_only_skeefall_timetrial_ss2_1909_2009_2022", "スキーフォール・ハイスコア" }, + { "event_only_slime_climb", "スライム・クライム・タイム" }, + { "event_only_slime_climb_0110_to_0210_2022", "スライム・クライム・タイム" }, + { "event_only_slime_climb_0308_to_0408_2022", "スライム・クライム・タイム" }, + { "event_only_slime_climb_0709_to_0809_2022", "スライム・クライム・タイム" }, + { "event_only_slime_climb_1107_to_1207_2022", "スライム・クライム・タイム" }, + { "event_only_slime_climb_1506_to_1606_2022", "スライム・クライム・タイム" }, + { "event_only_slime_climb_2608_to_2708_2022", "スライム・クライム・タイム" }, + { "event_only_slime_climb_2_0606_to_0706_2022", "スライムスクレイパー" }, + { "event_only_slime_climb_2_0709_to_0909_2021", "スライムスクレイパー" }, + { "event_only_slime_climb_2_2910_3010_2022", "スライムスクレイパー" }, + { "event_only_slime_climb_2_template", "スライムスクレイパー" }, + { "event_only_slime_climb_ss2_0110_0210_2022", "スライム・クライム・タイム" }, + { "event_only_ss2_squads_1910_2110_2022", "3、2、1、宇宙!" }, + { "event_only_ss2_squads_template", "3、2、1、宇宙!" }, + { "event_only_survival_fittest_3110_0111_2022", "強者サバイバル" }, + { "event_only_survival_private_lobbies", "スライム・サバイバー" }, + { "event_only_survival_ss2_3009_0210_2022", "強者サバイバル" }, + { "event_only_thin_ice_0205_to_0205_2022", "パキパキアイストライアル" }, + { "event_only_thin_ice_template", "パキパキアイストライアル" }, + { "event_only_tip_toe_0204_to_0304_2022", "ヒヤヒヤトーナメント" }, + { "event_only_tip_toe_0209_to_0309_2022", "ヒヤヒヤトーナメント" }, + { "event_only_tip_toe_2507_to_2607_2022", "ヒヤヒヤトーナメント" }, + { "event_only_tip_toe_2809_to_2909_2022", "ヒヤヒヤトーナメント" }, + { "event_only_tip_toe_2909_to_3009_2022", "ヒヤヒヤトーナメント" }, + { "event_only_tip_toe_template", "ヒヤヒヤトーナメント" }, + { "event_only_volleyfall_squads_ss2_1110_1210_2022", "バレーフォールトーナメント" }, + { "event_only_volleyfall_squads_ss2_2010_2110_2022", "バレーフォールトーナメント" }, + { "event_oriole_0612_to_1212_2021", "アーロイのブレイズキャニスターで大騒ぎ" }, + { "event_oriole_template", "アーロイのブレイズキャニスターで大騒ぎ" }, + { "event_pixel_palooza_2210_2310_2022", "ピクセルパルーザ" }, + { "event_pixel_palooza_template", "ピクセルパルーザ" }, + { "event_s6_651_template", "PLACEHOLDER SHOW" }, + { "event_s9_crayfish_template", "プレゼントゲット" }, + { "event_season_2_highlight_1006_to_1206_2022", "中世ミックス" }, + { "event_season_2_highlight_2907_to_3107_2022", "中世ミックス" }, + { "event_season_2_highlight_template", "中世ミックス" }, + { "event_season_3_highlight_0306_to_0506_2022", "雪日和スタンブル" }, + { "event_season_3_highlight_2607_to_2707_2022", "雪日和スタンブル" }, + { "event_season_3_highlight_template", "雪日和スタンブル" }, + { "event_snowday_stumble", "雪日和スタンブル" }, + { "event_sports_suddendeath_squads", "ゴールデンゴール・チャレンジ" }, + { "event_sports_suddendeath_squads_0208_to_0308_2022", "ゴールデンゴール・チャレンジ" }, + { "event_sports_suddendeath_squads_0407_to_0507_2022", "ゴールデンゴール・チャレンジ" }, + { "event_sports_suddendeath_squads_0509_to_0609_2022", "ゴールデンゴール・チャレンジ" }, + { "event_sports_suddendeath_squads_2603_to_2803_2022", "ゴールデンゴール・チャレンジ" }, + { "event_sports_template", "スポーツフェスタ" }, + { "event_squads_festival_ss2_2409_2509_2022", "スクワッドビクトリー" }, + { "event_squads_survival_0509_to_0609_2022", "サバイバル・スクワッド" }, + { "event_squads_survival_0511_0711_2022", "サバイバル・スクワッド" }, + { "event_squads_survival_0808_to_0908_2022", "サバイバル・スクワッド" }, + { "event_squads_survival_ss2_0710_0910_2022", "サバイバル・スクワッド" }, + { "event_squads_survival_template", "サバイバル・スクワッド" }, + { "event_stars01_0404_1004", "順応!" }, + { "event_stars02_1804_to_2404_2022", "ロジック!" }, + { "event_stars03_0305_to_0805_2022", "勇者!" }, + { "event_summer_squads_0107_0407_2022", "スクワッドビクトリー" }, + { "event_summer_squads_2107_2507", "スクワッドビクトリー" }, + { "event_symphony_launch_show_1310_1610_2022", "スタジアムスター・ショー" }, + { "event_symphony_launch_show_template", "スタジアムスター・ショー" }, + { "event_tail_tag_april_show", "エラー01APR" }, + { "event_test_season_5", "デュオ" }, + { "event_twitch_rivals", "Twitch Rivals" }, + { "event_vulture_1612_to_2712_2021", "「悪い子、それとも良い子?」ショー" }, + { "event_vulture_template", "「悪い子、それとも良い子?」ショー" }, + { "event_walnut_template", "消えちゃう六角マラソン" }, + { "event_week_of_romance_s6_duo_teams", "デュオフェスティバル" }, + { "event_xtreme_fall_guys_0211_0411_2022", "エクストリーム・ソロ" }, + { "event_xtreme_fall_guys_2207_to_2407_2022", "エクストリーム・ソロ" }, + { "event_xtreme_fall_guys_2903_to_3103_2022", "エクストリーム・ソロ" }, + { "event_xtreme_fall_guys_2908_to_3108_2022", "エクストリーム・ソロ" }, + { "event_xtreme_fall_guys_squads_1208_to_1408_2022", "エクストリーム・スクワッド" }, + { "event_xtreme_fall_guys_squads_2906_to_3006_2022", "エクストリーム・スクワッド" }, + { "event_xtreme_fall_guys_squads_2908_to_3108_2022", "エクストリーム・スクワッド" }, + { "event_xtreme_fall_guys_squads_ss2_1310_1510_2022", "エクストリーム・スクワッド" }, + { "event_xtreme_fall_guys_squads_ss2_2109_2309_2022", "エクストリーム・スクワッド" }, + { "event_xtreme_fall_guys_squads_template", "エクストリーム・スクワッド" }, + { "event_xtreme_fall_guys_ss2_0310_0510_2022", "エクストリーム・ソロ" }, + { "event_xtreme_fall_guys_template", "エクストリーム・ソロ" }, + { "event_yeetus_111022_121022", "ハンマーツアー" }, + { "event_yeetus_3005_to_3105_2022", "ハンマーツアー" }, + { "event_yeetus_template", "ハンマーツアー" }, + { "explore_points", "自由探索 - ポイント" }, + { "fp16_ski_fall_high_scorers", "スキーフォール・ハイスコア" }, + { "ftue_uk_show", "ノックアウト" }, + { "greatestsquads_ltm", "スクワッド・スペクタキュラー" }, + { "greatestsquads_ranked", "スクワッド・スペクタキュラー ランク戦" }, + { "invisibeans_0508_to_0708_2022", "キャンディードロボー" }, + { "invisibeans_0707_to_1107_2022", "キャンディードロボー" }, + { "invisibeans_0803_to_1303_2022", "キャンディードロボー" }, + { "invisibeans_181022_201022", "キャンディードロボー" }, + { "invisibeans_2209_to_2409_2022", "キャンディードロボー" }, + { "invisibeans_2808_to_3008_2022", "キャンディードロボー" }, + { "invisibeans_pistachio_template", "お菓子ドロボー" }, + { "invisibeans_template", "キャンディードロボー" }, + { "knockout_duos", "デュオ" }, + { "knockout_mode", "ノックアウト" }, + { "knockout_mode_pl", "ノックアウト" }, + { "knockout_squads", "スクワッド" }, + { "live_event_bluejay", "スピードが勝負!" }, + { "live_event_clan_of_yeetus_0411_0611_2022", "ハンマークラン" }, + { "live_event_clan_of_yeetus_ss1_template", "ハンマークラン" }, + { "live_event_peanut_ss2_01", "た。 サンザンダードーム か" }, + { "live_event_peanut_ss2_02", "ム から 遠" }, + { "live_event_peanut_ss2_03", "ら 遠く 離" }, + { "live_event_peanut_ss2_04", "く 離れた 海" }, + { "live_event_peanut_ss2_05", "た 海底で、 過" }, + { "live_event_peanut_ss2_06", "で、 過去に 沈" }, + { "live_event_peanut_ss2_07", "に 沈んだ ロ" }, + { "live_event_peanut_ss2_08", "だ ロストシティが つ" }, + { "live_event_peanut_ss2_09", "が ついに 発" }, + { "live_event_peanut_ss2_10", "に 発見された。 サ" }, + { "live_event_pelican_template", "スパルタン・ショーダウン" }, + { "live_event_satellite_collectibles_solo_template", "衛星修理ミッション" }, + { "live_event_satellite_collectibles_template", "衛星修理ミッション" }, + { "live_event_ss2_potoo_template", "ビーンスカルの力" }, + { "live_event_ss2_potoo_template_test", "POTOO TEST! NOT FINAL!" }, + { "live_event_symphony_launch_show_template", "スタジアムスター・ショー" }, + { "live_event_timeattack_dizzyheights", "タイムアタックトライアル - スピンレース" }, + { "live_event_timeattack_lilyleapers", "タイムアタックトライアル - リリー・リーパー" }, + { "live_event_timeattack_partyprom", "タイムアタックトライアル - パーティー・プロムナード" }, + { "live_event_timeattack_shuffle", "タイムアタックシャッフル" }, + { "live_event_timeattack_shuffle_pl", "タイムアタックシャッフル" }, + { "live_event_timeattack_trackattack", "タイムアタックトライアル - トラックアタック" }, + { "live_event_timeattack_treetoptumble", "タイムアタックトライアル - ツリートップ・タンブル" }, + { "live_event_timeattack_tundrarun", "タイムアタックトライアル - ツンドラダッシュ" }, + { "main_show", "ソロ" }, + { "main_show_2player", "メインショー" }, + { "main_show_private_lobbies", "ソロ" }, + { "main_show_ss2_launch_pl", "ソロ" }, + { "main_show_template_base", "メインショー" }, + { "main_show_template_large", "メインショー" }, + { "main_show_template_medium", "メインショー" }, + { "mrs_pegwin_winter_2teamsfinal", "ペンギンパルーザ" }, + { "no_elimination_explore", "自由探索 - クラシック" }, + { "no_elimination_show", "ソロゆったり" }, + { "only_1v1_volleyfall", "バレーフォールトーナメント" }, + { "only_1v1_volleyfall_191022_211022", "バレーフォールトーナメント" }, + { "only_solo_ss2_rounds_show", "3、2、1、宇宙!" }, + { "pl_blastball", "ブラストボール" }, + { "pl_duos_show", "デュオ" }, + { "pl_fallmountain", "クラウンマウンテン" }, + { "pl_hexagone", "止まるなキケン" }, + { "pl_hexaring", "リングのノロイ" }, + { "pl_hexaterrestrial", "止まるなキケンスペース" }, + { "pl_jumpshowdown", "ジャンプ・ショーダウン" }, + { "pl_krakenslam", "クラーケンスラム" }, + { "pl_losttemple", "ロストテンプル" }, + { "pl_rolloff", "ロールオフ" }, + { "pl_royal_fumble", "ロイヤルファンブル" }, + { "pl_solo_main_show", "ソロ" }, + { "pl_squads_show", "スクワッド" }, + { "pl_thin_ice", "パキパキアイス" }, + { "pl_tiptoefinale", "ヒヤヒヤロードファイナル" }, + { "pl_vaulted_show", "保管庫" }, + { "placeholder", ""}, + { "playlist_fallguys_skill", "playlist_fallguys_skill" }, + { "playlist_fallguys_solo", "playlist_fallguys_solo" }, + { "playlist_fallguys_soloskill", "playlist_fallguys_soloskill" }, + { "playlist_fallguys_squad", "playlist_fallguys_squad" }, + { "ranked_duos_show", "ランク戦デュオ" }, + { "ranked_show_knockout", "ランクノックアウト" }, + { "ranked_solo_show", "ランク戦ソロ" }, + { "ranked_squads_show", "ランク戦スクワッド" }, + { "ranked_trios_show", "ランク戦トリオ" }, + { "reversed_knockout_show", "トウアクッノ" }, + { "showcase_fp13", "つまずきスクラップ置き場" }, + { "showcase_fp16", "冬景色のお祭り騒ぎ" }, + { "showcase_fp17", "フォールレンタインフェスティバル" }, + { "showcase_fp18", "オマヌケトリオ" }, + { "showcase_fp19", "行け行けハンマートロポリス!!!" }, + { "showcase_fp20", "サンザンダービーチ・ボナンザ" }, + { "show_episode_level_variation_sy2_launch_01", "ミックスアップ!" }, + { "show_episode_level_variation_sy2_launch_02", "ミックスアップ!" }, + { "show_episode_level_variation_sy2_launch_03", "ミックスアップ!" }, + { "show_episode_level_variation_sy2_launch_04", "ミックスアップ!" }, + { "show_episode_level_variation_sy2_launch_05", "ミックスアップ!" }, + { "show_episode_level_variation_victoria_1", "ミックスアップ!" }, + { "show_episode_level_variation_victoria_2", "ミックスアップ!" }, + { "show_episode_level_variation_victoria_3", "ミックスアップ!" }, + { "show_episode_level_variation_victoria_4_squads", "ミックスアップ!" }, + { "show_robotrampage_ss2_2809_to_2909_2022", "ストンピング・グラウンドスタンドオフ" }, + { "show_robotrampage_ss2_show1_2510_2610_2022", "ストンピング・グラウンドスタンドオフ" }, + { "show_robotrampage_ss2_show1_template", "ストンピング・グラウンドスタンドオフ" }, + { "slime_survivors", "スライム・サバイバー" }, + { "solo_show_pl_all_rounds", "ソロバラエティショー" }, + { "solo_show_ss2_launch", "Solo Show SS2" }, + { "solo_show_ss2_parrot", "ソロ" }, + { "spectator_show", "観戦スポーツ" }, + { "sports_show", "Fall Guysゲーム" }, + { "squad_duo_slimeclimbs", ""}, + { "squad_show", "スクワッドショー" }, + { "squad_show_2player", "スクワッドショー" }, + { "squad_show_2player_laps", "スクワッドショー" }, + { "squad_show_survival", "DEBUG Squad Show Survival" }, + { "squad_show_team_2player", "接続エラー" }, + { "squadcelebration", "スクワッドビクトリー" }, + { "squads_2player_1403_to_0205_2022", "スクワッド・デュオ" }, + { "squads_2player_automation", "スクワッド・デュオ" }, + { "squads_2player_points_test", "デュオ" }, + { "squads_2player_template", "デュオ" }, + { "squads_3player_0111_1511_21", "スクワッド・トリオ" }, + { "squads_3player_0208_to_1508_2021", "スクワッド・トリオ" }, + { "squads_3player_04012022_to_13012022", "スクワッド・トリオ" }, + { "squads_3player_automation", "スクワッド・トリオ" }, + { "squads_3player_template", "スクワッド・トリオ" }, + { "squads_4player", "スクワッド" }, + { "squads_4player_2812_no_end", "スクワッド" }, + { "squads_4player_after_potoo", "スクワッド" }, + { "squads_show_ss2_launch", "Squads Show SS2" }, + { "squads_show_ss2_parrot", "スクワッド" }, + { "survival_of_the_fittest", "強者サバイバル" }, + { "teams_show", "接続エラー" }, + { "teams_show_ltm", "ダイナミック・デュオ" }, + { "timeattack_mode", "タイムアタック" }, + { "toms_main_show_5_2", "メインショー" }, + { "toms_show2", "Toms Show 2" }, + { "turbo_show", "ソロ" }, + { "turbo_2_show", "ソロ" }, + { "ultimate_party_adventure", "究極のパーティー - アドベンチャー" }, + { "wallguys_test", "ウォール
ガイズ" }, + { "wle_lobby_template", "Show Name" }, + { "wle_lobby_template_validation", "Show Name" }, + { "wle_mrs_template", "placeholder" }, + { "wle_srs_multi_winner_template_filler", "placeholder" }, + { "wle_srs_multi_winner_template_final", "placeholder" }, + { "wle_srs_multi_winner_template_opener", "placeholder" }, + { "wle_srs_single_winner_template_filler", "placeholder" }, + { "wle_srs_single_winner_template_final", "placeholder" }, + { "wle_srs_single_winner_template_opener", "placeholder" }, + { "xtreme_explore", "自由探索 - エクストリーム" }, + { "xtreme_party", "エクストリームパーティー" }, + { "xtreme_solos_template_ranked", "エクストリーム・ソロ ランク戦" }, + + { "show_wle_s10_wk01_mrs", "クリエイターラウンドのプレイリスト1" }, + { "show_wle_s10_wk3_mrs", "クリエイターラウンドのプレイリスト2" }, + { "event_wle_s10_wk4_mrs", "クリエイターラウンドのプレイリスト3" }, + { "show_wle_s10_wk5_mrs", "クリエイターラウンドのプレイリスト4" }, + + { "show_wle_s10_wk01_srs_01", "びゅーんブラスタートライアル" }, + { "show_wle_s10_wk01_srs_02", "サイバーサーキット" }, + { "show_wle_s10_wk01_srs_03", "ピクセルハート" }, + { "show_wle_s10_wk01_srs_04", "おおはしゃぎの要塞" }, + { "show_wle_s10_wk02_srs_05", "スーパードアダッシュ" }, + { "show_wle_s10_wk02_srs_06", "フォーウの渦巻" }, + { "show_wle_s10_wk02_srs_07", "竜巻トライアル" }, + { "show_wle_s10_wk02_srs_08", "けんけんぱ騒ぎ" }, + { "show_wle_s10_wk03_srs_9", "逆走斜面" }, + { "show_wle_s10_wk03_srs_10", "ビートバウンド" }, + { "show_wle_s10_wk03_srs_11", "虹のパレード" }, + { "show_wle_s10_wk03_srs_12", "サンサンダー橋" }, + { "show_wle_s10_wk04_srs_01", "トラブルタワー" }, + { "show_wle_s10_wk04_srs_02", "流されて" }, + { "show_wle_s10_wk04_srs_03", "はらはらアクション" }, + { "show_wle_s10_wk04_srs_04", "蛇スラローム" }, + { "show_wle_s10_wk05_srs_long_01", "底なし" }, + { "show_wle_s10_wk05_srs_long_02", "Fall Speedway" }, + { "show_wle_s10_wk05_srs_long_03", "Zig Zag Zoomies" }, + { "show_wle_s10_wk05_srs_long_04", "Terrabyte Trial" }, + + { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + { "wle_s10_player_round_wk3_02", "Door Game" }, + { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + { "wle_s10_player_round_wk3_07", "Descente Créative" }, + { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + { "wle_s10_player_round_wk3_12", "Variable Valley" }, + { "wle_s10_player_round_wk3_13", "Broken Course" }, + { "wle_s10_player_round_wk3_15", "Parkour Party" }, + { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + { "wle_s10_player_round_wk3_19", "Sky Time" }, + { "wle_s10_player_round_wk3_20", "EZz Map" }, + + { "show_wle_s10_player_round_wk4_01", "Slippery Stretch" }, + { "show_wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + { "show_wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + { "show_wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + { "show_wle_s10_player_round_wk4_06", "Topsie Tursie" }, + { "show_wle_s10_player_round_wk4_07", "Arcade Assault" }, + { "show_wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + { "show_wle_s10_player_round_wk4_09", "Green Beans" }, + { "show_wle_s10_player_round_wk4_10", "Hop Hill" }, + { "show_wle_s10_player_round_wk4_11", "Quick Sliders" }, + { "show_wle_s10_player_round_wk4_12", "Split Path" }, + { "show_wle_s10_player_round_wk4_15", "Snowboard Street" }, + { "show_wle_s10_player_round_wk4_18", "House Invasion" }, + { "show_wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + { "show_wle_s10_player_round_wk4_21", "Spin" }, + { "show_wle_s10_player_round_wk4_22", "Lane Changers" }, + + { "wle_s10_player_round_wk5_01", "Block Park" }, + { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + { "wle_s10_player_round_wk5_03", "Digital Temple" }, + { "wle_s10_player_round_wk5_04", "Tower Escape" }, + { "wle_s10_player_round_wk5_05", "Tower Dash" }, + { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + { "wle_s10_player_round_wk5_07", "Looooping" }, + { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + { "wle_s10_player_round_wk5_10", "Siank Arena" }, + { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + { "wle_s10_player_round_wk5_13", "Dessert Village" }, + { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + { "wle_s10_player_round_wk5_15", "Beast Route" }, + { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + { "wle_s10_player_round_wk5_18", "Digital Doom" }, + + { "show_wle_s10_player_round_wk6_01", "Hammer Heaven" }, + { "show_wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + { "show_wle_s10_player_round_wk6_03", "Castle Rush" }, + { "show_wle_s10_player_round_wk6_04", "Chaotic Race" }, + { "show_wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + { "show_wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + { "show_wle_s10_player_round_wk6_08", "Flower Power" }, + { "show_wle_s10_player_round_wk6_09", "Dimension Explorer" }, + { "show_wle_s10_player_round_wk6_10", "Forked Passage" }, + { "show_wle_s10_player_round_wk6_12", "The Bee Hive" }, + { "show_wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + { "show_wle_s10_player_round_wk6_14", "Snek" }, + { "show_wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + { "show_wle_s10_player_round_wk6_17", "Slippery Helixes" }, + { "show_wle_s10_player_round_wk6_18", "Recess" }, + { "show_wle_s10_player_round_wk6_19", "Parrot river" }, + { "show_wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + + { "show_wle_s10_wk07_srs_01", "Tower of Fall" }, + { "show_wle_s10_wk07_srs_02", "SOLO FULL-TILT RAGE" }, + { "show_wle_s10_wk07_srs_03", "Piso resbaloso" }, + { "show_wle_s10_wk07_srs_04", "Catastrophe Climb" }, + { "show_wle_s10_wk07_srs_05", "Sky High Run" }, + { "show_wle_s10_wk07_srs_06", "Full Speed Sliding (FSS) - Jelly Road" }, + + { "show_wle_s10_wk08_srs_01", "Push Ups" }, + { "show_wle_s10_wk08_srs_02", "Heave & Haul" }, + { "show_wle_s10_wk08_srs_03", "Stepping Stones" }, + { "show_wle_s10_wk08_srs_04", "Double Trouble" }, + + { "current_wle_fp3_07_01", "Block Sledding" }, + { "current_wle_fp3_07_02", "Layup Wallop" }, + { "current_wle_fp3_07_03", "Minecart Mayhem" }, + { "current_wle_fp3_07_04", "Bouncing Pass" }, + { "current_wle_fp3_07_05", "Ball Factory" }, + { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + { "current_wle_fp3_07_0_02", "Woo-F-O" }, + { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + + { "current_wle_fp3_08_01", "Grabbers Territory" }, + { "current_wle_fp3_08_02", "A Way Out" }, + { "current_wle_fp3_08_03", "Wall Block" }, + { "current_wle_fp3_08_04", "The dream island" }, + { "current_wle_fp3_08_05", "Rainbow pulsion" }, + { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + { "current_wle_fp3_08_10", "Crazy boxes" }, + { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + { "current_wle_fp3_08_15", "Stumble Teams" }, + { "current_wle_fp3_08_16", "Twisting Tower" }, + { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + { "current_wle_fp3_08_18", "The Rising Blocks" }, + { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + { "current_wle_fp3_09_01", "The up tower" }, + { "current_wle_fp3_09_02", "Short shuriken" }, + { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + { "current_wle_fp3_09_06", "Random Heights" }, + { "current_wle_fp3_09_07", "Climb scramble" }, + { "current_wle_fp3_09_08", "Collide Gaming" }, + { "current_wle_fp3_09_09", "Very Compressed Level" }, + { "current_wle_fp3_09_0_01", "Slippery Slope" }, + { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + { "current_wle_fp3_09_0_03", "Free Falling" }, + { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + + { "current_wle_fp3_10_01", "When Nature Falls" }, + { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + { "current_wle_fp3_10_03", "The Slime Trials" }, + { "current_wle_fp3_10_04", "Friendly Obstacles" }, + { "current_wle_fp3_10_05", "Climb and Fall" }, + { "current_wle_fp3_10_06", "Stairs and some other things" }, + { "current_wle_fp3_10_07", "Meowgical World" }, + { "current_wle_fp3_10_08", "Polluelo Speed" }, + { "current_wle_fp3_10_09", "Pixel Parade" }, + { "current_wle_fp3_10_10", "Total Madness" }, + { "current_wle_fp3_10_11", "The Abstract Maze" }, + { "current_wle_fp3_10_12", "Fan Off" }, + { "current_wle_fp3_10_13", "cloud highway" }, + { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + { "current_wle_fp3_10_15", "Speedrunners be like" }, + { "current_wle_fp3_10_16", "Tumble Tower" }, + { "current_wle_fp3_10_17", "Silver's Snake Run" }, + { "current_wle_fp3_10_18", "Now Boarding" }, + { "current_wle_fp3_10_19", "Slime Scale" }, + { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + { "current_wle_fp3_10_23", "Controlled Chaos" }, + { "current_wle_fp3_10_24", "Xtreme Jumping" }, + { "current_wle_fp3_10_25", "Odin" }, + { "current_wle_fp3_10_26", "Ciudad nube" }, + { "current_wle_fp3_10_27", "Bean Voyage" }, + { "current_wle_fp3_10_28", "SLIP-SAW" }, + { "current_wle_fp3_10_29", "Bbq bacon burger" }, + + { "current_wle_fp4_05_01_01", "巅峰车站" }, + { "current_wle_fp4_05_01_02", "Beba Park 7" }, + { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + { "current_wle_fp4_05_02", "Mini only up" }, + { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + { "current_wle_fp4_05_03_02", "Remote Control" }, + { "current_wle_fp4_05_03", "Parkway Slide" }, + { "current_wle_fp4_05_04", "Duel Dash" }, + { "current_wle_fp4_05_05", "beaten trackless road" }, + { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + { "current_wle_fp4_05_2_02", "arch city" }, + { "current_wle_fp4_05_2_03", "Desert Ruins" }, + + { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + { "current_wle_fp4_06_02", "Pachislo" }, + { "current_wle_fp4_06_0_01", "AquArsene" }, + { "current_wle_fp4_06_0_02", "RainbowCloud" }, + { "current_wle_fp4_06_0_03", "Pink Cascade" }, + { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + { "current_wle_fp4_06_1_01", "Buggin' Out" }, + { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + { "current_wle_fp4_06_1_05", "The climb of Trials" }, + { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + + { "current_wle_fp4_07_01", "Rotational Runner" }, + { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + { "current_wle_fp4_07_03", "simple stage" }, + { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + { "current_wle_fp4_07_05", "Factory Valley" }, + { "current_wle_fp4_07_06", "Jumpy Beans" }, + { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + { "current_wle_fp4_07_0_01", "Camino Ninja" }, + + { "current_wle_fp4_08_01", "co-op guys" }, + { "current_wle_fp4_08_0_01", "The big slide" }, + { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + { "current_wle_fp4_08_0_06", "X-Course" }, + { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + { "current_wle_fp4_08_1_01", "Boost in Dash" }, + { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + { "current_wle_fp4_08_1_03", "Giddy up!" }, + { "current_wle_fp4_08_1_04", "Mad lab" }, + { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + { "current_wle_fp4_08_3_01", "The Oasis" }, + + { "current_wle_fp4_09_01", "Crate Collector" }, + { "current_wle_fp4_09_02", "Dribble Drills" }, + { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + { "current_wle_fp4_09_04", "Skyline Park" }, + { "current_wle_fp4_09_05", "Birthday bonanza" }, + { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + { "current_wle_fp4_09_1_02", "Haute voltige" }, + { "current_wle_fp4_09_2_01", "DNA Test" }, + + { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + { "current_wle_fp4_10_02", "Hot Blast" }, + { "current_wle_fp4_10_03", "Box Fan Blitz" }, + { "current_wle_fp4_10_04", "Woo-terfall Way" }, + { "current_wle_fp4_10_05", "Slime race" }, + { "current_wle_fp4_10_06", "Moving Day" }, + { "current_wle_fp4_10_07", "Birthday Dash" }, + { "current_wle_fp4_10_08_m", "Wall Breaker" }, + { "current_wle_fp4_10_08", "Chess History" }, + { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + { "current_wle_fp4_10_12", "Chickens run away" }, + { "current_wle_fp4_10_20", "Co-op and CO" }, + { "current_wle_fp4_10_23", "Construction Site" }, + { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + { "current_wle_fp4_10_0_02", "Molehills" }, + + { "current_wle_fp5_2_01_01", "Plummet Summit" }, + { "current_wle_fp5_2_01_02", "タワークライム" }, + { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + { "current_wle_fp5_2_01", "Jabonsotes" }, + { "current_wle_fp5_2_02_01", "のっぽタワー" }, + { "current_wle_fp5_2_02_02", "Blaster Course" }, + { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + { "current_wle_fp5_2_02_04", "The hard Climb" }, + { "current_wle_fp5_2_02_05", "sliding guys" }, + { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + { "current_wle_fp5_2_02", "Rainbow highway" }, + { "current_wle_fp5_2_03", "Falligator" }, + { "current_wle_fp5_2_04_01", "Lily Lovers" }, + { "current_wle_fp5_2_04_02", "rainow rode" }, + { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + { "current_wle_fp5_2_04_04", "Super crazy level" }, + { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + { "current_wle_fp5_2_05_01", "Level XVIII" }, + { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + { "current_wle_fp5_2_05_04", "rainbow roade" }, + { "current_wle_fp5_2_05", "The tension Parkour" }, + { "current_wle_fp5_2_06", "Stairing Contest" }, + { "current_wle_fp5_2_07", "Vibrant Ascension" }, + + { "current_wle_fp5_3_05_01", "Beany Golf!" }, + { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + { "current_wle_fp5_4_01_01", "Tilted Walls" }, + { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + + { "current_wle_fp5_10_01", "Breezy Buddies" }, + { "current_wle_fp5_10_0_01", "Salto Plancha" }, + { "current_wle_fp5_10_0_02", "My house" }, + { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + { "current_wle_fp5_10_1_01", "Desert Ruins" }, + { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_01", "Desert Ruins" }, + { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_03", "Mystic River" }, + { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + { "current_wle_fp5_10_2_05", "Cliffside" }, + { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + { "current_wle_fp5_10_2_07", "The Avenue" }, + { "current_wle_fp5_10_2_08", "Gold City" }, + { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + { "current_wle_fp5_10_2_10", "初心者用コース" }, + { "current_wle_fp5_10_2_11", "Chain Reaction" }, + + { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + { "current_wle_fp5_wk3_1_04", "El airecito" }, + { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + + { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + { "current_wle_fp5_falloween_1_06", "Mirage" }, + { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + { "current_wle_fp5_falloween_1_08", "Toon World" }, + { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + { "current_wle_fp5_falloween_2_03_06", "Spider" }, + { "current_wle_fp5_falloween_2_03", "fastoween" }, + { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + { "current_wle_fp5_falloween_4_05", "Scary Final" }, + { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + { "current_wle_fp5_falloween_4_08", "Catoween" }, + { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + { "current_wle_fp5_falloween_5_04", "Halloween" }, + { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + { "current_wle_fp5_falloween_9_02", "Raveyard" }, + { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + { "current_wle_fp5_falloween_11_01", "Night Runners" }, + { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + { "current_wle_fp5_falloween_13_01", "Witch Way" }, + { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + + { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + { "current_wle_fp6_1_03", "SKULL KING" }, + { "current_wle_fp6_1_04", "shorter circuit" }, + { "current_wle_fp6_1_05", "be speedy" }, + { "current_wle_fp6_1_06", "Sky-City Stumble" }, + { "current_wle_fp6_1_07", "Wormhole Mountain" }, + { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + { "current_wle_fp6_1_09", "Splitspeed" }, + { "current_wle_fp6_1_10", "Fall Canyon" }, + { "current_wle_fp6_2_01", "Valise" }, + { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + { "current_wle_fp6_2_03", "Water Way" }, + { "current_wle_fp6_2_04", "The Doors of Doom" }, + { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + { "current_wle_fp6_2_06", "Liana Swings" }, + { "current_wle_fp6_2_07", "Colourful" }, + { "current_wle_fp6_2_08", "The Heist!" }, + { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + { "current_wle_fp6_3_01", "Tricky Treat" }, + { "current_wle_fp6_3_02", "The Lighthouse" }, + { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + { "current_wle_fp6_3_04", "The Scarescraper" }, + { "current_wle_fp6_3_05", "Obstacle Road" }, + { "current_wle_fp6_3_06", "Rest In Paris" }, + { "current_wle_fp6_3_07", "Horror pumpkim" }, + { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + + { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + { "current_wle_fp6_wk2_03", "Slidy Road" }, + { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + { "current_wle_fp6_wk2_05", "Lost in space" }, + { "current_wle_fp6_wk2_06", "Turbine Decline" }, + { "current_wle_fp6_wk2_07", "Zero Displacement" }, + { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + { "current_wle_fp6_wk2_10", "Neoway" }, + { "current_wle_fp6_wk2_11", "Niagara Falls" }, + { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + { "current_wle_fp6_wk2_1_06", "Locomoção" }, + { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + + { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + { "current_wle_fp6_wk3_02", "Compact 5" }, + { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + { "current_wle_fp6_wk3_05", "Alto voltaje" }, + { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + { "current_wle_fp6_wk3_09", "Work and Travel" }, + { "current_wle_fp6_wk3_10", "connect the bridge" }, + { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + { "current_wle_fp6_wk3_2_02", "speed demon" }, + { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + + { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + { "current_wle_fp6_wk4_03_05", "Snow Style" }, + { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + { "current_wle_fp6_wk4_05_01", "Rebound" }, + { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + + { "current_wle_community_10_5_01", "Snowy Starfall" }, + { "current_wle_community_10_5_02", "The Earthquake" }, + { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + { "current_wle_community_10_5_1_04", "Garden of Woo" }, + { "current_wle_community_10_5_1_05", "Out in the open" }, + { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + { "current_wle_community_10_5_1_08", "Jungle Journey" }, + { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + { "current_wle_community_10_5_1_15", "Three Rooms" }, + { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + { "current_wle_community_10_5_1_17", "Winter Slide" }, + { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + + { "wle_s10_cf_round_001", "Blocky Bridges" }, + { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + { "wle_s10_cf_round_003", "Drop n' Drag" }, + { "wle_s10_cf_round_004", "Fun with Fans" }, + + { "wle_mrs_bagel", "レインボーラリー" }, + { "wle_mrs_shuffle_show", "デジのシャッフルセレクション" }, + { "wle_mrs_shuffle_show_squads", "スクワッドスクランブル" }, + { "wle_shuffle_discover", "ソロシャッフル" }, + { "wle_mrs_bouncy_bean_time", "バウンドガイの時間" }, + { "wle_mrs_winter", "Winter Wonders" }, + { "wle_shuffle_chill", "ゆったりシャッフル" }, + { "wle_mrs_survival_showdown", "サバイバル・ショーダウン" }, + { "wle_shuffle_survival", "サバイバルシャッフル" }, + { "wle_mrs_ugc_playful_pioneers", "パイオニア" }, + { "wle_playful_shuffle", "パイオニアシャッフル" }, + { "event_april_fools", "だまされ落下シャッフル" }, + { "wle_nature_ltm", "ウィルダネス・フォールズ" }, + + { "private_lobbies", "カスタムショー" }, + { "fall_guys_creative_mode", "フォールガイズ クリエイティブ" }, + { "invisibeans_mode", "キャンディードロボー" }, + } + }, + { Language.SimplifiedChinese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "anniversary_fp12_ltm", "周年庆大派对" }, + { "casual_show", "探索" }, + { "classic_duos_show", "双人" }, + { "classic_solo_main_show", "单人" }, + { "classic_squads_show", "小队" }, + { "collectables_ss2_batch_01", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model1", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model2", "调试用专题" }, + { "collectables_ss2_batch_02", "调试用专题" }, + { "collectables_ss2_batch_02_model1", "调试用专题" }, + { "collectables_ss2_batch_02_model2", "调试用专题" }, + { "collectables_ss2_batch_03", "调试用专题" }, + { "collectables_ss2_batch_03_model1", "调试用专题" }, + { "collectables_ss2_batch_03_model2", "调试用专题" }, + { "collectables_ss2_batch_04", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model1", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model2", "Batch 4 Collectables" }, + { "collectables_ss2_batch_05", "batch5" }, + { "collectables_ss2_batch_05_model1", "batch5" }, + { "collectables_ss2_batch_05_model2", "batch5" }, + { "duos_show_ss2_launch", "Duos Show SS2" }, + { "duos_show_ss2_parrot", "双人" }, + { "event_animals_template", "野生糖豆" }, + { "event_anniversary_season_1", "周年庆大派对" }, + { "event_anniversary_season_1_0408_to_0808_2022", "周年庆大派对" }, + { "event_anniversary_season_1_1706_to_2106_2022", "经典淘汰赛" }, + { "event_anniversary_season_1_alternate_name", "经典淘汰赛" }, + { "event_aprilstart_0404_1004", "Title" }, + { "event_autumn_festival_squads_1708_to_1808_2022", "小队庆祝" }, + { "event_autumn_festival_squads_2109_2709_21", "小队庆祝" }, + { "event_autumn_festival_squads_2110_2210_2022", "小队庆祝" }, + { "event_blast_ball_banger_1309_to_1409_2022", "震荡球狂热" }, + { "event_blast_ball_banger_1710_1810_2022", "震荡球狂热" }, + { "event_blast_ball_banger_2310_2410_2022", "震荡球狂热" }, + { "event_blast_ball_banger_2408_to_2808_2022", "震荡球狂热" }, + { "event_blast_ball_banger_2609_to_2809_2022", "震荡球狂热" }, + { "event_blast_ball_banger_template", "震荡球狂热" }, + { "event_bubble_template", "周年庆大派对" }, + { "event_clan_of_yeetus_2509_to_2709_2022", "重锤部落" }, + { "event_clan_of_yeetus_ss2_2110_2210_2022", "重锤部落" }, + { "event_clan_of_yeetus_ss2_2509_2709_2022", "重锤部落" }, + { "event_day_at_races_squads_1610_1710_2022", "赛跑之日小队赛" }, + { "event_day_at_races_squads_2308_to_2408_2022", "赛跑之日小队赛" }, + { "event_day_at_races_squads_2707_to_2807_2022", "赛跑之日小队赛" }, + { "event_day_at_races_squads_template", "赛跑之日小队赛" }, + { "event_day_at_the_races_ltm", "赛跑之日单人赛" }, + { "event_end_of_season_s1", "决赛 1/5:星期四专题" }, + { "event_end_of_season_s2", "决赛 2/5:星期五专题" }, + { "event_end_of_season_s3", "决赛 3/5:星期六专题" }, + { "event_end_of_season_s4", "决赛 4/5:星期日专题" }, + { "event_end_of_season_s5", "决赛 5/5:星期一专题" }, + { "event_fall_ball_101022_121022", "激情足球糖豆杯" }, + { "event_fan_favourites_1807_to_2107_2022", "糖豆最爱" }, + { "event_fan_favourites_1908_to_2108_2022", "糖豆最爱" }, + { "event_fan_favourites_s6_template", "糖豆最爱" }, + { "event_fan_favourites_template", "糖豆最爱" }, + { "event_fanfare_template", "御风" }, + { "event_fruit_basket", "糖豆果篮" }, + { "event_hilaria_2022", "???????????" }, + { "event_invisibeans_ss2_1010_1210_2022", "糖果窃贼" }, + { "event_kudos_blow_up_0910_to_1110_2021", "时间就是荣耀值!:乘风而起" }, + { "event_kudos_blow_up_template", "时间就是荣耀值!:乘风而起" }, + { "event_kudos_bollard_greens_1310_to_1510_2021", "时间就是荣耀值!:绿色纵柱" }, + { "event_kudos_bollard_greens_1510_to_1710_2021", "时间就是荣耀值!:绿色纵柱" }, + { "event_kudos_bollard_greens_template", "时间就是荣耀值!:绿色纵柱" }, + { "event_kudos_gravity_wield_1110_to_1310_2021", "时间就是荣耀值!:控制重力" }, + { "event_kudos_gravity_wield_1310_to_1510_2021", "时间就是荣耀值!:控制重力" }, + { "event_kudos_gravity_wield_template", "时间就是荣耀值!:控制重力" }, + { "event_kudos_jumping_for_joy_0510_to_0710_2021", "时间就是荣耀值!:快乐跳跃" }, + { "event_kudos_jumping_for_joy_0710_to_0910_2021", "时间就是荣耀值!:快乐跳跃" }, + { "event_kudos_jumping_for_joy_template", "时间就是荣耀值!:快乐跳跃" }, + { "event_kudos_spin_cycle_0710_to_0910_2021", "时间就是荣耀值!:旋转循环" }, + { "event_kudos_spin_cycle_1110_to_1310_2021", "时间就是荣耀值!:旋转循环" }, + { "event_kudos_spin_cycle_template", "时间就是荣耀值!:旋转循环" }, + { "event_le_anchovy_private_lobbies", "会会大海怪" }, + { "event_le_anchovy_template", "会会大海怪" }, + { "event_le_halloween_slime_climb", "捣蛋专题" }, + { "event_le_halloween_slime_climb_2110_to_0111_2021", "捣蛋专题" }, + { "event_le_halloween_team_squads", "给糖专题(三人)" }, + { "event_le_halloween_team_squads_2110_to_0111_2021", "给糖专题(三人)" }, + { "event_new_year_s6", "糖豆健身" }, + { "event_no_teams", "再见团队" }, + { "event_only_1v1_volleyfall_squads_ss1_or_ss2_show2", "糖豆排球锦标赛" }, + { "event_only_basketfall", "空中大灌篮" }, + { "event_only_blast_ball_trials_0609_to_0709_2022", "震荡球试炼" }, + { "event_only_blast_ball_trials_1608_to_1708_2022", "震荡球试炼" }, + { "event_only_blast_ball_trials_1907_to_2007_2022", "震荡球试炼" }, + { "event_only_blast_ball_trials_template", "震荡球试炼" }, + { "event_only_bubbles_template", "泡泡危机试炼" }, + { "event_only_button_bashers_template", "砸键狂豆大逃杀" }, + { "event_only_drumtop_0607_to_0707_2022", "糖豆莲上飘" }, + { "event_only_drumtop_0908_to_1008_2022", "糖豆莲上飘" }, + { "event_only_drumtop_3108_to_0109_2022", "糖豆莲上飘" }, + { "event_only_drumtop_template", "糖豆莲上飘" }, + { "event_only_fall_ball_011122_031122", "激情足球糖豆杯" }, + { "event_only_fall_ball_0407_to_0507_2022", "激情足球糖豆杯" }, + { "event_only_fall_ball_1810_2010_2022", "激情足球糖豆杯" }, + { "event_only_fall_ball_custom_lobby", "激情足球糖豆杯" }, + { "event_only_fall_ball_squads_0106_to_0206_2022", "激情足球糖豆杯" }, + { "event_only_fall_ball_squads_1609_to_1809_2022", "激情足球糖豆杯" }, + { "event_only_fall_ball_squads_template", "激情足球糖豆杯" }, + { "event_only_fall_ball_template", "激情足球糖豆杯" }, + { "event_only_fall_ball_trios_ranked", "激情足球糖豆杯三人组排位赛" }, + { "event_only_finals_2904_to_0105_2022", "决赛马拉松" }, + { "event_only_finals_template", "决赛马拉松" }, + { "event_only_finals_v2_template", "决赛马拉松" }, + { "event_only_finals_v3_ranked", "决赛马拉松排位赛" }, + { "event_only_finals_v3_template", "决赛马拉松" }, + { "event_only_floor_fall_0510_to_0610_2022", "蜂窝迷图试炼" }, + { "event_only_floor_fall_2510_2610_2022", "蜂窝迷图试炼" }, + { "event_only_floor_fall_custom_lobby", "蜂窝迷图试炼" }, + { "event_only_floor_fall_low_grav", "重力蜂窝迷环试炼" }, + { "event_only_floor_fall_low_grav_0108_to_0208_2022", "重力蜂窝迷环试炼" }, + { "event_only_floor_fall_low_grav_0507_to_0607_2022", "重力蜂窝迷环试炼" }, + { "event_only_floor_fall_low_grav_2208_to_2308_2022", "重力蜂窝迷环试炼" }, + { "event_only_floor_fall_template", "蜂窝迷图试炼" }, + { "event_only_hard_mode_1306_to_1406_2022", "困难模式" }, + { "event_only_hard_mode_private_lobbies", "困难模式" }, + { "event_only_hard_mode_template", "困难模式" }, + { "event_only_hexaring_1808_to_2208_2022", "蜂窝竞技场" }, + { "event_only_hexaring_template", "蜂窝竞技场" }, + { "event_only_hoverboard_template", "悬浮板时间" }, + { "event_only_jump_club_0109_to_0209_2022", "跳来跳去" }, + { "event_only_jump_club_1008_to_1108_2022", "跳来跳去" }, + { "event_only_jump_club_1907_to_2007_2022", "跳来跳去" }, + { "event_only_jump_club_2305_to_2405_2022_v2", "跳来跳去" }, + { "event_only_jump_club_2706_to_2806_2022", "跳来跳去" }, + { "event_only_jump_club_custom_lobby", "跳来跳去" }, + { "event_only_jump_club_ss2_0310_0410_2022", "跳来跳去" }, + { "event_only_jump_club_template", "跳来跳去" }, + { "event_only_pixelperfect", "像素级还原" }, + { "event_only_races_any_final_2406_to_2606_2022", "赛跑之日单人赛" }, + { "event_only_races_any_final_2505_to_2605_2022", "赛跑之日单人赛" }, + { "event_only_races_any_final_private_lobbies", "赛跑之日单人赛" }, + { "event_only_races_any_final_template", "赛跑之日单人赛" }, + { "event_only_races_no_lava_template", "赛跑之日单人赛" }, + { "event_only_races_template", "赛跑之日单人赛" }, + { "event_only_roll_on", "仅限“滚滚而去”回合" }, + { "event_only_roll_out", "滚滚而来" }, + { "event_only_roll_out_0806_to_0906_2022", "滚滚而来" }, + { "event_only_roll_out_2005_to_2205_2022", "滚滚而来" }, + { "event_only_roll_out_custom_lobby", "滚滚而来" }, + { "event_only_season_2_variation_template", "中世纪大乱斗" }, + { "event_only_season_3_variation_template", "大混战!" }, + { "event_only_season_4", "未来探索" }, + { "event_only_season_4_1507_to_1707_2022", "未来探索" }, + { "event_only_season_4_2705_to_2905_2022", "未来探索" }, + { "event_only_season_4_custom_lobby", "未来探索" }, + { "event_only_season_4_variation_template", "大混战!" }, + { "event_only_season_5_0309_1209", "丛林乱斗" }, + { "event_only_season_5_0409_to_0509_2022", "丛林乱斗" }, + { "event_only_season_5_0807_to_1007_2022", "丛林乱斗" }, + { "event_only_season_5_0909_to_1009_2022", "丛林乱斗" }, + { "event_only_season_5_custom_lobby", "丛林乱斗" }, + { "event_only_season_5_template", "丛林乱斗" }, + { "event_only_season_5_variation_template", "大混战!" }, + { "event_only_season_6_launch_party", "派对大战" }, + { "event_only_season_6_launch_party_1703_to_1903_2022", "派对大战" }, + { "event_only_season_6_template", "派对大战" }, + { "event_only_skeefall_timetrial_0309_to_0409_2022", "雪山速降高分赛" }, + { "event_only_skeefall_timetrial_0711_0711_2022", "雪山速降高分赛" }, + { "event_only_skeefall_timetrial_1307_to_1407_2022", "雪山速降高分赛" }, + { "event_only_skeefall_timetrial_1508_to_1608_2022", "雪山速降高分赛" }, + { "event_only_skeefall_timetrial_1909_to_2009_2022", "雪山速降高分赛" }, + { "event_only_skeefall_timetrial_2710_2810_2022", "雪山速降高分赛" }, + { "event_only_skeefall_timetrial_s6_1", "雪山速降高分赛" }, + { "event_only_skeefall_timetrial_ss2_1909_2009_2022", "雪山速降高分赛" }, + { "event_only_slime_climb", "水涨爬高专题" }, + { "event_only_slime_climb_0110_to_0210_2022", "水涨爬高专题" }, + { "event_only_slime_climb_0308_to_0408_2022", "水涨爬高专题" }, + { "event_only_slime_climb_0709_to_0809_2022", "水涨爬高专题" }, + { "event_only_slime_climb_1107_to_1207_2022", "水涨爬高专题" }, + { "event_only_slime_climb_1506_to_1606_2022", "水涨爬高专题" }, + { "event_only_slime_climb_2608_to_2708_2022", "水涨爬高专题" }, + { "event_only_slime_climb_2_0606_to_0706_2022", "摩天黏液专题" }, + { "event_only_slime_climb_2_0709_to_0909_2021", "摩天黏液专题" }, + { "event_only_slime_climb_2_2910_3010_2022", "摩天黏液专题" }, + { "event_only_slime_climb_2_template", "摩天黏液专题" }, + { "event_only_slime_climb_ss2_0110_0210_2022", "水涨爬高专题" }, + { "event_only_ss2_squads_1910_2110_2022", "3、2、1,宇宙!" }, + { "event_only_ss2_squads_template", "3、2、1,宇宙!" }, + { "event_only_survival_fittest_3110_0111_2022", "适者生存" }, + { "event_only_survival_private_lobbies", "黏液求生" }, + { "event_only_survival_ss2_3009_0210_2022", "适者生存" }, + { "event_only_thin_ice_0205_to_0205_2022", "薄冰挑战" }, + { "event_only_thin_ice_template", "薄冰挑战" }, + { "event_only_tip_toe_0204_to_0304_2022", "踮脚大师锦标赛" }, + { "event_only_tip_toe_0209_to_0309_2022", "踮脚大师锦标赛" }, + { "event_only_tip_toe_2507_to_2607_2022", "踮脚大师锦标赛" }, + { "event_only_tip_toe_2809_to_2909_2022", "踮脚大师锦标赛" }, + { "event_only_tip_toe_2909_to_3009_2022", "踮脚大师锦标赛" }, + { "event_only_tip_toe_template", "踮脚大师锦标赛" }, + { "event_only_volleyfall_squads_ss2_1110_1210_2022", "糖豆排球锦标赛" }, + { "event_only_volleyfall_squads_ss2_2010_2110_2022", "糖豆排球锦标赛" }, + { "event_oriole_0612_to_1212_2021", "埃洛伊的燃料罐大混战" }, + { "event_oriole_template", "埃洛伊的燃料罐大混战" }, + { "event_pixel_palooza_2210_2310_2022", "像素狂欢" }, + { "event_pixel_palooza_template", "像素狂欢" }, + { "event_s6_651_template", "PLACEHOLDER SHOW" }, + { "event_s9_crayfish_template", "抓握礼物大作战" }, + { "event_season_2_highlight_1006_to_1206_2022", "混战中世纪" }, + { "event_season_2_highlight_2907_to_3107_2022", "混战中世纪" }, + { "event_season_2_highlight_template", "混战中世纪" }, + { "event_season_3_highlight_0306_to_0506_2022", "冰雪大比拼" }, + { "event_season_3_highlight_2607_to_2707_2022", "冰雪大比拼" }, + { "event_season_3_highlight_template", "冰雪大比拼" }, + { "event_snowday_stumble", "冰雪大比拼" }, + { "event_sports_suddendeath_squads", "黄金进球挑战" }, + { "event_sports_suddendeath_squads_0208_to_0308_2022", "黄金进球挑战" }, + { "event_sports_suddendeath_squads_0407_to_0507_2022", "黄金进球挑战" }, + { "event_sports_suddendeath_squads_0509_to_0609_2022", "黄金进球挑战" }, + { "event_sports_suddendeath_squads_2603_to_2803_2022", "黄金进球挑战" }, + { "event_sports_template", "狂欢运动会" }, + { "event_squads_festival_ss2_2409_2509_2022", "小队庆祝" }, + { "event_squads_survival_0509_to_0609_2022", "生存小队赛" }, + { "event_squads_survival_0511_0711_2022", "生存小队赛" }, + { "event_squads_survival_0808_to_0908_2022", "生存小队赛" }, + { "event_squads_survival_ss2_0710_0910_2022", "生存小队赛" }, + { "event_squads_survival_template", "生存小队赛" }, + { "event_stars01_0404_1004", "适应!" }, + { "event_stars02_1804_to_2404_2022", "逻辑!" }, + { "event_stars03_0305_to_0805_2022", "勇气!" }, + { "event_summer_squads_0107_0407_2022", "小队庆祝" }, + { "event_summer_squads_2107_2507", "小队庆祝" }, + { "event_symphony_launch_show_1310_1610_2022", "运动场之星专题" }, + { "event_symphony_launch_show_template", "运动场之星专题" }, + { "event_tail_tag_april_show", "故障代码:4月1日" }, + { "event_test_season_5", "双人" }, + { "event_twitch_rivals", "Twitch大对决" }, + { "event_vulture_1612_to_2712_2021", "淘气或乖巧专题" }, + { "event_vulture_template", "淘气或乖巧专题" }, + { "event_walnut_template", "蜂窝马拉松" }, + { "event_week_of_romance_s6_duo_teams", "双人庆典" }, + { "event_xtreme_fall_guys_0211_0411_2022", "极限糖豆人单人" }, + { "event_xtreme_fall_guys_2207_to_2407_2022", "极限糖豆人单人" }, + { "event_xtreme_fall_guys_2903_to_3103_2022", "极限糖豆人单人" }, + { "event_xtreme_fall_guys_2908_to_3108_2022", "极限糖豆人单人" }, + { "event_xtreme_fall_guys_squads_1208_to_1408_2022", "极限糖豆人小队" }, + { "event_xtreme_fall_guys_squads_2906_to_3006_2022", "极限糖豆人小队" }, + { "event_xtreme_fall_guys_squads_2908_to_3108_2022", "极限糖豆人小队" }, + { "event_xtreme_fall_guys_squads_ss2_1310_1510_2022", "极限糖豆人小队" }, + { "event_xtreme_fall_guys_squads_ss2_2109_2309_2022", "极限糖豆人小队" }, + { "event_xtreme_fall_guys_squads_template", "极限糖豆人小队" }, + { "event_xtreme_fall_guys_ss2_0310_0510_2022", "极限糖豆人单人" }, + { "event_xtreme_fall_guys_template", "极限糖豆人单人" }, + { "event_yeetus_111022_121022", "重锤巡回赛" }, + { "event_yeetus_3005_to_3105_2022", "重锤巡回赛" }, + { "event_yeetus_template", "重锤巡回赛" }, + { "explore_points", "探索 - 分数" }, + { "fp16_ski_fall_high_scorers", "雪山速降高分赛" }, + { "ftue_uk_show", "淘汰赛" }, + { "greatestsquads_ltm", "神奇小队" }, + { "greatestsquads_ranked", "神奇小队排位赛" }, + { "invisibeans_0508_to_0708_2022", "糖果窃贼" }, + { "invisibeans_0707_to_1107_2022", "糖果窃贼" }, + { "invisibeans_0803_to_1303_2022", "糖果窃贼" }, + { "invisibeans_181022_201022", "糖果窃贼" }, + { "invisibeans_2209_to_2409_2022", "糖果窃贼" }, + { "invisibeans_2808_to_3008_2022", "糖果窃贼" }, + { "invisibeans_pistachio_template", "万圣来盗" }, + { "invisibeans_template", "糖果窃贼" }, + { "knockout_duos", "双人" }, + { "knockout_mode", "淘汰赛" }, + { "knockout_mode_pl", "淘汰赛" }, + { "knockout_squads", "小队" }, + { "live_event_bluejay", "速度要快!" }, + { "live_event_clan_of_yeetus_0411_0611_2022", "重锤部落" }, + { "live_event_clan_of_yeetus_ss1_template", "重锤部落" }, + { "live_event_peanut_ss2_01", "密。失落" }, + { "live_event_peanut_ss2_02", "落之城终" }, + { "live_event_peanut_ss2_03", "终现身," }, + { "live_event_peanut_ss2_04", "身,雷霆" }, + { "live_event_peanut_ss2_05", "雷霆巨豆中心" }, + { "live_event_peanut_ss2_06", "心下,淹没" }, + { "live_event_peanut_ss2_07", "没着往" }, + { "live_event_peanut_ss2_08", "往日的" }, + { "live_event_peanut_ss2_09", "的秘" }, + { "live_event_peanut_ss2_10", "秘密。失" }, + { "live_event_pelican_template", "斯巴达战士对决" }, + { "live_event_satellite_collectibles_solo_template", "卫星维修任务" }, + { "live_event_satellite_collectibles_template", "卫星维修任务" }, + { "live_event_ss2_potoo_template", "糖豆显灵" }, + { "live_event_ss2_potoo_template_test", "POTOO TEST! NOT FINAL!" }, + { "live_event_symphony_launch_show_template", "运动场之星专题" }, + { "live_event_timeattack_dizzyheights", "计时赛试炼 - 目眩山巅" }, + { "live_event_timeattack_lilyleapers", "计时赛试炼 - 林间跃动" }, + { "live_event_timeattack_partyprom", "计时赛试炼 - 派对大道" }, + { "live_event_timeattack_shuffle", "随机计时赛" }, + { "live_event_timeattack_shuffle_pl", "随机计时赛" }, + { "live_event_timeattack_trackattack", "计时赛试炼 - 障碍田径赛" }, + { "live_event_timeattack_treetoptumble", "计时赛试炼 - 丛林探险" }, + { "live_event_timeattack_tundrarun", "计时赛试炼 - 苔原冲关" }, + { "main_show", "单人" }, + { "main_show_2player", "主要节目" }, + { "main_show_private_lobbies", "单人" }, + { "main_show_ss2_launch_pl", "单人" }, + { "main_show_template_base", "主要专题" }, + { "main_show_template_large", "主要专题" }, + { "main_show_template_medium", "主要专题" }, + { "mrs_pegwin_winter_2teamsfinal", "派对企鹅狂欢" }, + { "no_elimination_explore", "探索 - 经典" }, + { "no_elimination_show", "单人轻松" }, + { "only_1v1_volleyfall", "糖豆排球锦标赛" }, + { "only_1v1_volleyfall_191022_211022", "糖豆排球锦标赛" }, + { "only_solo_ss2_rounds_show", "3、2、1,宇宙!" }, + { "pl_blastball", "震荡球" }, + { "pl_duos_show", "双人" }, + { "pl_fallmountain", "登山比拼" }, + { "pl_hexagone", "蜂窝迷图" }, + { "pl_hexaring", "蜂窝迷环" }, + { "pl_hexaterrestrial", "深空蜂窝" }, + { "pl_jumpshowdown", "巅峰对决" }, + { "pl_krakenslam", "海怪重击" }, + { "pl_losttemple", "失落神庙" }, + { "pl_rolloff", "滚轮行动" }, + { "pl_royal_fumble", "盛装团团转" }, + { "pl_solo_main_show", "单人" }, + { "pl_squads_show", "小队" }, + { "pl_thin_ice", "如履薄冰" }, + { "pl_tiptoefinale", "决胜之踮" }, + { "pl_vaulted_show", "归档库" }, + { "placeholder", ""}, + { "playlist_fallguys_skill", "playlist_fallguys_skill" }, + { "playlist_fallguys_solo", "playlist_fallguys_solo" }, + { "playlist_fallguys_soloskill", "playlist_fallguys_soloskill" }, + { "playlist_fallguys_squad", "playlist_fallguys_squad" }, + { "ranked_duos_show", "排位双人" }, + { "ranked_show_knockout", "排位淘汰赛" }, + { "ranked_solo_show", "排位单人" }, + { "ranked_squads_show", "排位小队" }, + { "ranked_trios_show", "排位三人" }, + { "reversed_knockout_show", "反淘汰赛" }, + { "showcase_fp13", "废料场翻腾" }, + { "showcase_fp16", "冰雪欢闹" }, + { "showcase_fp17", "糖豆情人节" }, + { "showcase_fp18", "Go Go 三愚豆" }, + { "showcase_fp19", "冲啊!重锤矩镇!" }, + { "showcase_fp20", "雷霆巨豆海滩狂欢" }, + { "show_episode_level_variation_sy2_launch_01", "大混战!" }, + { "show_episode_level_variation_sy2_launch_02", "大混战!" }, + { "show_episode_level_variation_sy2_launch_03", "大混战!" }, + { "show_episode_level_variation_sy2_launch_04", "大混战!" }, + { "show_episode_level_variation_sy2_launch_05", "大混战!" }, + { "show_episode_level_variation_victoria_1", "大混战!" }, + { "show_episode_level_variation_victoria_2", "大混战!" }, + { "show_episode_level_variation_victoria_3", "大混战!" }, + { "show_episode_level_variation_victoria_4_squads", "大混战!" }, + { "show_robotrampage_ss2_2809_to_2909_2022", "犀牛大冲撞对决" }, + { "show_robotrampage_ss2_show1_2510_2610_2022", "犀牛大冲撞对决" }, + { "show_robotrampage_ss2_show1_template", "犀牛大冲撞对决" }, + { "slime_survivors", "黏液求生" }, + { "solo_show_pl_all_rounds", "单人精选专题" }, + { "solo_show_ss2_launch", "Solo Show SS2" }, + { "solo_show_ss2_parrot", "单人" }, + { "spectator_show", "观赏性项目" }, + { "sports_show", "糖豆人运动会" }, + { "squad_duo_slimeclimbs", ""}, + { "squad_show", "队伍专题" }, + { "squad_show_2player", "队伍专题" }, + { "squad_show_2player_laps", "队伍专题" }, + { "squad_show_survival", "DEBUG Squad Show Survival" }, + { "squad_show_team_2player", "网络故障" }, + { "squadcelebration", "小队庆祝" }, + { "squads_2player_1403_to_0205_2022", "双人出击" }, + { "squads_2player_automation", "双人出击" }, + { "squads_2player_points_test", "双人" }, + { "squads_2player_template", "双人" }, + { "squads_3player_0111_1511_21", "三角冲锋" }, + { "squads_3player_0208_to_1508_2021", "三角冲锋" }, + { "squads_3player_04012022_to_13012022", "三角冲锋" }, + { "squads_3player_automation", "三角冲锋" }, + { "squads_3player_template", "三角冲锋" }, + { "squads_4player", "小队" }, + { "squads_4player_2812_no_end", "小队" }, + { "squads_4player_after_potoo", "小队" }, + { "squads_show_ss2_launch", "Squads Show SS2" }, + { "squads_show_ss2_parrot", "小队" }, + { "survival_of_the_fittest", "适者生存" }, + { "teams_show", "网络故障" }, + { "teams_show_ltm", "强力拍档" }, + { "timeattack_mode", "计时赛" }, + { "toms_main_show_5_2", "主要专题" }, + { "toms_show2", "Toms Show 2" }, + { "turbo_show", "单人" }, + { "turbo_2_show", "单人" }, + { "ultimate_party_adventure", "究极队伍 - 冒险" }, + { "wallguys_test", "攀墙
豆士" }, + { "wle_lobby_template", "Show Name" }, + { "wle_lobby_template_validation", "Show Name" }, + { "wle_mrs_template", "placeholder" }, + { "wle_srs_multi_winner_template_filler", "placeholder" }, + { "wle_srs_multi_winner_template_final", "placeholder" }, + { "wle_srs_multi_winner_template_opener", "placeholder" }, + { "wle_srs_single_winner_template_filler", "placeholder" }, + { "wle_srs_single_winner_template_final", "placeholder" }, + { "wle_srs_single_winner_template_opener", "placeholder" }, + { "xtreme_explore", "探索 - 极限" }, + { "xtreme_party", "极限糖豆人派对" }, + { "xtreme_solos_template_ranked", "极限糖豆人单人排名" }, + + { "show_wle_s10_wk01_mrs", "创作者回合节目列表 1" }, + { "show_wle_s10_wk3_mrs", "创作者回合节目列表 2" }, + { "event_wle_s10_wk4_mrs", "创作者回合节目列表 3" }, + { "show_wle_s10_wk5_mrs", "创作者回合节目列表 4" }, + + { "show_wle_s10_wk01_srs_01", "音爆跳垫挑战" }, + { "show_wle_s10_wk01_srs_02", "数字环游" }, + { "show_wle_s10_wk01_srs_03", "像素小心心" }, + { "show_wle_s10_wk01_srs_04", "欢闹堡垒" }, + { "show_wle_s10_wk02_srs_05", "超级闯门冲关" }, + { "show_wle_s10_wk02_srs_06", "惊叫回旋" }, + { "show_wle_s10_wk02_srs_07", "龙卷风挑战" }, + { "show_wle_s10_wk02_srs_08", "疯狂跳房子" }, + { "show_wle_s10_wk03_srs_9", "履带勇攀" }, + { "show_wle_s10_wk03_srs_10", "强音弹跳" }, + { "show_wle_s10_wk03_srs_11", "缤纷出巡" }, + { "show_wle_s10_wk03_srs_12", "勇闯断桥" }, + { "show_wle_s10_wk04_srs_01", "摩天高塔" }, + { "show_wle_s10_wk04_srs_02", "逆流勇进" }, + { "show_wle_s10_wk04_srs_03", "如履薄冰" }, + { "show_wle_s10_wk04_srs_04", "蛇行回旋坡" }, + { "show_wle_s10_wk05_srs_long_01", "桥装打绊" }, + { "show_wle_s10_wk05_srs_long_02", "Fall Speedway" }, + { "show_wle_s10_wk05_srs_long_03", "Zig Zag Zoomies" }, + { "show_wle_s10_wk05_srs_long_04", "Terrabyte Trial" }, + + { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + { "wle_s10_player_round_wk3_02", "Door Game" }, + { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + { "wle_s10_player_round_wk3_07", "Descente Créative" }, + { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + { "wle_s10_player_round_wk3_12", "Variable Valley" }, + { "wle_s10_player_round_wk3_13", "Broken Course" }, + { "wle_s10_player_round_wk3_15", "Parkour Party" }, + { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + { "wle_s10_player_round_wk3_19", "Sky Time" }, + { "wle_s10_player_round_wk3_20", "EZz Map" }, + + { "show_wle_s10_player_round_wk4_01", "Slippery Stretch" }, + { "show_wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + { "show_wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + { "show_wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + { "show_wle_s10_player_round_wk4_06", "Topsie Tursie" }, + { "show_wle_s10_player_round_wk4_07", "Arcade Assault" }, + { "show_wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + { "show_wle_s10_player_round_wk4_09", "Green Beans" }, + { "show_wle_s10_player_round_wk4_10", "Hop Hill" }, + { "show_wle_s10_player_round_wk4_11", "Quick Sliders" }, + { "show_wle_s10_player_round_wk4_12", "Split Path" }, + { "show_wle_s10_player_round_wk4_15", "Snowboard Street" }, + { "show_wle_s10_player_round_wk4_18", "House Invasion" }, + { "show_wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + { "show_wle_s10_player_round_wk4_21", "Spin" }, + { "show_wle_s10_player_round_wk4_22", "Lane Changers" }, + + { "wle_s10_player_round_wk5_01", "Block Park" }, + { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + { "wle_s10_player_round_wk5_03", "Digital Temple" }, + { "wle_s10_player_round_wk5_04", "Tower Escape" }, + { "wle_s10_player_round_wk5_05", "Tower Dash" }, + { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + { "wle_s10_player_round_wk5_07", "Looooping" }, + { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + { "wle_s10_player_round_wk5_10", "Siank Arena" }, + { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + { "wle_s10_player_round_wk5_13", "Dessert Village" }, + { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + { "wle_s10_player_round_wk5_15", "Beast Route" }, + { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + { "wle_s10_player_round_wk5_18", "Digital Doom" }, + + { "show_wle_s10_player_round_wk6_01", "Hammer Heaven" }, + { "show_wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + { "show_wle_s10_player_round_wk6_03", "Castle Rush" }, + { "show_wle_s10_player_round_wk6_04", "Chaotic Race" }, + { "show_wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + { "show_wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + { "show_wle_s10_player_round_wk6_08", "Flower Power" }, + { "show_wle_s10_player_round_wk6_09", "Dimension Explorer" }, + { "show_wle_s10_player_round_wk6_10", "Forked Passage" }, + { "show_wle_s10_player_round_wk6_12", "The Bee Hive" }, + { "show_wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + { "show_wle_s10_player_round_wk6_14", "Snek" }, + { "show_wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + { "show_wle_s10_player_round_wk6_17", "Slippery Helixes" }, + { "show_wle_s10_player_round_wk6_18", "Recess" }, + { "show_wle_s10_player_round_wk6_19", "Parrot river" }, + { "show_wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + + { "show_wle_s10_wk07_srs_01", "Tower of Fall" }, + { "show_wle_s10_wk07_srs_02", "SOLO FULL-TILT RAGE" }, + { "show_wle_s10_wk07_srs_03", "Piso resbaloso" }, + { "show_wle_s10_wk07_srs_04", "Catastrophe Climb" }, + { "show_wle_s10_wk07_srs_05", "Sky High Run" }, + { "show_wle_s10_wk07_srs_06", "Full Speed Sliding (FSS) - Jelly Road" }, + + { "show_wle_s10_wk08_srs_01", "Push Ups" }, + { "show_wle_s10_wk08_srs_02", "Heave & Haul" }, + { "show_wle_s10_wk08_srs_03", "Stepping Stones" }, + { "show_wle_s10_wk08_srs_04", "Double Trouble" }, + + { "current_wle_fp3_07_01", "Block Sledding" }, + { "current_wle_fp3_07_02", "Layup Wallop" }, + { "current_wle_fp3_07_03", "Minecart Mayhem" }, + { "current_wle_fp3_07_04", "Bouncing Pass" }, + { "current_wle_fp3_07_05", "Ball Factory" }, + { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + { "current_wle_fp3_07_0_02", "Woo-F-O" }, + { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + + { "current_wle_fp3_08_01", "Grabbers Territory" }, + { "current_wle_fp3_08_02", "A Way Out" }, + { "current_wle_fp3_08_03", "Wall Block" }, + { "current_wle_fp3_08_04", "The dream island" }, + { "current_wle_fp3_08_05", "Rainbow pulsion" }, + { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + { "current_wle_fp3_08_10", "Crazy boxes" }, + { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + { "current_wle_fp3_08_15", "Stumble Teams" }, + { "current_wle_fp3_08_16", "Twisting Tower" }, + { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + { "current_wle_fp3_08_18", "The Rising Blocks" }, + { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + { "current_wle_fp3_09_01", "The up tower" }, + { "current_wle_fp3_09_02", "Short shuriken" }, + { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + { "current_wle_fp3_09_06", "Random Heights" }, + { "current_wle_fp3_09_07", "Climb scramble" }, + { "current_wle_fp3_09_08", "Collide Gaming" }, + { "current_wle_fp3_09_09", "Very Compressed Level" }, + { "current_wle_fp3_09_0_01", "Slippery Slope" }, + { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + { "current_wle_fp3_09_0_03", "Free Falling" }, + { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + + { "current_wle_fp3_10_01", "When Nature Falls" }, + { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + { "current_wle_fp3_10_03", "The Slime Trials" }, + { "current_wle_fp3_10_04", "Friendly Obstacles" }, + { "current_wle_fp3_10_05", "Climb and Fall" }, + { "current_wle_fp3_10_06", "Stairs and some other things" }, + { "current_wle_fp3_10_07", "Meowgical World" }, + { "current_wle_fp3_10_08", "Polluelo Speed" }, + { "current_wle_fp3_10_09", "Pixel Parade" }, + { "current_wle_fp3_10_10", "Total Madness" }, + { "current_wle_fp3_10_11", "The Abstract Maze" }, + { "current_wle_fp3_10_12", "Fan Off" }, + { "current_wle_fp3_10_13", "cloud highway" }, + { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + { "current_wle_fp3_10_15", "Speedrunners be like" }, + { "current_wle_fp3_10_16", "Tumble Tower" }, + { "current_wle_fp3_10_17", "Silver's Snake Run" }, + { "current_wle_fp3_10_18", "Now Boarding" }, + { "current_wle_fp3_10_19", "Slime Scale" }, + { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + { "current_wle_fp3_10_23", "Controlled Chaos" }, + { "current_wle_fp3_10_24", "Xtreme Jumping" }, + { "current_wle_fp3_10_25", "Odin" }, + { "current_wle_fp3_10_26", "Ciudad nube" }, + { "current_wle_fp3_10_27", "Bean Voyage" }, + { "current_wle_fp3_10_28", "SLIP-SAW" }, + { "current_wle_fp3_10_29", "Bbq bacon burger" }, + + { "current_wle_fp4_05_01_01", "巅峰车站" }, + { "current_wle_fp4_05_01_02", "Beba Park 7" }, + { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + { "current_wle_fp4_05_02", "Mini only up" }, + { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + { "current_wle_fp4_05_03_02", "Remote Control" }, + { "current_wle_fp4_05_03", "Parkway Slide" }, + { "current_wle_fp4_05_04", "Duel Dash" }, + { "current_wle_fp4_05_05", "beaten trackless road" }, + { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + { "current_wle_fp4_05_2_02", "arch city" }, + { "current_wle_fp4_05_2_03", "Desert Ruins" }, + + { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + { "current_wle_fp4_06_02", "Pachislo" }, + { "current_wle_fp4_06_0_01", "AquArsene" }, + { "current_wle_fp4_06_0_02", "RainbowCloud" }, + { "current_wle_fp4_06_0_03", "Pink Cascade" }, + { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + { "current_wle_fp4_06_1_01", "Buggin' Out" }, + { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + { "current_wle_fp4_06_1_05", "The climb of Trials" }, + { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + + { "current_wle_fp4_07_01", "Rotational Runner" }, + { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + { "current_wle_fp4_07_03", "simple stage" }, + { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + { "current_wle_fp4_07_05", "Factory Valley" }, + { "current_wle_fp4_07_06", "Jumpy Beans" }, + { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + { "current_wle_fp4_07_0_01", "Camino Ninja" }, + + { "current_wle_fp4_08_01", "co-op guys" }, + { "current_wle_fp4_08_0_01", "The big slide" }, + { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + { "current_wle_fp4_08_0_06", "X-Course" }, + { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + { "current_wle_fp4_08_1_01", "Boost in Dash" }, + { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + { "current_wle_fp4_08_1_03", "Giddy up!" }, + { "current_wle_fp4_08_1_04", "Mad lab" }, + { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + { "current_wle_fp4_08_3_01", "The Oasis" }, + + { "current_wle_fp4_09_01", "Crate Collector" }, + { "current_wle_fp4_09_02", "Dribble Drills" }, + { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + { "current_wle_fp4_09_04", "Skyline Park" }, + { "current_wle_fp4_09_05", "Birthday bonanza" }, + { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + { "current_wle_fp4_09_1_02", "Haute voltige" }, + { "current_wle_fp4_09_2_01", "DNA Test" }, + + { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + { "current_wle_fp4_10_02", "Hot Blast" }, + { "current_wle_fp4_10_03", "Box Fan Blitz" }, + { "current_wle_fp4_10_04", "Woo-terfall Way" }, + { "current_wle_fp4_10_05", "Slime race" }, + { "current_wle_fp4_10_06", "Moving Day" }, + { "current_wle_fp4_10_07", "Birthday Dash" }, + { "current_wle_fp4_10_08_m", "Wall Breaker" }, + { "current_wle_fp4_10_08", "Chess History" }, + { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + { "current_wle_fp4_10_12", "Chickens run away" }, + { "current_wle_fp4_10_20", "Co-op and CO" }, + { "current_wle_fp4_10_23", "Construction Site" }, + { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + { "current_wle_fp4_10_0_02", "Molehills" }, + + { "current_wle_fp5_2_01_01", "Plummet Summit" }, + { "current_wle_fp5_2_01_02", "タワークライム" }, + { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + { "current_wle_fp5_2_01", "Jabonsotes" }, + { "current_wle_fp5_2_02_01", "のっぽタワー" }, + { "current_wle_fp5_2_02_02", "Blaster Course" }, + { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + { "current_wle_fp5_2_02_04", "The hard Climb" }, + { "current_wle_fp5_2_02_05", "sliding guys" }, + { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + { "current_wle_fp5_2_02", "Rainbow highway" }, + { "current_wle_fp5_2_03", "Falligator" }, + { "current_wle_fp5_2_04_01", "Lily Lovers" }, + { "current_wle_fp5_2_04_02", "rainow rode" }, + { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + { "current_wle_fp5_2_04_04", "Super crazy level" }, + { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + { "current_wle_fp5_2_05_01", "Level XVIII" }, + { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + { "current_wle_fp5_2_05_04", "rainbow roade" }, + { "current_wle_fp5_2_05", "The tension Parkour" }, + { "current_wle_fp5_2_06", "Stairing Contest" }, + { "current_wle_fp5_2_07", "Vibrant Ascension" }, + + { "current_wle_fp5_3_05_01", "Beany Golf!" }, + { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + { "current_wle_fp5_4_01_01", "Tilted Walls" }, + { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + + { "current_wle_fp5_10_01", "Breezy Buddies" }, + { "current_wle_fp5_10_0_01", "Salto Plancha" }, + { "current_wle_fp5_10_0_02", "My house" }, + { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + { "current_wle_fp5_10_1_01", "Desert Ruins" }, + { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_01", "Desert Ruins" }, + { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_03", "Mystic River" }, + { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + { "current_wle_fp5_10_2_05", "Cliffside" }, + { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + { "current_wle_fp5_10_2_07", "The Avenue" }, + { "current_wle_fp5_10_2_08", "Gold City" }, + { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + { "current_wle_fp5_10_2_10", "初心者用コース" }, + { "current_wle_fp5_10_2_11", "Chain Reaction" }, + + { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + { "current_wle_fp5_wk3_1_04", "El airecito" }, + { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + + { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + { "current_wle_fp5_falloween_1_06", "Mirage" }, + { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + { "current_wle_fp5_falloween_1_08", "Toon World" }, + { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + { "current_wle_fp5_falloween_2_03_06", "Spider" }, + { "current_wle_fp5_falloween_2_03", "fastoween" }, + { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + { "current_wle_fp5_falloween_4_05", "Scary Final" }, + { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + { "current_wle_fp5_falloween_4_08", "Catoween" }, + { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + { "current_wle_fp5_falloween_5_04", "Halloween" }, + { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + { "current_wle_fp5_falloween_9_02", "Raveyard" }, + { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + { "current_wle_fp5_falloween_11_01", "Night Runners" }, + { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + { "current_wle_fp5_falloween_13_01", "Witch Way" }, + { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + + { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + { "current_wle_fp6_1_03", "SKULL KING" }, + { "current_wle_fp6_1_04", "shorter circuit" }, + { "current_wle_fp6_1_05", "be speedy" }, + { "current_wle_fp6_1_06", "Sky-City Stumble" }, + { "current_wle_fp6_1_07", "Wormhole Mountain" }, + { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + { "current_wle_fp6_1_09", "Splitspeed" }, + { "current_wle_fp6_1_10", "Fall Canyon" }, + { "current_wle_fp6_2_01", "Valise" }, + { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + { "current_wle_fp6_2_03", "Water Way" }, + { "current_wle_fp6_2_04", "The Doors of Doom" }, + { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + { "current_wle_fp6_2_06", "Liana Swings" }, + { "current_wle_fp6_2_07", "Colourful" }, + { "current_wle_fp6_2_08", "The Heist!" }, + { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + { "current_wle_fp6_3_01", "Tricky Treat" }, + { "current_wle_fp6_3_02", "The Lighthouse" }, + { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + { "current_wle_fp6_3_04", "The Scarescraper" }, + { "current_wle_fp6_3_05", "Obstacle Road" }, + { "current_wle_fp6_3_06", "Rest In Paris" }, + { "current_wle_fp6_3_07", "Horror pumpkim" }, + { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + + { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + { "current_wle_fp6_wk2_03", "Slidy Road" }, + { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + { "current_wle_fp6_wk2_05", "Lost in space" }, + { "current_wle_fp6_wk2_06", "Turbine Decline" }, + { "current_wle_fp6_wk2_07", "Zero Displacement" }, + { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + { "current_wle_fp6_wk2_10", "Neoway" }, + { "current_wle_fp6_wk2_11", "Niagara Falls" }, + { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + { "current_wle_fp6_wk2_1_06", "Locomoção" }, + { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + + { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + { "current_wle_fp6_wk3_02", "Compact 5" }, + { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + { "current_wle_fp6_wk3_05", "Alto voltaje" }, + { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + { "current_wle_fp6_wk3_09", "Work and Travel" }, + { "current_wle_fp6_wk3_10", "connect the bridge" }, + { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + { "current_wle_fp6_wk3_2_02", "speed demon" }, + { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + + { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + { "current_wle_fp6_wk4_03_05", "Snow Style" }, + { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + { "current_wle_fp6_wk4_05_01", "Rebound" }, + { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + + { "current_wle_community_10_5_01", "Snowy Starfall" }, + { "current_wle_community_10_5_02", "The Earthquake" }, + { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + { "current_wle_community_10_5_1_04", "Garden of Woo" }, + { "current_wle_community_10_5_1_05", "Out in the open" }, + { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + { "current_wle_community_10_5_1_08", "Jungle Journey" }, + { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + { "current_wle_community_10_5_1_15", "Three Rooms" }, + { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + { "current_wle_community_10_5_1_17", "Winter Slide" }, + { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + + { "wle_s10_cf_round_001", "Blocky Bridges" }, + { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + { "wle_s10_cf_round_003", "Drop n' Drag" }, + { "wle_s10_cf_round_004", "Fun with Fans" }, + + { "wle_mrs_bagel", "彩虹拉力赛" }, + { "wle_mrs_shuffle_show", "迪奇混搭秀精选" }, + { "wle_mrs_shuffle_show_squads", "小队乱战" }, + { "wle_shuffle_discover", "单人随机" }, + { "wle_mrs_bouncy_bean_time", "弹弹糖豆时间" }, + { "wle_mrs_winter", "Winter Wonders" }, + { "wle_shuffle_chill", "轻松一刻" }, + { "wle_mrs_survival_showdown", "生存对决专题" }, + { "wle_shuffle_survival", "混合生存赛" }, + { "wle_mrs_ugc_playful_pioneers", "玩乐急先锋" }, + { "wle_playful_shuffle", "玩乐急先锋随机" }, + { "event_april_fools", "糖豆恶作剧混搭秀" }, + { "wle_nature_ltm", "荒野求生" }, + + { "private_lobbies", "自定义节目" }, + { "fall_guys_creative_mode", "Fall Guys Creative" }, + { "invisibeans_mode", "糖果窃贼" }, + } + }, + { Language.TraditionalChinese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "anniversary_fp12_ltm", "週年派對" }, + { "casual_show", "探索" }, + { "classic_duos_show", "雙人" }, + { "classic_solo_main_show", "單人" }, + { "classic_squads_show", "小隊" }, + { "collectables_ss2_batch_01", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model1", "Collectables Batch 01" }, + { "collectables_ss2_batch_01_model2", "調試用專題" }, + { "collectables_ss2_batch_02", "調試用專題" }, + { "collectables_ss2_batch_02_model1", "調試用專題" }, + { "collectables_ss2_batch_02_model2", "調試用專題" }, + { "collectables_ss2_batch_03", "調試用專題" }, + { "collectables_ss2_batch_03_model1", "調試用專題" }, + { "collectables_ss2_batch_03_model2", "調試用專題" }, + { "collectables_ss2_batch_04", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model1", "Batch 4 Collectables" }, + { "collectables_ss2_batch_04_model2", "Batch 4 Collectables" }, + { "collectables_ss2_batch_05", "batch5" }, + { "collectables_ss2_batch_05_model1", "batch5" }, + { "collectables_ss2_batch_05_model2", "batch5" }, + { "duos_show_ss2_launch", "Duos Show SS2" }, + { "duos_show_ss2_parrot", "雙人" }, + { "event_animals_template", "野生糖豆" }, + { "event_anniversary_season_1", "週年慶大派對" }, + { "event_anniversary_season_1_0408_to_0808_2022", "週年慶大派對" }, + { "event_anniversary_season_1_1706_to_2106_2022", "經典淘汰賽" }, + { "event_anniversary_season_1_alternate_name", "經典淘汰賽" }, + { "event_aprilstart_0404_1004", "Title" }, + { "event_autumn_festival_squads_1708_to_1808_2022", "小隊慶祝" }, + { "event_autumn_festival_squads_2109_2709_21", "小隊慶祝" }, + { "event_autumn_festival_squads_2110_2210_2022", "小隊慶祝" }, + { "event_blast_ball_banger_1309_to_1409_2022", "震盪球狂熱" }, + { "event_blast_ball_banger_1710_1810_2022", "震盪球狂熱" }, + { "event_blast_ball_banger_2310_2410_2022", "震盪球狂熱" }, + { "event_blast_ball_banger_2408_to_2808_2022", "震盪球狂熱" }, + { "event_blast_ball_banger_2609_to_2809_2022", "震盪球狂熱" }, + { "event_blast_ball_banger_template", "震盪球狂熱" }, + { "event_bubble_template", "週年慶大派對" }, + { "event_clan_of_yeetus_2509_to_2709_2022", "重錘部落" }, + { "event_clan_of_yeetus_ss2_2110_2210_2022", "重錘部落" }, + { "event_clan_of_yeetus_ss2_2509_2709_2022", "重錘部落" }, + { "event_day_at_races_squads_1610_1710_2022", "賽跑之日小隊賽" }, + { "event_day_at_races_squads_2308_to_2408_2022", "賽跑之日小隊賽" }, + { "event_day_at_races_squads_2707_to_2807_2022", "賽跑之日小隊賽" }, + { "event_day_at_races_squads_template", "賽跑之日小隊賽" }, + { "event_day_at_the_races_ltm", "賽跑之日單人賽" }, + { "event_end_of_season_s1", "決賽 1/5:星期四專題" }, + { "event_end_of_season_s2", "決賽 2/5:星期五專題" }, + { "event_end_of_season_s3", "決賽 3/5:星期六專題" }, + { "event_end_of_season_s4", "決賽 4/5:星期日專題" }, + { "event_end_of_season_s5", "決賽 5/5:星期一專題" }, + { "event_fall_ball_101022_121022", "激情足球糖豆杯" }, + { "event_fan_favourites_1807_to_2107_2022", "糖豆最愛" }, + { "event_fan_favourites_1908_to_2108_2022", "糖豆最愛" }, + { "event_fan_favourites_s6_template", "糖豆最愛" }, + { "event_fan_favourites_template", "糖豆最愛" }, + { "event_fanfare_template", "御風" }, + { "event_fruit_basket", "糖豆果籃" }, + { "event_hilaria_2022", "???????????" }, + { "event_invisibeans_ss2_1010_1210_2022", "糖果竊賊" }, + { "event_kudos_blow_up_0910_to_1110_2021", "時間就是榮耀值!:乘風而起" }, + { "event_kudos_blow_up_template", "時間就是榮耀值!:乘風而起" }, + { "event_kudos_bollard_greens_1310_to_1510_2021", "時間就是榮耀值!:綠色縱柱" }, + { "event_kudos_bollard_greens_1510_to_1710_2021", "時間就是榮耀值!:綠色縱柱" }, + { "event_kudos_bollard_greens_template", "時間就是榮耀值!:綠色縱柱" }, + { "event_kudos_gravity_wield_1110_to_1310_2021", "時間就是榮耀值!:控制重力" }, + { "event_kudos_gravity_wield_1310_to_1510_2021", "時間就是榮耀值!:控制重力" }, + { "event_kudos_gravity_wield_template", "時間就是榮耀值!:控制重力" }, + { "event_kudos_jumping_for_joy_0510_to_0710_2021", "時間就是榮耀值!:快樂跳躍" }, + { "event_kudos_jumping_for_joy_0710_to_0910_2021", "時間就是榮耀值!:快樂跳躍" }, + { "event_kudos_jumping_for_joy_template", "時間就是榮耀值!:快樂跳躍" }, + { "event_kudos_spin_cycle_0710_to_0910_2021", "時間就是榮耀值!:旋轉循環" }, + { "event_kudos_spin_cycle_1110_to_1310_2021", "時間就是榮耀值!:旋轉循環" }, + { "event_kudos_spin_cycle_template", "時間就是榮耀值!:旋轉循環" }, + { "event_le_anchovy_private_lobbies", "會會大海怪" }, + { "event_le_anchovy_template", "會會大海怪" }, + { "event_le_halloween_slime_climb", "搗蛋專題" }, + { "event_le_halloween_slime_climb_2110_to_0111_2021", "搗蛋專題" }, + { "event_le_halloween_team_squads", "給糖專題(三人)" }, + { "event_le_halloween_team_squads_2110_to_0111_2021", "給糖專題(三人)" }, + { "event_new_year_s6", "糖豆健身" }, + { "event_no_teams", "再見團隊" }, + { "event_only_1v1_volleyfall_squads_ss1_or_ss2_show2", "糖豆排球錦標賽" }, + { "event_only_basketfall", "空中大灌籃" }, + { "event_only_blast_ball_trials_0609_to_0709_2022", "震盪球試煉" }, + { "event_only_blast_ball_trials_1608_to_1708_2022", "震盪球試煉" }, + { "event_only_blast_ball_trials_1907_to_2007_2022", "震盪球試煉" }, + { "event_only_blast_ball_trials_template", "震盪球試煉" }, + { "event_only_bubbles_template", "泡泡危機試煉" }, + { "event_only_button_bashers_template", "砸鍵狂豆大逃殺" }, + { "event_only_drumtop_0607_to_0707_2022", "糖豆蓮上飄" }, + { "event_only_drumtop_0908_to_1008_2022", "糖豆蓮上飄" }, + { "event_only_drumtop_3108_to_0109_2022", "糖豆蓮上飄" }, + { "event_only_drumtop_template", "糖豆蓮上飄" }, + { "event_only_fall_ball_011122_031122", "激情足球糖豆杯" }, + { "event_only_fall_ball_0407_to_0507_2022", "激情足球糖豆杯" }, + { "event_only_fall_ball_1810_2010_2022", "激情足球糖豆杯" }, + { "event_only_fall_ball_custom_lobby", "激情足球糖豆杯" }, + { "event_only_fall_ball_squads_0106_to_0206_2022", "激情足球糖豆杯" }, + { "event_only_fall_ball_squads_1609_to_1809_2022", "激情足球糖豆杯" }, + { "event_only_fall_ball_squads_template", "激情足球糖豆杯" }, + { "event_only_fall_ball_template", "激情足球糖豆杯" }, + { "event_only_fall_ball_trios_ranked", "激情足球盃大賽 三人積分賽" }, + { "event_only_finals_2904_to_0105_2022", "決賽馬拉松" }, + { "event_only_finals_template", "決賽馬拉松" }, + { "event_only_finals_v2_template", "決賽馬拉松" }, + { "event_only_finals_v3_ranked", "決賽馬拉松排名戰" }, + { "event_only_finals_v3_template", "決賽馬拉松" }, + { "event_only_floor_fall_0510_to_0610_2022", "蜂窩迷圖試煉" }, + { "event_only_floor_fall_2510_2610_2022", "蜂窩迷圖試煉" }, + { "event_only_floor_fall_custom_lobby", "蜂窩迷圖試煉" }, + { "event_only_floor_fall_low_grav", "重力蜂窩迷環試煉" }, + { "event_only_floor_fall_low_grav_0108_to_0208_2022", "重力蜂窩迷環試煉" }, + { "event_only_floor_fall_low_grav_0507_to_0607_2022", "重力蜂窩迷環試煉" }, + { "event_only_floor_fall_low_grav_2208_to_2308_2022", "重力蜂窩迷環試煉" }, + { "event_only_floor_fall_template", "蜂窩迷圖試煉" }, + { "event_only_hard_mode_1306_to_1406_2022", "困難模式" }, + { "event_only_hard_mode_private_lobbies", "困難模式" }, + { "event_only_hard_mode_template", "困難模式" }, + { "event_only_hexaring_1808_to_2208_2022", "蜂窩競技場" }, + { "event_only_hexaring_template", "蜂窩競技場" }, + { "event_only_hoverboard_template", "懸浮板時間" }, + { "event_only_jump_club_0109_to_0209_2022", "跳來跳去" }, + { "event_only_jump_club_1008_to_1108_2022", "跳來跳去" }, + { "event_only_jump_club_1907_to_2007_2022", "跳來跳去" }, + { "event_only_jump_club_2305_to_2405_2022_v2", "跳來跳去" }, + { "event_only_jump_club_2706_to_2806_2022", "跳來跳去" }, + { "event_only_jump_club_custom_lobby", "跳來跳去" }, + { "event_only_jump_club_ss2_0310_0410_2022", "跳來跳去" }, + { "event_only_jump_club_template", "跳來跳去" }, + { "event_only_pixelperfect", "像素級還原" }, + { "event_only_races_any_final_2406_to_2606_2022", "賽跑之日單人賽" }, + { "event_only_races_any_final_2505_to_2605_2022", "賽跑之日單人賽" }, + { "event_only_races_any_final_private_lobbies", "賽跑之日單人賽" }, + { "event_only_races_any_final_template", "賽跑之日單人賽" }, + { "event_only_races_no_lava_template", "賽跑之日單人賽" }, + { "event_only_races_template", "賽跑之日單人賽" }, + { "event_only_roll_on", "僅限“滾滾而去”回合" }, + { "event_only_roll_out", "滾滾而來" }, + { "event_only_roll_out_0806_to_0906_2022", "滾滾而來" }, + { "event_only_roll_out_2005_to_2205_2022", "滾滾而來" }, + { "event_only_roll_out_custom_lobby", "滾滾而來" }, + { "event_only_season_2_variation_template", "中世紀大亂鬥" }, + { "event_only_season_3_variation_template", "大混戰!" }, + { "event_only_season_4", "未來探索" }, + { "event_only_season_4_1507_to_1707_2022", "未來探索" }, + { "event_only_season_4_2705_to_2905_2022", "未來探索" }, + { "event_only_season_4_custom_lobby", "未來探索" }, + { "event_only_season_4_variation_template", "大混戰!" }, + { "event_only_season_5_0309_1209", "叢林亂鬥" }, + { "event_only_season_5_0409_to_0509_2022", "叢林亂鬥" }, + { "event_only_season_5_0807_to_1007_2022", "叢林亂鬥" }, + { "event_only_season_5_0909_to_1009_2022", "叢林亂鬥" }, + { "event_only_season_5_custom_lobby", "叢林亂鬥" }, + { "event_only_season_5_template", "叢林亂鬥" }, + { "event_only_season_5_variation_template", "大混戰!" }, + { "event_only_season_6_launch_party", "派對大戰" }, + { "event_only_season_6_launch_party_1703_to_1903_2022", "派對大戰" }, + { "event_only_season_6_template", "派對大戰" }, + { "event_only_skeefall_timetrial_0309_to_0409_2022", "雪山速降高分賽" }, + { "event_only_skeefall_timetrial_0711_0711_2022", "雪山速降高分賽" }, + { "event_only_skeefall_timetrial_1307_to_1407_2022", "雪山速降高分賽" }, + { "event_only_skeefall_timetrial_1508_to_1608_2022", "雪山速降高分賽" }, + { "event_only_skeefall_timetrial_1909_to_2009_2022", "雪山速降高分賽" }, + { "event_only_skeefall_timetrial_2710_2810_2022", "雪山速降高分賽" }, + { "event_only_skeefall_timetrial_s6_1", "雪山速降高分賽" }, + { "event_only_skeefall_timetrial_ss2_1909_2009_2022", "雪山速降高分賽" }, + { "event_only_slime_climb", "水漲爬高專題" }, + { "event_only_slime_climb_0110_to_0210_2022", "水漲爬高專題" }, + { "event_only_slime_climb_0308_to_0408_2022", "水漲爬高專題" }, + { "event_only_slime_climb_0709_to_0809_2022", "水漲爬高專題" }, + { "event_only_slime_climb_1107_to_1207_2022", "水漲爬高專題" }, + { "event_only_slime_climb_1506_to_1606_2022", "水漲爬高專題" }, + { "event_only_slime_climb_2608_to_2708_2022", "水漲爬高專題" }, + { "event_only_slime_climb_2_0606_to_0706_2022", "摩天黏液專題" }, + { "event_only_slime_climb_2_0709_to_0909_2021", "摩天黏液專題" }, + { "event_only_slime_climb_2_2910_3010_2022", "摩天黏液專題" }, + { "event_only_slime_climb_2_template", "摩天黏液專題" }, + { "event_only_slime_climb_ss2_0110_0210_2022", "水漲爬高專題" }, + { "event_only_ss2_squads_1910_2110_2022", "3、2、1,宇宙!" }, + { "event_only_ss2_squads_template", "3、2、1,宇宙!" }, + { "event_only_survival_fittest_3110_0111_2022", "適者生存" }, + { "event_only_survival_private_lobbies", "黏液求生" }, + { "event_only_survival_ss2_3009_0210_2022", "適者生存" }, + { "event_only_thin_ice_0205_to_0205_2022", "薄冰挑戰" }, + { "event_only_thin_ice_template", "薄冰挑戰" }, + { "event_only_tip_toe_0204_to_0304_2022", "踮腳大師錦標賽" }, + { "event_only_tip_toe_0209_to_0309_2022", "踮腳大師錦標賽" }, + { "event_only_tip_toe_2507_to_2607_2022", "踮腳大師錦標賽" }, + { "event_only_tip_toe_2809_to_2909_2022", "踮腳大師錦標賽" }, + { "event_only_tip_toe_2909_to_3009_2022", "踮腳大師錦標賽" }, + { "event_only_tip_toe_template", "踮腳大師錦標賽" }, + { "event_only_volleyfall_squads_ss2_1110_1210_2022", "糖豆排球錦標賽" }, + { "event_only_volleyfall_squads_ss2_2010_2110_2022", "糖豆排球錦標賽" }, + { "event_oriole_0612_to_1212_2021", "埃洛伊的燃料罐大混戰" }, + { "event_oriole_template", "埃洛伊的燃料罐大混戰" }, + { "event_pixel_palooza_2210_2310_2022", "像素狂歡" }, + { "event_pixel_palooza_template", "像素狂歡" }, + { "event_s6_651_template", "PLACEHOLDER SHOW" }, + { "event_s9_crayfish_template", "抓握禮物大作戰" }, + { "event_season_2_highlight_1006_to_1206_2022", "混戰中世紀" }, + { "event_season_2_highlight_2907_to_3107_2022", "混戰中世紀" }, + { "event_season_2_highlight_template", "混戰中世紀" }, + { "event_season_3_highlight_0306_to_0506_2022", "跌撞雪原" }, + { "event_season_3_highlight_2607_to_2707_2022", "跌撞雪原" }, + { "event_season_3_highlight_template", "跌撞雪原" }, + { "event_snowday_stumble", "跌撞雪原" }, + { "event_sports_suddendeath_squads", "黃金進球挑戰" }, + { "event_sports_suddendeath_squads_0208_to_0308_2022", "黃金進球挑戰" }, + { "event_sports_suddendeath_squads_0407_to_0507_2022", "黃金進球挑戰" }, + { "event_sports_suddendeath_squads_0509_to_0609_2022", "黃金進球挑戰" }, + { "event_sports_suddendeath_squads_2603_to_2803_2022", "黃金進球挑戰" }, + { "event_sports_template", "狂歡運動會" }, + { "event_squads_festival_ss2_2409_2509_2022", "小隊慶祝" }, + { "event_squads_survival_0509_to_0609_2022", "生存小隊賽" }, + { "event_squads_survival_0511_0711_2022", "生存小隊賽" }, + { "event_squads_survival_0808_to_0908_2022", "生存小隊賽" }, + { "event_squads_survival_ss2_0710_0910_2022", "生存小隊賽" }, + { "event_squads_survival_template", "生存小隊賽" }, + { "event_stars01_0404_1004", "適應!" }, + { "event_stars02_1804_to_2404_2022", "邏輯!" }, + { "event_stars03_0305_to_0805_2022", "勇氣!" }, + { "event_summer_squads_0107_0407_2022", "小隊慶祝" }, + { "event_summer_squads_2107_2507", "小隊慶祝" }, + { "event_symphony_launch_show_1310_1610_2022", "運動場之星專題" }, + { "event_symphony_launch_show_template", "運動場之星專題" }, + { "event_tail_tag_april_show", "故障代碼:4月1日" }, + { "event_test_season_5", "雙人" }, + { "event_twitch_rivals", "Twitch大對決" }, + { "event_vulture_1612_to_2712_2021", "淘氣或乖巧專題" }, + { "event_vulture_template", "淘氣或乖巧專題" }, + { "event_walnut_template", "蜂窩馬拉松" }, + { "event_week_of_romance_s6_duo_teams", "雙人慶典" }, + { "event_xtreme_fall_guys_0211_0411_2022", "極限糖豆人單人" }, + { "event_xtreme_fall_guys_2207_to_2407_2022", "極限糖豆人單人" }, + { "event_xtreme_fall_guys_2903_to_3103_2022", "極限糖豆人單人" }, + { "event_xtreme_fall_guys_2908_to_3108_2022", "極限糖豆人單人" }, + { "event_xtreme_fall_guys_squads_1208_to_1408_2022", "極限糖豆人小隊" }, + { "event_xtreme_fall_guys_squads_2906_to_3006_2022", "極限糖豆人小隊" }, + { "event_xtreme_fall_guys_squads_2908_to_3108_2022", "極限糖豆人小隊" }, + { "event_xtreme_fall_guys_squads_ss2_1310_1510_2022", "極限糖豆人小隊" }, + { "event_xtreme_fall_guys_squads_ss2_2109_2309_2022", "極限糖豆人小隊" }, + { "event_xtreme_fall_guys_squads_template", "極限糖豆人小隊" }, + { "event_xtreme_fall_guys_ss2_0310_0510_2022", "極限糖豆人單人" }, + { "event_xtreme_fall_guys_template", "極限糖豆人單人" }, + { "event_yeetus_111022_121022", "重錘巡迴賽" }, + { "event_yeetus_3005_to_3105_2022", "重錘巡迴賽" }, + { "event_yeetus_template", "重錘巡迴賽" }, + { "explore_points", "探索模式 - 奪分關卡" }, + { "fp16_ski_fall_high_scorers", "雪山速降高分賽" }, + { "ftue_uk_show", "淘汰賽" }, + { "greatestsquads_ltm", "小隊奇觀" }, + { "greatestsquads_ranked", "小隊奇觀排名" }, + { "invisibeans_0508_to_0708_2022", "糖果竊賊" }, + { "invisibeans_0707_to_1107_2022", "糖果竊賊" }, + { "invisibeans_0803_to_1303_2022", "糖果竊賊" }, + { "invisibeans_181022_201022", "糖果竊賊" }, + { "invisibeans_2209_to_2409_2022", "糖果竊賊" }, + { "invisibeans_2808_to_3008_2022", "糖果竊賊" }, + { "invisibeans_pistachio_template", "萬聖來盜" }, + { "invisibeans_template", "糖果竊賊" }, + { "knockout_duos", "雙人" }, + { "knockout_mode", "淘汰賽" }, + { "knockout_mode_pl", "淘汰賽" }, + { "knockout_squads", "小隊" }, + { "live_event_bluejay", "速度要快!" }, + { "live_event_clan_of_yeetus_0411_0611_2022", "重錘部落" }, + { "live_event_clan_of_yeetus_ss1_template", "重錘部落" }, + { "live_event_peanut_ss2_01", "密。失落" }, + { "live_event_peanut_ss2_02", "落之城終" }, + { "live_event_peanut_ss2_03", "終現身," }, + { "live_event_peanut_ss2_04", "身,雷霆" }, + { "live_event_peanut_ss2_05", "雷霆巨豆中心" }, + { "live_event_peanut_ss2_06", "心下,淹沒" }, + { "live_event_peanut_ss2_07", "沒著往" }, + { "live_event_peanut_ss2_08", "往日的" }, + { "live_event_peanut_ss2_09", "的秘" }, + { "live_event_peanut_ss2_10", "秘密。失" }, + { "live_event_pelican_template", "斯巴達戰士對決" }, + { "live_event_satellite_collectibles_solo_template", "衛星維修任務" }, + { "live_event_satellite_collectibles_template", "衛星維修任務" }, + { "live_event_ss2_potoo_template", "糖豆顯靈" }, + { "live_event_ss2_potoo_template_test", "POTOO TEST! NOT FINAL!" }, + { "live_event_symphony_launch_show_template", "運動場之星專題" }, + { "live_event_timeattack_dizzyheights", "計時賽試煉 - 目眩山巔" }, + { "live_event_timeattack_lilyleapers", "計時賽試煉 - 林間躍動" }, + { "live_event_timeattack_partyprom", "計時賽試煉 - 派對大道" }, + { "live_event_timeattack_shuffle", "隨機計時賽" }, + { "live_event_timeattack_shuffle_pl", "隨機計時賽" }, + { "live_event_timeattack_trackattack", "計時賽試煉 - 障礙田徑賽" }, + { "live_event_timeattack_treetoptumble", "計時賽試煉 - 叢林探險" }, + { "live_event_timeattack_tundrarun", "計時賽試煉 - 苔原衝關" }, + { "main_show", "單人" }, + { "main_show_2player", "主要節目" }, + { "main_show_private_lobbies", "單人" }, + { "main_show_ss2_launch_pl", "單人" }, + { "main_show_template_base", "主要專題" }, + { "main_show_template_large", "主要專題" }, + { "main_show_template_medium", "主要專題" }, + { "mrs_pegwin_winter_2teamsfinal", "企鵝狂歡盛會" }, + { "no_elimination_explore", "探索模式 - 經典" }, + { "no_elimination_show", "單人簡易" }, + { "only_1v1_volleyfall", "糖豆排球錦標賽" }, + { "only_1v1_volleyfall_191022_211022", "糖豆排球錦標賽" }, + { "only_solo_ss2_rounds_show", "3、2、1,宇宙!" }, + { "pl_blastball", "震盪球" }, + { "pl_duos_show", "雙人" }, + { "pl_fallmountain", "登山比拼" }, + { "pl_hexagone", "蜂窩迷圖" }, + { "pl_hexaring", "蜂窩迷環" }, + { "pl_hexaterrestrial", "深空蜂窩" }, + { "pl_jumpshowdown", "巔峰對決" }, + { "pl_krakenslam", "海怪重擊" }, + { "pl_losttemple", "失落神廟" }, + { "pl_rolloff", "滾輪行動" }, + { "pl_royal_fumble", "盛裝團團轉" }, + { "pl_solo_main_show", "單人" }, + { "pl_squads_show", "小隊" }, + { "pl_thin_ice", "如履薄冰" }, + { "pl_tiptoefinale", "決勝之踮" }, + { "pl_vaulted_show", "歸檔庫" }, + { "placeholder", ""}, + { "playlist_fallguys_skill", "playlist_fallguys_skill" }, + { "playlist_fallguys_solo", "playlist_fallguys_solo" }, + { "playlist_fallguys_soloskill", "playlist_fallguys_soloskill" }, + { "playlist_fallguys_squad", "playlist_fallguys_squad" }, + { "ranked_duos_show", "雙人排名戰" }, + { "ranked_show_knockout", "重拳手排名戰" }, + { "ranked_solo_show", "單人排名戰" }, + { "ranked_squads_show", "小隊排名戰" }, + { "ranked_trios_show", "三人排名戰" }, + { "reversed_knockout_show", "重拳手?" }, + { "showcase_fp13", "跌絆回收場" }, + { "showcase_fp16", "戲雪之樂" }, + { "showcase_fp17", "跌撞情人節" }, + { "showcase_fp18", "愚人節三人組" }, + { "showcase_fp19", "衝啊!重鎚大都會!" }, + { "showcase_fp20", "繁華跌撞海灘" }, + { "show_episode_level_variation_sy2_launch_01", "大混戰!" }, + { "show_episode_level_variation_sy2_launch_02", "大混戰!" }, + { "show_episode_level_variation_sy2_launch_03", "大混戰!" }, + { "show_episode_level_variation_sy2_launch_04", "大混戰!" }, + { "show_episode_level_variation_sy2_launch_05", "大混戰!" }, + { "show_episode_level_variation_victoria_1", "大混戰!" }, + { "show_episode_level_variation_victoria_2", "大混戰!" }, + { "show_episode_level_variation_victoria_3", "大混戰!" }, + { "show_episode_level_variation_victoria_4_squads", "大混戰!" }, + { "show_robotrampage_ss2_2809_to_2909_2022", "犀牛大衝撞對決" }, + { "show_robotrampage_ss2_show1_2510_2610_2022", "犀牛大衝撞對決" }, + { "show_robotrampage_ss2_show1_template", "犀牛大衝撞對決" }, + { "slime_survivors", "黏液求生" }, + { "solo_show_pl_all_rounds", "單人精選專題" }, + { "solo_show_ss2_launch", "Solo Show SS2" }, + { "solo_show_ss2_parrot", "單人" }, + { "spectator_show", "觀賞性項目" }, + { "sports_show", "糖豆人運動大賽" }, + { "squad_duo_slimeclimbs", ""}, + { "squad_show", "隊伍專題" }, + { "squad_show_2player", "隊伍專題" }, + { "squad_show_2player_laps", "隊伍專題" }, + { "squad_show_survival", "DEBUG Squad Show Survival" }, + { "squad_show_team_2player", "網絡故障" }, + { "squadcelebration", "小隊慶祝" }, + { "squads_2player_1403_to_0205_2022", "雙人出擊" }, + { "squads_2player_automation", "雙人出擊" }, + { "squads_2player_points_test", "雙人" }, + { "squads_2player_template", "雙人" }, + { "squads_3player_0111_1511_21", "三角衝鋒" }, + { "squads_3player_0208_to_1508_2021", "三角衝鋒" }, + { "squads_3player_04012022_to_13012022", "三角衝鋒" }, + { "squads_3player_automation", "三角衝鋒" }, + { "squads_3player_template", "三角衝鋒" }, + { "squads_4player", "小隊" }, + { "squads_4player_2812_no_end", "小隊" }, + { "squads_4player_after_potoo", "小隊" }, + { "squads_show_ss2_launch", "Squads Show SS2" }, + { "squads_show_ss2_parrot", "小隊" }, + { "survival_of_the_fittest", "適者生存" }, + { "teams_show", "網絡故障" }, + { "teams_show_ltm", "霹靂雙人組" }, + { "timeattack_mode", "計時賽" }, + { "toms_main_show_5_2", "主要專題" }, + { "toms_show2", "Toms Show 2" }, + { "turbo_show", "單人" }, + { "turbo_2_show", "單人" }, + { "ultimate_party_adventure", "終極派對——探險" }, + { "wallguys_test", "攀牆
豆士" }, + { "wle_lobby_template", "Show Name" }, + { "wle_lobby_template_validation", "Show Name" }, + { "wle_mrs_template", "placeholder" }, + { "wle_srs_multi_winner_template_filler", "placeholder" }, + { "wle_srs_multi_winner_template_final", "placeholder" }, + { "wle_srs_multi_winner_template_opener", "placeholder" }, + { "wle_srs_single_winner_template_filler", "placeholder" }, + { "wle_srs_single_winner_template_final", "placeholder" }, + { "wle_srs_single_winner_template_opener", "placeholder" }, + { "xtreme_explore", "探索模式 - x極限" }, + { "xtreme_party", "極限糖豆人派對" }, + { "xtreme_solos_template_ranked", "X 極限單人排名戰" }, + + { "show_wle_s10_wk01_mrs", "創作者回合節目列表 1" }, + { "show_wle_s10_wk3_mrs", "創作者回合節目列表 2" }, + { "event_wle_s10_wk4_mrs", "創作者回合節目列表 3" }, + { "show_wle_s10_wk5_mrs", "創作者回合節目列表 4" }, + + { "show_wle_s10_wk01_srs_01", "音爆跳墊挑戰" }, + { "show_wle_s10_wk01_srs_02", "數字環遊" }, + { "show_wle_s10_wk01_srs_03", "像素小心心" }, + { "show_wle_s10_wk01_srs_04", "歡鬧堡壘" }, + { "show_wle_s10_wk02_srs_05", "超級闖門衝關" }, + { "show_wle_s10_wk02_srs_06", "驚叫迴旋" }, + { "show_wle_s10_wk02_srs_07", "龍捲風挑戰" }, + { "show_wle_s10_wk02_srs_08", "瘋狂跳房子" }, + { "show_wle_s10_wk03_srs_9", "履帶勇攀" }, + { "show_wle_s10_wk03_srs_10", "強音彈跳" }, + { "show_wle_s10_wk03_srs_11", "繽紛出巡" }, + { "show_wle_s10_wk03_srs_12", "勇闖斷橋" }, + { "show_wle_s10_wk04_srs_01", "摩天高塔" }, + { "show_wle_s10_wk04_srs_02", "逆流勇進" }, + { "show_wle_s10_wk04_srs_03", "如履薄冰" }, + { "show_wle_s10_wk04_srs_04", "蛇行迴旋坡" }, + { "show_wle_s10_wk05_srs_long_01", "橋裝打絆" }, + { "show_wle_s10_wk05_srs_long_02", "Fall Speedway" }, + { "show_wle_s10_wk05_srs_long_03", "Zig Zag Zoomies" }, + { "show_wle_s10_wk05_srs_long_04", "Terrabyte Trial" }, + + { "wle_s10_player_round_wk3_01", "Cloudy Chaos" }, + { "wle_s10_player_round_wk3_02", "Door Game" }, + { "wle_s10_player_round_wk3_06", "Spiral Upheaval" }, + { "wle_s10_player_round_wk3_07", "Descente Créative" }, + { "wle_s10_player_round_wk3_08", "Rainbow Slide" }, + { "wle_s10_player_round_wk3_09", "Fragrant Trumpet" }, + { "wle_s10_player_round_wk3_10", "Bridges That Don't Like You" }, + { "wle_s10_player_round_wk3_11", "Rainbow dash" }, + { "wle_s10_player_round_wk3_12", "Variable Valley" }, + { "wle_s10_player_round_wk3_13", "Broken Course" }, + { "wle_s10_player_round_wk3_15", "Parkour Party" }, + { "wle_s10_player_round_wk3_17", "Yeet Golf" }, + { "wle_s10_player_round_wk3_18", "Hill of Fear" }, + { "wle_s10_player_round_wk3_19", "Sky Time" }, + { "wle_s10_player_round_wk3_20", "EZz Map" }, + + { "show_wle_s10_player_round_wk4_01", "Slippery Stretch" }, + { "show_wle_s10_player_round_wk4_02", "Ball 'N Fall" }, + { "show_wle_s10_player_round_wk4_03", "Rowdy Cloudy" }, + { "show_wle_s10_player_round_wk4_05", "Vertiginous Steps" }, + { "show_wle_s10_player_round_wk4_06", "Topsie Tursie" }, + { "show_wle_s10_player_round_wk4_07", "Arcade Assault" }, + { "show_wle_s10_player_round_wk4_08", "The Eight Pit Trials" }, + { "show_wle_s10_player_round_wk4_09", "Green Beans" }, + { "show_wle_s10_player_round_wk4_10", "Hop Hill" }, + { "show_wle_s10_player_round_wk4_11", "Quick Sliders" }, + { "show_wle_s10_player_round_wk4_12", "Split Path" }, + { "show_wle_s10_player_round_wk4_15", "Snowboard Street" }, + { "show_wle_s10_player_round_wk4_18", "House Invasion" }, + { "show_wle_s10_player_round_wk4_20", "Temminal Slime-ocity" }, + { "show_wle_s10_player_round_wk4_21", "Spin" }, + { "show_wle_s10_player_round_wk4_22", "Lane Changers" }, + + { "wle_s10_player_round_wk5_01", "Block Park" }, + { "wle_s10_player_round_wk5_02", "The Drummatical Story" }, + { "wle_s10_player_round_wk5_03", "Digital Temple" }, + { "wle_s10_player_round_wk5_04", "Tower Escape" }, + { "wle_s10_player_round_wk5_05", "Tower Dash" }, + { "wle_s10_player_round_wk5_06", "Gpu Gauntlet" }, + { "wle_s10_player_round_wk5_07", "Looooping" }, + { "wle_s10_player_round_wk5_08", "Rad Bean Skatepark" }, + { "wle_s10_player_round_wk5_10", "Siank Arena" }, + { "wle_s10_player_round_wk5_11", "Pro Players Only" }, + { "wle_s10_player_round_wk5_12", "Extreme Tower" }, + { "wle_s10_player_round_wk5_13", "Dessert Village" }, + { "wle_s10_player_round_wk5_14", "Extreme Trampoline Jumping" }, + { "wle_s10_player_round_wk5_15", "Beast Route" }, + { "wle_s10_player_round_wk5_16", "METROPOLIS" }, + { "wle_s10_player_round_wk5_17", "Big Bookcase" }, + { "wle_s10_player_round_wk5_18", "Digital Doom" }, + + { "show_wle_s10_player_round_wk6_01", "Hammer Heaven" }, + { "show_wle_s10_player_round_wk6_02", "RISKY ROUTES" }, + { "show_wle_s10_player_round_wk6_03", "Castle Rush" }, + { "show_wle_s10_player_round_wk6_04", "Chaotic Race" }, + { "show_wle_s10_player_round_wk6_05", "FREEFALL TOWER" }, + { "show_wle_s10_player_round_wk6_06", "西西的天空之城 Castle in the Sky" }, + { "show_wle_s10_player_round_wk6_08", "Flower Power" }, + { "show_wle_s10_player_round_wk6_09", "Dimension Explorer" }, + { "show_wle_s10_player_round_wk6_10", "Forked Passage" }, + { "show_wle_s10_player_round_wk6_12", "The Bee Hive" }, + { "show_wle_s10_player_round_wk6_13", "Yeets & Ladders" }, + { "show_wle_s10_player_round_wk6_14", "Snek" }, + { "show_wle_s10_player_round_wk6_15", "SCHOOL OF FISH" }, + { "show_wle_s10_player_round_wk6_17", "Slippery Helixes" }, + { "show_wle_s10_player_round_wk6_18", "Recess" }, + { "show_wle_s10_player_round_wk6_19", "Parrot river" }, + { "show_wle_s10_player_round_wk6_20", "PARKOUR CITY 城市跑酷" }, + + { "show_wle_s10_wk07_srs_01", "Tower of Fall" }, + { "show_wle_s10_wk07_srs_02", "SOLO FULL-TILT RAGE" }, + { "show_wle_s10_wk07_srs_03", "Piso resbaloso" }, + { "show_wle_s10_wk07_srs_04", "Catastrophe Climb" }, + { "show_wle_s10_wk07_srs_05", "Sky High Run" }, + { "show_wle_s10_wk07_srs_06", "Full Speed Sliding (FSS) - Jelly Road" }, + + { "show_wle_s10_wk08_srs_01", "Push Ups" }, + { "show_wle_s10_wk08_srs_02", "Heave & Haul" }, + { "show_wle_s10_wk08_srs_03", "Stepping Stones" }, + { "show_wle_s10_wk08_srs_04", "Double Trouble" }, + + { "current_wle_fp3_07_01", "Block Sledding" }, + { "current_wle_fp3_07_02", "Layup Wallop" }, + { "current_wle_fp3_07_03", "Minecart Mayhem" }, + { "current_wle_fp3_07_04", "Bouncing Pass" }, + { "current_wle_fp3_07_05", "Ball Factory" }, + { "current_wle_fp3_07_0_01", "Funky Sanctuaries" }, + { "current_wle_fp3_07_0_02", "Woo-F-O" }, + { "current_wle_fp3_07_0_03", "Travel Diary - Great Wall of China" }, + + { "current_wle_fp3_08_01", "Grabbers Territory" }, + { "current_wle_fp3_08_02", "A Way Out" }, + { "current_wle_fp3_08_03", "Wall Block" }, + { "current_wle_fp3_08_04", "The dream island" }, + { "current_wle_fp3_08_05", "Rainbow pulsion" }, + { "current_wle_fp3_08_06", "WHIPPITY WOPPITY" }, + { "current_wle_fp3_08_09", "Big Fans Box Challenge" }, + { "current_wle_fp3_08_10", "Crazy boxes" }, + { "current_wle_fp3_08_13", "Season 1 Race Mashup" }, + { "current_wle_fp3_08_14", "Flippy Hoopshots" }, + { "current_wle_fp3_08_15", "Stumble Teams" }, + { "current_wle_fp3_08_16", "Twisting Tower" }, + { "current_wle_fp3_08_17", "PUSH 'N' PULL" }, + { "current_wle_fp3_08_18", "The Rising Blocks" }, + { "current_wle_fp3_08_19", "Puzzle Blokies Path" }, + { "current_wle_fp3_09_01", "The up tower" }, + { "current_wle_fp3_09_02", "Short shuriken" }, + { "current_wle_fp3_09_03", "Les mêmes mécaniques de + en + dure" }, + { "current_wle_fp3_09_04", "Digi-Lily Sliding" }, + { "current_wle_fp3_09_05", "STUMBLE MEDIEVAL TOWER" }, + { "current_wle_fp3_09_06", "Random Heights" }, + { "current_wle_fp3_09_07", "Climb scramble" }, + { "current_wle_fp3_09_08", "Collide Gaming" }, + { "current_wle_fp3_09_09", "Very Compressed Level" }, + { "current_wle_fp3_09_0_01", "Slippery Slope" }, + { "current_wle_fp3_09_0_02", "The Most Hardest Fall Guys LEVEL" }, + { "current_wle_fp3_09_0_03", "Free Falling" }, + { "current_wle_fp3_09_0_04", "Conveyor Problems" }, + { "current_wle_fp3_09_0_05", "Clocktower Climb" }, + { "current_wle_fp3_09_0_06", "Savour Your Happiness" }, + { "current_wle_fp3_09_0_0_01", "Pastel Paradise" }, + + { "current_wle_fp3_10_01", "When Nature Falls" }, + { "current_wle_fp3_10_02", "The Slippery Conveyor" }, + { "current_wle_fp3_10_03", "The Slime Trials" }, + { "current_wle_fp3_10_04", "Friendly Obstacles" }, + { "current_wle_fp3_10_05", "Climb and Fall" }, + { "current_wle_fp3_10_06", "Stairs and some other things" }, + { "current_wle_fp3_10_07", "Meowgical World" }, + { "current_wle_fp3_10_08", "Polluelo Speed" }, + { "current_wle_fp3_10_09", "Pixel Parade" }, + { "current_wle_fp3_10_10", "Total Madness" }, + { "current_wle_fp3_10_11", "The Abstract Maze" }, + { "current_wle_fp3_10_12", "Fan Off" }, + { "current_wle_fp3_10_13", "cloud highway" }, + { "current_wle_fp3_10_14", "はねるの!?トビラ(Door Bounce)" }, + { "current_wle_fp3_10_15", "Speedrunners be like" }, + { "current_wle_fp3_10_16", "Tumble Tower" }, + { "current_wle_fp3_10_17", "Silver's Snake Run" }, + { "current_wle_fp3_10_18", "Now Boarding" }, + { "current_wle_fp3_10_19", "Slime Scale" }, + { "current_wle_fp3_10_20", "TUMBLEDOWN MINESHAFT" }, + { "current_wle_fp3_10_21", "Circuito CHILL 1" }, + { "current_wle_fp3_10_22", "STUMBLE SLIDER" }, + { "current_wle_fp3_10_23", "Controlled Chaos" }, + { "current_wle_fp3_10_24", "Xtreme Jumping" }, + { "current_wle_fp3_10_25", "Odin" }, + { "current_wle_fp3_10_26", "Ciudad nube" }, + { "current_wle_fp3_10_27", "Bean Voyage" }, + { "current_wle_fp3_10_28", "SLIP-SAW" }, + { "current_wle_fp3_10_29", "Bbq bacon burger" }, + + { "current_wle_fp4_05_01_01", "巅峰车站" }, + { "current_wle_fp4_05_01_02", "Beba Park 7" }, + { "current_wle_fp4_05_01_03", "Rainbow in the clouds" }, + { "current_wle_fp4_05_01_04", "So You Think You Can Bounce" }, + { "current_wle_fp4_05_01_05", "Bounce Back Racetrack" }, + { "current_wle_fp4_05_01", "¡!OLYMPE¡!" }, + { "current_wle_fp4_05_02", "Mini only up" }, + { "current_wle_fp4_05_03_01", "Cubic Conundrum" }, + { "current_wle_fp4_05_03_02", "Remote Control" }, + { "current_wle_fp4_05_03", "Parkway Slide" }, + { "current_wle_fp4_05_04", "Duel Dash" }, + { "current_wle_fp4_05_05", "beaten trackless road" }, + { "current_wle_fp4_05_2_01", "¡River Paradise!" }, + { "current_wle_fp4_05_2_02", "arch city" }, + { "current_wle_fp4_05_2_03", "Desert Ruins" }, + + { "current_wle_fp4_06_01", "PENTAGON CIRCUIT" }, + { "current_wle_fp4_06_02", "Pachislo" }, + { "current_wle_fp4_06_0_01", "AquArsene" }, + { "current_wle_fp4_06_0_02", "RainbowCloud" }, + { "current_wle_fp4_06_0_03", "Pink Cascade" }, + { "current_wle_fp4_06_0_04", "Conveyor Conundrum" }, + { "current_wle_fp4_06_0_05", "RICKETY STRAWBRIDGE" }, + { "current_wle_fp4_06_0_10_01", "The Bee Hive" }, + { "current_wle_fp4_06_1_01", "Buggin' Out" }, + { "current_wle_fp4_06_1_02", "RISE AND SLIDE" }, + { "current_wle_fp4_06_1_03", "Bean Mini Golf" }, + { "current_wle_fp4_06_1_04", "Youpii Youpii" }, + { "current_wle_fp4_06_1_05", "The climb of Trials" }, + { "current_wle_fp4_06_1_06", "Bouncy Castle" }, + + { "current_wle_fp4_07_01", "Rotational Runner" }, + { "current_wle_fp4_07_02", "SPIRAL DASH ROAD" }, + { "current_wle_fp4_07_03", "simple stage" }, + { "current_wle_fp4_07_04", "Slip Slide Jump and Run" }, + { "current_wle_fp4_07_05", "Factory Valley" }, + { "current_wle_fp4_07_06", "Jumpy Beans" }, + { "current_wle_fp4_07_07", "Slimetastic Stumble" }, + { "current_wle_fp4_07_0_01", "Camino Ninja" }, + + { "current_wle_fp4_08_01", "co-op guys" }, + { "current_wle_fp4_08_0_01", "The big slide" }, + { "current_wle_fp4_08_0_02", "Freefall Mountain" }, + { "current_wle_fp4_08_0_03", "Hazy Stairways" }, + { "current_wle_fp4_08_0_04", "Pillar Promenade" }, + { "current_wle_fp4_08_0_05", "Hidden Treasure of Magical Castle" }, + { "current_wle_fp4_08_0_06", "X-Course" }, + { "current_wle_fp4_08_0_07", "Speed Gauntlet" }, + { "current_wle_fp4_08_1_01", "Boost in Dash" }, + { "current_wle_fp4_08_1_02", "Rainbow Raceway" }, + { "current_wle_fp4_08_1_03", "Giddy up!" }, + { "current_wle_fp4_08_1_04", "Mad lab" }, + { "current_wle_fp4_08_2_01", "Convoluted Conveyors" }, + { "current_wle_fp4_08_3_01", "The Oasis" }, + + { "current_wle_fp4_09_01", "Crate Collector" }, + { "current_wle_fp4_09_02", "Dribble Drills" }, + { "current_wle_fp4_09_03", "Spinning Slide Dodge" }, + { "current_wle_fp4_09_04", "Skyline Park" }, + { "current_wle_fp4_09_05", "Birthday bonanza" }, + { "current_wle_fp4_09_06", "The Chaotic Waterfall" }, + { "current_wle_fp4_09_0_01", "ICY PEAKS" }, + { "current_wle_fp4_09_1_01", "Push-Box Chaos" }, + { "current_wle_fp4_09_1_02", "Haute voltige" }, + { "current_wle_fp4_09_2_01", "DNA Test" }, + + { "current_wle_fp4_10_01", "Bouncy Box Boulevard 3 Extreme Delivery" }, + { "current_wle_fp4_10_02", "Hot Blast" }, + { "current_wle_fp4_10_03", "Box Fan Blitz" }, + { "current_wle_fp4_10_04", "Woo-terfall Way" }, + { "current_wle_fp4_10_05", "Slime race" }, + { "current_wle_fp4_10_06", "Moving Day" }, + { "current_wle_fp4_10_07", "Birthday Dash" }, + { "current_wle_fp4_10_08_m", "Wall Breaker" }, + { "current_wle_fp4_10_08", "Chess History" }, + { "current_wle_fp4_10_11", "HOARDER BLOCKS" }, + { "current_wle_fp4_10_12", "Chickens run away" }, + { "current_wle_fp4_10_20", "Co-op and CO" }, + { "current_wle_fp4_10_23", "Construction Site" }, + { "current_wle_fp4_10_0_01", "Cheese Canyon" }, + { "current_wle_fp4_10_0_02", "Molehills" }, + + { "current_wle_fp5_2_01_01", "Plummet Summit" }, + { "current_wle_fp5_2_01_02", "タワークライム" }, + { "current_wle_fp5_2_01_03", "けいけいどうくつ" }, + { "current_wle_fp5_2_01_04", "Quicksand Valley 01" }, + { "current_wle_fp5_2_01", "Jabonsotes" }, + { "current_wle_fp5_2_02_01", "のっぽタワー" }, + { "current_wle_fp5_2_02_02", "Blaster Course" }, + { "current_wle_fp5_2_02_03", "Panna Cotta Guys" }, + { "current_wle_fp5_2_02_04", "The hard Climb" }, + { "current_wle_fp5_2_02_05", "sliding guys" }, + { "current_wle_fp5_2_02_06", "Hallow's Haunt" }, + { "current_wle_fp5_2_02", "Rainbow highway" }, + { "current_wle_fp5_2_03", "Falligator" }, + { "current_wle_fp5_2_04_01", "Lily Lovers" }, + { "current_wle_fp5_2_04_02", "rainow rode" }, + { "current_wle_fp5_2_04_03", "L' Rumorosa" }, + { "current_wle_fp5_2_04_04", "Super crazy level" }, + { "current_wle_fp5_2_04", "Big WaterFall Planet(巨大な滝の惑星)" }, + { "current_wle_fp5_2_05_01", "Level XVIII" }, + { "current_wle_fp5_2_05_02", "Ricochet Raceway" }, + { "current_wle_fp5_2_05_03", "L' Rumorosa" }, + { "current_wle_fp5_2_05_04", "rainbow roade" }, + { "current_wle_fp5_2_05", "The tension Parkour" }, + { "current_wle_fp5_2_06", "Stairing Contest" }, + { "current_wle_fp5_2_07", "Vibrant Ascension" }, + + { "current_wle_fp5_3_05_01", "Beany Golf!" }, + { "current_wle_fp5_3_05_02_01", "Speedy Bros" }, + { "current_wle_fp5_4_01_01", "Tilted Walls" }, + { "current_wle_fp5_4_01_02", "The Lost Diamond" }, + { "current_wle_fp5_4_01_03", "The Flowery Garden" }, + { "current_wle_fp5_4_01_04", "Happy Bean Cube Land 2" }, + { "current_wle_fp5_4_01_05", "Traffic Jamboree" }, + + { "current_wle_fp5_10_01", "Breezy Buddies" }, + { "current_wle_fp5_10_0_01", "Salto Plancha" }, + { "current_wle_fp5_10_0_02", "My house" }, + { "current_wle_fp5_10_0_03", "Sleepwalk Speedway" }, + { "current_wle_fp5_10_1_01", "Desert Ruins" }, + { "current_wle_fp5_10_1_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_01", "Desert Ruins" }, + { "current_wle_fp5_10_2_02", "¡River Paradise!" }, + { "current_wle_fp5_10_2_03", "Mystic River" }, + { "current_wle_fp5_10_2_04", "Split Path Stumble" }, + { "current_wle_fp5_10_2_05", "Cliffside" }, + { "current_wle_fp5_10_2_06", "Tricky Turnpike" }, + { "current_wle_fp5_10_2_07", "The Avenue" }, + { "current_wle_fp5_10_2_08", "Gold City" }, + { "current_wle_fp5_10_2_09", "タイトル決まりませんw" }, + { "current_wle_fp5_10_2_10", "初心者用コース" }, + { "current_wle_fp5_10_2_11", "Chain Reaction" }, + + { "current_wle_fp5_wk3_1_01", "Gobille infernal" }, + { "current_wle_fp5_wk3_1_02", "SLIMY RACE" }, + { "current_wle_fp5_wk3_1_03", "Bouncy Bros" }, + { "current_wle_fp5_wk3_1_04", "El airecito" }, + { "current_wle_fp5_wk3_1_05", "Crown Tunnel" }, + { "current_wle_fp5_wk3_1_06", "Sweet Sweet Scurry" }, + { "current_wle_fp5_wk3_2_01", "Magical Journey" }, + { "current_wle_fp5_wk3_2_02", "The Crown Jewel" }, + { "current_wle_fp5_wk3_2_03", "From bottom to top" }, + { "current_wle_fp5_wk3_2_04", "The Throne Of The Best King" }, + { "current_wle_fp5_wk3_2_05", "Honeycomb Highway" }, + { "current_wle_fp5_wk3_3_01", "Bouncier Heights" }, + { "current_wle_fp5_wk3_3_02", "Rainbow Racers" }, + { "current_wle_fp5_wk3_3_03", "Bye have a great time part 24" }, + { "current_wle_fp5_wk3_3_04", "speedrun snek" }, + + { "current_wle_fp5_falloween_1_01", "Falloween Dash" }, + { "current_wle_fp5_falloween_1_02", "深秋寻路 Fall Routes" }, + { "current_wle_fp5_falloween_1_03", "Синни Санни Сонни" }, + { "current_wle_fp5_falloween_1_04", "Falloween Festival!" }, + { "current_wle_fp5_falloween_1_05", "Hearth Attack" }, + { "current_wle_fp5_falloween_1_06", "Mirage" }, + { "current_wle_fp5_falloween_1_07", "Spooky Sprinter" }, + { "current_wle_fp5_falloween_1_08", "Toon World" }, + { "current_wle_fp5_falloween_1_09", "Creepy climb" }, + { "current_wle_fp5_falloween_1_10", "Spooky Buttons" }, + { "current_wle_fp5_falloween_1_11", "Spider's Lair" }, + { "current_wle_fp5_falloween_1_12", "Night of goosebumps - Trick or Treat" }, + { "current_wle_fp5_falloween_1_13", "The Falloween Spirits" }, + { "current_wle_fp5_falloween_1_14", "Jack-O'-Runners" }, + { "current_wle_fp5_falloween_2_01", "spooky nightwalk" }, + { "current_wle_fp5_falloween_2_02", "Creepy Crawly Canyon" }, + { "current_wle_fp5_falloween_2_03_01", "Spider Web Escape" }, + { "current_wle_fp5_falloween_2_03_02", "Fallen Beans" }, + { "current_wle_fp5_falloween_2_03_03", "Pumpkin Patch Dash" }, + { "current_wle_fp5_falloween_2_03_04", "Going batty" }, + { "current_wle_fp5_falloween_2_03_05", "Bone Bridges" }, + { "current_wle_fp5_falloween_2_03_06", "Spider" }, + { "current_wle_fp5_falloween_2_03", "fastoween" }, + { "current_wle_fp5_falloween_3_01", "Haunted Hoops" }, + { "current_wle_fp5_falloween_3_02", "SPIDER SCURRY" }, + { "current_wle_fp5_falloween_3_03", "Fallobeans" }, + { "current_wle_fp5_falloween_3_04", "Escape the haunted mansion" }, + { "current_wle_fp5_falloween_4_01", "Cursed Catacombs" }, + { "current_wle_fp5_falloween_4_02", "Altar de Alubias" }, + { "current_wle_fp5_falloween_4_03", "This is Fall O Ween" }, + { "current_wle_fp5_falloween_4_04", "Belly of the Beast" }, + { "current_wle_fp5_falloween_4_05", "Scary Final" }, + { "current_wle_fp5_falloween_4_06", "Slip 'N' Scare" }, + { "current_wle_fp5_falloween_4_07", "Spooky Speedy Arches" }, + { "current_wle_fp5_falloween_4_08", "Catoween" }, + { "current_wle_fp5_falloween_4_09", "Jack-O'-Zoom" }, + { "current_wle_fp5_falloween_4_10", "Bean´s Spooky Route" }, + { "current_wle_fp5_falloween_4_11", "Tricks and treats" }, + { "current_wle_fp5_falloween_4_12", "HAUNTED CAT MANSION" }, + { "current_wle_fp5_falloween_4_13", "Feeling Batty" }, + { "current_wle_fp5_falloween_4_14", "Monster Dash" }, + { "current_wle_fp5_falloween_4_15", "Pumpkin Parkour" }, + { "current_wle_fp5_falloween_4_16", "Cauldron of Treats" }, + { "current_wle_fp5_falloween_4_17", "Eerie Enigma" }, + { "current_wle_fp5_falloween_4_18", "Candy Cruisers" }, + { "current_wle_fp5_falloween_4_19", "Pumpkin eater" }, + { "current_wle_fp5_falloween_5_01", "Spooky Run" }, + { "current_wle_fp5_falloween_5_02", "HORROR NIGHT RITUAL" }, + { "current_wle_fp5_falloween_5_03", "Spooky slime race" }, + { "current_wle_fp5_falloween_5_04", "Halloween" }, + { "current_wle_fp5_falloween_5_05", "Spooky Momentum" }, + { "current_wle_fp5_falloween_5_06", "Cloud 9" }, + { "current_wle_fp5_falloween_5_07", "HAUNTED HAUL" }, + { "current_wle_fp5_falloween_6_01", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_6_02", "Tricky Treats!" }, + { "current_wle_fp5_falloween_6_03", "Happy Falloween" }, + { "current_wle_fp5_falloween_7_01_01", "The Haunted Castle" }, + { "current_wle_fp5_falloween_7_01_02", "City of fear" }, + { "current_wle_fp5_falloween_7_01_03", "Monster Mayhem" }, + { "current_wle_fp5_falloween_7_01_04", "Halloween Island" }, + { "current_wle_fp5_falloween_7_01_05", "Beyond The Grave Rave" }, + { "current_wle_fp5_falloween_7_01_06", "Falloween Monster" }, + { "current_wle_fp5_falloween_7_01_07", "Falloween Castle" }, + { "current_wle_fp5_falloween_7_01_08", "Halloween sky course" }, + { "current_wle_fp5_falloween_7_01_09", "WICKED RACE" }, + { "current_wle_fp5_falloween_7_02_01", "Happy Bean Spooky Tumble" }, + { "current_wle_fp5_falloween_7_03_01", "Horror Movie Night" }, + { "current_wle_fp5_falloween_7_04_01", "Night Temptation(ナイトテンプテーション)" }, + { "current_wle_fp5_falloween_7_04_02", "Fall Haunted" }, + { "current_wle_fp5_falloween_7_04_03", "Color Climb" }, + { "current_wle_fp5_falloween_7_04_04", "Pumpkin (Speed) Party" }, + { "current_wle_fp5_falloween_7_05_01", "FALLOWEEN FOREST TUMBLE" }, + { "current_wle_fp5_falloween_7_05_02", "Ominous Outpost" }, + { "current_wle_fp5_falloween_7_05_03", "Spook Circuit" }, + { "current_wle_fp5_falloween_7_05_04", "Path of horrors" }, + { "current_wle_fp5_falloween_7_06_01", "PUMPKIN KINGDOM" }, + { "current_wle_fp5_falloween_7_06_02", "Grave Danger Graveyard" }, + { "current_wle_fp5_falloween_7_06_03", "Coffin Droppin'" }, + { "current_wle_fp5_falloween_7_06_04", "Skeleton Climb" }, + { "current_wle_fp5_falloween_7_06_05", "Falloween Heights" }, + { "current_wle_fp5_falloween_7_08_01", "Trick ! - Falloween party" }, + { "current_wle_fp5_falloween_7_10_01", "NEW OBSTACLES! - The Falloween Trial" }, + { "current_wle_fp5_falloween_7_10_02", "Nightmare Mansion" }, + { "current_wle_fp5_falloween_9_01", "Skeleton Mayhem" }, + { "current_wle_fp5_falloween_9_02", "Raveyard" }, + { "current_wle_fp5_falloween_9_03", "Spooky Sprint" }, + { "current_wle_fp5_falloween_9_04", "Collapsed World 2" }, + { "current_wle_fp5_falloween_9_05", "Maximum Turbulance" }, + { "current_wle_fp5_falloween_10_01", "Graveyard Mansion" }, + { "current_wle_fp5_falloween_10_02", "Trick Treat Fall" }, + { "current_wle_fp5_falloween_11_01", "Night Runners" }, + { "current_wle_fp5_falloween_12_01", "Haunted Mansion" }, + { "current_wle_fp5_falloween_12_02", "Spooky Orange and Purple" }, + { "current_wle_fp5_falloween_13_01", "Witch Way" }, + { "current_wle_fp5_falloween_14_01", "Nightmare Bump" }, + { "current_wle_fp5_falloween_15_01", "Spooktacular Fun Run" }, + + { "current_wle_fp6_1_01", "Boo-mblaster Betrayal" }, + { "current_wle_fp6_1_02", "MOUNT SMOODGIE!" }, + { "current_wle_fp6_1_03", "SKULL KING" }, + { "current_wle_fp6_1_04", "shorter circuit" }, + { "current_wle_fp6_1_05", "be speedy" }, + { "current_wle_fp6_1_06", "Sky-City Stumble" }, + { "current_wle_fp6_1_07", "Wormhole Mountain" }, + { "current_wle_fp6_1_08", "Sweet Tooth Slide" }, + { "current_wle_fp6_1_09", "Splitspeed" }, + { "current_wle_fp6_1_10", "Fall Canyon" }, + { "current_wle_fp6_2_01", "Valise" }, + { "current_wle_fp6_2_02", "Big Yeetus challenge 2 FaIIoween" }, + { "current_wle_fp6_2_03", "Water Way" }, + { "current_wle_fp6_2_04", "The Doors of Doom" }, + { "current_wle_fp6_2_05", "SPOOKY CEMETERY" }, + { "current_wle_fp6_2_06", "Liana Swings" }, + { "current_wle_fp6_2_07", "Colourful" }, + { "current_wle_fp6_2_08", "The Heist!" }, + { "current_wle_fp6_2_09", "Factory of Fallmecanic" }, + { "current_wle_fp6_3_01", "Tricky Treat" }, + { "current_wle_fp6_3_02", "The Lighthouse" }, + { "current_wle_fp6_3_03", "どっちがかんたんだとおもいますか?" }, + { "current_wle_fp6_3_04", "The Scarescraper" }, + { "current_wle_fp6_3_05", "Obstacle Road" }, + { "current_wle_fp6_3_06", "Rest In Paris" }, + { "current_wle_fp6_3_07", "Horror pumpkim" }, + { "current_wle_fp6_3_08", "时间停止了(Time Stop)" }, + + { "current_wle_fp6_wk2_01", "CreatorShop TOURNAMENT x GameAthlon" }, + { "current_wle_fp6_wk2_02", "MONUMENT FALLS!" }, + { "current_wle_fp6_wk2_03", "Slidy Road" }, + { "current_wle_fp6_wk2_04", "SatsuRyu's speed city" }, + { "current_wle_fp6_wk2_05", "Lost in space" }, + { "current_wle_fp6_wk2_06", "Turbine Decline" }, + { "current_wle_fp6_wk2_07", "Zero Displacement" }, + { "current_wle_fp6_wk2_08", "Slide Fall-o-City" }, + { "current_wle_fp6_wk2_09", "Travel Diary - Berlin" }, + { "current_wle_fp6_wk2_10", "Neoway" }, + { "current_wle_fp6_wk2_11", "Niagara Falls" }, + { "current_wle_fp6_wk2_1_01", "DOWN THE HATCH!" }, + { "current_wle_fp6_wk2_1_02", "Flash Flight" }, + { "current_wle_fp6_wk2_1_03", "ヒヤヒヤ(イライラ) コンベア ロード !【NORMAL】" }, + { "current_wle_fp6_wk2_1_04", "diferentes pasos" }, + { "current_wle_fp6_wk2_1_05", "INCLINALUBIAS" }, + { "current_wle_fp6_wk2_1_06", "Locomoção" }, + { "current_wle_fp6_wk2_1_07", "Frightening Fogway" }, + { "current_wle_fp6_wk2_1_08", "Pure Presser" }, + { "current_wle_fp6_wk2_1_09", "Spooky Sliders" }, + + { "current_wle_fp6_wk3_01", "BLACK AND WHITE" }, + { "current_wle_fp6_wk3_02", "Compact 5" }, + { "current_wle_fp6_wk3_03", "Turkey Takeoff Tryouts" }, + { "current_wle_fp6_wk3_04", "SLIME DISTRICT" }, + { "current_wle_fp6_wk3_05", "Alto voltaje" }, + { "current_wle_fp6_wk3_06", "SEA OF TERROR" }, + { "current_wle_fp6_wk3_07", "Aeriodeslizador (beta)" }, + { "current_wle_fp6_wk3_08", "Obstructed Running Track" }, + { "current_wle_fp6_wk3_09", "Work and Travel" }, + { "current_wle_fp6_wk3_10", "connect the bridge" }, + { "current_wle_fp6_wk3_2_01", "Immer weiter" }, + { "current_wle_fp6_wk3_2_02", "speed demon" }, + { "current_wle_fp6_wk3_2_03", "Royaume brave" }, + { "current_wle_fp6_wk3_2_04", "Cyber Jam" }, + { "current_wle_fp6_wk3_2_05", "Delectable Parade" }, + { "current_wle_fp6_wk3_3_01", "おこらないで!" }, + { "current_wle_fp6_wk3_3_02", "Track and Field Stadium - Challenge" }, + + { "current_wle_fp6_wk4_01_01", "Processed Beans" }, + { "current_wle_fp6_wk4_01_02", "Xmas tower" }, + { "current_wle_fp6_wk4_02_01", "Jingle Falls" }, + { "current_wle_fp6_wk4_02_02", "Ice Confusion Cave(アイスコンフュージョンケイブ)" }, + { "current_wle_fp6_wk4_02_03", "Beans in Sand Land" }, + { "current_wle_fp6_wk4_02_04", "MERRY MAYHEM!" }, + { "current_wle_fp6_wk4_02_05", "BIG FREEZE RACE" }, + { "current_wle_fp6_wk4_03_01", "Frostbite Forest" }, + { "current_wle_fp6_wk4_03_02", "Temple of Love" }, + { "current_wle_fp6_wk4_03_03", "fall mountain (糖豆山涧)" }, + { "current_wle_fp6_wk4_03_04", "Le mont glacé" }, + { "current_wle_fp6_wk4_03_05", "Snow Style" }, + { "current_wle_fp6_wk4_03_06", "Wintery woods" }, + { "current_wle_fp6_wk4_05_01", "Rebound" }, + { "current_wle_fp6_wk4_05_02", "Rebound Rampway" }, + { "current_wle_fp6_wk4_05_03", "The Winter Islands" }, + + { "current_wle_community_10_5_01", "Snowy Starfall" }, + { "current_wle_community_10_5_02", "The Earthquake" }, + { "current_wle_community_10_5_1_01", "Tree Sky Hights!" }, + { "current_wle_community_10_5_1_04", "Garden of Woo" }, + { "current_wle_community_10_5_1_05", "Out in the open" }, + { "current_wle_community_10_5_1_07", "CANDY INDUSTRY" }, + { "current_wle_community_10_5_1_08", "Jungle Journey" }, + { "current_wle_community_10_5_1_09", "Mount Fallmore" }, + { "current_wle_community_10_5_1_10", "The Slanted Rooms" }, + { "current_wle_community_10_5_1_12", "Futuristic Facility" }, + { "current_wle_community_10_5_1_14", "Dangerou's Trap" }, + { "current_wle_community_10_5_1_15", "Three Rooms" }, + { "current_wle_community_10_5_1_16", "Jungle Mira tumble" }, + { "current_wle_community_10_5_1_17", "Winter Slide" }, + { "current_wle_community_10_5_1_18", "Digi-Crown Summit" }, + + { "wle_s10_cf_round_001", "Blocky Bridges" }, + { "wle_s10_cf_round_002", "Gappy-go-Lucky" }, + { "wle_s10_cf_round_003", "Drop n' Drag" }, + { "wle_s10_cf_round_004", "Fun with Fans" }, + + { "wle_mrs_bagel", "彩虹拉力賽" }, + { "wle_mrs_shuffle_show", "迪奇的隨機選擇" }, + { "wle_mrs_shuffle_show_squads", "小隊大亂鬥" }, + { "wle_shuffle_discover", "單人隨機" }, + { "wle_mrs_bouncy_bean_time", "彈彈豆時間" }, + { "wle_mrs_winter", "Winter Wonders" }, + { "wle_shuffle_chill", "簡單關卡集錦" }, + { "wle_mrs_survival_showdown", "生存對決" }, + { "wle_shuffle_survival", "生存特輯" }, + { "wle_mrs_ugc_playful_pioneers", "先驅糖豆人" }, + { "wle_playful_shuffle", "先驅糖豆人集錦" }, + { "event_april_fools", "激盪鬼點子集錦" }, + { "wle_nature_ltm", "糖豆闖荒原" }, + + { "private_lobbies", "自定義節目" }, + { "fall_guys_creative_mode", "Fall Guys Creative" }, + { "invisibeans_mode", "糖果竊賊" }, + } + }, + }; + + private static readonly Dictionary> MultilingualCountryDictionary = new Dictionary> { + { Language.English, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "AF", "Afghanistan" }, + { "AX", "Åland Islands" }, + { "AL", "Albania" }, + { "DZ", "Algeria" }, + { "AS", "American Samoa" }, + { "AD", "Andorra" }, + { "AO", "Angola" }, + { "AI", "Anguilla" }, + { "AQ", "Antarctica" }, + { "AG", "Antigua and Barbuda" }, + { "AR", "Argentina" }, + { "AM", "Armenia" }, + { "AW", "Aruba" }, + { "AU", "Australia" }, + { "AT", "Austria" }, + { "AZ", "Azerbaijan" }, + { "BS", "Bahamas" }, + { "BH", "Bahrain" }, + { "BD", "Bangladesh" }, + { "BB", "Barbados" }, + { "BY", "Belarus" }, + { "BE", "Belgium" }, + { "BZ", "Belize" }, + { "BJ", "Benin" }, + { "BM", "Bermuda" }, + { "BT", "Bhutan" }, + { "BO", "Bolivia (Plurinational State of)" }, + { "BQ", "Bonaire, Sint Eustatius and Saba" }, + { "BA", "Bosnia and Herzegovina" }, + { "BW", "Botswana" }, + { "BV", "Bouvet Island" }, + { "BR", "Brazil" }, + { "IO", "British Indian Ocean Territory" }, + { "BN", "Brunei Darussalam" }, + { "BG", "Bulgaria" }, + { "BF", "Burkina Faso" }, + { "BI", "Burundi" }, + { "CV", "Cabo Verde" }, + { "KH", "Cambodia" }, + { "CM", "Cameroon" }, + { "CA", "Canada" }, + { "KY", "Cayman Islands" }, + { "CF", "Central African Republic" }, + { "TD", "Chad" }, + { "CL", "Chile" }, + { "CN", "China" }, + { "CX", "Christmas Island" }, + { "CC", "Cocos (Keeling) Islands" }, + { "CO", "Colombia" }, + { "KM", "Comoros" }, + { "CG", "Congo" }, + { "CD", "Congo, Democratic Republic of the" }, + { "CK", "Cook Islands" }, + { "CR", "Costa Rica" }, + { "CI", "Côte d'Ivoire" }, + { "HR", "Croatia" }, + { "CU", "Cuba" }, + { "CW", "Curaçao" }, + { "CY", "Cyprus" }, + { "CZ", "Czechia" }, + { "DK", "Denmark" }, + { "DJ", "Djibouti" }, + { "DM", "Dominica" }, + { "DO", "Dominican Republic" }, + { "EC", "Ecuador" }, + { "EG", "Egypt" }, + { "SV", "El Salvador" }, + { "GQ", "Equatorial Guinea" }, + { "ER", "Eritrea" }, + { "EE", "Estonia" }, + { "SZ", "Eswatini" }, + { "ET", "Ethiopia" }, + { "FK", "Falkland Islands (Malvinas)" }, + { "FO", "Faroe Islands" }, + { "FJ", "Fiji" }, + { "FI", "Finland" }, + { "FR", "France" }, + { "GF", "French Guiana" }, + { "PF", "French Polynesia" }, + { "TF", "French Southern Territories" }, + { "GA", "Gabon" }, + { "GM", "Gambia" }, + { "GE", "Georgia" }, + { "DE", "Germany" }, + { "GH", "Ghana" }, + { "GI", "Gibraltar" }, + { "GR", "Greece" }, + { "GL", "Greenland" }, + { "GD", "Grenada" }, + { "GP", "Guadeloupe" }, + { "GU", "Guam" }, + { "GT", "Guatemala" }, + { "GG", "Guernsey" }, + { "GN", "Guinea" }, + { "GW", "Guinea-Bissau" }, + { "GY", "Guyana" }, + { "HT", "Haiti" }, + { "HM", "Heard Island and McDonald Islands" }, + { "VA", "Holy See" }, + { "HN", "Honduras" }, + { "HK", "Hong Kong" }, + { "HU", "Hungary" }, + { "IS", "Iceland" }, + { "IN", "India" }, + { "ID", "Indonesia" }, + { "IR", "Iran (Islamic Republic of)" }, + { "IQ", "Iraq" }, + { "IE", "Ireland" }, + { "IM", "Isle of Man" }, + { "IL", "Israel" }, + { "IT", "Italy" }, + { "JM", "Jamaica" }, + { "JP", "Japan" }, + { "JE", "Jersey" }, + { "JO", "Jordan" }, + { "KZ", "Kazakhstan" }, + { "KE", "Kenya" }, + { "KI", "Kiribati" }, + { "KP", "Korea (Democratic People's Republic of)" }, + { "KR", "Korea, Republic of" }, + { "KW", "Kuwait" }, + { "KG", "Kyrgyzstan" }, + { "LA", "Lao People's Democratic Republic" }, + { "LV", "Latvia" }, + { "LB", "Lebanon" }, + { "LS", "Lesotho" }, + { "LR", "Liberia" }, + { "LY", "Libya" }, + { "LI", "Liechtenstein" }, + { "LT", "Lithuania" }, + { "LU", "Luxembourg" }, + { "MO", "Macao" }, + { "MG", "Madagascar" }, + { "MW", "Malawi" }, + { "MY", "Malaysia" }, + { "MV", "Maldives" }, + { "ML", "Mali" }, + { "MT", "Malta" }, + { "MH", "Marshall Islands" }, + { "MQ", "Martinique" }, + { "MR", "Mauritania" }, + { "MU", "Mauritius" }, + { "YT", "Mayotte" }, + { "MX", "Mexico" }, + { "FM", "Micronesia (Federated States of)" }, + { "MD", "Moldova, Republic of" }, + { "MC", "Monaco" }, + { "MN", "Mongolia" }, + { "ME", "Montenegro" }, + { "MS", "Montserrat" }, + { "MA", "Morocco" }, + { "MZ", "Mozambique" }, + { "MM", "Myanmar" }, + { "NA", "Namibia" }, + { "NR", "Nauru" }, + { "NP", "Nepal" }, + { "NL", "Netherlands, Kingdom of the" }, + { "NC", "New Caledonia" }, + { "NZ", "New Zealand" }, + { "NI", "Nicaragua" }, + { "NE", "Niger" }, + { "NG", "Nigeria" }, + { "NU", "Niue" }, + { "NF", "Norfolk Island" }, + { "MK", "North Macedonia" }, + { "MP", "Northern Mariana Islands" }, + { "NO", "Norway" }, + { "OM", "Oman" }, + { "PK", "Pakistan" }, + { "PW", "Palau" }, + { "PS", "Palestine, State of" }, + { "PA", "Panama" }, + { "PG", "Papua New Guinea" }, + { "PY", "Paraguay" }, + { "PE", "Peru" }, + { "PH", "Philippines" }, + { "PN", "Pitcairn" }, + { "PL", "Poland" }, + { "PT", "Portugal" }, + { "PR", "Puerto Rico" }, + { "QA", "Qatar" }, + { "RE", "Réunion" }, + { "RO", "Romania" }, + { "RU", "Russian Federation" }, + { "RW", "Rwanda" }, + { "BL", "Saint Barthélemy" }, + { "SH", "Saint Helena, Ascension and Tristan da Cunha" }, + { "KN", "Saint Kitts and Nevis" }, + { "LC", "Saint Lucia" }, + { "MF", "Saint Martin (French part)" }, + { "PM", "Saint Pierre and Miquelon" }, + { "VC", "Saint Vincent and the Grenadines" }, + { "WS", "Samoa" }, + { "SM", "San Marino" }, + { "ST", "Sao Tome and Principe" }, + { "SA", "Saudi Arabia" }, + { "SN", "Senegal" }, + { "RS", "Serbia" }, + { "SC", "Seychelles" }, + { "SL", "Sierra Leone" }, + { "SG", "Singapore" }, + { "SX", "Sint Maarten (Dutch part)" }, + { "SK", "Slovakia" }, + { "SI", "Slovenia" }, + { "SB", "Solomon Islands" }, + { "SO", "Somalia" }, + { "ZA", "South Africa" }, + { "GS", "South Georgia and the South Sandwich Islands" }, + { "SS", "South Sudan" }, + { "ES", "Spain" }, + { "LK", "Sri Lanka" }, + { "SD", "Sudan" }, + { "SR", "Suriname" }, + { "SJ", "Svalbard and Jan Mayen" }, + { "SE", "Sweden" }, + { "CH", "Switzerland" }, + { "SY", "Syrian Arab Republic" }, + { "TW", "Taiwan, Province of China" }, + { "TJ", "Tajikistan" }, + { "TZ", "Tanzania, United Republic of" }, + { "TH", "Thailand" }, + { "TL", "Timor-Leste" }, + { "TG", "Togo" }, + { "TK", "Tokelau" }, + { "TO", "Tonga" }, + { "TT", "Trinidad and Tobago" }, + { "TN", "Tunisia" }, + { "TR", "Türkiye" }, + { "TM", "Turkmenistan" }, + { "TC", "Turks and Caicos Islands" }, + { "TV", "Tuvalu" }, + { "UG", "Uganda" }, + { "UA", "Ukraine" }, + { "AE", "United Arab Emirates" }, + { "GB", "United Kingdom of Great Britain and Northern Ireland" }, + { "US", "United States of America" }, + { "UM", "United States Minor Outlying Islands" }, + { "UY", "Uruguay" }, + { "UZ", "Uzbekistan" }, + { "VU", "Vanuatu" }, + { "VE", "Venezuela (Bolivarian Republic of)" }, + { "VN", "Viet Nam" }, + { "VG", "Virgin Islands (British)" }, + { "VI", "Virgin Islands (U.S.)" }, + { "WF", "Wallis and Futuna" }, + { "EH", "Western Sahara" }, + { "YE", "Yemen" }, + { "ZM", "Zambia" }, + { "ZW", "Zimbabwe" }, + } + }, + { Language.French, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "AF", "Afghanistan" }, + { "ZA", "Afrique du Sud" }, + { "AX", "Îles Åland" }, + { "AL", "Albanie" }, + { "DZ", "Algérie" }, + { "DE", "Allemagne" }, + { "AD", "Andorre" }, + { "AO", "Angola" }, + { "AI", "Anguilla" }, + { "AQ", "Antarctique" }, + { "AG", "Antigua-et-Barbuda" }, + { "SA", "Arabie saoudite" }, + { "AR", "Argentine" }, + { "AM", "Arménie" }, + { "AW", "Aruba" }, + { "AU", "Australie" }, + { "AT", "Autriche" }, + { "AZ", "Azerbaïdjan" }, + { "BS", "Bahamas" }, + { "BH", "Bahreïn" }, + { "BD", "Bangladesh" }, + { "BB", "Barbade" }, + { "BY", "Biélorussie" }, + { "BE", "Belgique" }, + { "BZ", "Belize" }, + { "BJ", "Bénin" }, + { "BM", "Bermudes" }, + { "BT", "Bhoutan" }, + { "BO", "Bolivie" }, + { "BQ", "Pays-Bas caribéens" }, + { "BA", "Bosnie-Herzégovine" }, + { "BW", "Botswana" }, + { "BV", "Île Bouvet" }, + { "BR", "Brésil" }, + { "BN", "Brunei" }, + { "BG", "Bulgarie" }, + { "BF", "Burkina Faso" }, + { "BI", "Burundi" }, + { "KY", "Îles Caïmans" }, + { "KH", "Cambodge" }, + { "CM", "Cameroun" }, + { "CA", "Canada" }, + { "CV", "Cap-Vert" }, + { "CF", "République centrafricaine" }, + { "CL", "Chili" }, + { "CN", "Chine" }, + { "CX", "Île Christmas" }, + { "CY", "Chypre" }, + { "CC", "Îles Cocos" }, + { "CO", "Colombie" }, + { "KM", "Comores" }, + { "CG", "République du Congo" }, + { "CD", "République démocratique du Congo" }, + { "CK", "Îles Cook" }, + { "KR", "Corée du Sud" }, + { "KP", "Corée du Nord" }, + { "CR", "Costa Rica" }, + { "CI", "Côte d'Ivoire" }, + { "HR", "Croatie" }, + { "CU", "Cuba" }, + { "CW", "Curaçao" }, + { "DK", "Danemark" }, + { "DJ", "Djibouti" }, + { "DO", "République dominicaine" }, + { "DM", "Dominique" }, + { "EG", "Égypte" }, + { "SV", "Salvador" }, + { "AE", "Émirats arabes unis" }, + { "EC", "Équateur" }, + { "ER", "Érythrée" }, + { "ES", "Espagne" }, + { "EE", "Estonie" }, + { "US", "États-Unis" }, + { "ET", "Éthiopie" }, + { "FK", "Malouines" }, + { "FO", "Îles Féroé" }, + { "FJ", "Fidji" }, + { "FI", "Finlande" }, + { "FR", "France" }, + { "GA", "Gabon" }, + { "GM", "Gambie" }, + { "GE", "Géorgie" }, + { "GS", "Géorgie du Sud-et-les îles Sandwich du Sud" }, + { "GH", "Ghana" }, + { "GI", "Gibraltar" }, + { "GR", "Grèce" }, + { "GD", "Grenade" }, + { "GL", "Groenland" }, + { "GP", "Guadeloupe" }, + { "GU", "Guam" }, + { "GT", "Guatemala" }, + { "GG", "Guernesey" }, + { "GN", "Guinée" }, + { "GW", "Guinée-Bissau" }, + { "GQ", "Guinée équatoriale" }, + { "GY", "Guyana" }, + { "GF", "Guyane" }, + { "HT", "Haïti" }, + { "HM", "Îles Heard-et-MacDonald" }, + { "HN", "Honduras" }, + { "HK", "Hong Kong" }, + { "HU", "Hongrie" }, + { "IM", "Île de Man" }, + { "UM", "Îles mineures éloignées des États-Unis" }, + { "VG", "Îles Vierges britanniques" }, + { "VI", "Îles Vierges des États-Unis" }, + { "IN", "Inde" }, + { "ID", "Indonésie" }, + { "IR", "Iran" }, + { "IQ", "Irak" }, + { "IE", "Irlande" }, + { "IS", "Islande" }, + { "IL", "Israël" }, + { "IT", "Italie" }, + { "JM", "Jamaïque" }, + { "JP", "Japon" }, + { "JE", "Jersey" }, + { "JO", "Jordanie" }, + { "KZ", "Kazakhstan" }, + { "KE", "Kenya" }, + { "KG", "Kirghizistan" }, + { "KI", "Kiribati" }, + { "KW", "Koweït" }, + { "LA", "Laos" }, + { "LS", "Lesotho" }, + { "LV", "Lettonie" }, + { "LB", "Liban" }, + { "LR", "Liberia" }, + { "LY", "Libye" }, + { "LI", "Liechtenstein" }, + { "LT", "Lituanie" }, + { "LU", "Luxembourg" }, + { "MO", "Macao" }, + { "MK", "Macédoine du Nord" }, + { "MG", "Madagascar" }, + { "MY", "Malaisie" }, + { "MW", "Malawi" }, + { "MV", "Maldives" }, + { "ML", "Mali" }, + { "MT", "Malte" }, + { "MP", "Îles Mariannes du Nord" }, + { "MA", "Maroc" }, + { "MH", "Îles Marshall" }, + { "MQ", "Martinique" }, + { "MU", "Maurice" }, + { "MR", "Mauritanie" }, + { "YT", "Mayotte" }, + { "MX", "Mexique" }, + { "FM", "États fédérés de Micronésie" }, + { "MD", "Moldavie" }, + { "MC", "Monaco" }, + { "MN", "Mongolie" }, + { "ME", "Monténégro" }, + { "MS", "Montserrat" }, + { "MZ", "Mozambique" }, + { "MM", "Birmanie" }, + { "NA", "Namibie" }, + { "NR", "Nauru" }, + { "NP", "Népal" }, + { "NI", "Nicaragua" }, + { "NE", "Niger" }, + { "NG", "Nigeria" }, + { "NU", "Niue" }, + { "NF", "Île Norfolk" }, + { "NO", "Norvège" }, + { "NC", "Nouvelle-Calédonie" }, + { "NZ", "Nouvelle-Zélande" }, + { "IO", "Territoire britannique de l'océan Indien" }, + { "OM", "Oman" }, + { "UG", "Ouganda" }, + { "UZ", "Ouzbékistan" }, + { "PK", "Pakistan" }, + { "PW", "Palaos" }, + { "PS", "Palestine" }, + { "PA", "Panama" }, + { "PG", "Papouasie-Nouvelle-Guinée" }, + { "PY", "Paraguay" }, + { "NL", "Pays-Bas" }, + { "PE", "Pérou" }, + { "PH", "Philippines" }, + { "PN", "Îles Pitcairn" }, + { "PL", "Pologne" }, + { "PF", "Polynésie française" }, + { "PR", "Porto Rico" }, + { "PT", "Portugal" }, + { "QA", "Qatar" }, + { "RE", "La Réunion" }, + { "RO", "Roumanie" }, + { "GB", "Royaume-Uni" }, + { "RU", "Russie" }, + { "RW", "Rwanda" }, + { "EH", "République arabe sahraouie démocratique" }, + { "BL", "Saint-Barthélemy" }, + { "KN", "Saint-Christophe-et-Niévès" }, + { "SM", "Saint-Marin" }, + { "MF", "Saint-Martin" }, + { "SX", "Saint-Martin" }, + { "PM", "Saint-Pierre-et-Miquelon" }, + { "VA", "Saint-Siège (État de la Cité du Vatican)" }, + { "VC", "Saint-Vincent-et-les-Grenadines" }, + { "SH", "Sainte-Hélène, Ascension et Tristan da Cunha" }, + { "LC", "Sainte-Lucie" }, + { "SB", "Îles Salomon" }, + { "WS", "Samoa" }, + { "AS", "Samoa américaines" }, + { "ST", "Sao Tomé-et-Principe" }, + { "SN", "Sénégal" }, + { "RS", "Serbie" }, + { "SC", "Seychelles" }, + { "SL", "Sierra Leone" }, + { "SG", "Singapour" }, + { "SK", "Slovaquie" }, + { "SI", "Slovénie" }, + { "SO", "Somalie" }, + { "SD", "Soudan" }, + { "SS", "Soudan du Sud" }, + { "LK", "Sri Lanka" }, + { "SE", "Suède" }, + { "CH", "Suisse" }, + { "SR", "Suriname" }, + { "SJ", "Svalbard et ile Jan Mayen" }, + { "SZ", "Eswatini" }, + { "SY", "Syrie" }, + { "TJ", "Tadjikistan" }, + { "TW", "Taïwan / (République de Chine (Taïwan))" }, + { "TZ", "Tanzanie" }, + { "TD", "Tchad" }, + { "CZ", "Tchéquie" }, + { "TF", "Terres australes et antarctiques françaises" }, + { "TH", "Thaïlande" }, + { "TL", "Timor oriental" }, + { "TG", "Togo" }, + { "TK", "Tokelau" }, + { "TO", "Tonga" }, + { "TT", "Trinité-et-Tobago" }, + { "TN", "Tunisie" }, + { "TM", "Turkménistan" }, + { "TC", "Îles Turques-et-Caïques" }, + { "TR", "Turquie" }, + { "TV", "Tuvalu" }, + { "UA", "Ukraine" }, + { "UY", "Uruguay" }, + { "VU", "Vanuatu" }, + { "VE", "Venezuela" }, + { "VN", "Viêt Nam" }, + { "WF", "Wallis-et-Futuna" }, + { "YE", "Yémen" }, + { "ZM", "Zambie" }, + { "ZW", "Zimbabwe" }, + } + }, + { Language.Spanish, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "AF", "Afghanistan" }, + { "AX", "Åland Islands" }, + { "AL", "Albania" }, + { "DZ", "Algeria" }, + { "AS", "American Samoa" }, + { "AD", "Andorra" }, + { "AO", "Angola" }, + { "AI", "Anguilla" }, + { "AQ", "Antarctica" }, + { "AG", "Antigua and Barbuda" }, + { "AR", "Argentina" }, + { "AM", "Armenia" }, + { "AW", "Aruba" }, + { "AU", "Australia" }, + { "AT", "Austria" }, + { "AZ", "Azerbaijan" }, + { "BS", "Bahamas" }, + { "BH", "Bahrain" }, + { "BD", "Bangladesh" }, + { "BB", "Barbados" }, + { "BY", "Belarus" }, + { "BE", "Belgium" }, + { "BZ", "Belize" }, + { "BJ", "Benin" }, + { "BM", "Bermuda" }, + { "BT", "Bhutan" }, + { "BO", "Bolivia (Plurinational State of)" }, + { "BQ", "Bonaire, Sint Eustatius and Saba" }, + { "BA", "Bosnia and Herzegovina" }, + { "BW", "Botswana" }, + { "BV", "Bouvet Island" }, + { "BR", "Brazil" }, + { "IO", "British Indian Ocean Territory" }, + { "BN", "Brunei Darussalam" }, + { "BG", "Bulgaria" }, + { "BF", "Burkina Faso" }, + { "BI", "Burundi" }, + { "CV", "Cabo Verde" }, + { "KH", "Cambodia" }, + { "CM", "Cameroon" }, + { "CA", "Canada" }, + { "KY", "Cayman Islands" }, + { "CF", "Central African Republic" }, + { "TD", "Chad" }, + { "CL", "Chile" }, + { "CN", "China" }, + { "CX", "Christmas Island" }, + { "CC", "Cocos (Keeling) Islands" }, + { "CO", "Colombia" }, + { "KM", "Comoros" }, + { "CG", "Congo" }, + { "CD", "Congo, Democratic Republic of the" }, + { "CK", "Cook Islands" }, + { "CR", "Costa Rica" }, + { "CI", "Côte d'Ivoire" }, + { "HR", "Croatia" }, + { "CU", "Cuba" }, + { "CW", "Curaçao" }, + { "CY", "Cyprus" }, + { "CZ", "Czechia" }, + { "DK", "Denmark" }, + { "DJ", "Djibouti" }, + { "DM", "Dominica" }, + { "DO", "Dominican Republic" }, + { "EC", "Ecuador" }, + { "EG", "Egypt" }, + { "SV", "El Salvador" }, + { "GQ", "Equatorial Guinea" }, + { "ER", "Eritrea" }, + { "EE", "Estonia" }, + { "SZ", "Eswatini" }, + { "ET", "Ethiopia" }, + { "FK", "Falkland Islands (Malvinas)" }, + { "FO", "Faroe Islands" }, + { "FJ", "Fiji" }, + { "FI", "Finland" }, + { "FR", "France" }, + { "GF", "French Guiana" }, + { "PF", "French Polynesia" }, + { "TF", "French Southern Territories" }, + { "GA", "Gabon" }, + { "GM", "Gambia" }, + { "GE", "Georgia" }, + { "DE", "Germany" }, + { "GH", "Ghana" }, + { "GI", "Gibraltar" }, + { "GR", "Greece" }, + { "GL", "Greenland" }, + { "GD", "Grenada" }, + { "GP", "Guadeloupe" }, + { "GU", "Guam" }, + { "GT", "Guatemala" }, + { "GG", "Guernsey" }, + { "GN", "Guinea" }, + { "GW", "Guinea-Bissau" }, + { "GY", "Guyana" }, + { "HT", "Haiti" }, + { "HM", "Heard Island and McDonald Islands" }, + { "VA", "Holy See" }, + { "HN", "Honduras" }, + { "HK", "Hong Kong" }, + { "HU", "Hungary" }, + { "IS", "Iceland" }, + { "IN", "India" }, + { "ID", "Indonesia" }, + { "IR", "Iran (Islamic Republic of)" }, + { "IQ", "Iraq" }, + { "IE", "Ireland" }, + { "IM", "Isle of Man" }, + { "IL", "Israel" }, + { "IT", "Italy" }, + { "JM", "Jamaica" }, + { "JP", "Japan" }, + { "JE", "Jersey" }, + { "JO", "Jordan" }, + { "KZ", "Kazakhstan" }, + { "KE", "Kenya" }, + { "KI", "Kiribati" }, + { "KP", "Korea (Democratic People's Republic of)" }, + { "KR", "Korea, Republic of" }, + { "KW", "Kuwait" }, + { "KG", "Kyrgyzstan" }, + { "LA", "Lao People's Democratic Republic" }, + { "LV", "Latvia" }, + { "LB", "Lebanon" }, + { "LS", "Lesotho" }, + { "LR", "Liberia" }, + { "LY", "Libya" }, + { "LI", "Liechtenstein" }, + { "LT", "Lithuania" }, + { "LU", "Luxembourg" }, + { "MO", "Macao" }, + { "MG", "Madagascar" }, + { "MW", "Malawi" }, + { "MY", "Malaysia" }, + { "MV", "Maldives" }, + { "ML", "Mali" }, + { "MT", "Malta" }, + { "MH", "Marshall Islands" }, + { "MQ", "Martinique" }, + { "MR", "Mauritania" }, + { "MU", "Mauritius" }, + { "YT", "Mayotte" }, + { "MX", "Mexico" }, + { "FM", "Micronesia (Federated States of)" }, + { "MD", "Moldova, Republic of" }, + { "MC", "Monaco" }, + { "MN", "Mongolia" }, + { "ME", "Montenegro" }, + { "MS", "Montserrat" }, + { "MA", "Morocco" }, + { "MZ", "Mozambique" }, + { "MM", "Myanmar" }, + { "NA", "Namibia" }, + { "NR", "Nauru" }, + { "NP", "Nepal" }, + { "NL", "Netherlands, Kingdom of the" }, + { "NC", "New Caledonia" }, + { "NZ", "New Zealand" }, + { "NI", "Nicaragua" }, + { "NE", "Niger" }, + { "NG", "Nigeria" }, + { "NU", "Niue" }, + { "NF", "Norfolk Island" }, + { "MK", "North Macedonia" }, + { "MP", "Northern Mariana Islands" }, + { "NO", "Norway" }, + { "OM", "Oman" }, + { "PK", "Pakistan" }, + { "PW", "Palau" }, + { "PS", "Palestine, State of" }, + { "PA", "Panama" }, + { "PG", "Papua New Guinea" }, + { "PY", "Paraguay" }, + { "PE", "Peru" }, + { "PH", "Philippines" }, + { "PN", "Pitcairn" }, + { "PL", "Poland" }, + { "PT", "Portugal" }, + { "PR", "Puerto Rico" }, + { "QA", "Qatar" }, + { "RE", "Réunion" }, + { "RO", "Romania" }, + { "RU", "Russian Federation" }, + { "RW", "Rwanda" }, + { "BL", "Saint Barthélemy" }, + { "SH", "Saint Helena, Ascension and Tristan da Cunha" }, + { "KN", "Saint Kitts and Nevis" }, + { "LC", "Saint Lucia" }, + { "MF", "Saint Martin (French part)" }, + { "PM", "Saint Pierre and Miquelon" }, + { "VC", "Saint Vincent and the Grenadines" }, + { "WS", "Samoa" }, + { "SM", "San Marino" }, + { "ST", "Sao Tome and Principe" }, + { "SA", "Saudi Arabia" }, + { "SN", "Senegal" }, + { "RS", "Serbia" }, + { "SC", "Seychelles" }, + { "SL", "Sierra Leone" }, + { "SG", "Singapore" }, + { "SX", "Sint Maarten (Dutch part)" }, + { "SK", "Slovakia" }, + { "SI", "Slovenia" }, + { "SB", "Solomon Islands" }, + { "SO", "Somalia" }, + { "ZA", "South Africa" }, + { "GS", "South Georgia and the South Sandwich Islands" }, + { "SS", "South Sudan" }, + { "ES", "Spain" }, + { "LK", "Sri Lanka" }, + { "SD", "Sudan" }, + { "SR", "Suriname" }, + { "SJ", "Svalbard and Jan Mayen" }, + { "SE", "Sweden" }, + { "CH", "Switzerland" }, + { "SY", "Syrian Arab Republic" }, + { "TW", "Taiwan, Province of China" }, + { "TJ", "Tajikistan" }, + { "TZ", "Tanzania, United Republic of" }, + { "TH", "Thailand" }, + { "TL", "Timor-Leste" }, + { "TG", "Togo" }, + { "TK", "Tokelau" }, + { "TO", "Tonga" }, + { "TT", "Trinidad and Tobago" }, + { "TN", "Tunisia" }, + { "TR", "Türkiye" }, + { "TM", "Turkmenistan" }, + { "TC", "Turks and Caicos Islands" }, + { "TV", "Tuvalu" }, + { "UG", "Uganda" }, + { "UA", "Ukraine" }, + { "AE", "United Arab Emirates" }, + { "GB", "United Kingdom of Great Britain and Northern Ireland" }, + { "US", "United States of America" }, + { "UM", "United States Minor Outlying Islands" }, + { "UY", "Uruguay" }, + { "UZ", "Uzbekistan" }, + { "VU", "Vanuatu" }, + { "VE", "Venezuela (Bolivarian Republic of)" }, + { "VN", "Viet Nam" }, + { "VG", "Virgin Islands (British)" }, + { "VI", "Virgin Islands (U.S.)" }, + { "WF", "Wallis and Futuna" }, + { "EH", "Western Sahara" }, + { "YE", "Yemen" }, + { "ZM", "Zambia" }, + { "ZW", "Zimbabwe" }, + } + }, + { Language.Korean, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "AW", "아루바" }, + { "AF", "아프가니스탄" }, + { "AO", "앙골라" }, + { "AI", "앵귈라" }, + { "AX", "올란드 제도" }, + { "AL", "알바니아" }, + { "AD", "안도라" }, + { "AE", "아랍에미리트" }, + { "AR", "아르헨티나" }, + { "AM", "아르메니아" }, + { "AS", "아메리칸사모아" }, + { "AQ", "남극" }, + { "TF", "프랑스령 남방 및 남극 지역" }, + { "AG", "앤티가 바부다" }, + { "AU", "오스트레일리아" }, + { "AT", "오스트리아" }, + { "AZ", "아제르바이잔" }, + { "BI", "부룬디" }, + { "BE", "벨기에" }, + { "BJ", "베냉" }, + { "BQ", "보네르섬" }, + { "BF", "부르키나파소" }, + { "BD", "방글라데시" }, + { "BG", "불가리아" }, + { "BH", "바레인" }, + { "BS", "바하마" }, + { "BA", "보스니아 헤르체고비나" }, + { "BL", "생바르텔레미" }, + { "BY", "벨라루스" }, + { "BZ", "벨리즈" }, + { "BM", "버뮤다" }, + { "BO", "볼리비아" }, + { "BR", "브라질" }, + { "BB", "바베이도스" }, + { "BN", "브루나이" }, + { "BT", "부탄" }, + { "BV", "부베섬" }, + { "BW", "보츠와나" }, + { "CF", "중앙아프리카 공화국" }, + { "CA", "캐나다" }, + { "CC", "코코스 제도" }, + { "CH", "스위스" }, + { "CL", "칠레" }, + { "CN", "중국" }, + { "CI", "코트디부아르" }, + { "CM", "카메룬" }, + { "CD", "콩고 민주 공화국" }, + { "CG", "콩고 공화국" }, + { "CK", "쿡 제도" }, + { "CO", "콜롬비아" }, + { "KM", "코모로" }, + { "CV", "카보베르데" }, + { "CR", "코스타리카" }, + { "CU", "쿠바" }, + { "CW", "퀴라소" }, + { "CX", "크리스마스섬" }, + { "KY", "케이맨 제도" }, + { "CY", "키프로스" }, + { "CZ", "체코" }, + { "DE", "독일" }, + { "DJ", "지부티" }, + { "DM", "도미니카 연방" }, + { "DK", "덴마크" }, + { "DO", "도미니카 공화국" }, + { "DZ", "알제리" }, + { "EC", "에콰도르" }, + { "EG", "이집트" }, + { "ER", "에리트레아" }, + { "EH", "서사하라" }, + { "ES", "스페인" }, + { "EE", "에스토니아" }, + { "ET", "에티오피아" }, + { "FI", "핀란드" }, + { "FJ", "피지" }, + { "FK", "포클랜드 제도" }, + { "FR", "프랑스" }, + { "FO", "페로 제도" }, + { "FM", "미크로네시아 연방" }, + { "GA", "가봉" }, + { "GB", "영국" }, + { "GE", "조지아" }, + { "GG", "건지섬" }, + { "GH", "가나" }, + { "GI", "지브롤터" }, + { "GN", "기니" }, + { "GP", "과들루프" }, + { "GM", "감비아" }, + { "GW", "기니비사우" }, + { "GQ", "적도 기니" }, + { "GR", "그리스" }, + { "GD", "그레나다" }, + { "GL", "그린란드" }, + { "GT", "과테말라" }, + { "GF", "프랑스령 기아나" }, + { "GU", "괌" }, + { "GY", "가이아나" }, + { "HK", "홍콩" }, + { "HM", "허드 맥도널드 제도" }, + { "HN", "온두라스" }, + { "HR", "크로아티아" }, + { "HT", "아이티" }, + { "HU", "헝가리" }, + { "ID", "인도네시아" }, + { "IM", "맨섬" }, + { "IN", "인도" }, + { "IO", "영국령 인도양 지역" }, + { "IE", "아일랜드" }, + { "IR", "이란" }, + { "IQ", "이라크" }, + { "IS", "아이슬란드" }, + { "IL", "이스라엘" }, + { "IT", "이탈리아" }, + { "JM", "자메이카" }, + { "JE", "저지섬" }, + { "JO", "요르단" }, + { "JP", "일본" }, + { "KZ", "카자흐스탄" }, + { "KE", "케냐" }, + { "KG", "키르기스스탄" }, + { "KH", "캄보디아" }, + { "KI", "키리바시" }, + { "KN", "세인트키츠 네비스" }, + { "KR", "대한민국" }, + { "KW", "쿠웨이트" }, + { "LA", "라오스" }, + { "LB", "레바논" }, + { "LR", "라이베리아" }, + { "LY", "리비아" }, + { "LC", "세인트루시아" }, + { "LI", "리히텐슈타인" }, + { "LK", "스리랑카" }, + { "LS", "레소토" }, + { "LT", "리투아니아" }, + { "LU", "룩셈부르크" }, + { "LV", "라트비아" }, + { "MO", "마카오" }, + { "MF", "생마르탱" }, + { "MA", "모로코" }, + { "MC", "모나코" }, + { "MD", "몰도바" }, + { "MG", "마다가스카르" }, + { "MV", "몰디브" }, + { "MX", "멕시코" }, + { "MH", "마셜 제도" }, + { "MK", "북마케도니아" }, + { "ML", "말리" }, + { "MT", "몰타" }, + { "MM", "미얀마" }, + { "ME", "몬테네그로" }, + { "MN", "몽골" }, + { "MP", "북마리아나 제도" }, + { "MZ", "모잠비크" }, + { "MR", "모리타니" }, + { "MS", "몬트세랫" }, + { "MQ", "마르티니크" }, + { "MU", "모리셔스" }, + { "MW", "말라위" }, + { "MY", "말레이시아" }, + { "YT", "마요트" }, + { "NA", "나미비아" }, + { "NC", "누벨칼레도니" }, + { "NE", "니제르" }, + { "NF", "노퍽섬" }, + { "NG", "나이지리아" }, + { "NI", "니카라과" }, + { "NO", "노르웨이" }, + { "NU", "니우에" }, + { "NL", "네덜란드" }, + { "NP", "네팔" }, + { "NR", "나우루" }, + { "NZ", "뉴질랜드" }, + { "OM", "오만" }, + { "PK", "파키스탄" }, + { "PA", "파나마" }, + { "PN", "핏케언 제도" }, + { "PE", "페루" }, + { "PH", "필리핀" }, + { "PW", "팔라우" }, + { "PG", "파푸아뉴기니" }, + { "PL", "폴란드" }, + { "PR", "푸에르토리코" }, + { "KP", "조선민주주의인민공화국" }, + { "PT", "포르투갈" }, + { "PY", "파라과이" }, + { "PS", "팔레스타인" }, + { "PF", "프랑스령 폴리네시아" }, + { "QA", "카타르" }, + { "RE", "레위니옹" }, + { "RO", "루마니아" }, + { "RU", "러시아" }, + { "RW", "르완다" }, + { "SA", "사우디아라비아" }, + { "SD", "수단" }, + { "SN", "세네갈" }, + { "SG", "싱가포르" }, + { "GS", "사우스조지아 사우스샌드위치 제도" }, + { "SH", "세인트헬레나" }, + { "SJ", "스발바르 얀마옌" }, + { "SB", "솔로몬 제도" }, + { "SL", "시에라리온" }, + { "SV", "엘살바도르" }, + { "SM", "산마리노" }, + { "SO", "소말리아" }, + { "PM", "생피에르 미클롱" }, + { "RS", "세르비아" }, + { "SS", "남수단" }, + { "ST", "상투메 프린시페" }, + { "SR", "수리남" }, + { "SK", "슬로바키아" }, + { "SI", "슬로베니아" }, + { "SE", "스웨덴" }, + { "SZ", "에스와티니" }, + { "SX", "신트마르턴" }, + { "SC", "세이셸" }, + { "SY", "시리아" }, + { "TC", "터크스 케이커스 제도" }, + { "TD", "차드" }, + { "TG", "토고" }, + { "TH", "태국" }, + { "TJ", "타지키스탄" }, + { "TK", "토켈라우" }, + { "TM", "투르크메니스탄" }, + { "TL", "동티모르" }, + { "TO", "통가" }, + { "TT", "트리니다드 토바고" }, + { "TN", "튀니지" }, + { "TR", "튀르키예" }, + { "TV", "투발루" }, + { "TW", "대만" }, + { "TZ", "탄자니아" }, + { "UG", "우간다" }, + { "UA", "우크라이나" }, + { "UM", "미국령 군소 제도" }, + { "UY", "우루과이" }, + { "US", "미국" }, + { "UZ", "우즈베키스탄" }, + { "VA", "바티칸 시국" }, + { "VC", "세인트빈센트 그레나딘" }, + { "VE", "베네수엘라" }, + { "VG", "영국령 버진아일랜드" }, + { "VI", "미국령 버진아일랜드" }, + { "VN", "베트남" }, + { "VU", "바누아투" }, + { "WF", "왈리스 푸투나" }, + { "WS", "사모아" }, + { "YE", "예멘" }, + { "ZA", "남아프리카 공화국" }, + { "ZM", "잠비아" }, + { "ZW", "짐바브웨" }, + } + }, + { Language.Japanese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "AW", "アルバ" }, + { "AF", "アフガニスタン" }, + { "AO", "アンゴラ" }, + { "AI", "アンギラ" }, + { "AX", "オーランド諸島" }, + { "AL", "アルバニア" }, + { "AD", "アンドラ" }, + { "AE", "アラブ首長国連邦" }, + { "AR", "アルゼンチン" }, + { "AM", "アルメニア" }, + { "AS", "アメリカ領サモア" }, + { "AQ", "南極" }, + { "TF", "フランス領南方・南極地域" }, + { "AG", "アンティグア・バーブーダ" }, + { "AU", "オーストラリア" }, + { "AT", "オーストリア" }, + { "AZ", "アゼルバイジャン" }, + { "BI", "ブルンジ" }, + { "BE", "ベルギー" }, + { "BJ", "ベナン" }, + { "BQ", "ボネール、シント・ユースタティウスおよびサバ" }, + { "BF", "ブルキナファソ" }, + { "BD", "バングラデシュ" }, + { "BG", "ブルガリア" }, + { "BH", "バーレーン" }, + { "BS", "バハマ" }, + { "BA", "ボスニア・ヘルツェゴビナ" }, + { "BL", "サン・バルテルミー" }, + { "BY", "ベラルーシ" }, + { "BZ", "ベリーズ" }, + { "BM", "バミューダ" }, + { "BO", "ボリビア多民族国" }, + { "BR", "ブラジル" }, + { "BB", "バルバドス" }, + { "BN", "ブルネイ・ダルサラーム" }, + { "BT", "ブータン" }, + { "BV", "ブーベ島" }, + { "BW", "ボツワナ" }, + { "CF", "中央アフリカ共和国" }, + { "CA", "カナダ" }, + { "CC", "ココス(キーリング)諸島" }, + { "CH", "スイス" }, + { "CL", "チリ" }, + { "CN", "中華人民共和国" }, + { "CI", "コートジボワール" }, + { "CM", "カメルーン" }, + { "CD", "コンゴ民主共和国" }, + { "CG", "コンゴ共和国" }, + { "CK", "クック諸島" }, + { "CO", "コロンビア" }, + { "KM", "コモロ" }, + { "CV", "カーボベルデ" }, + { "CR", "コスタリカ" }, + { "CU", "キューバ" }, + { "CW", "キュラソー" }, + { "CX", "クリスマス島" }, + { "KY", "ケイマン諸島" }, + { "CY", "キプロス" }, + { "CZ", "チェコ" }, + { "DE", "ドイツ" }, + { "DJ", "ジブチ" }, + { "DM", "ドミニカ国" }, + { "DK", "デンマーク" }, + { "DO", "ドミニカ共和国" }, + { "DZ", "アルジェリア" }, + { "EC", "エクアドル" }, + { "EG", "エジプト" }, + { "ER", "エリトリア" }, + { "EH", "西サハラ" }, + { "ES", "スペイン" }, + { "EE", "エストニア" }, + { "ET", "エチオピア" }, + { "FI", "フィンランド" }, + { "FJ", "フィジー" }, + { "FK", "フォークランド(マルビナス)諸島" }, + { "FR", "フランス" }, + { "FO", "フェロー諸島" }, + { "FM", "ミクロネシア連邦" }, + { "GA", "ガボン" }, + { "GB", "イギリス" }, + { "GE", "ジョージア" }, + { "GG", "ガーンジー" }, + { "GH", "ガーナ" }, + { "GI", "ジブラルタル" }, + { "GN", "ギニア" }, + { "GP", "グアドループ" }, + { "GM", "ガンビア" }, + { "GW", "ギニアビサウ" }, + { "GQ", "赤道ギニア" }, + { "GR", "ギリシャ" }, + { "GD", "グレナダ" }, + { "GL", "グリーンランド" }, + { "GT", "グアテマラ" }, + { "GF", "フランス領ギアナ" }, + { "GU", "グアム" }, + { "GY", "ガイアナ" }, + { "HK", "香港" }, + { "HM", "ハード島とマクドナルド諸島" }, + { "HN", "ホンジュラス" }, + { "HR", "クロアチア" }, + { "HT", "ハイチ" }, + { "HU", "ハンガリー" }, + { "ID", "インドネシア" }, + { "IM", "マン島" }, + { "IN", "インド" }, + { "IO", "イギリス領インド洋地域" }, + { "IE", "アイルランド" }, + { "IR", "イラン・イスラム共和国" }, + { "IQ", "イラク" }, + { "IS", "アイスランド" }, + { "IL", "イスラエル" }, + { "IT", "イタリア" }, + { "JM", "ジャマイカ" }, + { "JE", "ジャージー" }, + { "JO", "ヨルダン" }, + { "JP", "日本" }, + { "KZ", "カザフスタン" }, + { "KE", "ケニア" }, + { "KG", "キルギス" }, + { "KH", "カンボジア" }, + { "KI", "キリバス" }, + { "KN", "セントクリストファー・ネイビス" }, + { "KR", "大韓民国" }, + { "KW", "クウェート" }, + { "LA", "ラオス人民民主共和国" }, + { "LB", "レバノン" }, + { "LR", "リベリア" }, + { "LY", "リビア" }, + { "LC", "セントルシア" }, + { "LI", "リヒテンシュタイン" }, + { "LK", "スリランカ" }, + { "LS", "レソト" }, + { "LT", "リトアニア" }, + { "LU", "ルクセンブルク" }, + { "LV", "ラトビア" }, + { "MO", "マカオ" }, + { "MF", "サン・マルタン(フランス領)" }, + { "MA", "モロッコ" }, + { "MC", "モナコ" }, + { "MD", "モルドバ共和国" }, + { "MG", "マダガスカル" }, + { "MV", "モルディブ" }, + { "MX", "メキシコ" }, + { "MH", "マーシャル諸島" }, + { "MK", "北マケドニア" }, + { "ML", "マリ" }, + { "MT", "マルタ" }, + { "MM", "ミャンマー" }, + { "ME", "モンテネグロ" }, + { "MN", "モンゴル" }, + { "MP", "北マリアナ諸島" }, + { "MZ", "モザンビーク" }, + { "MR", "モーリタニア" }, + { "MS", "モントセラト" }, + { "MQ", "マルティニーク" }, + { "MU", "モーリシャス" }, + { "MW", "マラウイ" }, + { "MY", "マレーシア" }, + { "YT", "マヨット" }, + { "NA", "ナミビア" }, + { "NC", "ニューカレドニア" }, + { "NE", "ニジェール" }, + { "NF", "ノーフォーク島" }, + { "NG", "ナイジェリア" }, + { "NI", "ニカラグア" }, + { "NU", "ニウエ" }, + { "NL", "オランダ" }, + { "NO", "ノルウェー" }, + { "NP", "ネパール" }, + { "NR", "ナウル" }, + { "NZ", "ニュージーランド" }, + { "OM", "オマーン" }, + { "PK", "パキスタン" }, + { "PA", "パナマ" }, + { "PN", "ピトケアン" }, + { "PE", "ペルー" }, + { "PH", "フィリピン" }, + { "PW", "パラオ" }, + { "PG", "パプアニューギニア" }, + { "PL", "ポーランド" }, + { "PR", "プエルトリコ" }, + { "KP", "朝鮮民主主義人民共和国" }, + { "PT", "ポルトガル" }, + { "PY", "パラグアイ" }, + { "PS", "パレスチナ" }, + { "PF", "フランス領ポリネシア" }, + { "QA", "カタール" }, + { "RE", "レユニオン" }, + { "RO", "ルーマニア" }, + { "RU", "ロシア連邦" }, + { "RW", "ルワンダ" }, + { "SA", "サウジアラビア" }, + { "SD", "スーダン" }, + { "SN", "セネガル" }, + { "SG", "シンガポール" }, + { "GS", "サウスジョージア・サウスサンドウィッチ諸島" }, + { "SH", "セントヘレナ・アセンションおよびトリスタンダクーニャ" }, + { "SJ", "スヴァールバル諸島およびヤンマイエン島" }, + { "SB", "ソロモン諸島" }, + { "SL", "シエラレオネ" }, + { "SV", "エルサルバドル" }, + { "SM", "サンマリノ" }, + { "SO", "ソマリア" }, + { "PM", "サンピエール島・ミクロン島" }, + { "RS", "セルビア" }, + { "SS", "南スーダン" }, + { "ST", "サントメ・プリンシペ" }, + { "SR", "スリナム" }, + { "SK", "スロバキア" }, + { "SI", "スロベニア" }, + { "SE", "スウェーデン" }, + { "SZ", "エスワティニ" }, + { "SX", "シント・マールテン(オランダ領)" }, + { "SC", "セーシェル" }, + { "SY", "シリア・アラブ共和国" }, + { "TC", "タークス・カイコス諸島" }, + { "TD", "チャド" }, + { "TG", "トーゴ" }, + { "TH", "タイ" }, + { "TJ", "タジキスタン" }, + { "TK", "トケラウ" }, + { "TM", "トルクメニスタン" }, + { "TL", "東ティモール" }, + { "TO", "トンガ" }, + { "TT", "トリニダード・トバゴ" }, + { "TN", "チュニジア" }, + { "TR", "トルコ" }, + { "TV", "ツバル" }, + { "TW", "台湾(中華民国)" }, + { "TZ", "タンザニア" }, + { "UG", "ウガンダ" }, + { "UA", "ウクライナ" }, + { "UM", "合衆国領有小離島" }, + { "UY", "ウルグアイ" }, + { "US", "アメリカ合衆国" }, + { "UZ", "ウズベキスタン" }, + { "VA", "バチカン市国" }, + { "VC", "セントビンセントおよびグレナディーン諸島" }, + { "VE", "ベネズエラ・ボリバル共和国" }, + { "VG", "イギリス領ヴァージン諸島" }, + { "VI", "アメリカ領ヴァージン諸島" }, + { "VN", "ベトナム" }, + { "VU", "バヌアツ" }, + { "WF", "ウォリス・フツナ" }, + { "WS", "サモア" }, + { "YE", "イエメン" }, + { "ZA", "南アフリカ" }, + { "ZM", "ザンビア" }, + { "ZW", "ジンバブエ" }, + } + }, + { Language.SimplifiedChinese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "AW", "阿鲁巴" }, + { "AF", "阿富汗" }, + { "AO", "安哥拉" }, + { "AI", "安圭拉" }, + { "AX", "奥兰" }, + { "AL", "阿尔巴尼亚" }, + { "AD", "安道尔" }, + { "AE", "阿联酋" }, + { "AR", "阿根廷" }, + { "AM", "亞美尼亞" }, + { "AS", "美属萨摩亚" }, + { "AQ", "南极洲" }, + { "TF", "法属南部和南极领地" }, + { "AG", "安地卡及巴布達" }, + { "AU", "澳大利亞" }, + { "AT", "奥地利" }, + { "AZ", "阿塞拜疆" }, + { "BI", "布隆迪" }, + { "BE", "比利時" }, + { "BJ", "贝宁" }, + { "BQ", "荷蘭加勒比區" }, + { "BF", "布吉納法索" }, + { "BD", "孟加拉国" }, + { "BG", "保加利亚" }, + { "BH", "巴林" }, + { "BS", "巴哈马" }, + { "BA", "波黑" }, + { "BL", "圣巴泰勒米" }, + { "BY", "白俄羅斯" }, + { "BZ", "伯利兹" }, + { "BM", "百慕大" }, + { "BO", "玻利维亚" }, + { "BR", "巴西" }, + { "BB", "巴巴多斯" }, + { "BN", "文莱" }, + { "BT", "不丹" }, + { "BV", "布韦岛" }, + { "BW", "博茨瓦纳" }, + { "CF", "中非" }, + { "CA", "加拿大" }, + { "CC", "科科斯(基林)群島" }, + { "CH", "瑞士" }, + { "CL", "智利" }, + { "CN", "中国" }, + { "CI", "科特迪瓦" }, + { "CM", "喀麦隆" }, + { "CD", "刚果民主共和国" }, + { "CG", "刚果共和国" }, + { "CK", "庫克群島" }, + { "CO", "哥伦比亚" }, + { "KM", "科摩罗" }, + { "CV", "佛得角" }, + { "CR", "哥斯达黎加" }, + { "CU", "古巴" }, + { "CW", "库拉索" }, + { "CX", "圣诞岛" }, + { "KY", "开曼群岛" }, + { "CY", "賽普勒斯" }, + { "CZ", "捷克" }, + { "DE", "德國" }, + { "DJ", "吉布提" }, + { "DM", "多米尼克" }, + { "DK", "丹麥" }, + { "DO", "多米尼加" }, + { "DZ", "阿尔及利亚" }, + { "EC", "厄瓜多尔" }, + { "EG", "埃及" }, + { "ER", "厄立特里亚" }, + { "EH", "西撒哈拉" }, + { "ES", "西班牙" }, + { "EE", "爱沙尼亚" }, + { "ET", "衣索比亞" }, + { "FI", "芬兰" }, + { "FJ", "斐济" }, + { "FK", "福克蘭群島" }, + { "FR", "法國" }, + { "FO", "法罗群岛" }, + { "FM", "密克羅尼西亞聯邦" }, + { "GA", "加彭" }, + { "GB", "英国" }, + { "GE", "格鲁吉亚" }, + { "GG", "根西" }, + { "GH", "加纳" }, + { "GI", "直布罗陀" }, + { "GN", "几内亚" }, + { "GP", "瓜德罗普" }, + { "GM", "冈比亚" }, + { "GW", "几内亚比绍" }, + { "GQ", "赤道几内亚" }, + { "GR", "希臘" }, + { "GD", "格瑞那達" }, + { "GL", "格陵兰" }, + { "GT", "危地马拉" }, + { "GF", "法属圭亚那" }, + { "GU", "關島" }, + { "GY", "圭亚那" }, + { "HK", "香港" }, + { "HM", "赫德岛和麦克唐纳群岛" }, + { "HN", "洪都拉斯" }, + { "HR", "克罗地亚" }, + { "HT", "海地" }, + { "HU", "匈牙利" }, + { "ID", "印度尼西亞" }, + { "IM", "马恩岛" }, + { "IN", "印度" }, + { "IO", "英屬印度洋領地" }, + { "IE", "爱尔兰" }, + { "IR", "伊朗" }, + { "IQ", "伊拉克" }, + { "IS", "冰島" }, + { "IL", "以色列" }, + { "IT", "義大利" }, + { "JM", "牙买加" }, + { "JE", "澤西" }, + { "JO", "约旦" }, + { "JP", "日本" }, + { "KZ", "哈萨克斯坦" }, + { "KE", "肯尼亚" }, + { "KG", "吉尔吉斯斯坦" }, + { "KH", "柬埔寨" }, + { "KI", "基里巴斯" }, + { "KN", "圣基茨和尼维斯" }, + { "KR", "韩国" }, + { "KW", "科威特" }, + { "LA", "老挝" }, + { "LB", "黎巴嫩" }, + { "LR", "利比里亚" }, + { "LY", "利比亞" }, + { "LC", "圣卢西亚" }, + { "LI", "列支敦斯登" }, + { "LK", "斯里蘭卡" }, + { "LS", "賴索托" }, + { "LT", "立陶宛" }, + { "LU", "盧森堡" }, + { "LV", "拉脫維亞" }, + { "MO", "澳門" }, + { "MF", "法属圣马丁" }, + { "MA", "摩洛哥" }, + { "MC", "摩納哥" }, + { "MD", "摩尔多瓦" }, + { "MG", "马达加斯加" }, + { "MV", "馬爾地夫" }, + { "MX", "墨西哥" }, + { "MH", "马绍尔群岛" }, + { "MK", "北馬其頓" }, + { "ML", "马里" }, + { "MT", "馬爾他" }, + { "MM", "緬甸" }, + { "ME", "蒙特內哥羅" }, + { "MN", "蒙古" }, + { "MP", "北马里亚纳群岛" }, + { "MZ", "莫桑比克" }, + { "MR", "毛里塔尼亚" }, + { "MS", "蒙特塞拉特" }, + { "MQ", "马提尼克" }, + { "MU", "模里西斯" }, + { "MW", "马拉维" }, + { "MY", "马来西亚" }, + { "YT", "马约特" }, + { "NA", "纳米比亚" }, + { "NC", "新喀里多尼亞" }, + { "NE", "尼日尔" }, + { "NF", "诺福克岛" }, + { "NG", "奈及利亞" }, + { "NI", "尼加拉瓜" }, + { "NU", "纽埃" }, + { "NL", "荷蘭" }, + { "NO", "挪威" }, + { "NP", "尼泊尔" }, + { "NR", "瑙鲁" }, + { "NZ", "新西蘭" }, + { "OM", "阿曼" }, + { "PK", "巴基斯坦" }, + { "PA", "巴拿马" }, + { "PN", "皮特凯恩群岛" }, + { "PE", "秘魯" }, + { "PH", "菲律賓" }, + { "PW", "帛琉" }, + { "PG", "巴布亚新几内亚" }, + { "PL", "波蘭" }, + { "PR", "波多黎各" }, + { "KP", "朝鲜" }, + { "PT", "葡萄牙" }, + { "PY", "巴拉圭" }, + { "PS", "巴勒斯坦" }, + { "PF", "法屬玻里尼西亞" }, + { "QA", "卡塔尔" }, + { "RE", "留尼汪" }, + { "RO", "羅馬尼亞" }, + { "RU", "俄羅斯" }, + { "RW", "卢旺达" }, + { "SA", "沙烏地阿拉伯" }, + { "SD", "苏丹" }, + { "SN", "塞内加尔" }, + { "SG", "新加坡" }, + { "GS", "南乔治亚和南桑威奇群岛" }, + { "SH", "圣赫勒拿、阿森松和特里斯坦-达库尼亚" }, + { "SJ", "斯瓦尔巴和扬马延" }, + { "SB", "所罗门群岛" }, + { "SL", "塞拉利昂" }, + { "SV", "薩爾瓦多" }, + { "SM", "圣马力诺" }, + { "SO", "索马里" }, + { "PM", "圣皮埃尔和密克隆" }, + { "RS", "塞爾維亞" }, + { "SS", "南蘇丹" }, + { "ST", "聖多美和普林西比" }, + { "SR", "苏里南" }, + { "SK", "斯洛伐克" }, + { "SI", "斯洛維尼亞" }, + { "SE", "瑞典" }, + { "SZ", "斯威士兰 史瓦帝尼" }, + { "SX", "荷屬聖馬丁" }, + { "SC", "塞舌尔" }, + { "SY", "叙利亚" }, + { "TC", "特克斯和凯科斯群岛" }, + { "TD", "乍得" }, + { "TG", "多哥" }, + { "TH", "泰國" }, + { "TJ", "塔吉克斯坦" }, + { "TK", "托克勞" }, + { "TM", "土库曼斯坦" }, + { "TL", "东帝汶" }, + { "TO", "汤加" }, + { "TT", "千里達及托巴哥" }, + { "TN", "突尼西亞" }, + { "TR", "土耳其" }, + { "TV", "图瓦卢" }, + { "TW", "臺灣地區 中国台湾省" }, + { "TZ", "坦桑尼亚" }, + { "UG", "乌干达" }, + { "UA", "烏克蘭" }, + { "UM", "美國本土外小島嶼" }, + { "UY", "乌拉圭" }, + { "US", "美國" }, + { "UZ", "乌兹别克斯坦" }, + { "VA", "梵蒂冈" }, + { "VC", "圣文森特和格林纳丁斯" }, + { "VE", "委內瑞拉" }, + { "VG", "英屬維爾京群島" }, + { "VI", "美屬維爾京群島" }, + { "VN", "越南" }, + { "VU", "瓦努阿圖" }, + { "WF", "瓦利斯和富图纳" }, + { "WS", "萨摩亚" }, + { "YE", "葉門" }, + { "ZA", "南非" }, + { "ZM", "尚比亞" }, + { "ZW", "辛巴威" }, + } + }, + { Language.TraditionalChinese, new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "AW", "阿魯巴" }, + { "AF", "阿富汗" }, + { "AO", "安哥拉" }, + { "AI", "安圭拉" }, + { "AX", "奧蘭" }, + { "AL", "阿爾巴尼亞" }, + { "AD", "安道爾" }, + { "AE", "阿聯酋" }, + { "AR", "阿根廷" }, + { "AM", "亞美尼亞" }, + { "AS", "美屬薩摩亞" }, + { "AQ", "南極洲" }, + { "TF", "法屬南部和南極領地" }, + { "AG", "安地卡及巴布達" }, + { "AU", "澳大利亞" }, + { "AT", "奧地利" }, + { "AZ", "阿塞拜疆" }, + { "BI", "布隆迪" }, + { "BE", "比利時" }, + { "BJ", "貝寧" }, + { "BQ", "荷蘭加勒比區" }, + { "BF", "布吉納法索" }, + { "BD", "孟加拉國" }, + { "BG", "保加利亞" }, + { "BH", "巴林" }, + { "BS", "巴哈馬" }, + { "BA", "波黑" }, + { "BL", "聖巴泰勒米" }, + { "BY", "白俄羅斯" }, + { "BZ", "伯利茲" }, + { "BM", "百慕大" }, + { "BO", "玻利維亞" }, + { "BR", "巴西" }, + { "BB", "巴巴多斯" }, + { "BN", "文萊" }, + { "BT", "不丹" }, + { "BV", "布韋島" }, + { "BW", "博茨瓦納" }, + { "CF", "中非" }, + { "CA", "加拿大" }, + { "CC", "科科斯(基林)群島" }, + { "CH", "瑞士" }, + { "CL", "智利" }, + { "CN", "中國" }, + { "CI", "科特迪瓦" }, + { "CM", "喀麥隆" }, + { "CD", "剛果民主共和國" }, + { "CG", "剛果共和國" }, + { "CK", "庫克群島" }, + { "CO", "哥倫比亞" }, + { "KM", "科摩羅" }, + { "CV", "佛得角" }, + { "CR", "哥斯達黎加" }, + { "CU", "古巴" }, + { "CW", "庫拉索" }, + { "CX", "聖誕島" }, + { "KY", "開曼群島" }, + { "CY", "賽普勒斯" }, + { "CZ", "捷克" }, + { "DE", "德國" }, + { "DJ", "吉布提" }, + { "DM", "多米尼克" }, + { "DK", "丹麥" }, + { "DO", "多米尼加" }, + { "DZ", "阿爾及利亞" }, + { "EC", "厄瓜多爾" }, + { "EG", "埃及" }, + { "ER", "厄立特里亞" }, + { "EH", "西撒哈拉" }, + { "ES", "西班牙" }, + { "EE", "愛沙尼亞" }, + { "ET", "衣索比亞" }, + { "FI", "芬蘭" }, + { "FJ", "斐濟" }, + { "FK", "福克蘭群島" }, + { "FR", "法國" }, + { "FO", "法羅群島" }, + { "FM", "密克羅尼西亞聯邦" }, + { "GA", "加彭" }, + { "GB", "英國" }, + { "GE", "格魯吉亞" }, + { "GG", "根西" }, + { "GH", "加納" }, + { "GI", "直布羅陀" }, + { "GN", "幾內亞" }, + { "GP", "瓜德羅普" }, + { "GM", "岡比亞" }, + { "GW", "幾內亞比紹" }, + { "GQ", "赤道幾內亞" }, + { "GR", "希臘" }, + { "GD", "格瑞那達" }, + { "GL", "格陵蘭" }, + { "GT", "危地馬拉" }, + { "GF", "法屬圭亞那" }, + { "GU", "關島" }, + { "GY", "圭亞那" }, + { "HK", "香港" }, + { "HM", "赫德島和麥克唐納群島" }, + { "HN", "洪都拉斯" }, + { "HR", "克羅地亞" }, + { "HT", "海地" }, + { "HU", "匈牙利" }, + { "ID", "印度尼西亞" }, + { "IM", "馬恩島" }, + { "IN", "印度" }, + { "IO", "英屬印度洋領地" }, + { "IE", "愛爾蘭" }, + { "IR", "伊朗" }, + { "IQ", "伊拉克" }, + { "IS", "冰島" }, + { "IL", "以色列" }, + { "IT", "義大利" }, + { "JM", "牙買加" }, + { "JE", "澤西" }, + { "JO", "約旦" }, + { "JP", "日本" }, + { "KZ", "哈薩克斯坦" }, + { "KE", "肯尼亞" }, + { "KG", "吉爾吉斯斯坦" }, + { "KH", "柬埔寨" }, + { "KI", "基里巴斯" }, + { "KN", "聖基茨和尼維斯" }, + { "KR", "韓國" }, + { "KW", "科威特" }, + { "LA", "老撾" }, + { "LB", "黎巴嫩" }, + { "LR", "利比里亞" }, + { "LY", "利比亞" }, + { "LC", "聖盧西亞" }, + { "LI", "列支敦斯登" }, + { "LK", "斯里蘭卡" }, + { "LS", "賴索托" }, + { "LT", "立陶宛" }, + { "LU", "盧森堡" }, + { "LV", "拉脫維亞" }, + { "MO", "澳門" }, + { "MF", "法屬聖馬丁" }, + { "MA", "摩洛哥" }, + { "MC", "摩納哥" }, + { "MD", "摩爾多瓦" }, + { "MG", "馬達加斯加" }, + { "MV", "馬爾地夫" }, + { "MX", "墨西哥" }, + { "MH", "馬紹爾群島" }, + { "MK", "北馬其頓" }, + { "ML", "馬里" }, + { "MT", "馬爾他" }, + { "MM", "緬甸" }, + { "ME", "蒙特內哥羅" }, + { "MN", "蒙古" }, + { "MP", "北馬里亞納群島" }, + { "MZ", "莫桑比克" }, + { "MR", "毛里塔尼亞" }, + { "MS", "蒙特塞拉特" }, + { "MQ", "馬提尼克" }, + { "MU", "模里西斯" }, + { "MW", "馬拉維" }, + { "MY", "馬來西亞" }, + { "YT", "馬約特" }, + { "NA", "納米比亞" }, + { "NC", "新喀裡多尼亞" }, + { "NE", "尼日爾" }, + { "NF", "諾福克島" }, + { "NG", "奈及利亞" }, + { "NI", "尼加拉瓜" }, + { "NU", "紐埃" }, + { "NL", "荷蘭" }, + { "NO", "挪威" }, + { "NP", "尼泊爾" }, + { "NR", "瑙魯" }, + { "NZ", "新西蘭" }, + { "OM", "阿曼" }, + { "PK", "巴基斯坦" }, + { "PA", "巴拿馬" }, + { "PN", "皮特凱恩群島" }, + { "PE", "秘魯" }, + { "PH", "菲律賓" }, + { "PW", "帛琉" }, + { "PG", "巴布亞新幾內亞" }, + { "PL", "波蘭" }, + { "PR", "波多黎各" }, + { "KP", "朝鮮" }, + { "PT", "葡萄牙" }, + { "PY", "巴拉圭" }, + { "PS", "巴勒斯坦" }, + { "PF", "法屬玻里尼西亞" }, + { "QA", "卡塔爾" }, + { "RE", "留尼汪" }, + { "RO", "羅馬尼亞" }, + { "RU", "俄羅斯" }, + { "RW", "盧旺達" }, + { "SA", "沙烏地阿拉伯" }, + { "SD", "蘇丹" }, + { "SN", "塞內加爾" }, + { "SG", "新加坡" }, + { "GS", "南喬治亞和南桑威奇群島" }, + { "SH", "聖赫勒拿、阿森松和特里斯坦-達庫尼亞" }, + { "SJ", "斯瓦爾巴和揚馬延" }, + { "SB", "所羅門群島" }, + { "SL", "塞拉利昂" }, + { "SV", "薩爾瓦多" }, + { "SM", "聖馬力諾" }, + { "SO", "索馬里" }, + { "PM", "聖皮埃爾和密克隆" }, + { "RS", "塞爾維亞" }, + { "SS", "南蘇丹" }, + { "ST", "聖多美和普林西比" }, + { "SR", "蘇里南" }, + { "SK", "斯洛伐克" }, + { "SI", "斯洛維尼亞" }, + { "SE", "瑞典" }, + { "SZ", "斯威士蘭 史瓦帝尼" }, + { "SX", "荷屬聖馬丁" }, + { "SC", "塞舌爾" }, + { "SY", "敘利亞" }, + { "TC", "特克斯和凱科斯群島" }, + { "TD", "乍得" }, + { "TG", "多哥" }, + { "TH", "泰國" }, + { "TJ", "塔吉克斯坦" }, + { "TK", "托克勞" }, + { "TM", "土庫曼斯坦" }, + { "TL", "東帝汶" }, + { "TO", "湯加" }, + { "TT", "千里達及托巴哥" }, + { "TN", "突尼西亞" }, + { "TR", "土耳其" }, + { "TV", "圖瓦盧" }, + { "TW", "臺灣地區 中國台灣省" }, + { "TZ", "坦桑尼亞" }, + { "UG", "烏干達" }, + { "UA", "烏克蘭" }, + { "UM", "美國本土外小島嶼" }, + { "UY", "烏拉圭" }, + { "US", "美國" }, + { "UZ", "烏茲別克斯坦" }, + { "VA", "梵蒂岡" }, + { "VC", "聖文森特和格林納丁斯" }, + { "VE", "委內瑞拉" }, + { "VG", "英屬維爾京群島" }, + { "VI", "美屬維爾京群島" }, + { "VN", "越南" }, + { "VU", "瓦努阿圖" }, + { "WF", "瓦利斯和富圖納" }, + { "WS", "薩摩亞" }, + { "YE", "葉門" }, + { "ZA", "南非" }, + { "ZM", "尚比亞" }, + { "ZW", "辛巴威" }, + } + }, + }; + + public static string GetWord(string keyword) { + if (string.IsNullOrEmpty(keyword)) return String.Empty; + string word = string.Empty; + MultilingualDictionary.TryGetValue(Stats.CurrentLanguage, out Dictionary wordsDictionary); + wordsDictionary?.TryGetValue(keyword, out word); + return word; + } + + public static string GetWord(string keyword, Language lang) { + if (string.IsNullOrEmpty(keyword)) return String.Empty; + string word = string.Empty; + MultilingualDictionary.TryGetValue(lang, out Dictionary wordsDictionary); + wordsDictionary?.TryGetValue(keyword, out word); + return word; + } + + public static string GetLevelName(string keyword) { + if (string.IsNullOrEmpty(keyword)) return String.Empty; + string name = string.Empty; + MultilingualLevelsDictionary.TryGetValue(Stats.CurrentLanguage, out Dictionary levelsDictionary); + levelsDictionary?.TryGetValue(keyword, out name); + if (string.IsNullOrEmpty(name)) { name = keyword; } + return name; + } + + public static string GetLevelName(string keyword, Language lang) { + if (string.IsNullOrEmpty(keyword)) return String.Empty; + string name = string.Empty; + MultilingualLevelsDictionary.TryGetValue(lang, out Dictionary levelsDictionary); + levelsDictionary?.TryGetValue(keyword, out name); + return name; + } + + public static string GetShowName(string keyword) { + if (string.IsNullOrEmpty(keyword)) return String.Empty; + string name = string.Empty; + MultilingualShowsDictionary.TryGetValue(Stats.CurrentLanguage, out Dictionary showsDictionary); + showsDictionary?.TryGetValue(keyword, out name); + return name; + } + + public static string GetCountryName(string keyword) { + if (string.IsNullOrEmpty(keyword)) return String.Empty; + string name = string.Empty; + MultilingualCountryDictionary.TryGetValue(Stats.CurrentLanguage, out Dictionary countryDictionary); + countryDictionary?.TryGetValue(keyword, out name); + return name; + } + + public static string GetCountryName(string keyword, Language lang) { + if (string.IsNullOrEmpty(keyword)) return String.Empty; + string name = string.Empty; + MultilingualCountryDictionary.TryGetValue(lang, out Dictionary countryDictionary); + countryDictionary?.TryGetValue(keyword, out name); + return name; + } + + public static Dictionary GetLevelsDictionary() { + MultilingualLevelsDictionary.TryGetValue(Stats.CurrentLanguage, out Dictionary levelsDictionary); + return levelsDictionary; + } + } +} diff --git a/Entities/PersonalBestLog.cs b/Entities/PersonalBestLog.cs new file mode 100644 index 000000000..7d0043be5 --- /dev/null +++ b/Entities/PersonalBestLog.cs @@ -0,0 +1,18 @@ +using System; +using LiteDB; + +namespace FallGuysStats { + public class PersonalBestLog { + [BsonId(true)] + public DateTime PbDate { get; set; } + public string SessionId { get; set; } + public string ShowId { get; set; } + public string RoundId { get; set; } + public double Record { get; set; } + public bool IsPb { get; set; } + public string CountryCode { get; set; } + public int OnlineServiceType { get; set; } + public string OnlineServiceId { get; set; } + public string OnlineServiceNickname { get; set; } + } +} \ No newline at end of file diff --git a/Entities/Profiles.cs b/Entities/Profiles.cs new file mode 100644 index 000000000..efba8bf4e --- /dev/null +++ b/Entities/Profiles.cs @@ -0,0 +1,9 @@ +namespace FallGuysStats { + public class Profiles { + public int ProfileId { get; set; } + public string ProfileName { get; set; } + public int ProfileOrder { get; set; } + public string LinkedShowId { get; set; } + public bool DoNotCombineShows { get; set; } + } +} \ No newline at end of file diff --git a/Entities/ServerConnectionLog.cs b/Entities/ServerConnectionLog.cs new file mode 100644 index 000000000..6e2d01949 --- /dev/null +++ b/Entities/ServerConnectionLog.cs @@ -0,0 +1,18 @@ +using System; +using LiteDB; + +namespace FallGuysStats { + public class ServerConnectionLog { + [BsonId(true)] + public string SessionId { get; set; } + public string ShowId { get; set; } + public string ServerIp { get; set; } + public DateTime ConnectionDate { get; set; } + public string CountryCode { get; set; } + public int OnlineServiceType { get; set; } + public string OnlineServiceId { get; set; } + public string OnlineServiceNickname { get; set; } + public bool IsNotify { get; set; } + public bool IsPlaying { get; set; } + } +} \ No newline at end of file diff --git a/Entities/ServerPingWatcher.cs b/Entities/ServerPingWatcher.cs new file mode 100644 index 000000000..fe95b6db4 --- /dev/null +++ b/Entities/ServerPingWatcher.cs @@ -0,0 +1,72 @@ +using System; +using System.Net.NetworkInformation; +using System.Threading.Tasks; + +namespace FallGuysStats { + public class ServerPingWatcher { + private const int CheckDelay = 2000; + + private Task task; + private bool running; + private bool stop; + + private readonly Ping pingSender = new Ping(); + private PingReply pingReply; + + private readonly Random random = new Random(); + private int randomElement; + private readonly int[] moreDelayValues = { 200, 400, 600, 800, 1000 }; + private int addMoreRandomDelay; + + public void Start() { + if (this.running) return; + + this.stop = false; + this.task = new Task(this.CheckServerPing); + this.task.Start(); + } + + public async Task Stop() { + this.stop = true; + while (this.running || this.task == null || this.task.Status == TaskStatus.Created) { + await Task.Delay(50); + } + await Task.Run(() => this.task?.Wait()); + } + + private async void CheckServerPing() { + this.running = true; + while (!this.stop) { + TimeSpan timeDiff = DateTime.UtcNow - Stats.ConnectedToServerDate; + if (!Stats.IsDisplayOverlayPing || !Stats.IsConnectedToServer || Stats.IsClientHasBeenClosed || timeDiff.TotalMinutes >= 40) { + Stats.LastServerPing = 0; + Stats.IsBadServerPing = false; + this.stop = true; + this.running = false; + return; + } + + try { + this.pingReply = this.pingSender.Send(Stats.LastServerIp, 1000, new byte[32]); + if (this.pingReply != null && this.pingReply.Status == IPStatus.Success) { + Stats.LastServerPing = this.pingReply.RoundtripTime; + Stats.IsBadServerPing = false; + } else { + Stats.LastServerPing = this.pingReply?.RoundtripTime ?? 0; + Stats.IsBadServerPing = true; + } + + this.randomElement = this.random.Next(0, this.moreDelayValues.Length); + this.addMoreRandomDelay = this.moreDelayValues[this.randomElement]; + } catch { + Stats.LastServerPing = 0; + Stats.IsBadServerPing = true; + this.randomElement = this.random.Next(0, this.moreDelayValues.Length); + this.addMoreRandomDelay = this.moreDelayValues[this.randomElement]; + } + + await Task.Delay(CheckDelay + this.addMoreRandomDelay); + } + } + } +} \ No newline at end of file diff --git a/Entities/StatSummary.cs b/Entities/StatSummary.cs new file mode 100644 index 000000000..64d08aef7 --- /dev/null +++ b/Entities/StatSummary.cs @@ -0,0 +1,22 @@ +using System; +namespace FallGuysStats { + public class StatSummary { + public int CurrentStreak { get; set; } + public int CurrentFinalStreak { get; set; } + public int BestStreak { get; set; } + public int BestFinalStreak { get; set; } + public int AllWins { get; set; } + public int TotalWins { get; set; } + public int TotalShows { get; set; } + public int TotalFinals { get; set; } + public int TotalPlays { get; set; } + public int TotalQualify { get; set; } + public int TotalGolds { get; set; } + public TimeSpan? FastestFinish { get; set; } + public TimeSpan? FastestFinishOverall { get; set; } + public TimeSpan? LongestFinish { get; set; } + public TimeSpan? LongestFinishOverall { get; set; } + public int? HighScore { get; set; } + public int? LowScore { get; set; } + } +} \ No newline at end of file diff --git a/Entities/Toast.cs b/Entities/Toast.cs new file mode 100644 index 000000000..11daa810a --- /dev/null +++ b/Entities/Toast.cs @@ -0,0 +1,429 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +namespace FallGuysStats { + public class Toast { + #region Private fields + + private static IWin32Window _window; + internal readonly EunmaToast _eunmaToast; + + #endregion + + // #region Public fields + // + // #endregion + + #region properties + + internal static IWin32Window Window { + get => _window; + set => _window = value; + } + + /// + /// Gets unique ID of Toast + /// + public string Guid { get; } + + /// + /// SequentialId + /// + [DefaultValue(0)] + public int SequentialId { get; internal set; } + + /// + /// Gets or sets caption of Toast + /// + [DefaultValue("")] + public string Caption { get; internal set; } = string.Empty; + + /// + /// Gets or sets description of Toast + /// + [DefaultValue("")] + internal string Description { get; set; } = string.Empty; + + [DefaultValue(null)] internal Font ToastFont { get; set; } + + /// + /// Gets or sets timeout duration of Toast + /// + [DefaultValue(ToastDuration.VERY_SHORT)] + internal ToastDuration ToastDuration { get; set; } = ToastDuration.VERY_SHORT; + + [DefaultValue(ToastSound.Generic01)] + internal ToastSound ToastSound { get; set; } = ToastSound.Generic01; + + [DefaultValue(false)] + internal bool IsMuted { get; set; } + + [DefaultValue(ToastAnimation.FADE)] + internal ToastAnimation ToastAnimation { get; set; } = ToastAnimation.FADE; + + internal Image Thumbnail { get; set; } + internal Image AppOwnerIcon { get; set; } + + [DefaultValue(ToastPosition.BottomRight)] + internal ToastPosition ToastPosition { get; set; } = ToastPosition.BottomRight; + + [DefaultValue(ToastTheme.Dark)] + internal ToastTheme ToastThemeStyle { get; set; } = ToastTheme.Dark; + + [DefaultValue(ToastCloseStyle.ButtonAndClickEntire)] + internal ToastCloseStyle ToastCloseStyle { get; set; } = ToastCloseStyle.ButtonAndClickEntire; + + internal ColorScheme CustomTheme { get; set; } + + #endregion + + #region Constructors + + /// + /// Construct an empty Toast object. You must sets View before you can call Show(). + /// + /// Containter form. Usually MainForm. + internal Toast(IWin32Window window) { + Guid = Utils.GetGuid(); + _window = window; + _eunmaToast = new EunmaToast(); + } + + #endregion + + #region Public methods + + /// + /// Display the Toast for the specified configuration. + /// Thrown when Text property is null or empty + /// + public void Show() { + InternalDisplayToast(); + } + + /// + /// Display the Toast asynchronously for the specified configuration. + /// Thrown when Text property is null or empty + /// + public void ShowAsync() { + InternalDisplayToast(true); + } + + /// + /// Close the Toast if it's showing, or don't show it if it isn't showing yet. You do not normally have to call this. Normally Toast will disappear on its own after the appropriate duration. + /// + public void Cancel() { + if(_eunmaToast.IsShown) + _eunmaToast.Close(); + else + throw new InvalidOperationException("You cannot cancel toast displaying when it doesn't display"); + } + + /// + /// Get current horizontal margin of toast + /// + /// + public int GetHorizontalMargin() { + return _eunmaToast.HorizontalMargin; + } + + /// + /// Get current vertical margin of toast + /// + /// + public int GetVerticalMargin() { + return _eunmaToast.VerticalMargin; + } + + #endregion + + #region Private methods + + private void InternalDisplayToast(bool async = false) { + _eunmaToast.IsAsync = async; + ToastManager.CurrentToast = this; + _eunmaToast.MouseClick += EunmaToastClick; + // _eunmaToast.MouseHover += EunmaToastMouseHover; + _eunmaToast.MouseEnter += EunmaToastMouseEnter; + _eunmaToast.MouseLeave += EunmaToastMouseLeave; + _eunmaToast.FormClosed += EunmaToastFormClosed; + ToastManager.AddToCollection(); + } + + private void EunmaToastFormClosed(object sender, FormClosedEventArgs e) { + OnClosed?.Invoke(this, EventArgs.Empty); + } + + private void EunmaToastMouseEnter(object sender, EventArgs e) { + OnEnter?.Invoke(this, e); + } + + private void EunmaToastMouseLeave(object sender, EventArgs e) { + OnLeave?.Invoke(this, e); + } + + private void EunmaToastMouseHover(object sender, EventArgs e) { + OnHover?.Invoke(this, e); + } + + private void EunmaToastClick(object sender, MouseEventArgs e) { + OnClick?.Invoke(this, e); + } + + #endregion + + #region Public static methods + + /// + /// Build a simplest Toast with Text only. + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// Toast has been create but not yet display. Use Show() to display it. + public static Toast Build(IWin32Window window, string caption) { + var toast = new Toast(window) + { + Caption = caption, + Description = string.Empty + }; + return toast; + } + + /// + /// + /// + /// + /// + /// + /// + public static Toast Build(IWin32Window window, string caption, string description) { + var toast = new Toast(window) { + Caption = caption, + Description = description + }; + return toast; + } + + /// + /// Build a Toast with custom duration and animation. + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// How long to display. SHORT is 2 seconds and LONG is 3 seconds. + /// Toast transition animation style. Use both fading and sliding animation style. + /// Toast has been create but not yet display. Use Show() or ShowAsync() to display it. + public static Toast Build(IWin32Window window, string caption, ToastDuration toastDuration, ToastAnimation toastAnimation) { + var toast = new Toast(window) { + Caption = caption, + ToastDuration = toastDuration, + ToastAnimation = toastAnimation + }; + + return toast; + } + + /// + /// Build Toast with custom duration length. + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// Description + /// How long to display. SHORT is 2 seconds and LONG is 3 seconds. + /// Toast has been create but not yet display. Use Show() or ShowAsync() to display it. + public static Toast Build(IWin32Window window, string caption, string description, ToastDuration toastDuration) { + var toast = new Toast(window) { + Caption = caption, + ToastDuration = toastDuration, + Description = description + }; + + return toast; + } + + /// + /// Build a Toast with custom animation, duration, sound + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// How long to display. SHORT is 2 seconds and LONG is 3 seconds. + /// Toast transition animation style. Use both fading and sliding animation style. + /// Set sound state. Muting or not. Sound using Windows 10 default notification sound + /// Toast has been create but not yet display. Use Show() or ShowAsync() to display it. + public static Toast Build(IWin32Window window, string caption, ToastAnimation toastAnimation, ToastDuration toastDuration, bool muting) { + var toast = new Toast(window) { + Caption = caption, + ToastAnimation = toastAnimation, + ToastDuration = toastDuration, + IsMuted = muting + }; + + return toast; + } + + /// + /// Build a Toast with custom animation + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// Toast transition animation style. Use both fading and sliding animation style. + /// Toast has been create but not yet display. Use Show() or ShowAsync() to display it. + public static Toast Build(IWin32Window window, string caption, ToastAnimation toastAnimation) { + var toast = new Toast(window) { + Caption = caption, + ToastAnimation = toastAnimation + }; + + return toast; + } + + /// + /// Build a simple Toast with specific sound status + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// Set sound state. Muting or not. Sound using Windows 10 default notification sound + /// Toast has been create but not yet display. Use Show() or ShowAsync() to display it. + public static Toast Build(IWin32Window window, string caption, bool muting) { + var toast = new Toast(window) { + Caption = caption, + IsMuted = muting + }; + + return toast; + } + + /// + /// Build a Toast with text and thumbnails and custom duration, animation + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// Thumbnail image to display in Toast. Required image have MINIMUM SIZE 64x64 pixels for best display + /// How long to display. SHORT is 2 seconds and LONG is 3 seconds. + /// Toast transition animation style. Use both fading and sliding animation style. + /// Toast has been create but not yet display. Use Show() to display it + public static Toast Build(IWin32Window window, string caption, Image thumbnail, ToastDuration toastDuration, ToastAnimation toastAnimation) { + var toast = new Toast(window) { + Caption = caption, + Thumbnail = thumbnail, + ToastDuration = toastDuration, + ToastAnimation = toastAnimation + }; + return toast; + } + + /// + /// Build a simple Toast with thumbnail and custom duration, animation and sound + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// Thumbnail image to display in Toast. Required image have MINIMUM SIZE 64x64 pixels for best display + /// How long to display. SHORT is 2 seconds and LONG is 3 seconds. + /// Toast transition animation style. Use both fading and sliding animation style. + /// + /// Toast has been create but not yet display. Use Show() to display it + public static Toast Build(IWin32Window window, string caption, Image thumbnail, ToastDuration toastDuration, ToastAnimation toastAnimation, bool muting) { + var toast = new Toast(window) { + Caption = caption, + Thumbnail = thumbnail, + ToastDuration = toastDuration, + ToastAnimation = toastAnimation, + IsMuted = muting + }; + return toast; + } + + /// + /// Build a simple Toast with thumbnail and custom duration, animation and sound + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// Description + /// Font + /// Thumbnail image to display in Toast. Required image have MINIMUM SIZE 64x64 pixels for best display + /// appOwnerIcon image to display in Toast. + /// How long to display. SHORT is 2 seconds and LONG is 3 seconds. + /// + /// Toast transition animation style. Use both fading and sliding animation style. + /// + /// + /// + /// Toast has been create but not yet display. Use Show() to display it + public static Toast Build(IWin32Window window, string caption, string description, Font toastFont, Image thumbnail, Image appOwnerIcon, ToastDuration toastDuration, ToastPosition toastPosition, ToastAnimation toastAnimation, ToastCloseStyle toastCloseStyle, ToastTheme toastTheme, ToastSound toastSound, bool muting) { + var toast = new Toast(window) { + Caption = caption, + Description = description, + ToastFont = toastFont, + Thumbnail = thumbnail, + AppOwnerIcon = appOwnerIcon, + ToastDuration = toastDuration, + ToastPosition = toastPosition, + ToastAnimation = toastAnimation, + ToastCloseStyle = toastCloseStyle, + ToastThemeStyle = toastTheme, + ToastSound = toastSound, + IsMuted = muting + }; + return toast; + } + + /// + /// Build a simple Toast with thumbnail + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// Thumbnail image to display in Toast. Required image have MINIMUM SIZE 64x64 pixels for best display + /// + public static Toast Build(IWin32Window window, string caption, Image thumbnail) { + var toast = new Toast(window) { + Caption = caption, + Thumbnail = thumbnail + }; + return toast; + } + + /// + /// Build a simple Toast with thumbnail and custom duration + /// + /// Containter form. Usually MainForm. + /// Text to display. Required not null or empty. + /// Thumbnail image to display in Toast. Required image have MINIMUM SIZE 64x64 pixels for best display + /// How long to display. SHORT is 2 seconds and LONG is 3 seconds. + /// + public static Toast Build(IWin32Window window, string caption, Image thumbnail, ToastDuration toastDuration) { + var toast = new Toast(window) { + Caption = caption, + Thumbnail = thumbnail, + ToastDuration = toastDuration + }; + return toast; + } + + #endregion + + #region Events + + public delegate void ClickEventHandler(object sender, EventArgs e); + + public event ClickEventHandler OnClick; + + public delegate void EnterEventHandler(object sender, EventArgs e); + + public event EnterEventHandler OnEnter; + + public delegate void LeaveEventHandler(object sender, EventArgs e); + + public event LeaveEventHandler OnLeave; + + public delegate void HoverEventHandler(object sender, EventArgs e); + + public event HoverEventHandler OnHover; + + public delegate void CloseEventHandler(object sender, EventArgs e); + + public event CloseEventHandler OnClosed; + + #endregion + } +} diff --git a/Entities/ToastBuilder.cs b/Entities/ToastBuilder.cs new file mode 100644 index 000000000..63c80905a --- /dev/null +++ b/Entities/ToastBuilder.cs @@ -0,0 +1,110 @@ +using System.Drawing; +using System.Windows.Forms; + +namespace FallGuysStats { + /// + /// Make your own custom Toast Notification by the Builder + /// + public class ToastBuilder { + private readonly Toast _toast; + + public ToastBuilder(IWin32Window window) { + _toast = new Toast(window); + } + + /// + /// Set caption for toast + /// + /// toast + /// Text data to display + /// + public ToastBuilder SetCaption(string caption) { + _toast.Caption = caption; + return this; + } + + /// + /// Set description for Toast + /// + /// + /// + public ToastBuilder SetDescription(string description) { + _toast.Description = description?.Trim() ?? string.Empty; + return this; + } + + /// + /// Set font for Toast + /// + /// + /// + public ToastBuilder SetFont(Font font) { + _toast.ToastFont = font; + return this; + } + + /// + /// Set duration time of Toast + /// + /// + /// + /// + public ToastBuilder SetDuration(ToastDuration toastDuration) { + _toast.ToastDuration = toastDuration; + return this; + } + + /// + /// Set muting mode for Toast + /// + /// + /// + public ToastBuilder SetMuting(bool muting = false) { + _toast.IsMuted = muting; + return this; + } + + public ToastBuilder SetThumbnail(Image image) { + _toast.Thumbnail = image; + return this; + } + + public ToastBuilder SetAppOwnerIcon(Image image) { + _toast.AppOwnerIcon = image; + return this; + } + + public ToastBuilder SetPosition(ToastPosition toastPosition) { + _toast.ToastPosition = toastPosition; + return this; + } + + public ToastBuilder SetAnimation(ToastAnimation toastAnimation) { + _toast.ToastAnimation = toastAnimation; + return this; + } + + public ToastBuilder SetCloseStyle(ToastCloseStyle toastCloseStyle) { + _toast.ToastCloseStyle = toastCloseStyle; + return this; + } + + public ToastBuilder SetTheme(ToastTheme toastTheme) { + _toast.ToastThemeStyle = toastTheme; + return this; + } + + public ToastBuilder SetSound(ToastSound toastSound) { + _toast.ToastSound = toastSound; + return this; + } + + /// + /// Build the final toast + /// + /// + public Toast Build() { + return _toast; + } + } +} diff --git a/Entities/ToastManager.cs b/Entities/ToastManager.cs new file mode 100644 index 000000000..865ada4d6 --- /dev/null +++ b/Entities/ToastManager.cs @@ -0,0 +1,333 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; + +namespace FallGuysStats { + /// + /// Use the Manager to managing multiple Toast widgets + /// + public static class ToastManager { + public const byte MAX_TOASTS_ALLOWED = 6; + internal static Toast CurrentToast; + + /// + /// Get all toasts displaying + /// + public static ToastCollection ToastCollection { get; private set; } = new ToastCollection(); + + /// + /// Add toast to collection + /// + internal static void AddToCollection() { + if (ToastCollection.Count >= MAX_TOASTS_ALLOWED) return; + if (string.IsNullOrEmpty(CurrentToast.Caption)) { + throw new ArgumentException("Text property is required to display Toast"); + } + + CurrentToast._eunmaToast.Toast = CurrentToast; + CurrentToast._eunmaToast.Caption = CurrentToast.Caption; + CurrentToast._eunmaToast.Description = CurrentToast.Description; + CurrentToast._eunmaToast.ToastFont = CurrentToast.ToastFont; + CurrentToast._eunmaToast.Thumbnails = CurrentToast.Thumbnail; + CurrentToast._eunmaToast.AppOwnerIcon = CurrentToast.AppOwnerIcon; + CurrentToast._eunmaToast.ToastDuration = CurrentToast.ToastDuration; + CurrentToast._eunmaToast.ToastAnimation = CurrentToast.ToastAnimation; + CurrentToast._eunmaToast.ToastCloseStyle = CurrentToast.ToastCloseStyle; + CurrentToast._eunmaToast.ToastTheme = CurrentToast.ToastThemeStyle; + CurrentToast._eunmaToast.ToastSound = CurrentToast.ToastSound; + CurrentToast._eunmaToast.IsMuted = CurrentToast.IsMuted; + + CurrentToast.SequentialId = ToastCollection.NextSequentialId(CurrentToast.ToastPosition); + SetLocation(CurrentToast.ToastPosition); + + ToastCollection.Add(CurrentToast); + CurrentToast._eunmaToast.Show(Toast.Window); + } + + private static void SetLocation(ToastPosition toastPosition) { + var workingArea = Screen.GetWorkingArea(CurrentToast._eunmaToast); + switch (toastPosition) { + case ToastPosition.TopLeft: + if (ToastCollection.Count == 0) { + CurrentToast._eunmaToast.Left = workingArea.Left + CurrentToast.GetHorizontalMargin(); + CurrentToast._eunmaToast.Top = workingArea.Top + CurrentToast.GetVerticalMargin(); + } else { + var collection = ToastCollection.GetTopLeftToasts(); + var enumerable = collection as List ?? collection.ToList(); + if (enumerable.Count == 0) { + CurrentToast._eunmaToast.Left = workingArea.Left + CurrentToast.GetHorizontalMargin(); + CurrentToast._eunmaToast.Top = workingArea.Top + CurrentToast.GetVerticalMargin(); + } else { + CurrentToast._eunmaToast.Left = workingArea.Left + CurrentToast.GetHorizontalMargin(); + CurrentToast._eunmaToast.Top = workingArea.Top + CurrentToast.SequentialId * CurrentToast._eunmaToast.Height + CurrentToast.SequentialId * CurrentToast.GetVerticalMargin() + CurrentToast.GetVerticalMargin(); + } + } + break; + case ToastPosition.TopRight: + if (ToastCollection.Count == 0) { + CurrentToast._eunmaToast.Left = workingArea.Right - CurrentToast._eunmaToast.Width - CurrentToast.GetHorizontalMargin(); + CurrentToast._eunmaToast.Top = workingArea.Top + CurrentToast.GetVerticalMargin(); + } else { + var collection = ToastCollection.GetTopRightToasts(); + var enumerable = collection as List ?? collection.ToList(); + if (enumerable.Count == 0) { + CurrentToast._eunmaToast.Left = workingArea.Right - CurrentToast._eunmaToast.Width - CurrentToast.GetHorizontalMargin(); + CurrentToast._eunmaToast.Top = workingArea.Top + CurrentToast.GetVerticalMargin(); + } else { + CurrentToast._eunmaToast.Left = workingArea.Right - CurrentToast._eunmaToast.Width - CurrentToast.GetHorizontalMargin(); + CurrentToast._eunmaToast.Top = workingArea.Top + CurrentToast.SequentialId * CurrentToast._eunmaToast.Height + CurrentToast.SequentialId * CurrentToast.GetVerticalMargin() + CurrentToast.GetVerticalMargin(); + } + } + break; + case ToastPosition.BottomLeft: + if (ToastCollection.Count == 0) { + CurrentToast._eunmaToast.Location = new Point(workingArea.Left + CurrentToast.GetHorizontalMargin(), + workingArea.Bottom - CurrentToast._eunmaToast.Size.Height - CurrentToast.GetVerticalMargin()); + } else { + var collection = ToastCollection.GetBottomLeftToasts(); + var enumerable = collection as List ?? collection.ToList(); + if (enumerable.Count == 0) { + CurrentToast._eunmaToast.Location = new Point(workingArea.Left + CurrentToast.GetHorizontalMargin(), + workingArea.Bottom - CurrentToast._eunmaToast.Size.Height - CurrentToast.GetVerticalMargin()); + } else { + CurrentToast._eunmaToast.Location = new Point(workingArea.Left + CurrentToast.GetHorizontalMargin(), + workingArea.Bottom - CurrentToast._eunmaToast.Size.Height - CurrentToast._eunmaToast.Size.Height * CurrentToast.SequentialId - CurrentToast.GetVerticalMargin() * CurrentToast.SequentialId - CurrentToast.GetVerticalMargin()); + } + } + break; + case ToastPosition.BottomRight: + if (ToastCollection.Count == 0) { + CurrentToast._eunmaToast.Location = new Point(workingArea.Right - CurrentToast._eunmaToast.Size.Width - CurrentToast.GetHorizontalMargin(), + workingArea.Bottom - CurrentToast._eunmaToast.Size.Height - CurrentToast.GetVerticalMargin()); + } else { + var collection = ToastCollection.GetBottomRightToasts(); + var enumerable = collection as List ?? collection.ToList(); + if (enumerable.Count == 0) { + CurrentToast._eunmaToast.Location = new Point(workingArea.Right - CurrentToast._eunmaToast.Size.Width - CurrentToast.GetHorizontalMargin(), + workingArea.Bottom - CurrentToast._eunmaToast.Size.Height - CurrentToast.GetVerticalMargin()); + } else { + CurrentToast._eunmaToast.Location = new Point(workingArea.Right - CurrentToast._eunmaToast.Size.Width - CurrentToast.GetHorizontalMargin(), + workingArea.Bottom - CurrentToast._eunmaToast.Size.Height - CurrentToast._eunmaToast.Size.Height * CurrentToast.SequentialId - CurrentToast.GetVerticalMargin() * CurrentToast.SequentialId - CurrentToast.GetVerticalMargin()); + } + } + break; + } + } + + } + + public class ToastCollection : ICollection { + private readonly List _privateList; + + /// + /// Initialize empty Toast collection + /// + public ToastCollection() { + _privateList = new List(ToastManager.MAX_TOASTS_ALLOWED); + } + + /// + /// Initialize Toast collection from other collection + /// + /// + public ToastCollection(ToastCollection other) { + if (other != null) { + _privateList = new List(other._privateList) { + Capacity = ToastManager.MAX_TOASTS_ALLOWED + }; + } + } + + /// + /// Gets or sets value of specific Toast in collection by index + /// + /// + /// + public Toast this[int index0] { + get => _privateList[index0]; + set => _privateList[index0] = value; + } + + /// + /// Locate index of Toast in collection + /// + /// + /// + public int Locate(Toast toast) { + return _privateList.IndexOf(toast); + } + + /// + /// + /// + /// + public IEnumerator GetEnumerator() { + return _privateList.GetEnumerator(); + } + + /// + /// + /// + /// + IEnumerator IEnumerable.GetEnumerator() { + return GetEnumerator(); + } + + // public List Get() { + // return _privateList; + // } + + /// + /// + /// Add new Toast item to collection + /// + /// A Toast object + public void Add(Toast item) { + _privateList.Add(item); + ToastAdded?.Invoke(this, new ToastChangedEventArgs(item)); + } + + /// + /// + /// This will truncate collection, means all items will be cleaned + /// + public void Clear() { + _privateList.Clear(); + if (_privateList.Count == 0) { + CollectionTruncated?.Invoke(this, EventArgs.Empty); + } + } + + public bool Contains(Toast item) { + if(item == null) throw new NullReferenceException("Toast item cannot be null"); + if (_privateList.Count == 0) return false; + foreach (var toast in _privateList) { + if (toast.Guid.Contains(toast.Guid)) { + return true; + } + } + return false; + } + + public void CopyTo(Toast[] array, int arrayIndex) { + _privateList.CopyTo(array, arrayIndex); + } + + /// + /// + /// Remove Toast item from current collection + /// + /// + /// + public bool Remove(Toast toast) { + var res = _privateList.Remove(toast); + if (res) { + ToastRemoved?.Invoke(this, new ToastChangedEventArgs(toast)); + if (_privateList.Count == 0) { + CollectionTruncated?.Invoke(this, EventArgs.Empty); + } + } + return res; + } + + /// + /// Remove all Toasts matched condition in predicate + /// + /// + /// + public int RemoveAll(Predicate match) { + var num = _privateList.RemoveAll(match); + if (_privateList.Count == 0) { + CollectionTruncated?.Invoke(this, EventArgs.Empty); + } + return num; + } + + public int NextSequentialId(ToastPosition toastPosition) { + for (int i = 0; i < ToastManager.MAX_TOASTS_ALLOWED; i++) { + if (!_privateList.Exists(toast => toast.ToastPosition == toastPosition && toast.SequentialId == i)) return i; + } + return 0; + } + + /// + /// Get all Top-Right Toasts in collection + /// + /// Top-Left Toast list + public IEnumerable GetTopLeftToasts() { + if (_privateList.Count == 0) yield break; + foreach (var toast in _privateList) { + if (toast.ToastPosition == ToastPosition.TopLeft) { + yield return toast; + } + } + } + + /// + /// Get all Top-Right Toasts in collection + /// + /// Top-Right Toast list + public IEnumerable GetTopRightToasts() { + if (_privateList.Count == 0) yield break; + foreach (var toast in _privateList) { + if (toast.ToastPosition == ToastPosition.TopRight) { + yield return toast; + } + } + } + + /// + /// Get all Bottom-Left Toasts in collection + /// + /// + public IEnumerable GetBottomLeftToasts() { + if(_privateList.Count == 0) yield break; + foreach (var toast in _privateList) { + if (toast.ToastPosition == ToastPosition.BottomLeft) { + yield return toast; + } + } + } + + /// + /// Get all Bottom-Right Toasts in collection + /// + /// + public IEnumerable GetBottomRightToasts() { + if(_privateList.Count == 0) yield break; + foreach (var toast in _privateList) { + if (toast.ToastPosition == ToastPosition.BottomRight) { + yield return toast; + } + } + } + + public int Count => _privateList.Count; + public bool IsReadOnly => false; + + public delegate void ToastAddedEventHandler(object sender, ToastChangedEventArgs e); + + public event ToastAddedEventHandler ToastAdded; + + public delegate void ToastRemovedEventHandler(object sender, ToastChangedEventArgs e); + + public event ToastRemovedEventHandler ToastRemoved; + + public delegate void CollectionTruncatedEventHandler(object sender, EventArgs e); + + public event CollectionTruncatedEventHandler CollectionTruncated; + } + + public class ToastChangedEventArgs : EventArgs { + private readonly Toast _toast; + + public Toast Toast => _toast; + + public ToastChangedEventArgs(Toast toast) { + _toast = toast; + } + } +} diff --git a/Entities/ToastThemeBuilder.cs b/Entities/ToastThemeBuilder.cs new file mode 100644 index 000000000..f89776bb6 --- /dev/null +++ b/Entities/ToastThemeBuilder.cs @@ -0,0 +1,58 @@ +using System.Drawing; + +namespace FallGuysStats { + public class ToastThemeBuilder { + internal static ColorScheme CustomScheme; + + public static void CreateCustomScheme(Color backgroundColor, Color foregroundColor) { + CustomScheme = new ColorScheme(backgroundColor.R, backgroundColor.B, backgroundColor.G, foregroundColor.R, foregroundColor.B, foregroundColor.G); + } + internal static class BuiltinScheme { + internal static readonly ColorScheme DarkScheme = new ColorScheme(33, 33, 33, 255,255,255); + internal static readonly ColorScheme LightScheme = new ColorScheme(255, 255, 255, 33, 33, 33); + internal static readonly ColorScheme PrimaryLightScheme = new ColorScheme(33, 150, 243, 255,255,255); + internal static readonly ColorScheme SuccessLightScheme = new ColorScheme(76, 175, 80, 255, 255, 255); + internal static readonly ColorScheme WarningLightScheme = new ColorScheme(255, 152, 0, 255, 255, 255); + internal static readonly ColorScheme ErrorLightScheme = new ColorScheme(213, 0, 0, 255, 255, 255); + internal static readonly ColorScheme PrimaryDarkScheme = new ColorScheme(33, 33, 33, 33, 150, 243); + internal static readonly ColorScheme SuccessDarkScheme = new ColorScheme(33, 33, 33, 76, 175, 80); + internal static readonly ColorScheme WarningDarkScheme = new ColorScheme(33, 33, 33, 255, 152, 0); + internal static readonly ColorScheme ErrorDarkScheme = new ColorScheme(33, 33, 33, 213,0,0); + } + } + + public class ColorScheme { + private byte RBg { get; set; } + private byte BBg { get; set; } + private byte GBg { get; set; } + private byte RFg { get; set; } + private byte BFg { get; set; } + private byte GFg { get; set; } + + /// + /// Create new color scheme + /// + /// + /// + /// + /// + /// + /// + public ColorScheme(byte rbg, byte bbg, byte gbg, byte rfg, byte bfg, byte gfg) { + RBg = rbg; + BBg = bbg; + GBg = gbg; + RFg = rfg; + BFg = bfg; + GFg = gfg; + } + + public Color GetBackgroundColor() { + return Color.FromArgb(RBg, BBg, GBg); + } + + public Color GetForegroundColor() { + return Color.FromArgb(RFg, BFg, GFg); + } + } +} diff --git a/Entities/UpcomingShow.cs b/Entities/UpcomingShow.cs new file mode 100644 index 000000000..4235a53e4 --- /dev/null +++ b/Entities/UpcomingShow.cs @@ -0,0 +1,15 @@ +using System; + +namespace FallGuysStats { + public class UpcomingShow { + public string ShowId { get; set; } + public string LevelId { get; set; } + public string ShareCode { get; set; } + public string DisplayName { get; set; } + public LevelType LevelType { get; set; } + public BestRecordType BestRecordType { get; set; } + public bool IsCreative { get; set; } + public bool IsFinal { get; set; } + public DateTime AddDate { get; set; } + } +} \ No newline at end of file diff --git a/Entities/UserSettings.cs b/Entities/UserSettings.cs new file mode 100644 index 000000000..fadb57dfa --- /dev/null +++ b/Entities/UserSettings.cs @@ -0,0 +1,105 @@ +using System; + +namespace FallGuysStats { + public class UserSettings { + public int ID { get; set; } + public int Multilingual { get; set; } + public string LogPath { get; set; } + public int Theme { get; set; } + public bool Visible { get; set; } + public int FilterType { get; set; } + public DateTime CustomFilterRangeStart { get; set; } + public DateTime CustomFilterRangeEnd { get; set; } + public int SelectedCustomTemplateSeason { get; set; } + public int SelectedProfile { get; set; } + public int? OverlayLocationX { get; set; } + public int? OverlayLocationY { get; set; } + public string OverlayFixedPosition { get; set; } + public int? OverlayFixedPositionX { get; set; } + public int? OverlayFixedPositionY { get; set; } + public int? OverlayFixedWidth { get; set; } + public int? OverlayFixedHeight { get; set; } + public int OverlayBackground { get; set; } + public string OverlayBackgroundResourceName { get; set; } + public string OverlayTabResourceName { get; set; } + public int OverlayBackgroundOpacity { get; set; } + public bool IsOverlayBackgroundCustomized { get; set; } + public int OverlayColor { get; set; } + public int LockButtonLocation { get; set; } + public bool FlippedDisplay { get; set; } + public bool FixedFlippedDisplay { get; set; } + public bool SwitchBetweenLongest { get; set; } + public bool SwitchBetweenQualify { get; set; } + public bool SwitchBetweenPlayers { get; set; } + public bool SwitchBetweenStreaks { get; set; } + public bool OnlyShowLongest { get; set; } + public bool OnlyShowGold { get; set; } + public bool OnlyShowPing { get; set; } + public bool OnlyShowFinalStreak { get; set; } + public int CycleTimeSeconds { get; set; } + public bool OverlayVisible { get; set; } + public bool OverlayNotOnTop { get; set; } + public bool PlayerByConsoleType { get; set; } + public bool ColorByRoundType { get; set; } + public bool AutoChangeProfile { get; set; } + public bool ShadeTheFlagImage { get; set; } + public bool DisplayCurrentTime { get; set; } + public bool DisplayGamePlayedInfo { get; set; } + public bool CountPlayersDuringTheLevel { get; set; } + public int PreviousWins { get; set; } + public int WinsFilter { get; set; } + public int FastestFilter { get; set; } + public int QualifyFilter { get; set; } + public bool HideWinsInfo { get; set; } + public bool HideRoundInfo { get; set; } + public bool HideTimeInfo { get; set; } + public bool ShowOverlayTabs { get; set; } + //public bool ShowOverlayProfile { get; set; } + public bool ShowPercentages { get; set; } + public bool UpdatedDateFormat { get; set; } + public bool AutoUpdate { get; set; } + public bool SystemTrayIcon { get; set; } + public bool PreventOverlayMouseClicks { get; set; } + public bool NotifyServerConnected { get; set; } + public bool NotifyPersonalBest { get; set; } + public bool MuteNotificationSounds { get; set; } + public int NotificationSounds { get; set; } + public int NotificationWindowPosition { get; set; } + public int NotificationWindowAnimation { get; set; } + public bool MaximizedWindowState { get; set; } + public int? FormLocationX { get; set; } + public int? FormLocationY { get; set; } + public int? FormWidth { get; set; } + public int? FormHeight { get; set; } + public int? OverlayWidth { get; set; } + public int? OverlayHeight { get; set; } + public bool HideOverlayPercentages { get; set; } + public bool HoopsieHeros { get; set; } + public int LevelTimeLimitVersion { get; set; } + public int UpcomingShowVersion { get; set; } + public int Version { get; set; } + public bool IgnoreLevelTypeWhenSorting { get; set; } + public bool GroupingCreativeRoundLevels { get; set; } + public bool RecordEscapeDuringAGame { get; set; } + public int LaunchPlatform { get; set; } + public string GameExeLocation { get; set; } + public string GameShortcutLocation { get; set; } + public bool AutoLaunchGameOnStartup { get; set; } + public string OverlayFontSerialized { get; set; } + public string OverlayFontColorSerialized { get; set; } + public int WinPerDayGraphStyle { get; set; } + public bool ShowChangelog { get; set; } + public bool EnableFallalyticsReporting { get; set; } + public bool EnableFallalyticsWeeklyCrownLeague { get; set; } + public bool EnableFallalyticsAnonymous { get; set; } + public string FallalyticsAPIKey { get; set; } + public bool UseProxyServer { get; set; } + public string ProxyAddress { get; set; } + public string ProxyPort { get; set; } + public bool EnableProxyAuthentication { get; set; } + public string ProxyUsername { get; set; } + public string ProxyPassword { get; set; } + public bool SucceededTestProxy { get; set; } + public int IpGeolocationService { get; set; } + } +} \ No newline at end of file diff --git a/Entities/Utils.cs b/Entities/Utils.cs new file mode 100644 index 000000000..6d80e64e8 --- /dev/null +++ b/Entities/Utils.cs @@ -0,0 +1,517 @@ +using System; +using System.Diagnostics; +using System.Drawing; +using System.Drawing.Imaging; +using System.Globalization; +using System.Linq; +using System.Net; +using System.Runtime.InteropServices; +using System.Security.Cryptography; +using System.Text.Json; +using System.Text.RegularExpressions; +using System.Windows.Forms; + +namespace FallGuysStats { + public static class Utils { + public static readonly string FALLGUYSSTATS_LATEST_DB_VERSIONS_URL = "https://raw.githubusercontent.com/Micdu70/FallGuysStats/refs/heads/dev/DB_Versions.json"; + public static readonly string FALLGUYSSTATS_LEVEL_TIME_LIMIT_DB_URL = "https://raw.githubusercontent.com/Micdu70/FallGuysStats/refs/heads/dev/LevelTimeLimitDB.json"; + public static readonly string FALLGUYSSTATS_UPCOMING_SHOW_DB_URL = "https://raw.githubusercontent.com/Micdu70/FallGuysStats/refs/heads/dev/UpcomingShowDB.json"; + public static readonly string FALLGUYSSTATS_RELEASES_LATEST_INFO_URL = "https://api.github.com/repos/ShootMe/FallGuysStats/releases/latest"; + public static readonly string FALLGUYSSTATS_RELEASES_LATEST_DOWNLOAD_URL = "https://github.com/ShootMe/FallGuysStats/releases/latest/download/FallGuysStats.zip"; + public static readonly string FALLGUYSDB_API_URL = "https://api2.fallguysdb.info/api/"; // $"{FALLGUYSDB_API_URL}creative/{shareCode}.json" or $"{FALLGUYSDB_API_URL}upcoming-shows" + public static readonly string FGANALYST_API_URL = "https://cloudseeker.xyz/api/cv2/"; // $"{FGANALYST_API_URL}creative/?share_code={shareCode}" + private static readonly string IP2C_ORG_URL = "https://ip2c.org/"; // $"{IP2C_ORG_URL}{ip}" + private static readonly string IPINFO_IO_URL = "https://ipinfo.io/"; // $"{IPINFO_IO_URL}{ip}/json" or $"{IPINFO_IO_URL}{ip}?token=" + private static readonly string IPAPI_COM_URL = "http://ip-api.com/json/"; // $"{IPAPI_COM_URL}{ip}" + private static readonly string NORDVPN_COM_URL = "https://nordvpn.com/wp-admin/admin-ajax.php?action=get_user_info_data&ip="; // $"{NORDVPN_COM_URL}{ip}" + + [DllImport("User32.dll")] + public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); + + [DllImport("user32.dll")] + public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); + + [DllImport("user32.dll")] + public static extern bool SetForegroundWindow(IntPtr hWnd); + + [DllImport("User32.dll")] + public static extern bool MoveWindow(IntPtr h, int x, int y, int width, int height, bool redraw); + + //[DllImport("user32.dll")] + //private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount); + //[DllImport("user32.dll")] + //public static extern IntPtr GetForegroundWindow(); + //[DllImport("user32.dll")] + //private static extern IntPtr GetActiveWindow(); + // Import dwmapi.dll and define DwmSetWindowAttribute in C# corresponding to the native function. + + [DllImport("dwmapi.dll", CharSet = CharSet.Unicode, SetLastError = true)] + public static extern long DwmSetWindowAttribute(IntPtr hWnd, DWMWINDOWATTRIBUTE attribute, ref DWM_WINDOW_CORNER_PREFERENCE pvAttribute, uint cbAttribute); + + [DllImport("user32")] + public static extern bool AnimateWindow(IntPtr hwnd, int time, int flags); + + public static string GetGuid() { + var guid = Guid.NewGuid(); + return guid.ToString("N"); + } + + public static bool IsProcessRunning(string processName) { + try { + Process[] processes = Process.GetProcessesByName(processName); + if (processes.Length > 0) { + return true; + } + return false; + } catch { + return false; + } + } + + public static Bitmap ImageOpacity(Image sourceImage, float opacity = 1F) { + Bitmap bmp = new Bitmap(sourceImage.Width, sourceImage.Height); + Graphics gp = Graphics.FromImage(bmp); + ColorMatrix clrMatrix = new ColorMatrix { Matrix33 = opacity }; + ImageAttributes imgAttribute = new ImageAttributes(); + imgAttribute.SetColorMatrix(clrMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + gp.DrawImage(sourceImage, new Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, sourceImage.Width, sourceImage.Height, GraphicsUnit.Pixel, imgAttribute); + gp.Dispose(); + return bmp; + } + + public static Bitmap ResizeImageWidth(Image source, int width) { + float ratio = (float)width / source.Width; + return new Bitmap(source, new Size((int)(source.Width * ratio), (int)(source.Height * ratio))); + } + + public static Bitmap ResizeImageHeight(Image source, int height) { + float ratio = (float)height / source.Height; + return new Bitmap(source, new Size((int)(source.Width * ratio), (int)(source.Height * ratio))); + } + + public static Bitmap ResizeImageScale(Image source, float scale) { + if (scale <= 0) { scale = 1; } + return new Bitmap(source, new Size((int)(source.Width * scale), (int)(source.Height * scale))); + } + + public static Color GetComplementaryColor(Color source, int alpha = 255) { + return Color.FromArgb(Math.Min(255, Math.Max(0, alpha)), Math.Min(255, Math.Max(0, 255 - source.R)), Math.Min(255, Math.Max(0, 255 - source.G)), Math.Min(255, Math.Max(0, 255 - source.B))); + } + + public static Color GetColorBrightnessAdjustment(Color sourceColor, float fBrightness) { + return Color.FromArgb(sourceColor.A, Math.Min(255, Math.Max(0, (int)(sourceColor.R * fBrightness))), Math.Min(255, Math.Max(0, (int)(sourceColor.G * fBrightness))), Math.Min(255, Math.Max(0, (int)(sourceColor.B * fBrightness)))); + } + + public static string ComputeHash(byte[] input, HashTypes hashType) { + if (input == null || input.Length == 0) return string.Empty; + HashAlgorithm hashAlgorithm = null; + switch (hashType) { + case HashTypes.MD5: + hashAlgorithm = MD5.Create(); break; + case HashTypes.RIPEMD160: + hashAlgorithm = RIPEMD160.Create(); break; + case HashTypes.SHA1: + hashAlgorithm = SHA1.Create(); break; + case HashTypes.SHA256: + hashAlgorithm = SHA256.Create(); break; + case HashTypes.SHA384: + hashAlgorithm = SHA384.Create(); break; + case HashTypes.SHA512: + hashAlgorithm = SHA512.Create(); break; + } + + if (hashAlgorithm != null) { + return BitConverter.ToString(hashAlgorithm.ComputeHash(input)).Replace("-", "").ToLowerInvariant(); + } + + return string.Empty; + } + + // public T[] ConcatArrays(params T[][] sourceArrays) { + // int totalLength = sourceArrays.Sum(arr => arr.Length); + // T[] destinationArray = new T[totalLength]; + // + // int destinationIndex = 0; + // foreach (T[] sourceArray in sourceArrays) { + // Array.Copy(sourceArray, 0, destinationArray, destinationIndex, sourceArray.Length); + // destinationIndex += sourceArray.Length; + // } + // + // return destinationArray; + // } + + public static bool IsOnScreen(int x, int y, int w, int h) { + Screen[] screens = Screen.AllScreens; + foreach (Screen screen in screens) { + if (screen.WorkingArea.Contains(new Point(x, y)) || screen.WorkingArea.Contains(new Point(x + w, y + h))) { + return true; + } + } + return false; + } + + public static Screen GetCurrentScreen(Point location) { + Screen[] scr = Screen.AllScreens; + Screen screen = Screen.PrimaryScreen; + foreach (Screen s in scr) { + if (s.WorkingArea.Contains(location)) { + screen = s; + break; + } + } + return screen; + } + + public static bool IsInternetConnected() { + const string CONNECT_TEST_URL = "http://www.msftconnecttest.com/connecttest.txt"; + const string CONNECT_TEST_RESULT = "Microsoft Connect Test"; + + using (var webClient = new WebClient()) { + try { + return string.Equals(webClient.DownloadString(CONNECT_TEST_URL), CONNECT_TEST_RESULT); + } catch { + return false; + } + } + } + + public static bool IsDomainNameValid(string url) { + try { + Uri uri = new Uri(url); + string host = uri.Host; + IPAddress[] addresses = Dns.GetHostAddresses(host); + return addresses.Length > 0; + } catch { + return false; + } + } + + public static bool IsEndpointValid(string url) { + try { + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + request.Method = "HEAD"; + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { + if (response.StatusCode == HttpStatusCode.OK) { + return true; + } else { + return false; + } + } + } catch { + return false; + } + } + + private static string[] GetCountryCodeUsingIp2c(string host) { + string[] countryInfo = { string.Empty, string.Empty }; + using (ApiWebClient web = new ApiWebClient()) { + string resStr = Regex.Unescape(web.DownloadString($"{IP2C_ORG_URL}{host}")); + string[] resArr = resStr.Split(';'); + if (string.Equals(resArr[0], "1")) { + countryInfo[0] = resArr[1]; // alpha-2 code + countryInfo[1] = resArr[3]; // a full country name + } + } + return countryInfo; + } + + private static string[] GetCountryCodeUsingIpinfo(string host) { + string[] countryInfo = { string.Empty, string.Empty, string.Empty }; + using (ApiWebClient web = new ApiWebClient()) { + string url = Stats.IpGeolocationService == 1 ? $"{IPINFO_IO_URL}{host}?token={Stats.IPinfoToken}" : $"{IPINFO_IO_URL}{host}/json"; + string resJsonStr = web.DownloadString(url); + JsonClass json = Json.Read(resJsonStr) as JsonClass; + if (!string.IsNullOrEmpty(json["country"].AsString())) countryInfo[0] = Regex.Unescape(json["country"].AsString()); // alpha-2 code + if (!string.IsNullOrEmpty(json["region"].AsString())) countryInfo[1] = Regex.Unescape(json["region"].AsString()); + if (!string.IsNullOrEmpty(json["city"].AsString())) countryInfo[2] = Regex.Unescape(json["city"].AsString()); + } + return countryInfo; + } + + private static string[] GetCountryCodeUsingIpapi(string host) { + string[] countryInfo = { string.Empty, string.Empty, string.Empty }; + using (ApiWebClient web = new ApiWebClient()) { + string resJsonStr = web.DownloadString($"{IPAPI_COM_URL}{host}"); + JsonClass json = Json.Read(resJsonStr) as JsonClass; + if (!string.IsNullOrEmpty(json["countryCode"].AsString())) countryInfo[0] = Regex.Unescape(json["countryCode"].AsString()); // alpha-2 code + // if (!string.IsNullOrEmpty(json["country"].AsString())) countryInfo[1] = Regex.Unescape(json["country"].AsString()); // a full country name + if (!string.IsNullOrEmpty(json["regionName"].AsString())) countryInfo[1] = Regex.Unescape(json["regionName"].AsString()); + if (!string.IsNullOrEmpty(json["city"].AsString())) countryInfo[2] = Regex.Unescape(json["city"].AsString()); + } + return countryInfo; + } + + public static string[] GetCountryCodeUsingNordvpn(string host) { + string[] countryInfo = { string.Empty, string.Empty, string.Empty }; + using (ApiWebClient web = new ApiWebClient()) { + string resJsonStr = web.DownloadString($"{NORDVPN_COM_URL}{host}"); + JsonClass json = Json.Read(resJsonStr) as JsonClass; + if (!string.IsNullOrEmpty(json["country_code"].AsString())) countryInfo[0] = Regex.Unescape(json["country_code"].AsString()); // alpha-2 code + // if (!string.IsNullOrEmpty(json["country"].AsString())) countryInfo[1] = Regex.Unescape(json["country"].AsString()); // a full country name + if (!string.IsNullOrEmpty(json["region"].AsString())) countryInfo[1] = Regex.Unescape(json["region"].AsString()); + if (!string.IsNullOrEmpty(json["city"].AsString())) countryInfo[2] = Regex.Unescape(json["city"].AsString()); + } + return countryInfo; + } + + public static JsonElement GetApiData(string apiUrl, string apiEndPoint = "") { + JsonElement resJroot; + using (ApiWebClient web = new ApiWebClient()) { + string responseJsonString = web.DownloadString($"{apiUrl}{apiEndPoint}"); + JsonDocument jdom = JsonDocument.Parse(responseJsonString); + resJroot = jdom.RootElement; + } + return resJroot; + } + + public static string GetUserPublicIp() { + using (ApiWebClient web = new ApiWebClient()) { + web.UseWebProxy = false; + try { + string publicIp = web.DownloadString($"{IPINFO_IO_URL}ip").Trim(); + return publicIp; + } catch { + return string.Empty; + } + } + } + + public static string GetCountryCode(string ip) { + if (string.IsNullOrEmpty(ip)) { return string.Empty; } + try { + string countryCode; + switch (Stats.IpGeolocationService) { + case 1: + countryCode = GetCountryCodeUsingIpinfo(ip)[0]; // alpha-2 code + if (string.IsNullOrEmpty(countryCode)) { + countryCode = GetCountryCodeUsingIp2c(ip)[0]; // alpha-2 code + } + if (string.IsNullOrEmpty(countryCode)) { + countryCode = GetCountryCodeUsingNordvpn(ip)[0]; // alpha-2 code + } + if (string.IsNullOrEmpty(countryCode)) { + countryCode = GetCountryCodeUsingIpapi(ip)[0]; // alpha-2 code + } + break; + default: + countryCode = GetCountryCodeUsingIp2c(ip)[0]; // alpha-2 code + if (string.IsNullOrEmpty(countryCode)) { + countryCode = GetCountryCodeUsingNordvpn(ip)[0]; // alpha-2 code + } + if (string.IsNullOrEmpty(countryCode)) { + countryCode = GetCountryCodeUsingIpinfo(ip)[0]; // alpha-2 code + } + if (string.IsNullOrEmpty(countryCode)) { + countryCode = GetCountryCodeUsingIpapi(ip)[0]; // alpha-2 code + } + break; + } + return countryCode; + } catch { + return string.Empty; + } + } + + public static string GetCountryInfo(string ip) { + if (string.IsNullOrEmpty(ip)) { return string.Empty; } + try { + string[] rtnValue; + string countryInfo; + switch (Stats.IpGeolocationService) { + case 1: + rtnValue = GetCountryCodeUsingIpinfo(ip); + countryInfo = $"{rtnValue[0]};{rtnValue[1]};{rtnValue[2]}"; // alpha-2 code ; region ; city + if (string.IsNullOrEmpty(rtnValue[0])) { + rtnValue = GetCountryCodeUsingNordvpn(ip); + countryInfo = $"{rtnValue[0]};{rtnValue[1]};{rtnValue[2]}"; // alpha-2 code ; region ; city + } + if (string.IsNullOrEmpty(rtnValue[0])) { + rtnValue = GetCountryCodeUsingIpapi(ip); + countryInfo = $"{rtnValue[0]};{rtnValue[1]};{rtnValue[2]}"; // alpha-2 code ; region ; city + } + break; + default: + rtnValue = GetCountryCodeUsingNordvpn(ip); + countryInfo = $"{rtnValue[0]};{rtnValue[1]};{rtnValue[2]}"; // alpha-2 code ; region ; city + if (string.IsNullOrEmpty(rtnValue[0])) { + rtnValue = GetCountryCodeUsingIpinfo(ip); + countryInfo = $"{rtnValue[0]};{rtnValue[1]};{rtnValue[2]}"; // alpha-2 code ; region ; city + } + if (string.IsNullOrEmpty(rtnValue[0])) { + rtnValue = GetCountryCodeUsingIpapi(ip); + countryInfo = $"{rtnValue[0]};{rtnValue[1]};{rtnValue[2]}"; // alpha-2 code ; region ; city + } + break; + } + return countryInfo; + } catch { + return string.Empty; + } + } + + public static string GetRelativeTime(DateTime targetTime) { + TimeSpan diff = DateTime.Now - targetTime; + double days = diff.TotalDays; + int weeks = (int)Math.Floor(days / 7); + int months = (int)Math.Floor(days / 30.436875); + int years = (int)Math.Floor(days / 365.25); + // if (diff.TotalMinutes < 1) + // return Stats.CurrentLanguage == Language.Korean ? "방금 전" : "Just now"; + // else if (diff.TotalMinutes < 60) + // return Stats.CurrentLanguage == Language.Korean ? $"{Math.Floor(diff.TotalMinutes)}분 전" : $"{Math.Floor(diff.TotalMinutes)} minutes ago"; + // else if (diff.TotalHours < 24) + // return Stats.CurrentLanguage == Language.Korean ? $"{Math.Floor(diff.TotalHours)}시간 전" : $"{Math.Floor(diff.TotalHours)} hour ago"; + if (diff.TotalMinutes <= 10) { + return Multilingual.GetWord("leaderboard_grid_just_before"); + } else if (days < 1) { + return Multilingual.GetWord("leaderboard_grid_today"); + } else if (days < 2) { + return Multilingual.GetWord("leaderboard_grid_yesterday"); + // } else if (days < 3) { + // return Multilingual.GetWord("leaderboard_grid_the_day_before_yesterday"); + } else if (days < 7) { + return $"{Multilingual.GetWord("leaderboard_grid_n_days_ago_prefix")}{Math.Floor(diff.TotalDays)}{Multilingual.GetWord("leaderboard_grid_n_days_ago_suffix")}"; + } else if (weeks < 5) { + return $"{Multilingual.GetWord("leaderboard_grid_n_weeks_ago_prefix")}{weeks}{Multilingual.GetWord("leaderboard_grid_n_weeks_ago_suffix")}"; + } else if (months < 12) { + return $"{Multilingual.GetWord("leaderboard_grid_n_months_ago_prefix")}{months}{Multilingual.GetWord("leaderboard_grid_n_months_ago_suffix")}"; + } else { + return $"{Multilingual.GetWord("leaderboard_grid_n_years_ago_prefix")}{years}{Multilingual.GetWord("leaderboard_grid_n_years_ago_suffix")}"; + } + } + + public static string FormatTime(double value) { + TimeSpan time = TimeSpan.FromMilliseconds(value); + if (time.TotalSeconds < 60) { + return $"{time.TotalSeconds:F3}{Multilingual.GetWord("leaderboard_grid_time_suffix")}"; + } else { + return $"{time.Minutes}{Multilingual.GetWord("leaderboard_grid_time_prefix")} {time.Seconds:D2}.{time.Milliseconds:D3}{Multilingual.GetWord("leaderboard_grid_time_suffix")}"; + } + } + + public static string AppendOrdinal(int rank) { + string number = rank.ToString(); + if (rank <= 0) return number; + + if (Stats.CurrentLanguage == Language.French) { + switch (rank) { + case 1: return number + "er"; + default: return number + "e"; + } + } else if (Stats.CurrentLanguage == Language.Spanish) { + return number + "°"; + } else if (Stats.CurrentLanguage == Language.Korean) { + return number + "위"; + } else if (Stats.CurrentLanguage == Language.Japanese) { + return number + "位"; + } else if (Stats.CurrentLanguage == Language.SimplifiedChinese || Stats.CurrentLanguage == Language.TraditionalChinese) { + return "第" + number + "名"; + } else { + switch (rank % 100) { + case 11: + case 12: + case 13: + return number + "th"; + } + switch (rank % 10) { + case 1: return number + "st"; + case 2: return number + "nd"; + case 3: return number + "rd"; + default: return number + "th"; + } + } + } + + public static string GetWeekString(int year, int week) { + if (year == 0 || week == 0) return string.Empty; + + switch (Stats.CurrentLanguage) { + case Language.French: + return $"Semaine {week}, {year}"; + case Language.Spanish: + return $"Semana {week}, {year}"; + case Language.Korean: + return $"{year}년 {week}주차"; + case Language.Japanese: + return $"{year}年{week}週目"; + case Language.SimplifiedChinese: + return $"第 {week} 周,{year} 年"; + case Language.TraditionalChinese: + return $"第 {week} 週,{year} 年"; + default: + return $"Week {week}, {year}"; + } + } + + public static string GetStartAndEndDates(int year, int weekOfYear) { + DateTime jan1 = new DateTime(year, 1, 1); + int daysOffset = DayOfWeek.Thursday - jan1.DayOfWeek; + + DateTime firstThursday = jan1.AddDays(daysOffset); + var cal = CultureInfo.InvariantCulture.Calendar; + int firstWeek = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); + + var weekNum = weekOfYear; + if (firstWeek <= 1) { + weekNum -= 1; + } + var result = firstThursday.AddDays(weekNum * 7); + + DateTime start = result.AddDays(-3); + DateTime end = start.AddDays(6); + switch (Stats.CurrentLanguage) { + case Language.French: + return $"{start.ToString(GetDateFormat(), GetCultureInfo())} - {end.ToString(GetDateFormat(), GetCultureInfo())}"; + case Language.Spanish: + return $"{start.ToString(GetDateFormat(), GetCultureInfo())} - {end.ToString(GetDateFormat(), GetCultureInfo())}"; + case Language.Korean: + return $"{start.ToString(GetDateFormat(), GetCultureInfo())} - {end.ToString(GetDateFormat(), GetCultureInfo())}"; + case Language.Japanese: + return $"{start.ToString(GetDateFormat(), GetCultureInfo())} - {end.ToString(GetDateFormat(), GetCultureInfo())}"; + case Language.SimplifiedChinese: + return $"{start.ToString(GetDateFormat(), GetCultureInfo())} - {end.ToString(GetDateFormat(), GetCultureInfo())}"; + case Language.TraditionalChinese: + return $"{start.ToString(GetDateFormat(), GetCultureInfo())} - {end.ToString(GetDateFormat(), GetCultureInfo())}"; + default: + return $"{start.ToString(GetDateFormat(), GetCultureInfo())} - {end.ToString(GetDateFormat(), GetCultureInfo())}"; + } + } + + public static string GetDateFormat() { + switch (Stats.CurrentLanguage) { + case Language.English: return "MMM dd, yyyy"; + case Language.French: return "d MMM yyyy"; + case Language.Spanish: return "d de MMMM de yyyy"; + case Language.Korean: return "yyyy년 M월 d일"; + case Language.Japanese: return "yyyy年M月d日"; + case Language.SimplifiedChinese: return "yyyy年M月d日"; + case Language.TraditionalChinese: return "yyyy年M月d日"; + default: return "MMM dd, yyyy"; + } + } + + public static CultureInfo GetCultureInfo() { + switch (Stats.CurrentLanguage) { + case Language.English: return new CultureInfo("en-US"); + case Language.French: return new CultureInfo("fr-FR"); + case Language.Spanish: return new CultureInfo("es-ES"); + case Language.Korean: return new CultureInfo("ko-KR"); + case Language.Japanese: return new CultureInfo("ja-JP"); + case Language.SimplifiedChinese: return new CultureInfo("zh-CN"); + case Language.TraditionalChinese: return new CultureInfo("zh-TW"); + default: return new CultureInfo("en-US"); + } + } + + public static bool IsFontInstalled(string fontName) { + using (var fontsCollection = new System.Drawing.Text.InstalledFontCollection()) { + foreach (var fontFamily in fontsCollection.Families) { + if (string.Equals(fontFamily.Name, fontName, StringComparison.OrdinalIgnoreCase)) { + return true; + } + } + } + return false; + } + } +} diff --git a/Entities/ZipWebClient.cs b/Entities/ZipWebClient.cs new file mode 100644 index 000000000..b171fefbb --- /dev/null +++ b/Entities/ZipWebClient.cs @@ -0,0 +1,36 @@ +using System; +using System.Net; +using System.Net.Cache; +using System.Text; + +namespace FallGuysStats { + public class ZipWebClient : WebClient { + public ZipWebClient() { + this.Encoding = Encoding.UTF8; + this.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64;)"; + this.Headers["Accept-Encoding"] = "gzip, deflate"; + this.Headers["Accept-Language"] = "en-US"; + this.Headers["Accept"] = "application/zip"; + } + + protected override WebRequest GetWebRequest(Uri address) { + HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address); + request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); + request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; + + if (Stats.UseWebProxy && Stats.SucceededTestProxy) { + WebProxy webproxy = new WebProxy($"{Stats.ProxyAddress}:{(!string.IsNullOrEmpty(Stats.ProxyPort) ? Stats.ProxyPort : "80")}", false) { + BypassProxyOnLocal = false + }; + + if (Stats.EnableProxyAuthentication && !string.IsNullOrEmpty(Stats.ProxyUsername) && !string.IsNullOrEmpty(Stats.ProxyPassword)) { + webproxy.Credentials = new NetworkCredential(Stats.ProxyUsername, Stats.ProxyPassword); + } + + request.Proxy = webproxy; + } + + return request; + } + } +} \ No newline at end of file diff --git a/Enums/Enums.cs b/Enums/Enums.cs new file mode 100644 index 000000000..7251185d5 --- /dev/null +++ b/Enums/Enums.cs @@ -0,0 +1,130 @@ +namespace FallGuysStats { + public enum LevelType { + Unknown, + CreativeRace, + CreativeSurvival, + CreativeHunt, + CreativeLogic, + CreativeTeam, + Race, + Survival, + Hunt, + Logic, + Team, + Invisibeans, + Final + } + + public enum BestRecordType { + Fastest, + Longest, + HighScore + } + + public enum QualifyTier { + Pink, + Gold, + Silver, + Bronze + } + + public enum Language { + English, + French, + Spanish, + Korean, + Japanese, + SimplifiedChinese, + TraditionalChinese + } + + public enum StatType { + Shows, + Rounds, + Levels, + } + + public enum HashTypes { MD5, RIPEMD160, SHA1, SHA256, SHA384, SHA512 } + + public enum DWMWINDOWATTRIBUTE { + DWMWA_WINDOW_CORNER_PREFERENCE = 33 + } + + // The DWM_WINDOW_CORNER_PREFERENCE enum for DwmSetWindowAttribute's third parameter, which tells the function + // what value of the enum to set. + public enum DWM_WINDOW_CORNER_PREFERENCE { + DWMWCP_DEFAULT = 0, + DWMWCP_DONOTROUND = 1, + DWMWCP_ROUND = 2, + DWMWCP_ROUNDSMALL = 3 + } + + public enum TaskbarPosition { Top, Bottom, Left, Right } + + public enum OnlineServiceTypes { None = -1, EpicGames = 0, Steam = 1 } + + /// + /// Animation to display Toast + /// + public enum ToastAnimation { + FADE = 1, + SLIDE = 0 + } + + /// + /// Way to closing Toast + /// + public enum ToastCloseStyle { + ClickEntire, + Button, + ButtonAndClickEntire + } + + /// + /// Duration definition. Short is 2 seconds, long is 3 seconds + /// + public enum ToastDuration { + VERY_SHORT = 2, + SHORT = 4, + MEDIUM = 6, + LONG = 8, + VERY_LONG = 10 + } + + /// + /// Location of Toast. Only top right and bottom right supported + /// + public enum ToastPosition { + TopLeft, + TopRight, + BottomLeft, + BottomRight + } + + public enum ToastSound { + Generic01, + Generic02, + Generic03, + Generic04 + } + + public enum ToastTheme { + Dark, + Light, + PrimaryLight, + SuccessLight, + WarningLight, + ErrorLight, + PrimaryDark, + SuccessDark, + WarningDark, + ErrorDark, + Custom + } + + public enum FirstDisplayedScrollingRowIndex { + FirstIndex, + PrevIndex, + LastIndex + } +} diff --git a/FallGuysStats.csproj b/FallGuysStats.csproj index 29df33771..47945ff9d 100644 --- a/FallGuysStats.csproj +++ b/FallGuysStats.csproj @@ -8,10 +8,12 @@ WinExe FallGuysStats FallGuysStats - v4.7.2 + v4.8.1 512 - true + false true + Resources\fall2.ico + 7.3 AnyCPU @@ -19,59 +21,268 @@ full false bin\ - DEBUG;TRACE + TRACE;DEBUG;Debug prompt 4 + false + false + .allowedextension AnyCPU - pdbonly + embedded true bin\ TRACE prompt 4 + false + true + .allowedextension - - fall.ico + + AnyCPU + embedded + true + bin\ + TRACE;AllowUpdate + prompt + 4 + false + true + .allowedextension + + + x64 + true + full + false + bin\ + TRACE;DEBUG;Debug + prompt + 4 + false + false + .allowedextension + + + x64 + embedded + true + bin\ + TRACE + prompt + 4 + false + false + .allowedextension + + + x64 + embedded + true + bin\ + TRACE;AllowUpdate + prompt + 4 + false + false + .allowedextension - - .\LiteDB.dll - + + + + - + + + + + + - + + Component + + + Component + + + Component + + + Component + + + Component + + Component - + + Component + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + EditShows.cs + + + Form + + + EditProfiles.cs + + + Form + + + FilterCustomRange.cs + + Form - + + DownloadProgress.cs + + + Form + + + EunmaToast.cs + + + Form + + + LeaderboardDisplay.cs + + + Form + + + LevelStatsDisplay.cs + + + Form + + + InitLanguage.cs + + + Form + + LevelDetails.cs - + + Form + + + Overlay.cs + + + Form + + + Settings.cs + + + Form + + + SplashForm.cs + + Form - + Stats.cs - + - - + + + Component + + + Form + + + WinStatsDisplay.cs + + + EditShows.cs + + + EditProfiles.cs + + + FilterCustomRange.cs + + + DownloadProgress.cs + + + EunmaToast.cs + + + LeaderboardDisplay.cs + + + LevelStatsDisplay.cs + + + InitLanguage.cs + + LevelDetails.cs - + + Overlay.cs + + + Settings.cs + + + SplashForm.cs + + Stats.cs + Designer ResXFileCodeGenerator @@ -83,6 +294,9 @@ Resources.resx True + + WinStatsDisplay.cs + SettingsSingleFileGenerator Settings.Designer.cs @@ -92,15 +306,945 @@ Settings.settings True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + all + + + all + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FallGuysStats.sln b/FallGuysStats.sln index 69c9b018d..9a70fa102 100644 --- a/FallGuysStats.sln +++ b/FallGuysStats.sln @@ -1,20 +1,37 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30406.217 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34309.116 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FallGuysStats", "FallGuysStats.csproj", "{9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{48C46DB6-1CE3-4B93-B980-6FDEC903A42B}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + ReleaseUpdate|Any CPU = ReleaseUpdate|Any CPU + ReleaseUpdate|x64 = ReleaseUpdate|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.Debug|x64.ActiveCfg = Debug|x64 + {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.Debug|x64.Build.0 = Debug|x64 {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.Release|Any CPU.ActiveCfg = Release|Any CPU {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.Release|Any CPU.Build.0 = Release|Any CPU + {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.Release|x64.ActiveCfg = Release|x64 + {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.Release|x64.Build.0 = Release|x64 + {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.ReleaseUpdate|Any CPU.ActiveCfg = ReleaseUpdate|Any CPU + {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.ReleaseUpdate|Any CPU.Build.0 = ReleaseUpdate|Any CPU + {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.ReleaseUpdate|x64.ActiveCfg = ReleaseUpdate|x64 + {9DDF7BD8-3C77-43D4-A229-F79CE082C6E8}.ReleaseUpdate|x64.Build.0 = ReleaseUpdate|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/FodyWeavers.xml b/FodyWeavers.xml new file mode 100644 index 000000000..5029e7060 --- /dev/null +++ b/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/FodyWeavers.xsd b/FodyWeavers.xsd new file mode 100644 index 000000000..dbeb10209 --- /dev/null +++ b/FodyWeavers.xsd @@ -0,0 +1,186 @@ + + + + + + + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtimes to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtimes names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead. + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with line breaks. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Controls if runtime assemblies are also embedded. + + + + + Controls whether the runtime assemblies are embedded with their full path or only with their assembly name. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + The attach method no longer subscribes to the `AppDomain.AssemblyResolve` (.NET 4.x) and `AssemblyLoadContext.Resolving` (.NET 6.0+) events. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with |. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with |. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/Grid.cs b/Grid.cs deleted file mode 100644 index 0d3ded4ee..000000000 --- a/Grid.cs +++ /dev/null @@ -1,405 +0,0 @@ -using System; -using System.Collections; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.IO; -using System.Reflection; -using System.Text; -using System.Threading; -using System.Windows.Forms; -namespace FallGuysStats { - public sealed class Grid : DataGridView { - private ContextMenuStrip cMenu; - private IContainer components; - private SaveFileDialog saveFile; - private ToolStripMenuItem exportItem; - private bool IsEditOnEnter, readOnly; - private bool? allowUpdate, allowNew, allowDelete; - - public Grid() { - InitializeComponent(); - AllowUserToAddRows = false; - AllowUserToOrderColumns = true; - AllowUserToResizeRows = false; - EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2; - RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; - BackgroundColor = Color.FromArgb(234, 242, 251); - AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; - BorderStyle = BorderStyle.None; - ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; - RowHeadersWidth = 20; - ContextMenuStrip = cMenu; - readOnly = false; - EnableHeadersVisualStyles = false; - ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray; - ColumnHeadersDefaultCellStyle.ForeColor = Color.Black; - ColumnHeadersDefaultCellStyle.SelectionBackColor = Color.Cyan; - ColumnHeadersDefaultCellStyle.SelectionForeColor = Color.Black; - } - public DataGridViewRow CloneWithValues(DataGridViewRow row) { - DataGridViewRow clonedRow = (DataGridViewRow)row.Clone(); - for (int i = 0; i < row.Cells.Count; i++) { - clonedRow.Cells[i].Value = row.Cells[i].Value; - clonedRow.Cells[i].Tag = row.Cells[i].EditedFormattedValue; - } - return clonedRow; - } - protected override void OnDataSourceChanged(EventArgs e) { - Columns.Clear(); - IsEditOnEnter = EditMode == DataGridViewEditMode.EditOnEnter; - base.OnDataSourceChanged(e); - } - protected override void OnPaint(PaintEventArgs e) { - if (DesignMode) { - Graphics g = e.Graphics; - g.Clear(BackgroundColor); - Pen bp = new Pen(Color.DarkGray, 1); - bp.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; - int i = 0; - g.DrawLine(bp, 0, 0, 0, Height); - g.DrawLine(bp, Width - 1, 0, Width - 1, Height); - int header = (int)ColumnHeadersDefaultCellStyle.Font.Size * 2 + 1; - g.FillRectangle(new SolidBrush(ColumnHeadersDefaultCellStyle.BackColor), 1, 1, Width - 2, header - 1); - TextRenderer.DrawText(g, "Header", ColumnHeadersDefaultCellStyle.Font, new Point(10, 2), ColumnHeadersDefaultCellStyle.ForeColor); - g.FillRectangle(new SolidBrush(DefaultCellStyle.BackColor), 1, header, Width - 2, Height - header - 1); - g.DrawLine(bp, 0, i, Width, i); - i += header; - int row = 1; - while (i < Height) { - g.DrawLine(bp, 0, i, Width, i); - TextRenderer.DrawText(g, "Row " + row++, DefaultCellStyle.Font, new Point(10, i + (RowTemplate.Height / 4)), DefaultCellStyle.ForeColor); - i += RowTemplate.Height; - } - g.DrawLine(bp, 0, Height - 1, Width, Height - 1); - bp.Dispose(); - } else { - base.OnPaint(e); - } - } - protected override void OnCellClick(DataGridViewCellEventArgs e) { - base.OnCellClick(e); - if (!IsEditOnEnter) { return; } - if (e.ColumnIndex == -1) { - EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2; - EndEdit(); - } else if (EditMode != DataGridViewEditMode.EditOnEnter) { - EditMode = DataGridViewEditMode.EditOnEnter; - BeginEdit(false); - } - } - [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), DefaultValue(false)] - public bool Disabled { - get { return readOnly; } - set { - readOnly = value; - if (readOnly) { - allowDelete = AllowUserToDeleteRows; - allowNew = AllowUserToAddRows; - allowUpdate = ReadOnly; - AllowUserToAddRows = false; - AllowUserToDeleteRows = false; - ReadOnly = true; - } else if (allowNew.HasValue) { - AllowUserToAddRows = allowNew.Value; - AllowUserToDeleteRows = allowDelete.Value; - ReadOnly = allowUpdate.Value; - } - } - } - protected override void OnLeave(EventArgs e) { - if (IsEditOnEnter) { - EditMode = DataGridViewEditMode.EditOnEnter; - } - base.OnLeave(e); - } - [DefaultValue(typeof(DataGridViewRowHeadersWidthSizeMode), "DisableResizing")] - public new DataGridViewRowHeadersWidthSizeMode RowHeadersWidthSizeMode { - get { return base.RowHeadersWidthSizeMode; } - set { base.RowHeadersWidthSizeMode = value; } - } - [DefaultValue(20)] - public new int RowHeadersWidth { - get { return base.RowHeadersWidth; } - set { base.RowHeadersWidth = value; } - } - [DefaultValue(DataGridViewAutoSizeColumnsMode.AllCells)] - public new DataGridViewAutoSizeColumnsMode AutoSizeColumnsMode { - get { return base.AutoSizeColumnsMode; } - set { base.AutoSizeColumnsMode = value; } - } - [DefaultValue(false)] - public new bool AllowUserToAddRows { - get { return base.AllowUserToAddRows; } - set { base.AllowUserToAddRows = value; } - } - [DefaultValue(true)] - public new bool AllowUserToOrderColumns { - get { return base.AllowUserToOrderColumns; } - set { base.AllowUserToOrderColumns = value; } - } - [DefaultValue(false)] - public new bool AllowUserToResizeRows { - get { return base.AllowUserToResizeRows; } - set { base.AllowUserToResizeRows = value; } - } - [DefaultValue(DataGridViewEditMode.EditOnKeystrokeOrF2)] - public new DataGridViewEditMode EditMode { - get { return base.EditMode; } - set { base.EditMode = value; } - } - [DefaultValue(typeof(Color), "234,242,251")] - public new Color BackgroundColor { - get { return base.BackgroundColor; } - set { base.BackgroundColor = value; } - } - public override string ToString() { - return "Grid(" + Name + ") " + Text; - } - public bool HasFocus(Control activeControl) { - while (activeControl != null) { - if (activeControl == this) { - return true; - } - activeControl = activeControl.Parent; - } - return false; - } - private void exportItem_Click(object sender, EventArgs e) { - try { - saveFile.Filter = "CSV files|*.csv"; - if (saveFile.ShowDialog() == DialogResult.OK) { - Encoding enc = Encoding.GetEncoding("windows-1252"); - using (FileStream fs = new FileStream(saveFile.FileName, FileMode.Create)) { - StringBuilder sb = new StringBuilder(); - foreach (DataGridViewColumn col in this.Columns) { - if (col.ValueType != null && col.Visible) { - sb.Append(col.Name).Append(","); - } - } - if (sb.Length > 0) { sb.Length = sb.Length - 1; } - sb.AppendLine(); - byte[] bytes = enc.GetBytes(sb.ToString()); - fs.Write(bytes, 0, bytes.Length); - foreach (DataGridViewRow row in this.Rows) { - sb.Length = 0; - foreach (DataGridViewColumn col in this.Columns) { - if (!col.Visible) { continue; } - if (col.ValueType == typeof(string)) { - sb.Append("\"").Append(row.Cells[col.Name].Value.ToString()).Append("\","); - } else if (col.ValueType != null) { - sb.Append(row.Cells[col.Name].Value.ToString()).Append(","); - } - } - if (sb.Length > 0) { sb.Length = sb.Length - 1; } - sb.AppendLine(); - bytes = enc.GetBytes(sb.ToString()); - fs.Write(bytes, 0, bytes.Length); - } - fs.Flush(); - fs.Close(); - } - } - } catch (Exception ex) { - ControlErrors.HandleException(this, ex, false); - } - } - private void Grid_DataError(object sender, DataGridViewDataErrorEventArgs e) { - e.ThrowException = false; - } - protected override bool ProcessDialogKey(Keys keyData) { - if (ProcessKeyStroke(keyData)) { - return true; - } - - return base.ProcessDialogKey(keyData); - } - protected override bool ProcessDataGridViewKey(KeyEventArgs e) { - if (ProcessKeyStroke(e.KeyData)) { - return true; - } - - return base.ProcessDataGridViewKey(e); - } - private bool ProcessKeyStroke(Keys keyData) { - if (keyData == Keys.Tab) { - int iCol = CurrentCell.ColumnIndex + 1; - while (iCol < Columns.Count) { - DataGridViewColumn col = Columns[iCol]; - if (!col.ReadOnly && col.Visible) { - break; - } - iCol++; - } - - if (iCol < Columns.Count) { - CurrentCell = Rows[CurrentCell.RowIndex].Cells[iCol]; - } else { - for (iCol = 0; iCol <= CurrentCell.ColumnIndex; iCol++) { - DataGridViewColumn col = Columns[iCol]; - if (!col.ReadOnly && col.Visible) { - break; - } - } - - if (iCol <= CurrentCell.ColumnIndex) { - if (CurrentCell.RowIndex + 1 < Rows.Count) { - CurrentCell = Rows[CurrentCell.RowIndex + 1].Cells[iCol]; - } else { - CurrentCell = Rows[0].Cells[iCol]; - } - } - } - return true; - } else if ((keyData & Keys.Shift) != 0 && (keyData & Keys.Tab) != 0) { - int iCol = CurrentCell.ColumnIndex - 1; - while (iCol >= 0) { - DataGridViewColumn col = Columns[iCol]; - if (!col.ReadOnly && col.Visible) { - break; - } - iCol--; - } - - if (iCol >= 0) { - CurrentCell = Rows[CurrentCell.RowIndex].Cells[iCol]; - } else { - for (iCol = Columns.Count - 1; iCol >= CurrentCell.ColumnIndex; iCol--) { - DataGridViewColumn col = Columns[iCol]; - if (!col.ReadOnly && col.Visible) { - break; - } - } - - if (iCol >= CurrentCell.ColumnIndex) { - if (CurrentCell.RowIndex - 1 >= 0) { - CurrentCell = Rows[CurrentCell.RowIndex - 1].Cells[iCol]; - } else { - CurrentCell = Rows[0].Cells[iCol]; - } - } - } - return true; - } - return false; - } - public void Setup(string column, int index, int width = -1, string header = null, DataGridViewContentAlignment align = DataGridViewContentAlignment.MiddleCenter) { - if (Columns == null || Columns[column] == null) { return; } - Columns[column].Visible = true; - Columns[column].DisplayIndex = index; - Columns[column].SortMode = DataGridViewColumnSortMode.Automatic; - Columns[column].DefaultCellStyle.Alignment = align; - if (width > 0) { - Columns[column].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; - Columns[column].Width = width; - } else if (width == 0) { - Columns[column].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - } else if (width < 0) { - Columns[column].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; - } - Columns[column].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; - if (header != null) { - Columns[column].HeaderText = header; - } - } - private void InitializeComponent() { - this.components = new Container(); - ComponentResourceManager resources = new ComponentResourceManager(typeof(Grid)); - this.cMenu = new ContextMenuStrip(this.components); - this.exportItem = new ToolStripMenuItem(); - this.saveFile = new SaveFileDialog(); - this.cMenu.SuspendLayout(); - ((ISupportInitialize)(this)).BeginInit(); - this.SuspendLayout(); - // - // cMenu - // - this.cMenu.Items.AddRange(new ToolStripItem[] { this.exportItem }); - this.cMenu.Name = "contextMenu"; - this.cMenu.Size = new Size(135, 48); - // - // exportItem - // - this.exportItem.Name = "exportItem"; - this.exportItem.Size = new Size(134, 22); - this.exportItem.Text = "&Export to CSV"; - this.exportItem.ShowShortcutKeys = true; - this.exportItem.ShortcutKeys = Keys.Control | Keys.S; - this.exportItem.Click += new EventHandler(this.exportItem_Click); - // - // saveFile - // - this.saveFile.Filter = "CSV files|*.csv"; - this.saveFile.Title = "Save Results"; - // - // Grid - // - this.DataError += new DataGridViewDataErrorEventHandler(this.Grid_DataError); - this.cMenu.ResumeLayout(false); - ((ISupportInitialize)(this)).EndInit(); - this.ResumeLayout(false); - } - public static DataTable Convert(IEnumerable array, params string[] columns) { - object rec = null; - foreach (object o in array) { rec = o; break; } - DataTable dt = new DataTable(); - if (rec == null) { return dt; } - PropertyInfo[] properties = rec.GetType().GetProperties(); - dt.Columns.Add(".", rec.GetType()); - foreach (PropertyInfo pi in properties) { - Type type = pi.PropertyType; - if (pi.PropertyType.IsGenericType && pi.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>)) { - type = pi.PropertyType.GetGenericArguments()[0]; - } - bool addColumn = true; - if (columns != null && columns.Length > 0) { - bool found = false; - for (int i = columns.Length - 1; i >= 0; i--) { - if (pi.Name.Equals(columns[i], StringComparison.OrdinalIgnoreCase)) { - found = true; - break; - } - } - addColumn = found; - } - if (addColumn) { - dt.Columns.Add(pi.Name, type); - } - } - foreach (object o in array) { - DataRow dr = dt.NewRow(); - dr["."] = o; - foreach (PropertyInfo pi in properties) { - if (columns == null || columns.Length == 0 || dt.Columns.Contains(pi.Name)) { - dr[pi.Name] = pi.GetValue(o, null) ?? DBNull.Value; - } - } - dt.Rows.Add(dr); - } - return dt; - } - } - public static class ControlErrors { - public static event Action Error; - internal static Exception HandleException(object sender, Exception ex, bool rethrow = true) { - if (!ex.Data.Contains("Handled")) - ex.Data.Add("Handled", false); - if (!ex.Data.Contains("Thread")) - ex.Data.Add("Thread", Thread.CurrentThread.Name); - if (string.IsNullOrEmpty(ex.Message)) - ex.Data["Handled"] = true; - if (rethrow) - throw ex; - - if (!(bool)ex.Data["Handled"]) { - if (Error != null) { - Error(sender, ex); - } else { - MessageBox.Show(ex.Message); - } - ex.Data["Handled"] = true; - } - return ex; - } - } -} \ No newline at end of file diff --git a/LevelDetails.Designer.cs b/LevelDetails.Designer.cs deleted file mode 100644 index 4fa5516a4..000000000 --- a/LevelDetails.Designer.cs +++ /dev/null @@ -1,95 +0,0 @@ -namespace FallGuysStats { - partial class LevelDetails { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LevelDetails)); - this.gridDetails = new FallGuysStats.Grid(); - ((System.ComponentModel.ISupportInitialize)(this.gridDetails)).BeginInit(); - this.SuspendLayout(); - // - // gridDetails - // - this.gridDetails.AllowUserToDeleteRows = false; - this.gridDetails.AllowUserToOrderColumns = false; - this.gridDetails.AllowUserToResizeColumns = false; - this.gridDetails.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.None; - this.gridDetails.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.gridDetails.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle1.BackColor = System.Drawing.Color.LightGray; - dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; - dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.Cyan; - dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black; - dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.gridDetails.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; - this.gridDetails.ColumnHeadersHeight = 20; - this.gridDetails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle2.BackColor = System.Drawing.Color.White; - dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black; - dataGridViewCellStyle2.SelectionBackColor = System.Drawing.Color.White; - dataGridViewCellStyle2.SelectionForeColor = System.Drawing.Color.Black; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.gridDetails.DefaultCellStyle = dataGridViewCellStyle2; - this.gridDetails.Dock = System.Windows.Forms.DockStyle.Fill; - this.gridDetails.EnableHeadersVisualStyles = false; - this.gridDetails.Location = new System.Drawing.Point(0, 0); - this.gridDetails.Name = "gridDetails"; - this.gridDetails.RowHeadersVisible = false; - this.gridDetails.Size = new System.Drawing.Size(560, 504); - this.gridDetails.TabIndex = 10; - this.gridDetails.DataSourceChanged += new System.EventHandler(this.gridDetails_DataSourceChanged); - this.gridDetails.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridDetails_CellFormatting); - this.gridDetails.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridDetails_ColumnHeaderMouseClick); - // - // LevelDetails - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(242)))), ((int)(((byte)(251))))); - this.ClientSize = new System.Drawing.Size(560, 504); - this.Controls.Add(this.gridDetails); - this.DoubleBuffered = true; - this.ForeColor = System.Drawing.Color.Black; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "LevelDetails"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Level Stats"; - this.Load += new System.EventHandler(this.LevelDetails_Load); - ((System.ComponentModel.ISupportInitialize)(this.gridDetails)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private Grid gridDetails; - } -} \ No newline at end of file diff --git a/LevelDetails.cs b/LevelDetails.cs deleted file mode 100644 index 6ab83185e..000000000 --- a/LevelDetails.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System.Collections.Generic; -using System.Windows.Forms; -namespace FallGuysStats { - public partial class LevelDetails : Form { - public string LevelName { get; set; } - public List RoundDetails { get; set; } - public LevelDetails() { - InitializeComponent(); - } - - private void LevelDetails_Load(object sender, System.EventArgs e) { - gridDetails.DataSource = RoundDetails; - Text = $"Level Stats - {LevelName}"; - } - private void gridDetails_DataSourceChanged(object sender, System.EventArgs e) { - if (gridDetails.Columns.Count == 0) { return; } - int pos = 0; - gridDetails.Columns["Name"].Visible = false; - gridDetails.Columns["Tier"].Visible = false; - gridDetails.Columns.Add(new DataGridViewImageColumn() { Name = "Medal", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "Medal" }); - gridDetails.Setup("Medal", pos++, 24, "", DataGridViewContentAlignment.MiddleCenter); - gridDetails.Setup("ShowID", pos++, 0, "Show", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("Round", pos++, 50, "Round", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("Players", pos++, 60, "Players", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("Start", pos++, 115, "Start", DataGridViewContentAlignment.MiddleCenter); - gridDetails.Setup("End", pos++, 60, "Duration", DataGridViewContentAlignment.MiddleCenter); - gridDetails.Setup("Qualified", pos++, 70, "Qualified", DataGridViewContentAlignment.MiddleCenter); - gridDetails.Setup("Position", pos++, 60, "Position", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("Kudos", pos++, 60, "Kudos", DataGridViewContentAlignment.MiddleRight); - } - private void gridDetails_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { - if (gridDetails.Columns[e.ColumnIndex].Name == "End") { - RoundInfo info = gridDetails.Rows[e.RowIndex].DataBoundItem as RoundInfo; - e.Value = (info.End - info.Start).ToString("m\\:ss"); - } else if (gridDetails.Columns[e.ColumnIndex].Name == "Medal" && e.Value == null) { - RoundInfo info = gridDetails.Rows[e.RowIndex].DataBoundItem as RoundInfo; - if (info.Qualified) { - switch (info.Tier) { - case 0: e.Value = Properties.Resources.medal_pink; break; - case 1: e.Value = Properties.Resources.medal_gold; break; - case 2: e.Value = Properties.Resources.medal_silver; break; - case 3: e.Value = Properties.Resources.medal_bronze; break; - } - } else { - e.Value = Properties.Resources.medal_eliminated; - } - } - } - private void gridDetails_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { - SortOrder sortOrder = GetSortOrder(e.ColumnIndex); - RoundDetails.Sort(delegate (RoundInfo one, RoundInfo two) { - if (sortOrder == SortOrder.Descending) { - RoundInfo temp = one; - one = two; - two = temp; - } - switch (gridDetails.Columns[e.ColumnIndex].Name) { - case "ShowID": return one.ShowID.CompareTo(two.ShowID); - case "Round": return one.Round.CompareTo(two.Round); - case "Players": return one.Players.CompareTo(two.Players); - case "Start": return one.Start.CompareTo(two.Start); - case "End": return (one.End - one.Start).CompareTo(two.End - two.Start); - case "Qualified": return one.Qualified.CompareTo(two.Qualified); - case "Position": return one.Position.CompareTo(two.Position); - case "Medal": - int tierOne = one.Qualified ? one.Tier == 0 ? 4 : one.Tier : 5; - int tierTwo = two.Qualified ? two.Tier == 0 ? 4 : two.Tier : 5; - return tierOne.CompareTo(tierTwo); - default: return one.Kudos.CompareTo(two.Kudos); - } - }); - gridDetails.DataSource = null; - gridDetails.DataSource = RoundDetails; - gridDetails.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection = sortOrder; - } - private SortOrder GetSortOrder(int columnIndex) { - if (gridDetails.Columns[columnIndex].HeaderCell.SortGlyphDirection == SortOrder.None || - gridDetails.Columns[columnIndex].HeaderCell.SortGlyphDirection == SortOrder.Descending) { - gridDetails.Columns[columnIndex].HeaderCell.SortGlyphDirection = SortOrder.Ascending; - return SortOrder.Ascending; - } else { - gridDetails.Columns[columnIndex].HeaderCell.SortGlyphDirection = SortOrder.Descending; - return SortOrder.Descending; - } - } - } -} \ No newline at end of file diff --git a/LevelDetails.resx b/LevelDetails.resx deleted file mode 100644 index ebf3e6074..000000000 --- a/LevelDetails.resx +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAA - AACWpwD/jJ0A/4GSAP92hwD/d4gA/4CRAP+HmQD/jqAA/5OlAP+YqQD/mawA/52vAP+fsgD/orQA/6O2 - AP+ltwD/p7kA/6i7AP+qvAD/q70A/6y+AP+tvwD/rsAA/67AAP+vwQD/sMIA/7DCAP+wwgD/sMIA/7DC - AP+wwgD/sMIA/7HCAP+xwgD/sMIA/7DCAP+wwgD/sMIA/6/BAP+vwQD/rsAA/67AAP+tvgD/q70A/6q8 - AP+puwD/p7kA/6a4AP+ktgD/orQA/5+yAP+dsAD/mq0A/5ipAP+UpgD/kKIA/4qcAP+FlwD/fY4A/3iJ - AP90hQD/fY8A/4iZAP+TpAD/obIA/5iqAP+PoAD/h5gA/4WWAP+FlgD/iJoA/4+gAP+UpgD/l6oA/5qs - AP+drwD/n7IA/6K0AP+jtgD/pbcA/6a5AP+ougD/qbsA/6q9AP+svgD/rL4A/62/AP+tvwD/rsAA/6/B - AP+vwQD/r8EA/6/CAP+wwgD/sMIA/7DCAP+wwgD/sMIA/6/CAP+wwQD/r8EA/6/BAP+uwAD/rsAA/66/ - AP+tvwD/q70A/6q9AP+pvAD/qLoA/6e5AP+ltwD/o7UA/6GzAP+fsgD/na8A/5mtAP+YqgD/lacA/5Ci - AP+LnQD/hpcA/4CRAP+ElQD/hZYA/4ydAP+VpwD/nq8A/6u8AP+jtAD/m60A/5OlAP+QoQD/ipwA/4qc - AP+QoQD/lacA/5irAP+arQD/na4A/5+xAP+iswD/orUA/6W2AP+nuAD/p7kA/6i7AP+qvAD/q70A/6y+ - AP+tvwD/rsAA/6/BAP+wwgD/scMA/7LEAP+zxgD/tccA/7bJAP+3ygD/uMoA/7fJAP+1yAD/tMYA/7PE - AP+xwwD/sMIA/6/BAP+uwAD/rb8A/6y+AP+qvAD/qbsA/6e5AP+muAD/pLYA/6K0AP+hswD/n7IA/52u - AP+arQD/l6oA/5WnAP+RowD/jJ4A/4eYAP+DlQD/jp8A/5GiAP+YqgD/oLIA/6i5AP+1yAD/rb8A/6W3 - AP+esAD/mqwA/5CiAP+LnQD/kaIA/5aoAP+YqgD/m6wA/52vAP+fsQD/obMA/6K0AP+ktwD/p7kA/6e6 - AP+puwD/qr0A/6y+AP+tvwD/r8EA/7HDAP+yxAD/tcgA/7rNAP/B1AD/yNwB/8/iCf/U5hH/1ucY/9fo - Gv/V5xX/0eQO/8veBf/E1wD/vM8A/7fJAP+zxQD/scMA/6/BAP+tvwD/q70A/6m8AP+ougD/prgA/6S2 - AP+itAD/obIA/56xAP+drwD/ma0A/5irAP+VpwD/kqQA/42fAP+ImgD/iJoA/5epAP+crgD/o7QA/6q8 - AP+zxQD/wdQA/7nLAP+wwgD/qLoA/6O0AP+WqAD/jp8A/5KkAP+WqQD/masA/5usAP+dsAD/n7EA/6Cy - AP+jtQD/pLYA/6a4AP+ougD/qrwA/6u9AP+uwAD/sMIA/7PFAP+4ygD/wNMA/8zfAv/Z6hz/4u9D/+bw - av/m7on/5u2g/+bsrP/m7Kz/5uyh/+bui//n8G3/5PBJ/93tJf/R4wr/w9cA/7nMAP+0xgD/sMIA/62/ - AP+qvQD/qbsA/6e5AP+ltwD/o7UA/6GzAP+fsQD/na8A/5qtAP+YqwD/lqgA/5OkAP+OoAD/ipsA/42f - AP+gsQD/prgA/66/AP+2yAD/v9EA/8reAP/E1wD/u84A/7PFAP+svQD/na4A/5ChAP+TpQD/l6kA/5ms - AP+brQD/nbAA/5+xAP+gsgD/pLUA/6W3AP+nuQD/qbsA/6u9AP+uwAD/scMA/7XIAP++0QD/zN8B/93t - Mv/k7nn/5Oq1/+Hn2P/g5ef/4OXr/+Dl7P/g5ez/4OXs/+Dl7P/f5ev/4OXo/+Hm2P/j6bf/5e5+/+Hv - PP/S5Qr/wdUA/7fJAP+xwwD/rb8A/6q8AP+ouQD/prgA/6O1AP+itAD/nrEA/52uAP+brQD/masA/5ap - AP+TpQD/j6EA/4udAP+SpAD/qLkA/7HCAP+5ywD/wtQA/8jcAP/S5wD/zeEA/8faAP+/0gD/tsgA/6S2 - AP+SpAD/lKYA/5eqAP+arAD/m64A/52wAP+fsgD/obMA/6S2AP+mtwD/qLoA/6q8AP+tvwD/scMA/7fK - AP/D1wD/1+kh/+Lsg//h59L/3+Tq/97k6//f5Oj/4OXm/+Hl5//h5ef/4eXn/+Hl5//g5eb/4OXm/9/l - 5v/f5Oj/3uTr/97j6v/g5dL/4+yJ/93tMP/J3QD/us0A/7HEAP+tvwD/qbsA/6a4AP+ktgD/obMA/5+y - AP+drwD/m60A/5mrAP+WqQD/lKYA/5CiAP+MngD/l6kA/7LEAP+9zwD/xNcA/8vfAP/Q5QD/1+wA/9Tp - AP/P4wD/ydwA/8HTAP+qvQD/lKYA/5WnAP+YqgD/mqwA/5quAP+drwD/n7IA/6G0AP+jtQD/prgA/6m7 - AP+svgD/sMMA/7fKAP/I3AD/3OtM/9/nxf/e4uz/3ePo/97k5f/f5OX/4OXm/+Hm5//h5ef/4eXn/+Hm - 5//h5uf/4ebn/+Hl5//g5ub/4OTm/9/k5f/f4+X/3ePo/9zi6//f5cn/4e1f/9DjBv+6zQD/scMA/6y+ - AP+ougD/pLYA/6KzAP+fsgD/na8A/5utAP+YqwD/lqkA/5SmAP+RogD/jp8A/5yuAP+7zgD/x9oA/83h - AP/S5wD/1usA/9nuAP/X7QD/1eoA/9DlAP/I3AD/sMMA/5aoAP+WqAD/mKsA/5qtAP+brgD/na8A/5+y - AP+itAD/pLYA/6e5AP+rvQD/r8EA/7fKAP/J3QH/3uty/97j4v/c4er/3ePk/97k5P/f5eX/3+Tl/+Dl - 5v/h5uf/4eXn/+Hl5//h5uf/4ebn/+Hm5//h5ef/4Obn/+Dl5v/e5OX/3+Tk/97j4//c4uT/2+Hp/9zh - 5P/g6oz/0uUP/7vOAP+wwgD/qrwA/6a4AP+itAD/oLIA/5ywAP+brQD/l6sA/5aoAP+UpgD/kaMA/46g - AP+hswD/w9YA/87iAP/T6AD/1+wA/9nuAP/Z7wD/2O4A/9ftAP/U6gD/zuIA/7XIAP+XqQD/lqkA/5ir - AP+ZrAD/m64A/52uAP+fsgD/orQA/6S3AP+ougD/rb8A/7XHAP/I2wL/3Opy/93i5//b4eX/3OLj/97j - 5P/f5OX/3+Tl/9/l5f/g5eX/4eXn/+Hl5//h5ef/4ebn/+Hm5//h5ef/4ebn/+Dm5//g5eb/3uXl/9/k - 5f/e4+T/3eLj/9zi4//a4OT/2t/p/97ok//R4xD/uMsA/67AAP+ougD/o7UA/5+xAP+dsAD/m60A/5iq - AP+WpwD/lKYA/5GkAP+PoAD/pLYA/8jcAP/T6AD/1+wA/9nuAP/a7wD/2fAA/9jvAP/X7gD/1ewA/9Dm - AP+3ywD/l6gA/5aoAP+XqgD/mqsA/5uuAP+drgD/n7EA/6G0AP+ltwD/qrwA/7HEAP/C1QD/2ule/9zh - 4//b4OX/3OLi/9zi4//d4+T/3+Tl/9/k5v/f5eX/3+Xm/+Dl5//h5ef/4eXn/+Dl5v/g5eb/4eXn/+Hm - 5//g5eb/4OTm/9/l5f/f5OX/3uPk/93i5P/c4uP/2+Hi/9nf4//Z3uf/3eiE/8veB/+0xgD/qrwA/6S2 - AP+gsgD/nbAA/5qtAP+XqQD/lacA/5OlAP+QowD/jqAA/6a4AP/M4AD/1eoA/9jtAP/Z7wD/2e4A/9To - F//f9wH/1+8A/9TrAP/Q5gD/tsoA/5WnAP+VpwD/l6oA/5mrAP+brQD/na8A/5+wAP+iswD/prgA/6y/ - AP+5zAD/1OUx/9vi0v/Z3+b/2uHi/9zi4//d4eP/3ePk/+Dl5v/h5uf/4OXm/+Dl5v/g5ef/4Obm/+Dl - 5v/h5ef/4ebn/+Hm5v/g5ub/4OXm/+Dl5v/f5OX/3+Tl/+Dl5//e4+X/2+Hj/9vh4v/a4OH/2N3i/9ne - 3//b6VX/wdUA/67AAP+muAD/oLMA/52wAP+ZrQD/l6oA/5SnAP+SpAD/kKEA/46eAP+mtgD/zeEA/9fq - AP/Y7AD/2PAA/9brB/8yMyT/kZwr/9PoFP/a8gD/zuYA/7PIAP+RowD/k6UA/5apAP+YqwD/mq0A/52v - AP+fsQD/orQA/6i6AP+xwwD/yd0K/9vlpv/Y3ej/2eDh/9rg4v/b4eL/3OHj/+Hn6P/a3+H/2d7g/+Tp - 6v/g5ef/4OXm/+Dm5v/g5ub/4ebn/+Hm5//g5ef/4Obm/+Dm5v/f5OX/4ebn/+Ln6P/W29z/3eLk/97k - 5f/a4OH/2t/h/9je3//X3OX/2eG+/9PmIP+1yAD/qLoA/6GzAP+dsAD/mawA/5apAP+TpgD/kaMA/4+g - AP+NmgD/pLIA/83fAP/V6wD/1eoG/9PIMP/OgVz/AAAD/wAABf82OR3/lqMl/87kDv+xxgD/ipwA/5Ci - AP+UpwD/l6oA/5qsAP+crwD/n7EA/6K1AP+qvAD/ucsA/9TkT//Y3uD/2d7h/9nf4f/a4OL/2+Hj/+Dm - 5/+xt7f/WV9e/1hdXP+jqKj/4+jp/+Dm5v/h5ub/4ebn/+Hm6P/h5uj/4ebn/+Hm5//g5eb/4ebn/9vh - 4f+Fior/T1VU/2pwcP/Hzs7/3OPl/9nf4f/Y3uD/2N3f/9bb4//Y5nD/wtUA/6y9AP+itAD/nbAA/5mr - AP+WqAD/k6QA/5GiAP+QnQD/jJUA/6GrAP/K3QL/0Mgo/86JWf/LVmj/ykti/wEBAf8AAAD/AAAA/wAA - B/9CRxz/j54h/4iaB/+MngD/kqUA/5aoAP+ZqwD/nK4A/5+xAP+jtQD/rL4A/8LVA//X4aX/19zm/9je - 4P/Z3+H/2+Hj/97j5f/T2dr/UFdW/y41M/8xODf/Q0lI/8jNzv/k6er/4eXn/+Hm6P/h5uf/4ebo/+Hn - 6P/h5ef/4OXm/+br7P+ip6j/MTg3/zI4N/8rMjH/dXx7/97k5v/a4OH/2N7f/9fc3v/W2+L/1t66/8ve - Ev+xwwD/o7UA/5ywAP+YqwD/lacA/5KjAP+RoAD/kJoA/4uQAP+dnBX/x41K/8tVZv/KSmL/yk9g/8tR - YP8AAAD/AAAA/wAAAP8AAAD/AAAA/yQnHf+DlBv/iJsA/4+iAP+UpwD/mKoA/5utAP+fsQD/o7UA/6/C - AP/I2iT/2N3X/9fd4f/Y3d//2uDh/9vh4//g5eb/xMrL/z1ERP8wNjX/Mzk5/zg+Pv+5vr//5uvt/+Hm - 5//g5+j/4Obn/+Dm5//h5+j/4ebn/+Dm5//n7O3/h42N/y81NP8yODf/LTMz/1lgYP/a4OH/2uDi/9fd - 3//X3N7/1tze/9Tb3f/O3j7/t8kA/6S2AP+drwD/mKoA/5SmAP+RoQD/kZ4A/5CXAP+KjwP/qXBN/8xK - Zv/KTmD/ylBg/8tQYP/LUWH/AAAA/wAAAP8AAAD/AQEB/wAAAP8GBwr/cX8j/4aaAP+NnwD/kqUA/5ep - AP+arQD/nrAA/6S2AP+zxQD/zNlY/9jc6P/Y3d//2N7f/9rg4f/c4eP/4OXm/8XLzP8+RET/LzQ0/zI3 - N/86P0D/ur/A/+br7f/h5uf/4efn/+Hm5//h5uf/4Obn/+Hm5//g5uf/5+zt/4iNjv8vNTX/Mjc3/ywy - Mv9aYWH/2uDh/9rg4v/Y3d//19ze/9bc3f/V2ub/ztpw/7rMAP+mtwD/na8A/5epAP+TpQD/kaAA/5Cb - AP+PlAD/i4oN/7deWv/NUGP/y1Vk/8tUY//KUmH/ylBg/wAAAP8AAAD/AQEB/wYGBv8DAwT/BAQH/2Rw - Kf+EmAD/ip0A/5GjAP+WqAD/mawA/56wAP+ktgD/tMYA/87ZhP/Y3en/193e/9jd3//a4OL/3OHi/+Dm - 5//Gy8z/PkVF/zA1Nf84PT7/QEVG/7m+v//m6+3/4Obn/+Hm5//h5uf/4ubn/+Hm5//h5uf/4ebn/+fs - 7f+IjY7/Nzs8/zg9Pf8tMzP/WmFh/9rg4f/a4eL/2N7g/9fc3f/V293/1dvl/87Ymv+7zQD/p7gA/5yu - AP+WqAD/kqMA/5CfAP+QmQD/jpEA/42EGv+/WGD/zlVm/81baf/NW2r/y1Zl/8tTY/8AAAD/AAAA/wQE - BP8ICAj/AgIC/wICBf9TXSv/g5cE/4eaAP+PoQD/lKYA/5irAP+drwD/pLYA/7TGAP/Q2KX/2N3m/9fd - 3//Y3uD/2+Di/9zh4//g5uf/xsvM/z9FRf8zOTn/R0tM/0tPUf+4vb7/5+zt/+Hm5//h5uj/4ebn/+Hn - 5//i5uj/4ebn/+Hm5//n7O3/h4yN/0lMTv9HS0z/LzU1/1pgYf/a4OH/2+Hj/9je4P/W3N3/1tvd/9bb - 4v/P17j/ucoH/6e5AP+brQD/lacA/5GiAP+PnQD/j5cA/4yPAP+Sfij/xVVk/81YaP/LVGP/y1Nj/8xZ - aP/MWmj/AAAA/wAAAP8AAAD/AQEB/wgICP8CAQT/RUws/4KVDP+FmAD/jaAA/5OlAP+XqgD/nK4A/6S1 - AP+zxAj/0dm7/9jc5f/Y3d7/2d/g/9vh4v/c4uP/3+Xm/83T1P9GTEv/O0A//2dqav9YXFz/vMHC/+br - 7P/h5uf/4ebo/+Hn6P/h6Oj/4ebo/+Hm5//h5eb/5uzt/5CWl/9hZGT/XWBg/zI3N/9la2v/3uPl/9vh - 4//Y3uD/193f/9bc3f/V2uD/z9bG/7fHE/+muAD/mqwA/5SmAP+QoQD/jpsA/46VAP+LjQD/mXg2/8pR - ZP/LUWH/y1Rk/8tVZf/LVmX/y1Vk/wAAAP8AAAD/AAAA/wAAAP8HBwf/AAAA/zI3Jf+BlBn/hJcA/4ye - AP+SpAD/l6kA/5utAP+itAD/sMEN/9LZw//X3eT/2Nzf/9nf4P/b4OL/3OLj/93i5P/h5+f/k5iY/0xR - UP+NkI//lpub/9vg4f/i5+j/4ebn/+Hn6P/h5+f/4ejn/+Hn6P/h5+f/4ebm/+Po6f/Jzs//mJub/3h8 - ev9OVFP/sri4/+Dm5//a4OL/2N7g/9bd3v/W3N3/1dvf/83UzP+zwhz/pLYA/5mrAP+TpQD/kKAA/46a - AP+NkwD/iosA/6FyRf/MT2P/yk9f/8pQYP/KUWD/y1Ji/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8gIxz/f5Ep/4KXAP+KnQD/kaQA/5aoAP+arAD/oLIA/62+Ef/S2cf/193j/9jd3//Z3+D/2uHi/9zi - 4//c4uP/3+Tl/+Dm5v/CyMj/vcPD/9ne3//i5+j/4Obn/+Hm6P/h5+f/4ufn/+Ln6P/i5+f/4ebn/+Hm - 5//g5eb/4ebn/9HW1/+7wMD/ys/Q/9/l5v/b4eP/2uDi/9je4P/X3d7/1tzd/9bb3//Q19H/sMAg/6Gz - AP+XqQD/kqQA/4+eAP+NmAD/jZEA/4qJBf+qbVP/zVFk/8pQYP/KUGD/y1Fh/8pQYP/KUGD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/FhcW/3qMOv+CmAD/iJ0A/4+jAP+VpwD/masA/56wAP+qug3/0djD/9jd - 5P/X3d//2d/h/9rh4v/c4uP/3eLj/97k5P/g5ub/4+np/+Ln6f/g5eb/4OXm/+Hn5//h5+j/4ujo/+Ln - 6P/i5+j/4ujo/+Ln6P/h5+f/4eXn/9/k5f/g5eb/5Onq/+Dl5//d4uP/3OHj/9vh4//Z3+D/19ze/9fb - 3f/V3N//0djS/628IP+fsQD/lqgA/5GjAP+OnQD/jZcA/42QAP+KiBD/s2dd/81SZP/KUGD/ylBg/8tR - Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wsLDf9zhEn/gZkH/4acAP+OogD/lKcA/5iq - AP+drwD/pbYI/87Wu//Z3uX/2N7f/9je4P/a3+H/2+Hi/9zh4//d4+T/4OXl/+Dl5v/f5OX/4OTm/+Dm - 5v/h5+j/4efn/+Ln6P/j5+j/4+jp/+Lo6f/h5+f/4ebn/+Dm5v/g5eb/3+Tl/9/k5f/e5OX/3ePk/9zi - 4//b4eP/2eDh/9jd3//W3N3/1tzg/8/Wy/+ouBf/nK4A/5SnAP+QogD/jp0A/4yWAP+MjwD/jIYd/7xl - Zv/MT2H/ylBg/8pRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAH/ZHNM/4Gb - Gf+EmwD/jaEA/5OmAP+XqgD/nK4A/6CyAP/I0aP/2t7o/9je4P/Z3uD/2d/h/9vg4v/c4eP/3eLk/+Dk - 5v/g5eb/3+Tl/+Dl5v/h5uf/4ebn/+Ln6P/j5+j/4ujo/+Po6P/i6Oj/4ujo/+Hm5//h5uf/4OXm/9/k - 5f/e5OX/3+Tk/97j5f/b4uP/2uDi/9ng4f/Y3uD/193e/9fc4//L07v/orMI/5qsAP+TpgD/kKEA/42c - AP+NlgD/jI4A/5CELP/EYWv/zFNk/8lPX//LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/1RjTf+DnTL/g5wB/4yhAP+TpgD/mKoA/5utAP+erwD/vsl+/9rf6v/Y3uD/2d/h/9rg - 4v/c4eL/3eLj/97j5f/f5Ob/3+Tl/+Dk5v/h5uf/4ebo/+Ln6P/i6Oj/4ujp/+Po6P/i6On/4ujp/+Lo - 6P/i5+j/4efo/+Hm5//g5eb/3+Tl/9/j5f/e4uX/3OLj/9vh4v/a4OL/2N7g/9jc3v/Y3eb/xM2e/52v - AP+ZqwD/k6UA/5GhAP+OnQD/jpcA/4uQAP+Wgjn/yVlp/8xTY//KUGD/y1Fh/8tRYf/LUWH/y1Fh/wAA - AP8CAgL/AgIC/wAAAP8AAAD/AAAA/wAAAP89Ulb/hqBJ/4KbCv+LoQD/k6cA/5mrAP+brQD/nK4A/7C+ - S//a3uj/2d7h/9rg4v/b4OL/3OHj/93i4//e4+T/3+Tm/9/k5v/h5eb/4ebn/+Hn6P/i6Oj/4ujo/+Lo - 6f/j6On/4+jq/+Po6f/i6Oj/4ejo/+Hn6P/h5uf/4OXm/9/k5f/e5OX/3eLk/93h4//b4eP/2d/i/9ne - 4P/X3d//2d7p/7fDbv+arQD/mKoA/5OlAP+RoQD/j50A/4+YAP+LkgD/oH5F/8tQY//KT1//y1Fh/8tR - Yf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/KkZd/4iiXf+CnBr/i6IA/5Oo - AP+ZqwD/nK4A/52vAP+jsxj/1dvW/9rf4//a4OL/2+Hj/9zi4//d4+T/3uPl/9/k5f/g5eb/4ebn/+Hm - 6P/h5+j/4ufo/+Lo6P/j6On/4+np/+Tp6f/k6en/4+jp/+Ln6f/i5+f/4efo/+Hm5//g5eb/3+Tl/97j - 5P/c4uP/2+Hi/9rg4v/Z3uH/2N3g/9fd4/+otzb/mq0A/5epAP+UpgD/kqIA/5CeAP+QmgD/jJcA/6t3 - Tv/MTmP/y1Bg/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/AwIC/xU4 - Xv+GoXP/hZ4x/4ykB/+UqQD/mqwA/52vAP+fsAD/nK4A/8XOn//b4en/2+Di/9zi4//d4uT/3uPl/9/k - 5f/g5eb/4ebn/+Hm6P/i5+f/4ufo/+Lo6P/j6On/4+np/+Pp6v/k6er/4+nq/+Tp6v/j6Oj/4ejo/+Ln - 5//h5uj/4ebn/9/k5v/e4+X/3ePk/9zh4//b4eL/2d/h/9nf5P/N1L//m60G/5uuAP+YqgD/lacA/5Ok - AP+ToQD/kp0A/5CbBP+4bVb/zE1i/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wICAv8AAAD/AAAA/wAA - AP8AAAD/AAAA/wMCAP8ELV3/fJ2J/4qjRP+Mphr/lasA/5uuAP+esAD/oLIA/52vAP+tu0v/2uDn/9vh - 4//d4eP/3ePk/9/k5f/g5eb/4OXn/+Hm5//h5+f/4ejn/+Lo6P/i6On/4+jp/+Po6f/k6er/5Orr/+Tp - 6//k6On/4ujp/+Ln6f/i5+j/4efo/+Hm5//g5eb/3+Tl/97i5P/d4uP/2+Di/9nf4f/b4On/tcF0/5ir - AP+crgD/masA/5epAP+WpgD/lqMA/5WfAP+YoQv/xW1R/8tMYv/LUWH/y1Fh/8tRYf/KUGD/ylBg/8tR - Yf8HBwf/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBQP/ACVa/2aMmP+UrFf/jqgv/5atB/+csAD/oLIA/6Kz - AP+hswD/nK0I/8vTtv/d4+n/3OLj/97j5P/f5OX/3+Xl/+Hm5//h5uj/4ebn/+Lo6P/i6Oj/4+fo/+Po - 6v/j6er/5Orr/+Tq6//l6uv/4+nq/+Pp6f/j6On/4ujo/+Ln6P/h5ub/4OXm/9/k5v/e4+X/3eHj/9vh - 4v/b4eX/0djQ/5yrG/+drwD/na8A/5qtAP+ZqwD/makA/5mmAP+YogD/pagT/9B0TP/LUGb/ylBg/8pQ - YP/KUGD/y1Fh/8tTY//KUGD/BgYG/wAAAP8AAAD/AAAA/wEBAf8AAAD/AAAA/wAfU/9CcZv/n7Rw/5Ks - Qf+Yrxv/nrIA/6K0AP+ktQD/pLUA/52vAP+quE3/3eLp/93i5P/d4+T/3+Tl/+Dk5v/h5uf/4efo/+Ln - 6P/i5+j/4ujp/+Lo6f/k6en/5Orq/+Tq6//k6uv/5err/+Tp6v/j6er/4+jp/+Ho6P/i5uj/4Obn/+Dl - 5//g5eb/3uTl/9zi4//b4eP/3uPt/7C8c/+WqAD/oLEA/56wAP+drwD/nK0A/5yrAP+dqQD/m6YB/7ew - Gv/Udkj/y1Np/8lPX//KUGD/ylBg/8tSYv/LUmL/ylBg/wEBAf8AAAD/AAAA/wEBAf8BAQH/AAAA/wAA - AP8AIlP/F1GW/6G2jf+aslT/m7I2/6G1Df+ltwD/p7kA/6i5AP+mtwD/l6kB/77Hm//g5u7/3uPk/9/k - 5v/g5eb/4eXm/+Hn6P/i6Oj/4+jo/+Pn6f/j6en/4+rq/+Tr6//k6uv/5erq/+Xq6//k6ev/5Ojq/+Po - 6P/i6Oj/4ufo/+Hn6P/h5uf/4OXm/97k5f/c4uP/3+Xr/8fPuv+Rogz/oLIA/6K0AP+hswD/obIA/6Cw - AP+hrwD/oq0A/6OsEv/Mthr/0nFB/8pOZf/KUGD/y1Fh/8tRYf/KUGD/ylBg/8tRYf8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/ACRU/wE9jv+Lp5//qb5q/5+2SP+juCf/qLoF/6u8AP+rvQD/q7wA/6S2 - AP+Wph//zdTK/+Ln7P/f5OX/4Obn/+Dm5//h5uj/4ujo/+Lo6P/j5+j/4+jq/+Tq6v/k6uv/5err/+Xq - 6v/l6ur/5err/+Pp6v/i6On/4+fp/+Lo6P/h5+j/4eXn/+Dl5v/e4+T/4OXp/9Ta2/+ToTf/m60A/6a3 - AP+ltwD/pbYA/6S1AP+lswD/prIA/6awAP+wtC//2LYN/9BtPv/JTGP/y1Fh/8pQYP/KUGD/ylBg/8pQ - YP/LUWH/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AAAA/wAlVP8AN4n/VX6g/7zNiv+lvFn/prw8/6q+ - Gv+uwAD/r8EA/6/BAP+uvwD/oLEA/5SjOf/T2dn/4+fr/+Dl5v/h5+f/4efo/+Lo6P/i6Oj/4+jp/+Tp - 6f/k6ev/5err/+Xq6//l6uv/5err/+Xq6v/k6uv/4+jp/+Po6f/i6Of/4efo/+Dm5v/f5OX/4ebp/9nf - 4/+UoVX/k6UA/6m6AP+quwD/qboA/6m6AP+puQD/qrcA/6u2AP+ttg//xbxB/9y0AP/QcUP/yk1k/8pQ - YP/LU2P/y1Zl/8tVZP/LUmL/yk9g/wAAAP8AAAD/AQEB/wYGBv8EBAT/AwMD/wQDAv8CKFf/ADqK/xRM - kP+4y6n/s8dv/6zBTP+uwjL/scQP/7PFAP+0xQD/s8UA/7LDAP+drwD/j55A/8vSzv/m6/H/4ujq/+Hn - 5//h5+j/4ujp/+Pp6f/k6ur/5err/+Xq6//l6ur/5err/+Tr6//l6uv/5Onr/+Pp6v/j6On/4efo/+Hm - 5//i5+j/5urw/9HY1/+Nm1j/j6AA/6y+AP+vwAD/r8AA/66/AP+uvgD/r70A/7C8AP+xuwD/ucI//9e7 - L//bsgD/0G9C/8pNZP/KUGD/zFdm/81aaf/NW2r/y1Zl/8tUZP8AAAD/AAAA/wQEBP8ICAj/AwMD/wUF - Bf8EAgH/AypZ/wA9iv8ANIP/fZ6v/8zbkv+yx2D/ssdG/7XILP+3ygr/uMoA/7nLAP+4ywD/t8kA/6Kz - AP+HmCL/rria/93i5v/n7PH/5Ors/+Pp6f/i6On/4+rq/+Xq6//l6ur/5Orr/+Xr6//k6+z/5Ovr/+Xq - 6//j6er/4+jp/+Tp6//n7PD/3uTo/7G7pf9/jzH/lKYA/7LDAP+1xwD/tcYA/7TFAP+zxAD/s8MA/7TC - AP+2wQD/usMY/83LY//dtAn/2rIA/89tQf/KTGT/ylFh/8xYZ//LU2P/y1Nj/8xYZ//MWWj/AAAA/wAA - AP8AAAD/AQEB/wgICP8EBAT/CQcE/wEnVv8APov/ADeD/x9UlP/J2rX/wdR5/7jNWP+5zT3/u84f/7zP - Af++0AD/vtAA/77RAP+8zwD/r8EA/4+hBf+LmkT/sbyh/9Xc2v/l6u//6O3y/+ft8P/n7O7/5uzt/+bs - 7f/m7O3/5u3u/+ft7//o7vD/6e7y/+Xr7v/V3Nr/srym/4eWT/+DlQz/pbcA/7jKAP+7zQD/us0A/7rM - AP+5ygD/uMkA/7nIAP+7xwD/vccE/8jRXP/cwzz/268A/9uzAP/QbkL/yUxj/8pQYP/KUWH/y1Rj/8tV - ZP/LVmb/y1Rk/wAAAP8AAAD/AAAA/wAAAP8GBgb/AAAA/wIBAf8AJVT/AD6M/wA7hf8ANIP/cZWx/93r - oP++1G3/vdNR/7/TNv/B1BX/wtYB/8PXAP/E2AD/xdkA/8TYAP/A0gD/rL4A/4+hBP+Gly3/lqNm/624 - mf/Ezb//0dnT/9ng3//c4+P/3OPj/9ng3//R2dT/xM3A/624m/+UoWr/gZE0/4aXCv+itAD/us0A/8LV - AP/D1gD/wtUA/8DTAP+/0QD/v9AA/7/OAP/AzQD/ws0A/8fSO//b13b/3bQH/9uwAP/bswD/0G5C/8pN - ZP/LUGD/ylBg/8pQYP/KUGD/y1Jh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ACVU/wA+ - jP8APIb/ADmE/wxCjP/A07//1uiO/8PZZf/D2Ev/xNkx/8baFP/I3AD/yt4A/8vgAP/N4QD/zuIA/83h - AP/J3AD/u84A/6a5AP+TpgL/iJoQ/4SVIf+FlTD/hpY4/4WVOf+ElDL/gpMk/4OWE/+NoAT/n7IA/7XI - AP/F2AD/zN8A/8zhAP/M4AD/yd4A/8fbAP/F2AD/xNcA/8TVAP/E0wD/xtIA/8nUJv/Z4IL/378s/9qt - AP/arwD/2rIA/89tQf/KTmX/y1Nj/8pQYP/KUGD/y1Fh/8pQYP/KUGD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AgEA/wAmVf8APYv/ADyG/wA8hv8AM4H/M2Oe/+Dtvv/W6IX/yd9l/8rfTP/L4DX/zeIa/8/j - A//R5gD/0ucA/9TqAP/X7AD/2e4A/9rvAP/b7gb/2ewc/9PmIv/N4CL/yNof/8TWHv/E1h//xtkh/8ze - JP/S5ST/2Osi/9ruFP/a7wD/2e4A/9bsAP/U6QD/0eYA/8/kAP/M4QD/yt4B/8ndAv/J2gD/ytkE/83Z - Jv/Z5Hv/489X/9qsAP/arwD/2q8A/9uzAP/QckX/y1Jo/8tTYv/KUGD/ylBg/8tRYf/LUWH/y1Fh/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wIBAP8ELlv/AD+M/wA7hf8APIb/ADuF/wAzgv9cg6z/6/a6/9nt - hf/R5mj/0eZV/9PnQv/U6Sr/1usP/9ftAf/a7wD/3PEA/97xAP/h8QD/5PIN/+fyKv/q9D7/7PVM/+71 - VP/v9lj/7/ZZ/+72Vv/t9VD/6/RF/+fzM//l8xv/4vIB/97xAP/c8AD/2e4A/9brAP/T6QD/0OYO/87k - If/N4ir/zeAs/9DgQP/a6H3/5dpx/9ywBf/argD/2q8A/9qwAP/btAD/0HFE/8tTaf/KUWH/ylBg/8tR - Yf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ACpX/wFEj/8AO4X/ADyG/wA8 - hv8AO4X/ADSD/3SVtv/z/b7/4fOM/9vud//a7mf/2+9W/9zwQv/d8Sr/3/Ib/+HyE//j8hD/5vIV/+jy - I//r8S//7fI8/+/zRf/x9Ez/8/RP//P0T//y9E3/8PRI/+7yP//r8TT/6fIn/+byF//j8gn/4PIE/97x - Bf/b8Az/1+0g/9XrOP/T6kn/0uhW/9PnY//e74//6OKD/9yzDf/argD/2q8A/9uxAP/bsgD/27QA/9F1 - SP/MVmz/y1Rk/8lPX//LUWH/y1Fh/8tRYf/LUWH/AAAA/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAl - VP8APoz/ADuF/wA8hv8APIb/ADyF/wA6hP8AOIT/hI7K//z9z//s/J3/4/WI/+L0eP/i9Gn/4/Ra/+Tz - Tv/l80T/6PM8/+nyOv/s8jr/7vI+//DzQ//y80j/8/NL//TzTv/0807/8/NM//LzSP/w80T/7vI+/+zy - OP/p8jP/5/Mu/+TzLP/h8i//3/I4/93yR//a8Fr/2e9q/9zwfP/s9qb/6+OM/920D//ZrQD/27AA/9mu - AP/arwD/3LMA/9y2AP/RdEb/ylFn/8tTY//KUGD/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8CAgL/AgIC/wAA - AP8AAAD/AAAA/wAAAP8AJVT/AD2L/wA7hf8AO4X/ADuF/wA7hf8APYf/AEGE/zEgvv+xZ///8erh//f/ - t//s+J3/6faN/+n1gP/q9XP/6/Rp/+zzX//u81f/8PNU//H0Uv/z9FP/8/NU//T0VP/09FT/8/NV//T0 - Vf/09FT/8/NS//H0Uf/v80//7fNO/+vzTv/o81D/5vNW/+P0X//h9Gz/4fV8/+v3lv/v+b7/juTA/7i1 - G//drQD/2q8A/9uwAP/arwD/2q8A/9uwAP/bswD/0G9C/8lMY//KUGD/y1Fh/8tRYf/LUWH/y1Fh/8tR - Yf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DAgH/AipY/wFEj/8BQYn/AUKK/wFBif8AO4X/ADuF/wA9 - gP85K73/fw///5I9///avvP//P/S//f+sv/y+KD/8PaS//D2h//x9X7/8vV1//T0b//09Gv/9PRo//T0 - Zv/09GX/9PRk//T0Zv/09Gf/9PRn//T0af/09Wn/8/Rq//H1a//u9G3/7fRw/+v1d//q9YL/7/eW//r7 - t//Y9M7/VNWx/wDAjP+wshf/4K8A/9uwAP/bsAD/27AA/9uwAP/arwD/2rIA/89tQf/KTWT/y1Fh/8tR - Yf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/BQMC/wEoVv8AQI3/AD6H/wA9 - hv8CRIv/ADyG/wA6hP8APID/Oiy+/4QY//96E///fhv//6lm/v/m0u///f7W//3/vv/5+qv/9/ed//f2 - lP/29oz/9vWH//X1g//19X//9fV9//X1fP/19X3/9fWA//b2g//29oX/9vaH//b2iv/19oz/9PaQ//X3 - l//6+af///vA/+P30/9/4MH/F8id/wC/jP8AwIz/s7MZ/+CvAP/bsAD/27AA/9qvAP/arwD/2q8A/9uz - AP/QbkH/yk1k/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wMDA/8AAAD/AAAA/wAAAP8AAAD/AAAA/wUD - Af8CLFn/AUOO/wA/h/8CRYz/AUSL/wA8hv8AO4X/ADyA/zkrvf+EGP//fhr//3wX//97Fv//hSj//6pq - ///Zvfj/9O/o////1f///8T///22//36rP/6+KT/+Pif//f3nP/395v/9/ec//f3n//4+KP/+fim//z4 - q///+bH///u5///8xv/4+9f/zPLY/3LewP8byJ3/AMKR/wDDkf8AwpD/AMGM/7KyGf/frgD/27AA/9uw - AP/arwD/27AA/9uxAP/ctQD/0HFC/8lMY//LUWH/y1Fh/8tRYf/KUGD/ylBg/8tRYf8HBwf/AAAA/wAA - AP8AAAD/AAAA/wAAAP8GBAP/AilY/wFFkP8CRoz/AD+H/wJFjP8APIX/ADqE/wA+gv86LL7/gxf//30Z - //99Gf//gyP//4Ii//99Gf//gxv//2xQ//9Xq///mcn9/8nj9v/p8+3/+Prl///+3v///9n////X///9 - 1v///Nj///zb//v84f/u+uj/1vbw/6nv+P9x5Pj/Ls+v/wLDk/8AwIz/AMOR/wDCj/8AxJP/AMKP/wDA - jf+zsxn/4K8A/9qvAP/arwD/2q8A/9uxAP/bsgD/3LUA/9F0Rv/KUmj/ylBg/8pQYP/KUGD/y1Jh/8tT - Y//KUGD/BQUF/wAAAP8AAAD/AAAA/wEBAf8AAAD/AAAA/wAlVP8AP4z/AD+I/wA7hf8AO4X/ADuG/wA7 - hf8AP4L/PDHA/4QY//99Gf//fRr//4Ii//+BIP//gB///4gi//9WOv//AHj//wB1//8EfP//G4j//zKU - //9Lov//W6j//2a5//9p5f//X+P//1Ph//862///Idb//wrT//8A0P//AM32/wDBk/8AwIv/AMGO/wDD - kP8AwY3/AMGN/wDCjf8AwY3/s7MZ/+CwAP/arwD/2q8A/9qvAP/bsQD/27EA/9u0AP/RdUj/y1Np/8lP - X//KUGD/ylBg/8tSYv/LUmL/ylBg/wAAAP8AAAD/AAAA/wEBAf8BAQH/AAAA/wAAAP8AJlX/AD2L/wA7 - hf8APIb/ADuF/wA8hv8APIb/ADyA/zosvf+EGP//fRn//30Z//99Gf//fhv//38c//+EGv//Vjj//wB9 - //8Aef//AHn//wB3//8Adv//AHX//wBx//8Ahf//AM///wDQ//8Az///AM7//wDP//8A0P//ANH//wDP - 9v8AwpX/AMCL/wDBjf8AwY3/AMKO/wDCjf8Awo3/AMKO/7KyGf/grgD/27AA/9qvAP/arwD/2q8A/9qw - AP/bswD/0HBE/8pOZf/KUGD/y1Fh/8tRYf/KUGD/ylBg/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/ACZV/wA+jP8APIb/ADuF/wA7hf8APIb/ADyG/wA9gf85K77/gxf//34Z//9+Gv//fRn//30Z - //99Gf//gRX//1U3//8Aff//AHn//wB5//8Aef//AHn//wB6//8Ad///AIj//wDQ//8A0P//AND//wDR - //8A0f//AND//wDQ//8AzvX/AMKV/wDAi/8Awo7/AMKO/wDCjf8AwY3/AMKO/wDCjv+zsxn/364A/9uw - AP/bsAD/27AA/9uwAP/bsAD/2rIA/89tQf/JTGP/y1Fh/8pQYP/KUGD/ylBg/8pQYP/LUWH/AAAA/wAA - AP8AAAD/AgIC/wEBAf8AAAD/AAAA/wAlVP8APoz/ADuF/wA8hv8AO4X/ADuF/wA8hv8APID/OSu9/4MX - //99Gf//fRn//30Z//99Gf//fhv//4Qb//9WN///AHz//wB9//8Aff//AH7//wB6//8AeP//AHf//wCI - //8A0P//ANH//wDR//8A0P//AND//wDR//8A0f//AM/2/wDDlv8AwIv/AMKO/wDBjf8Awo7/AMGN/wDB - jf8Awo7/s7MZ/9+uAP/arwD/2q8A/9qvAP/arwD/2q8A/9uzAP/QcUT/yk1k/8pQYP/LVGP/zFdm/8xW - Zv/LUmL/yk9f/wAAAP8AAAD/AQEB/wcHB/8DAwP/AwMD/wQDAv8CKVf/AD6L/wA7hf8APIb/AUGJ/wA+ - h/8AO4X/AD2B/zsuvv+EGP//giP//34a//9+G///fhr//34b//+CF///Vjf//wB9//8Af///AID//wCA - //8Afv//AHz//wB2//8Aif//ANH//wDR//8A0f//AM///wDR//8A0v//ANL//wDQ9v8AxJn/AMKP/wDB - jf8AwY3/AMGN/wDDkP8AwpD/AMGN/7OzGf/grwD/2q8A/9uxAP/bsAD/2q8A/9qvAP/bswD/0G5C/8pN - ZP/KUGD/zFdn/8xZaP/MWmn/y1dm/8tVZf8AAAD/AAAA/wMDA/8HBwf/AwMD/wYGBv8FAgH/AylY/wA+ - iv8AO4X/ADuF/wA9hv8AP4j/ADuE/wA9gf8/N8L/iSL//4Ii//+CI///hCX//4Ae//98GP//gRX//1Y3 - //8Afv//AH///wB7//8Ae///AH///wB+//8Ad///AIz//wDR//8A0f//ANH//wDQ//8A0f//ANL//wDS - //8A0fb/AMSZ/wDDkP8AwIz/AMGN/wDBjf8Awo7/AMOQ/wDBjf+zsxn/4bIA/9uyAP/bsgD/27EA/9uy - AP/bsQD/2rIA/89tQf/KTWT/ylFh/8xYZ//LVGP/y1Nj/8xXZ//MWWj/AAAA/wAAAP8AAAD/AQEB/wgI - CP8EBAT/CQcE/wAmVf8APov/ADyG/wA8hv8AO4X/ADuF/wA6hP8APYH/PTPC/4ce//9+Gv//fx3//4Ad - //+BH///fBj//4IW//9VN///AHz//wB6//8Ae///AH3//wB+//8Ae///AHb//wCI//8A0P//AND//wDR - //8A0P//AM///wDQ//8A0///ANH2/wDGnf8Awo7/AMCM/wDCjv8Awo7/AMGN/wDBjf8AwI7/s7MZ/+Gx - AP/bsQD/2q8A/9qvAP/bsAD/27EA/9uzAP/QbkL/yUxj/8pQYP/KUWD/y1Ni/8tVZP/MV2b/y1Rj/wAA - AP8AAAD/AAAA/wAAAP8FBQX/AAAA/wEBAP8AJVT/AD6M/wA8hv8APIb/ADyG/wA7hf8AO4X/ADyA/z40 - wP+IIP//giL//4Ih//+CIv//gB7//30Z//+BFf//Vjj//wB8//8Aef//AHn//wB5//8Aev//AHn//wB3 - //8Aif//ANH//wDR//8A0P//ANH//wDQ//8A0P//ANL//wDP9f8Aw5f/AMGM/wDBjf8Awo7/AMKO/wDC - jv8AwY3/AMGN/7OyGf/gsQD/27IA/9uxAP/bsQD/27EA/9uxAP/bswD/z21B/8pNZP/KUGD/ylBg/8pQ - YP/KUGD/y1Fh/8tQYP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ACVU/wA+jP8APIb/ADyG/wA7 - hf8AP4f/AD6H/wA8gP86LL3/hBj//34a//9+Gv//fRn//30Z//99Gf//gRX//1Y5//8Af///AHn//wB6 - //8Aef//AHn//wB7//8Aef//AI///wDT//8A0v//AND//wDQ//8A0f//ANH//wDQ//8Azvb/AMKV/wDA - i/8AwY3/AMKO/wDCjv8AwY3/AMKP/wDCkP+zshn/4K8A/9uwAP/bsAD/27AA/9qvAP/arwD/2rIA/85t - Qf/KTmX/y1Rj/8pQYP/KUGD/y1Fh/8pQYP/KUGD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwIA/wAm - Vf8APYv/ADyG/wA8hv8AO4X/AD2H/wA8hv8APID/OSu9/4MX//9+Gf//fRn//30Z//9+G///giL//4Qb - //9VN///AH7//wB5//8Aev//AHn//wB5//8Af///AH7//wCM//8A0f//ANL//wDQ//8Az///ANH//wDR - //8A0f//AM/2/wDClv8Awo7/AMKP/wDBjf8AwY3/AMGN/wDCj/8Awo7/s7IZ/9+uAP/arwD/27AA/9uw - AP/arwD/2q8A/9uzAP/Qc0X/y1Jp/8pSYv/KUGD/ylBg/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wIBAP8ELlv/AECM/wA7hf8APIb/ADyG/wA7hf8AO4X/AD2B/zosvv+EGP//fRn//38c - //+AH///gB///38e//+GH///Vjj//wB8//8Aev//AHr//wB5//8AeP//AH3//wB6//8Ai///ANH//wDR - //8A0P//AND//wDR//8A0f//ANH//wDP9v8Awpb/AMGN/wDDkf8AwY3/AMGN/wDCjv8AwY3/AMGN/7Oz - Gf/grwD/27AA/9qvAP/arwD/2rAA/9qwAP/btAD/0HFE/8tTaf/KUmH/ylBg/8tRYf/LUWH/y1Fh/8tR - Yf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AClX/wFEj/8AO4X/ADyG/wA8hv8APIb/ADyG/wA8 - gP86K73/hBj//30Z//+CIv//gyT//4Ag//+DJP//iSP//1c6//8Aff//AHr//wB6//8Aev//AHn//wB6 - //8AfP//AIv//wDQ//8A0P//ANH//wDR//8A0f//ANH//wDR//8Az/b/AMOW/wDAi/8AwY3/AMKO/wDC - jv8Awo7/AMKO/wDCjv+zsxn/4K4A/9uwAP/arwD/2a4A/9uxAP/bsgD/27UA/9F1SP/MV2z/y1Vk/8lP - X//LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAlVP8APYv/ADyG/wA8 - hv8APIb/ADyG/wA7hf8APID/OSy+/4QY//98GP//fx3//4Yq//+EJv//gSH//4QZ//9XOf//AH3//wB6 - //8Aev//AHr//wB6//8Aef//AHb//wCI//8A0P//ANH//wDQ//8A0f//AND//wDQ//8A0f//AM/2/wDD - lv8AwYz/AMKO/wDCjv8Awo7/AMKO/wDCjv8AwY3/srIY/+CvAP/arwD/27AA/9quAP/arwD/3LMA/9y2 - AP/RdEb/yk9m/8tSYv/KUGD/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8DAwP/AQEB/wAAAP8AAAD/AAAA/wAA - AP8AJlX/AD2L/wA7hf8AO4X/ADuF/wA7hf8APYb/AEKE/zosvv+EF///fRn//30a//9/Hf//fhr//34b - //+BFf//VTf//wB9//8Aev//AHr//wB6//8Aev//AHr//wB2//8Aif//ANH//wDR//8A0P//ANH//wDR - //8A0P//ANH//wDP9v8Aw5b/AMGM/wDCjf8AwY3/AMGN/wDBjf8AwY7/AMGO/7O0Gf/grwD/2q8A/9uw - AP/arwD/2q8A/9uwAP/bswD/0G5C/8lMY//KUGD/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wEB - Af8AAAD/AAAA/wAAAP8AAAD/ACVU/wA+jP8APof/AT+I/wA+h/8AO4X/AD2G/wA+gf86K77/hBf//34a - //99Gf//fRn//30Z//99Gf//ghb//1Y4//8Aff//AHr//wB6//8Aev//AHr//wB6//8Ad///AIn//wDR - //8A0f//AND//wDQ//8A0f//AND//wDR//8Az/b/AMOW/wDBjP8Awo7/AMKP/wDDkP8Awo//AMGO/wDC - jv+zsxn/4K8A/9qvAP/bsAD/27AA/9uwAP/arwD/2rIA/89tQf/KTWT/y1Fh/8tRYf/LUWH/y1Fh/8tR - Yf/LUWH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/LevelStats.cs b/LevelStats.cs deleted file mode 100644 index 5ca2b49bc..000000000 --- a/LevelStats.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Collections.Generic; -namespace FallGuysStats { - public class RoundInfo { - public string Name { get; set; } - public int ShowID { get; set; } - public int Round { get; set; } - public int Position { get; set; } - public int Tier { get; set; } - public bool Qualified { get; set; } - public int Kudos { get; set; } - public int Players { get; set; } - public DateTime Start { get; set; } = DateTime.MinValue; - public DateTime End { get; set; } = DateTime.MinValue; - - public void ToLocalTime() { - Start = Start.Add(Start - Start.ToUniversalTime()); - End = End.Add(End - End.ToUniversalTime()); - } - public override string ToString() { - return $"{Name}: Round={Round} Position={Position} Duration={End - Start} Kudos={Kudos}"; - } - } - public class LevelStats { - public string Name { get; set; } - public int Qualified { get; set; } - public int Gold { get; set; } - public int Silver { get; set; } - public int Bronze { get; set; } - public int Played { get; set; } - public int Kudos { get; set; } - public int AveKudos { get { return Kudos / (Played == 0 ? 1 : Played); } } - public TimeSpan AveDuration { get { return TimeSpan.FromSeconds((int)Duration.TotalSeconds / (Played == 0 ? 1 : Played)); } } - public TimeSpan Duration; - public string LevelName; - public List Stats; - - public LevelStats(string name, string levelName) { - Name = name; - LevelName = levelName; - Stats = new List(); - Clear(); - } - public void Clear() { - Qualified = 0; - Gold = 0; - Silver = 0; - Bronze = 0; - Played = 0; - Kudos = 0; - Duration = TimeSpan.Zero; - Stats.Clear(); - } - public void Add(RoundInfo stat) { - Stats.Add(stat); - Played++; - if (stat.Tier == 1) { - Gold++; - } else if (stat.Tier == 2) { - Silver++; - } else if (stat.Tier == 3) { - Bronze++; - } - Kudos += stat.Kudos; - Duration += stat.End - stat.Start; - Qualified += stat.Qualified ? 1 : 0; - } - - public override string ToString() { - return $"{Name}: {Qualified} / {Played}"; - } - } -} \ No newline at end of file diff --git a/LevelTimeLimitDB.json b/LevelTimeLimitDB.json new file mode 100644 index 000000000..bd8ab4a31 --- /dev/null +++ b/LevelTimeLimitDB.json @@ -0,0 +1 @@ +{"version":19,"data":{"roundpools":[{"id":"episode_1v1_volleyfall_solos","levels":[{"id":"round_1v1_volleyfall_final_ss2_show2","duration":100},{"id":"round_1v1_volleyfall_ss2_show2_01","duration":100},{"id":"round_1v1_volleyfall_ss2_show2_02","duration":100},{"id":"round_1v1_volleyfall_ss2_show2_03","duration":100}]},{"id":"episode_anniversary_fp12_ltm","levels":[{"id":"round_floor_fall_40","duration":300},{"id":"round_door_dash_anniversary","duration":180},{"id":"round_dodge_fall_anniversary","duration":180},{"id":"round_gauntlet_01_anniversary","duration":180},{"id":"round_chompchomp_anniversary","duration":100},{"id":"round_biggestfan_anniversary","duration":180},{"id":"round_gauntlet_05_anniversary","duration":180},{"id":"round_shortcircuit_anniversary","duration":300},{"id":"round_drumtop_anniversary","duration":180},{"id":"round_see_saw_360_anniversary","duration":180},{"id":"round_slide_chute_anniversary","duration":165},{"id":"round_gauntlet_09_anniversary","duration":120},{"id":"round_fall_mountain_anniversary","duration":300},{"id":"round_floor_fall_anniversary","duration":300},{"id":"round_gauntlet_03_anniversary","duration":180},{"id":"round_tip_toe_anniversary","duration":120},{"id":"round_tail_tag_anniversary","duration":90},{"id":"round_match_fall_anniversary","duration":80},{"id":"round_jump_club_anniversary","duration":40},{"id":"round_gauntlet_02_anniversary","duration":180},{"id":"round_hoops_blockade_solo_anniversary","duration":180},{"id":"round_snowballsurvival_anniversary","duration":30},{"id":"round_gauntlet_06_anniversary","duration":180},{"id":"round_ffa_button_bashers_anniversary","duration":300},{"id":"round_fruitpunch_anniversary","duration":30},{"id":"round_penguin_solos_anniversary","duration":180},{"id":"round_gauntlet_07_anniversary","duration":180},{"id":"round_fruit_bowl_anniversary","duration":101},{"id":"round_robotrampage_arena_2_anniversary","duration":40},{"id":"round_airtime_anniversary","duration":300},{"id":"round_follow-the-leader_anniversary","duration":300},{"id":"round_blastballruins_anniversary","duration":40},{"id":"round_spin_ring_anniversary","duration":40},{"id":"round_hoverboardsurvival2_anniversary","duration":170},{"id":"round_jump_showdown_anniversary","duration":300},{"id":"round_royal_rumble_anniversary","duration":90},{"id":"round_tunnel_final_anniversary","duration":300},{"id":"round_thin_ice_anniversary","duration":300},{"id":"round_kraken_attack_anniversary","duration":300},{"id":"round_blastball_arenasurvival_anniversary","duration":270},{"id":"round_hexaring_anniversary","duration":300},{"id":"round_hexsnake_anniversary","duration":300},{"id":"round_crown_maze_anniversary","duration":300},{"id":"round_tunnel_anniversary","duration":40},{"id":"round_lava_anniversary","duration":160},{"id":"round_slimeclimb_2_anniversary","duration":190},{"id":"round_1v1_button_basher_anniversary","duration":90},{"id":"round_hoverboardsurvival_anniversary","duration":140},{"id":"round_1v1_volleyfall_anniversary","duration":100},{"id":"round_gauntlet_04_anniversary","duration":180},{"id":"round_skeefall_anniversary","duration":200},{"id":"knockout_speedcircuit_anniversary","duration":180},{"id":"round_gauntlet_10_anniversary","duration":180},{"id":"rollon_anniversary","duration":120},{"id":"bubbletrouble_anniversary","duration":300},{"id":"pineclimb_anniversary","duration":300},{"id":"trickortrapeze_anniversary","duration":180},{"id":"circleoslime_anniversary","duration":180},{"id":"goopropegrandslam_anniversary","duration":180},{"id":"cloudyteacupsgoldrush_anniversary","duration":180},{"id":"castlesiege_anniversary","duration":300},{"id":"hopadrome_anniversary","duration":300},{"id":"dodgedivesurvive_anniversary","duration":300},{"id":"rotateandeliminate_anniversary","duration":180},{"id":"rollerderby_anniversary","duration":180},{"id":"mellowcakes_anniversary","duration":300},{"id":"round_seesaw_anniversary","duration":180},{"id":"round_iceclimb_anniversary","duration":180},{"id":"round_hoops_revenge_anniversary","duration":300},{"id":"round_starlink_anniversary","duration":150},{"id":"round_slippy_slide_anniversary","duration":180},{"id":"round_satellitehoppers_anniversary","duration":180},{"id":"showcase_boats","duration":300},{"id":"round_block_party_anniversary","duration":105},{"id":"round_follow_the_line_anniversary","duration":150},{"id":"round_gauntlet_08_anniversary","duration":180},{"id":"round_pipedup_anniversary","duration":180},{"id":"round_wall_guys_anniversary","duration":300}]},{"id":"episode_blast_ball_banger","levels":[{"id":"round_blastball_arenasurvival_blast_ball_banger","duration":270},{"id":"round_gauntlet_02_blast_ball_banger","duration":120},{"id":"round_thin_ice_blast_ball_banger","duration":70},{"id":"round_chompchomp_blast_ball_banger","duration":100},{"id":"round_tip_toe_blast_ball_banger","duration":100}]},{"id":"episode_classic_duos_show_s11","levels":[{"id":"round_hexsnake_duos","duration":300},{"id":"round_gauntlet_01_duos","duration":120},{"id":"round_gauntlet_02_duos","duration":120},{"id":"round_gauntlet_03_duos","duration":120},{"id":"round_gauntlet_05_duos","duration":120},{"id":"round_gauntlet_06_duos","duration":120},{"id":"round_gauntlet_07_duos","duration":120},{"id":"round_gauntlet_09_duos","duration":90},{"id":"round_biggestfan_duos","duration":120},{"id":"round_door_dash_duos","duration":120},{"id":"round_drumtop_duos","duration":140},{"id":"round_slide_chute_duos","duration":120},{"id":"round_see_saw_360_duos","duration":180},{"id":"round_chompchomp_duos","duration":120},{"id":"round_tunnel_duos","duration":90},{"id":"round_robotrampage_arena_2_duos","duration":70},{"id":"round_blastballruins_duos","duration":150},{"id":"round_jump_club_duos","duration":90},{"id":"round_snowballsurvival_duos","duration":60},{"id":"round_hoops_blockade_solo_duos","duration":300},{"id":"round_spin_ring_duos","duration":180},{"id":"round_tip_toe_duos","duration":120},{"id":"round_pixelperfect_duos","duration":180},{"id":"round_thin_ice_duos","duration":300},{"id":"round_blastball_arenasurvival_final_duos","duration":270},{"id":"round_hexaring_duos","duration":300},{"id":"round_kraken_attack_duos","duration":300},{"id":"round_floor_fall_duos","duration":300},{"id":"round_jump_showdown_duos","duration":300},{"id":"round_tunnel_final_duos","duration":300},{"id":"round_fall_mountain_duos","duration":300},{"id":"round_ffa_button_bashers_duos","duration":300},{"id":"round_match_fall_duos","duration":80},{"id":"round_royal_rumble_duos","duration":90},{"id":"round_fruitpunch_duos","duration":90},{"id":"round_dodge_fall_duos","duration":120},{"id":"round_chicken_chase_duos","duration":120},{"id":"round_1v1_volleyfall_final_duos","duration":100},{"id":"round_1v1_volleyfall_duos","duration":100},{"id":"round_slimeclimb_2_duos","duration":190},{"id":"round_tiptoefinale_duos","duration":300},{"id":"round_penguin_solos_duos","duration":300},{"id":"round_fruit_bowl_duos","duration":101},{"id":"round_lava_duos","duration":140},{"id":"round_hoops_duos","duration":120},{"id":"round_snowy_scrap_duos","duration":180},{"id":"round_ballhogs_duos","duration":90},{"id":"round_rocknroll_duos","duration":120},{"id":"round_conveyor_arena_duos","duration":90},{"id":"round_egg_grab_duos","duration":120},{"id":"round_jinxed_duos_non_final","duration":300},{"id":"round_jinxed_duos","duration":300},{"id":"round_fall_ball_duos","duration":90},{"id":"round_fall_ball_duos_non_final","duration":90},{"id":"round_basketfall_duos","duration":90},{"id":"round_basketfall_duos_non_final","duration":90},{"id":"round_territory_control_duos","duration":90},{"id":"round_territory_control_duos_non_final","duration":90},{"id":"round_gauntlet_04_duos","duration":120},{"id":"round_skeefall_duos","duration":300},{"id":"round_egg_grab_02_duos","duration":120},{"id":"round_crown_maze_duos","duration":300},{"id":"round_gauntlet_10_duos_40","duration":150},{"id":"round_hoverboardsurvival2_duos","duration":170},{"id":"round_hoverboardsurvival_duos","duration":140},{"id":"round_tunnel_race_duos","duration":120},{"id":"round_king_of_the_hill_duos","duration":300},{"id":"round_see_saw_duos","duration":120},{"id":"round_iceclimb_duos","duration":120},{"id":"round_hoops_revenge_duos","duration":120},{"id":"round_slippy_slide_duos","duration":180},{"id":"round_satellitehoppers_duos","duration":180},{"id":"round_starlink_duos","duration":150},{"id":"round_gauntlet_08_duos","duration":120},{"id":"round_pipedup_duos","duration":150},{"id":"round_1v1_volleyfall_duos_24","duration":100},{"id":"round_1v1_volleyfall_duos_12","duration":100},{"id":"round_1v1_volleyfall_duos_16","duration":100},{"id":"round_1v1_volleyfall_duos_8","duration":100},{"id":"round_basketfall_duos_non_final_8","duration":90},{"id":"round_fall_ball_duos_non_final_8","duration":90},{"id":"round_jinxed_duos_non_final_8","duration":300},{"id":"round_territory_control_duos_non_final_8","duration":90},{"id":"round_wall_guys_duos","duration":120},{"id":"round_block_party_duos","duration":105},{"id":"round_follow_the_line_duos","duration":150}]},{"id":"episode_classic_squads_show_s11","levels":[{"id":"round_hexsnake_squads","duration":300},{"id":"round_biggestfan_squads","duration":120},{"id":"round_gauntlet_02_squads","duration":120},{"id":"round_door_dash_squads","duration":120},{"id":"round_slide_chute_squads","duration":120},{"id":"round_gauntlet_01_squads","duration":120},{"id":"round_drumtop_squads","duration":140},{"id":"round_gauntlet_06_squads","duration":120},{"id":"round_gauntlet_09_squads","duration":90},{"id":"round_gauntlet_07_squads","duration":120},{"id":"round_gauntlet_05_squads","duration":120},{"id":"round_gauntlet_03_squads","duration":120},{"id":"round_jinxed_squads_non_final","duration":300},{"id":"round_jinxed_squads","duration":300},{"id":"round_conveyor_arena_squads","duration":90},{"id":"round_robotrampage_arena_2_squads","duration":70},{"id":"round_blastballruins_squads","duration":150},{"id":"round_pixelperfect_squads","duration":180},{"id":"round_jump_club_squads","duration":90},{"id":"round_spin_ring_squads","duration":180},{"id":"round_fall_ball_squads_non_final","duration":90},{"id":"round_fall_ball_squads","duration":90},{"id":"round_blastball_arenasurvival_final_squads","duration":270},{"id":"round_hexaring_squads","duration":300},{"id":"round_kraken_attack_squads","duration":300},{"id":"round_floor_fall_squads","duration":300},{"id":"round_jump_showdown_squads","duration":300},{"id":"round_tunnel_final_squads","duration":300},{"id":"round_basketfall_squads","duration":90},{"id":"round_basketfall_squads_final","duration":90},{"id":"round_fall_mountain_squads","duration":300},{"id":"round_see_saw_360_squads","duration":180},{"id":"round_chompchomp_squads","duration":120},{"id":"round_tunnel_squads","duration":90},{"id":"round_snowballsurvival_squads","duration":60},{"id":"round_snowy_scrap_squads","duration":180},{"id":"round_thin_ice_squads","duration":300},{"id":"round_tip_toe_squads","duration":120},{"id":"round_hoops_blockade_squads","duration":300},{"id":"round_ffa_button_bashers_squads","duration":300},{"id":"round_match_fall_squads","duration":80},{"id":"round_royal_rumble_squads","duration":90},{"id":"round_fruit_bowl_squads","duration":101},{"id":"round_penguin_solos_squads","duration":300},{"id":"round_fruitpunch_squads","duration":90},{"id":"round_chicken_chase_squads","duration":120},{"id":"round_1v1_volleyfall_squads","duration":100},{"id":"round_1v1_volleyfall_final_squads","duration":100},{"id":"round_slimeclimb_2_squads","duration":190},{"id":"round_tiptoefinale","duration":300},{"id":"round_lava_squads","duration":140},{"id":"round_hoops_squads","duration":120},{"id":"round_egg_grab_squads","duration":120},{"id":"round_ballhogs_squads","duration":90},{"id":"round_rocknroll_squads","duration":120},{"id":"round_territory_control_squads_non_final","duration":90},{"id":"round_territory_control_squads","duration":90},{"id":"round_gauntlet_04_squads","duration":120},{"id":"round_skeefall_squads","duration":300},{"id":"round_egg_grab_02_squads","duration":120},{"id":"round_crown_maze_squads","duration":300},{"id":"round_gauntlet_10_squads_40","duration":150},{"id":"round_hoverboardsurvival2_squads","duration":170},{"id":"round_hoverboardsurvival_squads","duration":140},{"id":"round_dodge_fall_squads","duration":120},{"id":"round_tunnel_race_squads","duration":120},{"id":"round_king_of_the_hill_squads","duration":300},{"id":"round_see_saw_squads","duration":120},{"id":"round_iceclimb_squads","duration":120},{"id":"round_hoops_revenge_squads","duration":120},{"id":"round_slippy_slide_squads","duration":180},{"id":"round_starlink_squads","duration":150},{"id":"round_satellitehoppers_squads","duration":180},{"id":"round_gauntlet_08_squads","duration":120},{"id":"round_pipedup_squads","duration":150},{"id":"round_1v1_volleyfall_squads_24","duration":100},{"id":"round_basketfall_squads_non_final_16","duration":90},{"id":"round_fall_ball_squads_non_final_16","duration":90},{"id":"round_jinxed_squads_non_final_16","duration":300},{"id":"round_territory_control_squads_non_final_16","duration":90},{"id":"round_wall_guys_squads","duration":120},{"id":"round_block_party_squads","duration":105},{"id":"round_follow_the_line_squads","duration":150}]},{"id":"episode_content_complete_ss2","levels":[{"id":"round_floor_fall","duration":300},{"id":"round_door_dash","duration":180},{"id":"round_block_party","duration":105},{"id":"round_tail_tag","duration":90},{"id":"round_fall_mountain_hub_complete","duration":300},{"id":"round_see_saw","duration":180},{"id":"round_gauntlet_01","duration":180},{"id":"round_gauntlet_02","duration":180},{"id":"round_tip_toe","duration":120},{"id":"round_jump_club","duration":90},{"id":"round_dodge_fall","duration":180},{"id":"round_royal_rumble","duration":90},{"id":"round_lava","duration":140},{"id":"round_jump_showdown","duration":300},{"id":"round_match_fall","duration":80},{"id":"round_chompchomp","duration":100},{"id":"round_tunnel","duration":150},{"id":"round_gauntlet_03","duration":180},{"id":"round_wall_guys","duration":300},{"id":"round_hoops_blockade_solo","duration":300},{"id":"round_gauntlet_04","duration":180},{"id":"round_biggestfan","duration":210},{"id":"round_tunnel_final","duration":300},{"id":"round_skeefall","duration":300},{"id":"round_gauntlet_05","duration":180},{"id":"round_thin_ice","duration":300},{"id":"round_thin_ice_mini","duration":300},{"id":"round_thin_ice_mini_low_grav","duration":300},{"id":"round_iceclimb","duration":180},{"id":"round_snowballsurvival","duration":60},{"id":"round_gauntlet_06","duration":180},{"id":"round_hoverboardsurvival","duration":140},{"id":"round_shortcircuit","duration":300},{"id":"round_tunnel_race","duration":120},{"id":"round_fruitpunch","duration":90},{"id":"round_slimeclimb_2","duration":190},{"id":"round_1v1_button_basher","duration":90},{"id":"round_floor_fall_mini","duration":300},{"id":"round_floor_fall_mini_low_grav","duration":300},{"id":"round_robotrampage_arena_2","duration":70},{"id":"round_penguin_solos","duration":300},{"id":"round_drumtop","duration":180},{"id":"round_gauntlet_07","duration":180},{"id":"round_crown_maze","duration":300},{"id":"round_king_of_the_hill","duration":300},{"id":"round_fruit_bowl","duration":101},{"id":"round_pipedup","duration":180},{"id":"round_gauntlet_08","duration":180},{"id":"round_airtime","duration":300},{"id":"round_see_saw_360","duration":180},{"id":"round_gauntlet_09","duration":90},{"id":"round_short_circuit_2","duration":180},{"id":"round_spin_ring","duration":180},{"id":"round_hoops_revenge","duration":300},{"id":"round_1v1_volleyfall","duration":100},{"id":"round_blastball_arenasurvival","duration":270},{"id":"round_hexaring","duration":300},{"id":"round_gauntlet_10","duration":180},{"id":"round_satellitehoppers","duration":180},{"id":"round_hoverboardsurvival2","duration":170},{"id":"round_starlink","duration":150},{"id":"round_ffa_button_bashers","duration":300},{"id":"round_hexsnake","duration":300}]},{"id":"episode_day_at_the_races_ltm","levels":[{"id":"round_hexsnake","duration":300},{"id":"round_door_dash_dar_ltm","duration":120},{"id":"round_dodge_fall_dar_ltm","duration":180},{"id":"round_lava_dar_ltm","duration":140},{"id":"round_gauntlet_01_dar_ltm","duration":180},{"id":"round_gauntlet_02_dar_ltm","duration":180},{"id":"round_gauntlet_03_dar_ltm","duration":180},{"id":"round_biggestfan_dar_ltm","duration":180},{"id":"round_gauntlet_05_dar_ltm","duration":180},{"id":"round_gauntlet_06_dar_ltm","duration":180},{"id":"round_drumtop_dar_ltm","duration":180},{"id":"round_gauntlet_07_dar_ltm","duration":180},{"id":"round_floor_fall_dar","duration":300},{"id":"round_jump_showdown_dar","duration":300},{"id":"round_gauntlet_09_dar_ltm","duration":90},{"id":"round_hexaring_dar","duration":300},{"id":"round_blastball_arenasurvival_dar","duration":270},{"id":"round_hexsnake_dar","duration":300},{"id":"round_slide_chute_dar_ltm","duration":165},{"id":"round_kraken_attack_dar","duration":300},{"id":"round_see_saw_dar_ltm","duration":180},{"id":"round_fall_mountain_hub_complete_dar","duration":300},{"id":"round_see_saw_360_dar","duration":180},{"id":"round_chompchomp_dar","duration":100},{"id":"round_gauntlet_04_dar","duration":180},{"id":"round_crown_maze_dar","duration":300},{"id":"round_tunnel_race_dar","duration":120},{"id":"round_royal_rumble_dar","duration":90},{"id":"round_shortcircuit_dar","duration":300},{"id":"round_gauntlet_10_dar","duration":180},{"id":"round_short_circuit_2_dar","duration":180},{"id":"round_slimeclimb_2_dar","duration":190},{"id":"round_thin_ice_mini_dar","duration":300},{"id":"round_tip_toe_dar","duration":120},{"id":"round_gauntlet_08_dar","duration":180},{"id":"round_pipedup_dar","duration":180},{"id":"round_iceclimb_dar","duration":180},{"id":"round_starlink_dar","duration":150},{"id":"round_satellitehoppers_dar","duration":180},{"id":"round_wall_guys_dar","duration":300}]},{"id":"episode_elimination_squads_ranked","levels":[{"id":"round_floor_fall_event_elimination_squads","duration":300},{"id":"ranked_xtreme_squads_biggestfan","duration":100},{"id":"ranked_xtreme_squads_see_saw_360","duration":100},{"id":"ranked_xtreme_squads_chompchomp","duration":100},{"id":"ranked_xtreme_squads_gauntlet_04","duration":100},{"id":"ranked_xtreme_squads_drumtop","duration":100},{"id":"ranked_xtreme_squads_see_saw","duration":100},{"id":"ranked_xtreme_squads_slide_chute","duration":120},{"id":"ranked_xtreme_squads_gauntlet_03","duration":100},{"id":"ranked_xtreme_squads_gauntlet_07","duration":100},{"id":"ranked_xtreme_squads_gauntlet_05","duration":100},{"id":"ranked_xtreme_squads_gauntlet_06","duration":100},{"id":"ranked_xtreme_squads_lava","duration":140},{"id":"ranked_xtreme_squads_slimeclimb_2","duration":190},{"id":"ranked_xtreme_squads_tunnel_race","duration":100},{"id":"ranked_xtreme_squads_blastball_arenasurvival","duration":270},{"id":"ranked_xtreme_squads_floor_fall","duration":300},{"id":"ranked_xtreme_squads_hexaring","duration":300},{"id":"ranked_xtreme_squads_hexsnake","duration":300},{"id":"ranked_xtreme_squads_kraken_attack","duration":300},{"id":"ranked_xtreme_squads_tunnel_final","duration":300},{"id":"ranked_xtreme_squads_thin_ice","duration":300},{"id":"ranked_xtreme_squads_gauntlet_08","duration":100},{"id":"ranked_xtreme_squads_pipedup","duration":100},{"id":"ranked_xtreme_squads_hyperdriveheroes","duration":170},{"id":"ranked_xtreme_squads_hoverboardsurvival","duration":140},{"id":"ranked_xtreme_squads_jumpshowdown","duration":300}]},{"id":"episode_event_animals_template","levels":[{"id":"round_floor_fall_40","duration":300},{"id":"round_king_of_the_hill_animals","duration":300},{"id":"round_egg_grab_animals","duration":120},{"id":"round_egg_grab_02_animals","duration":120},{"id":"round_drumtop_animals","duration":180},{"id":"round_penguin_solos_animals","duration":300},{"id":"round_chicken_chase_animals","duration":120},{"id":"round_tail_tag_animals","duration":90},{"id":"round_conveyor_arena_animals","duration":90},{"id":"round_gauntlet_07_animals","duration":180},{"id":"round_robotrampage_arena_2_animals","duration":70},{"id":"round_royal_rumble_animals","duration":90},{"id":"round_drumtop_final_animals","duration":300},{"id":"round_crown_maze_animals","duration":300},{"id":"blastlantis_animals","duration":270},{"id":"blunderboat_animals","duration":90},{"id":"clumsycrusade_animals","duration":150},{"id":"krakenslam_final_animals","duration":300},{"id":"showcase_closingtime_animals","duration":120}]},{"id":"episode_event_cashew_ss2","levels":[{"id":"round_pixelperfect_event_cashew_ss2_final","duration":70},{"id":"round_pixelperfect_event_cashew_ss2_1","duration":110},{"id":"round_pixelperfect_event_cashew_ss2_2","duration":90}]},{"id":"episode_event_clan_of_yeetus_ss1","levels":[{"id":"round_floor_fall","duration":300},{"id":"round_door_dash_event_clan_of_yeetus_ss1","duration":80},{"id":"round_gauntlet_01_event_clan_of_yeetus_ss1","duration":80},{"id":"round_skeefall_event_clan_of_yeetus_ss1","duration":140},{"id":"round_wall_guys_event_clan_of_yeetus_ss1","duration":80},{"id":"round_door_dash_event_clan_of_yeetus_ss1_2","duration":60},{"id":"round_gauntlet_01_event_clan_of_yeetus_ss1_2","duration":60},{"id":"round_skeefall_event_clan_of_yeetus_ss1_2","duration":120},{"id":"round_wall_guys_event_clan_of_yeetus_ss1_2","duration":60},{"id":"round_door_dash_event_clan_of_yeetus_ss1_final","duration":40},{"id":"round_gauntlet_01_event_clan_of_yeetus_ss1_final","duration":40},{"id":"round_skeefall_event_clan_of_yeetus_ss1_final","duration":100},{"id":"round_wall_guys_event_clan_of_yeetus_ss1_final","duration":40}]},{"id":"episode_event_elimination_gauntlets","levels":[{"id":"round_floor_fall_event_elimination","duration":300},{"id":"round_gauntlet_03_event_elimination","duration":100},{"id":"round_biggestfan_event_elimination","duration":100},{"id":"round_gauntlet_05_event_elimination","duration":100},{"id":"round_gauntlet_06_event_elimination","duration":100},{"id":"round_gauntlet_07_event_elimination","duration":100},{"id":"round_drumtop_event_elimination","duration":100},{"id":"round_lava_event_elimination","duration":140},{"id":"round_jump_showdown_event_elimination","duration":300},{"id":"round_slide_chute_event_elimination","duration":165},{"id":"round_blastball_arenasurvival_elimination","duration":270},{"id":"round_hexaring_elimination","duration":300},{"id":"round_hex_snake_event_elimination","duration":300},{"id":"round_chompchomp_event_elimination","duration":100},{"id":"round_thin_ice_event_elimination","duration":300},{"id":"round_tunnel_final_event_elimination","duration":300},{"id":"round_hoverboardsurvival_event_elimination","duration":140},{"id":"round_slimeclimb_2_event_elimination","duration":190},{"id":"round_gauntlet_04_event_elimination","duration":100},{"id":"round_see_saw_360_event_elimination","duration":100},{"id":"round_tunnel_race_event_elimination","duration":100},{"id":"round_see_saw_event_elimination","duration":100},{"id":"round_kraken_attack_event_elimination","duration":300},{"id":"round_gauntlet_08_event_elimination","duration":100},{"id":"round_pipedup_event_elimination","duration":100}]},{"id":"episode_event_elimination_gauntlets_ranked","levels":[{"id":"ranked_xtreme_solos_floor_fall","duration":300},{"id":"ranked_xtreme_solos_gauntlet_03","duration":100},{"id":"ranked_xtreme_solos_biggestfan","duration":100},{"id":"ranked_xtreme_solos_gauntlet_05","duration":100},{"id":"ranked_xtreme_solos_gauntlet_06","duration":100},{"id":"ranked_xtreme_solos_gauntlet_07","duration":100},{"id":"ranked_xtreme_solos_drumtop","duration":100},{"id":"ranked_xtreme_solos_lava","duration":140},{"id":"ranked_xtreme_solos_jump_showdown","duration":300},{"id":"ranked_xtreme_solos_slide_chute","duration":165},{"id":"ranked_xtreme_solos_blastball_arenasurvival","duration":270},{"id":"ranked_xtreme_solos_hexaring","duration":300},{"id":"ranked_xtreme_solos_hexsnake","duration":300},{"id":"ranked_xtreme_solos_chompchomp","duration":100},{"id":"ranked_xtreme_solos_thin_ice_mini","duration":300},{"id":"ranked_xtreme_solos_tunnel_final","duration":300},{"id":"ranked_xtreme_solos_hoverboardsurvival","duration":140},{"id":"ranked_xtreme_solos_slimeclimb_2","duration":190},{"id":"ranked_xtreme_solos_gauntlet_04","duration":100},{"id":"ranked_xtreme_solos_see_saw_360","duration":100},{"id":"ranked_xtreme_solos_tunnel_race","duration":100},{"id":"ranked_xtreme_solos_see_saw","duration":100},{"id":"ranked_xtreme_solos_kraken_attack","duration":300},{"id":"ranked_xtreme_solos_gauntlet_08","duration":100},{"id":"ranked_xtreme_solos_pipedup","duration":100},{"id":"ranked_xtreme_solos_hyperdriveheroes","duration":170}]},{"id":"episode_event_elimination_gauntlets_squads","levels":[{"id":"round_floor_fall_event_elimination_squads","duration":300},{"id":"round_gauntlet_03_event_elimination_squads","duration":100},{"id":"round_biggestfan_event_elimination_squads","duration":100},{"id":"round_gauntlet_05_event_elimination_squads","duration":100},{"id":"round_gauntlet_07_event_elimination_squads","duration":100},{"id":"round_drumtop_event_elimination_squads","duration":100},{"id":"round_lava_event_elimination_squads","duration":140},{"id":"round_slide_chute_elimination_squads","duration":120},{"id":"round_blastball_arenasurvival_elimination_squads","duration":270},{"id":"round_hexaring_elimination_squads","duration":300},{"id":"round_hexsnake_squads_event_elimination_squads","duration":300},{"id":"round_see_saw_360_event_elimination_squads","duration":100},{"id":"round_chompchomp_event_elimination_squads","duration":100},{"id":"round_thin_ice_event_elimination_squads","duration":300},{"id":"round_tunnel_final_event_elimination_squads","duration":300},{"id":"round_gauntlet_06_event_elimination_squads","duration":100},{"id":"round_slimeclimb_2_event_elimination_squads","duration":190},{"id":"round_gauntlet_04_event_elimination_squads","duration":100},{"id":"round_kraken_attack_event_elimination_squads","duration":300},{"id":"round_see_saw_event_elimination_squads","duration":100},{"id":"round_tunnel_race_event_elimination_squads","duration":100},{"id":"round_gauntlet_08_event_elimination_squads","duration":100},{"id":"round_pipedup_event_elimination_squads","duration":100},{"id":"round_hyperdriveheroes_event_elimination_squads","duration":170},{"id":"round_hoverboardsurvival_event_elimination_squads","duration":140},{"id":"round_jumpshowdown_event_elimination_squads","duration":300}]},{"id":"episode_event_end_of_season_s2","levels":[{"id":"round_jump_showdown","duration":300},{"id":"round_gauntlet_04","duration":180},{"id":"round_biggestfan_event_season_02","duration":210},{"id":"round_egg_grab_02","duration":120},{"id":"round_wall_guys","duration":300},{"id":"round_hoops_blockade_solo","duration":300},{"id":"round_tunnel_final","duration":300}]},{"id":"episode_event_fanfare","levels":[{"id":"round_jump_showdown_event_fanfare","duration":300},{"id":"round_gauntlet_05_event_fanfare","duration":180},{"id":"round_jinxed_event_fanfare","duration":300},{"id":"round_wall_guys_event_fanfare","duration":300},{"id":"round_hoops_event_fanfare","duration":120},{"id":"round_chicken_chase_event_fanfare","duration":120},{"id":"round_tail_tag_event_fanfare","duration":90},{"id":"round_door_dash_event_fanfare","duration":180},{"id":"round_lava_event_fanfare","duration":140},{"id":"round_gauntlet_04_event_fanfare","duration":180},{"id":"round_biggestfan_event_fanfare","duration":210},{"id":"round_skeefall","duration":300},{"id":"round_gauntlet_06_event_fanfare","duration":180},{"id":"round_hoverboardsurvival_event_fanfare","duration":140},{"id":"round_shortcircuit_event_fanfare","duration":300},{"id":"round_tunnel_race_event_fanfare","duration":120},{"id":"round_iceclimb_event_fanfare","duration":180},{"id":"round_basketfall_event_fanfare","duration":120},{"id":"round_territory_control_event_fanfare","duration":100},{"id":"round_gauntlet_07_event_fanfare","duration":180},{"id":"round_robotrampage_arena_2_event_fanfare","duration":70},{"id":"round_penguin_solos_event_fanfare","duration":300},{"id":"round_drumtop_event_fanfare","duration":180}]},{"id":"episode_event_hard_mode","levels":[{"id":"round_fall_mountain_hub_complete","duration":300},{"id":"round_gauntlet_01_hard_mode","duration":180},{"id":"round_gauntlet_02_hard_mode_01","duration":180},{"id":"round_gauntlet_03_hard_mode","duration":180},{"id":"round_dodge_fall_hard_mode","duration":180},{"id":"round_tunnel_hard_mode","duration":150},{"id":"round_jump_club_hard_mode","duration":90},{"id":"round_tip_toe_hard_mode","duration":120},{"id":"round_lava_hard_mode_01","duration":140},{"id":"round_hoops_blockade_solo_hard_mode","duration":300},{"id":"round_fall_mountain_hard_mode","duration":300},{"id":"round_floor_fall","duration":300},{"id":"round_jump_showdown_hard_mode","duration":300},{"id":"round_royal_rumble","duration":90},{"id":"round_block_party_hard_mode","duration":105},{"id":"round_match_fall_hard_mode","duration":80},{"id":"round_gauntlet_05_hard_mode","duration":180},{"id":"round_biggestfan_hard_mode","duration":120},{"id":"round_snowballsurvival_hard_mode","duration":90},{"id":"round_tunnel_final","duration":300},{"id":"round_hoverboardsurvival","duration":140},{"id":"round_slimeclimb_2_hard_mode","duration":190},{"id":"round_chompchomp_hard_mode","duration":100},{"id":"round_drumtop_hard_mode","duration":180},{"id":"round_gauntlet_07_hard_mode","duration":180}]},{"id":"episode_event_le_anchovy_private_lobbies","levels":[{"id":"round_kraken_attack_le_anchovy","duration":300},{"id":"round_slide_chute_le_anchovy","duration":120},{"id":"round_slippy_slide_le_anchovy","duration":180},{"id":"round_blastballruins_le_anchovy","duration":270}]},{"id":"episode_event_only_blast_ball_trials","levels":[{"id":"round_blastball_arenasurvival_blast_ball_trials_fn","duration":270},{"id":"round_blastball_arenasurvival_blast_ball_trials_01","duration":270},{"id":"round_blastball_arenasurvival_blast_ball_trials_02","duration":270}]},{"id":"episode_event_only_button_bashers","levels":[{"id":"round_1v1_button_basher_event_only_fallback","duration":90},{"id":"round_1v1_button_basher_event_only_01","duration":90},{"id":"round_1v1_button_basher_event_only_02","duration":90},{"id":"round_1v1_button_basher_event_only_03","duration":90},{"id":"round_1v1_button_basher_event_only_final","duration":90}]},{"id":"episode_event_only_day_at_races","levels":[{"id":"round_hexsnake_squads","duration":300},{"id":"round_slide_chute_dar_squads","duration":120},{"id":"round_jump_showdown_dar_squads","duration":300},{"id":"round_hexaring_dar_squads","duration":300},{"id":"round_floor_fall_dar_squads","duration":300},{"id":"round_hexsnake_dar_squads","duration":300},{"id":"round_blastball_arenasurvival_final_dar_squads","duration":270},{"id":"round_gauntlet_02_dar_squads","duration":120},{"id":"round_biggestfan_dar_squads","duration":120},{"id":"round_gauntlet_06_dar_squads","duration":120},{"id":"round_gauntlet_07_dar_squads","duration":120},{"id":"round_gauntlet_09_dar_squads","duration":90},{"id":"round_door_dash_dar_squads","duration":120},{"id":"round_gauntlet_01_dar_squads","duration":120},{"id":"round_chompchomp_dar_squads","duration":120},{"id":"round_gauntlet_03_dar_squads","duration":120},{"id":"round_gauntlet_05_dar_squads","duration":120},{"id":"round_drumtop_dar_squads","duration":140},{"id":"round_see_saw_360_dar_squads","duration":180},{"id":"round_lava_dar_squads","duration":140},{"id":"round_slimeclimb_2_dar_squads","duration":190},{"id":"round_dodge_fall_dar_squads","duration":120},{"id":"round_tip_toe_dar_squads","duration":120},{"id":"round_fall_mountain_dar_squads","duration":300},{"id":"round_gauntlet_04_dar_squads","duration":120},{"id":"round_tunnel_race_dar_squads","duration":120},{"id":"round_gauntlet_10_dar_squads","duration":150},{"id":"round_see_saw_dar_squads","duration":180},{"id":"round_satellitehoppers_dar_squads","duration":180},{"id":"round_starlink_dar_squads","duration":150},{"id":"round_royal_rumble_dar_squads","duration":90},{"id":"round_gauntlet_08_dar_squads","duration":180},{"id":"round_pipedup_dar_squads","duration":180},{"id":"round_iceclimb_dar_squads","duration":120},{"id":"round_tiptoefinale_dar_squads","duration":300},{"id":"round_thin_ice_dar_squads","duration":300},{"id":"round_crown_maze_dar_squads","duration":300},{"id":"round_kraken_attack_dar_squads","duration":300},{"id":"round_wall_guys_dar_squads","duration":300}]},{"id":"episode_event_only_drumtop_template","levels":[{"id":"round_jump_showdown","duration":300},{"id":"round_drumtop_event_only","duration":140},{"id":"round_drumtop_event_only","duration":140},{"id":"round_drumtop_event_only_final","duration":140}]},{"id":"episode_event_only_fall_ball","levels":[{"id":"round_floor_fall_mini_40_only_fall_ball","duration":300},{"id":"round_fall_ball_cup_only_01","duration":120},{"id":"round_fall_ball_cup_only_02","duration":120},{"id":"round_fall_ball_cup_only_03","duration":120},{"id":"round_fall_mountain_only_fall_ball","duration":300},{"id":"round_tunnel_final_only_fall_ball","duration":300},{"id":"round_thin_ice_mini_only_fall_ball","duration":300},{"id":"round_kraken_attack_only_fall_ball","duration":300},{"id":"round_jump_showdown_only_fall_ball","duration":300},{"id":"round_blastball_arenasurvival_only_fall_ball","duration":270},{"id":"round_hexaring_only_fall_ball","duration":300},{"id":"round_hexsnake_only_fall_ball","duration":300}]},{"id":"episode_event_only_fall_ball_trios","levels":[{"id":"round_fall_ball_cup_only_trios_final","duration":120},{"id":"round_fall_ball_cup_only_trios_01","duration":120},{"id":"round_fall_ball_cup_only_trios_02","duration":120}]},{"id":"episode_event_only_finals_ranked","levels":[{"id":"kraken_attack_only_finals_final_ranked","duration":300},{"id":"blastball_only_finals_normal_ranked","duration":300},{"id":"floor_fall_only_finals_normal_ranked","duration":300},{"id":"hexaring_only_finals_normal_ranked","duration":300},{"id":"hexsnake_only_finals_normal_ranked","duration":300},{"id":"jump_showdown_only_finals_normal_ranked","duration":120},{"id":"thin_ice_only_finals_normal_ranked","duration":300},{"id":"kraken_attack_only_finals_normal_ranked","duration":120},{"id":"blastball_only_finals_final_ranked","duration":300},{"id":"mini_floor_fall_only_finals_final_ranked","duration":300},{"id":"hexaring_only_finals_final_ranked","duration":300},{"id":"hexsnake_only_finals_final_ranked","duration":300},{"id":"jump_showdown_only_finals_final_ranked","duration":300},{"id":"mini_thin_ice_only_finals_final_ranked","duration":300},{"id":"tunnel_final_only_finals_final_ranked","duration":300},{"id":"crown_maze_event_only_finals_ranked","duration":300},{"id":"fall_mountain_only_finals_final_ranked","duration":300},{"id":"circleoslime_only_finals_normal_ranked","duration":120},{"id":"goopropegrandslam_only_finals_normal_ranked","duration":120},{"id":"cloudyteacupsgoldrush_only_finals_normal_ranked","duration":120},{"id":"castlesiege_only_finals_normal_ranked","duration":120},{"id":"hopadrome_only_finals_normal_ranked","duration":120},{"id":"dodgedivesurvive_only_finals_normal_ranked","duration":120},{"id":"pineclimb_only_finals_final_ranked","duration":300},{"id":"rotateandeliminate_only_finals_normal_ranked","duration":120},{"id":"rollerderby_only_finals_normal_ranked","duration":120},{"id":"trickortrapeze_only_finals_final_ranked","duration":180},{"id":"circleoslime_only_finals_final_ranked","duration":180},{"id":"goopropegrandslam_only_finals_final_ranked","duration":180},{"id":"cloudyteacupsgoldrush_only_finals_final_ranked","duration":180},{"id":"castlesiege_only_finals_final_ranked","duration":300},{"id":"hopadrome_only_finals_final_ranked","duration":300},{"id":"dodgedivesurvive_only_finals_final_ranked","duration":300},{"id":"rotateandeliminate_only_finals_final_ranked","duration":180},{"id":"rollerderby_only_finals_final_ranked","duration":180},{"id":"mellowcakes_only_finals_normal_ranked","duration":120},{"id":"mellowcakes_only_finals_final_ranked","duration":300},{"id":"pier_pressure_only_finals_normal_ranked","duration":120},{"id":"pier_pressure_only_finals_final_ranked","duration":300}]},{"id":"episode_event_only_finals_v3","levels":[{"id":"round_kraken_attack_only_finals_v2_final","duration":300},{"id":"round_blastball_only_finals_v3_normal","duration":270},{"id":"round_floor_fall_only_finals_v3_normal","duration":300},{"id":"round_hexaring_only_finals_v3_normal","duration":300},{"id":"round_hexsnake_only_finals_v3_normal","duration":300},{"id":"round_jump_showdown_only_finals_v3_normal","duration":300},{"id":"round_thin_ice_only_finals_v2_r1","duration":300},{"id":"round_kraken_attack_only_finals_v2_r1","duration":300},{"id":"round_blastball_only_finals_v2_final","duration":270},{"id":"round_floor_fall_only_finals_v2_final","duration":300},{"id":"round_hexaring_only_finals_v2_final","duration":300},{"id":"round_hexsnake_only_finals_v2_final","duration":300},{"id":"round_jump_showdown_only_finals_v2_final","duration":300},{"id":"round_thin_ice_only_finals_v2_final","duration":300},{"id":"round_tunnel_final_only_finals_v2_final","duration":300},{"id":"round_crown_maze_event_only_finals","duration":300},{"id":"round_fall_mountain_2_players","duration":300},{"id":"circleoslime_only_finals_v3_normal","duration":180},{"id":"goopropegrandslam_only_finals_v3_normal","duration":180},{"id":"cloudyteacupsgoldrush_only_finals_v3_normal","duration":180},{"id":"castlesiege_only_finals_v3_normal","duration":300},{"id":"hopadrome_only_finals_v3_normal","duration":300},{"id":"dodgedivesurvive_only_finals_v3_normal","duration":300},{"id":"pineclimb_only_finals_v3_final","duration":300},{"id":"rotateandeliminate_only_finals_v3_normal","duration":180},{"id":"rollerderby_only_finals_v3_normal","duration":180},{"id":"trickortrapeze_only_finals_v3_final","duration":180},{"id":"circleoslime_only_finals_v3_final","duration":180},{"id":"goopropegrandslam_only_finals_v3_final","duration":180},{"id":"cloudyteacupsgoldrush_only_finals_v3_final","duration":180},{"id":"castlesiege_only_finals_v3_final","duration":300},{"id":"hopadrome_only_finals_v3_final","duration":300},{"id":"dodgedivesurvive_only_finals_v3_final","duration":300},{"id":"rotateandeliminate_only_finals_v3_final","duration":180},{"id":"rollerderby_only_finals_v3_final","duration":180},{"id":"mellowcakes_only_finals_v3_normal","duration":300},{"id":"mellowcakes_only_finals_v3_final","duration":300}]},{"id":"episode_event_only_floor_fall","levels":[{"id":"round_floor_fall","duration":300},{"id":"round_floor_fall_event_only_01","duration":300},{"id":"round_floor_fall_event_only_02","duration":300},{"id":"round_floor_fall_event_only_final","duration":300}]},{"id":"episode_event_only_floor_fall_low_grav","levels":[{"id":"round_floor_fall_event_only_low_grav_final","duration":300},{"id":"round_floor_fall_event_only_low_grav_01","duration":300},{"id":"round_floor_fall_event_only_low_grav_02","duration":300}]},{"id":"episode_event_only_hexaring","levels":[{"id":"round_hexaring_event_only_final","duration":300},{"id":"round_hexaring_event_only_01","duration":300},{"id":"round_hexaring_event_only_02","duration":300}]},{"id":"episode_event_only_hoverboardsurvival","levels":[{"id":"round_hoverboardsurvival_event_only","duration":140},{"id":"round_hoverboardsurvival_final","duration":140}]},{"id":"episode_event_only_jump_club","levels":[{"id":"round_jump_showdown","duration":300},{"id":"round_jump_club_event_only_01","duration":90},{"id":"round_jump_club_event_only_02","duration":90},{"id":"round_jump_club_event_only_03","duration":90},{"id":"round_jump_showdown_jump_club_event_only_final","duration":300}]},{"id":"episode_event_only_roll_out","levels":[{"id":"round_tunnel_final","duration":300},{"id":"round_tunnel_race_event_only_roll_out","duration":120},{"id":"round_tunnel_event_only_roll_out_03","duration":150},{"id":"round_tunnel_event_only_roll_out_final","duration":300}]},{"id":"episode_event_only_roll_out_ranked","levels":[{"id":"round_tunnel_event_only_roll_out_final_ranked","duration":300},{"id":"round_tunnel_race_event_only_roll_out_ranked","duration":120},{"id":"round_tunnel_event_only_roll_out_03_ranked","duration":150}]},{"id":"episode_event_only_season_4_custom_lobby","levels":[{"id":"round_floor_fall","duration":300},{"id":"round_gauntlet_06","duration":180},{"id":"round_hoverboardsurvival_s4_show","duration":140},{"id":"round_basketfall_s4_show","duration":120},{"id":"round_shortcircuit","duration":300},{"id":"round_territory_control_s4_show","duration":100},{"id":"round_tunnel_race","duration":120},{"id":"round_fruitpunch_s4_show","duration":90},{"id":"round_1v1_button_basher","duration":90},{"id":"round_slimeclimb_2","duration":190},{"id":"round_jump_showdown","duration":300},{"id":"round_fall_mountain_hub_complete","duration":300},{"id":"round_royal_rumble","duration":90},{"id":"round_tunnel_final","duration":300}]},{"id":"episode_event_only_season_5","levels":[{"id":"round_crown_maze","duration":300},{"id":"round_gauntlet_07","duration":180},{"id":"round_penguin_solos","duration":300},{"id":"round_drumtop","duration":180},{"id":"round_robotrampage_arena_2","duration":70},{"id":"round_fruit_bowl","duration":101}]},{"id":"episode_event_only_season_5_custom_lobby","levels":[{"id":"round_crown_maze","duration":300},{"id":"round_gauntlet_07","duration":180},{"id":"round_penguin_solos","duration":300},{"id":"round_drumtop","duration":180},{"id":"round_robotrampage_arena_2","duration":70},{"id":"round_fruit_bowl","duration":101}]},{"id":"episode_event_only_season_6","levels":[{"id":"round_jump_showdown","duration":300},{"id":"round_gauntlet_08","duration":180},{"id":"round_see_saw_360","duration":180},{"id":"round_airtime","duration":300},{"id":"round_pipedup_s6_launch","duration":180},{"id":"round_follow-the-leader_s6_launch","duration":300},{"id":"round_floor_fall_event_only_season_6","duration":300},{"id":"round_thin_ice","duration":300},{"id":"round_crown_maze","duration":300},{"id":"round_blastball_arenasurvival_only_season_6","duration":270},{"id":"round_hexaring_only_season_6","duration":300}]},{"id":"episode_event_only_slime_climb","levels":[{"id":"round_lava_event_only_slime_climb_final","duration":140},{"id":"round_lava_event_only_slime_climb_01","duration":140},{"id":"round_lava_event_only_slime_climb_02","duration":140},{"id":"round_tunnel_final_40","duration":300},{"id":"round_royal_rumble_40_pl_vault","duration":90},{"id":"round_jump_showdown_40","duration":300},{"id":"round_crown_maze_40","duration":300},{"id":"round_thin_ice_mini_40","duration":300},{"id":"round_kraken_attack_40","duration":300},{"id":"round_fall_mountain_hub_complete_40","duration":300},{"id":"round_floor_fall_mini_40","duration":300},{"id":"round_hexsnake_40","duration":300},{"id":"round_hexaring_40","duration":300},{"id":"round_blastball_arenasurvival_40","duration":270}]},{"id":"episode_event_only_slime_climb_2","levels":[{"id":"round_slimeclimb_2_event_only_final","duration":190},{"id":"round_slimeclimb_2_event_only_01","duration":190},{"id":"round_slimeclimb_2_event_only_02","duration":190},{"id":"round_hexagone_sc2","duration":300},{"id":"round_jump_showdown_sc2","duration":300},{"id":"round_fall_mountain_hub_complete","duration":300},{"id":"round_royal_rumble","duration":90},{"id":"ranked_rolloff_final","duration":300},{"id":"round_crown_maze","duration":300},{"id":"round_thin_ice_sc2","duration":300},{"id":"round_blastball_sc2","duration":300},{"id":"round_krakenslam_sc2","duration":300},{"id":"round_hexaterrestrial_sc2","duration":120},{"id":"round_hexaring_sc2","duration":300}]},{"id":"episode_event_only_survival","levels":[{"id":"round_floor_fall","duration":300},{"id":"round_fruitpunch_40","duration":90},{"id":"round_block_party_40","duration":105},{"id":"round_floor_fall_40","duration":300},{"id":"round_hoverboardsurvival2_40","duration":170},{"id":"round_jump_club_40","duration":90},{"id":"round_jump_showdown_40","duration":300},{"id":"round_match_fall_40","duration":80},{"id":"round_tunnel_40","duration":150},{"id":"round_tunnel_final_40","duration":300},{"id":"round_lava_40","duration":140},{"id":"round_snowballsurvival_40","duration":60},{"id":"round_robotrampage_arena_2_40","duration":70},{"id":"round_slimeclimb_2_40","duration":190},{"id":"round_thin_ice_40","duration":300},{"id":"round_spin_ring_40","duration":180},{"id":"round_blastballruins_40","duration":270},{"id":"round_blastball_arenasurvival_40","duration":270},{"id":"round_hexaring_40","duration":300},{"id":"round_hexsnake_40","duration":300},{"id":"round_kraken_attack_40","duration":300}]},{"id":"episode_event_only_thin_ice","levels":[{"id":"round_thin_ice","duration":300},{"id":"round_thin_ice_event_only_01","duration":300},{"id":"round_thin_ice_event_only_02","duration":300},{"id":"round_thin_ice_event_only_final","duration":300}]},{"id":"episode_event_only_tip_toe","levels":[{"id":"round_tip_toe_event_only_final","duration":120},{"id":"round_tip_toe_event_only_01","duration":120},{"id":"round_tip_toe_event_only_02","duration":120}]},{"id":"episode_event_spectator","levels":[{"id":"round_floor_fall","duration":300},{"id":"round_block_party","duration":105},{"id":"round_tail_tag","duration":90},{"id":"round_fall_mountain_hub_complete","duration":300},{"id":"round_tip_toe","duration":120},{"id":"round_jump_club","duration":90},{"id":"round_dodge_fall","duration":180},{"id":"round_royal_rumble","duration":90},{"id":"round_lava","duration":140},{"id":"round_jump_showdown","duration":300},{"id":"round_match_fall","duration":80},{"id":"round_tunnel","duration":150},{"id":"round_wall_guys","duration":300},{"id":"round_hoops_blockade_solo","duration":300},{"id":"round_tunnel_final","duration":300},{"id":"round_skeefall","duration":300},{"id":"round_thin_ice","duration":300},{"id":"round_iceclimb","duration":180},{"id":"round_snowballsurvival","duration":60},{"id":"round_hoverboardsurvival_v45","duration":140},{"id":"round_shortcircuit_event_spectator","duration":300},{"id":"round_tunnel_race","duration":120},{"id":"round_fruitpunch_event_spectator","duration":90},{"id":"round_slimeclimb_2","duration":190},{"id":"round_1v1_button_basher","duration":90},{"id":"round_robotrampage_arena_2","duration":70},{"id":"round_penguin_solos","duration":300},{"id":"round_drumtop","duration":180},{"id":"round_gauntlet_07","duration":180},{"id":"round_crown_maze","duration":300},{"id":"round_king_of_the_hill","duration":300}]},{"id":"episode_event_sports","levels":[{"id":"round_shortcircuit","duration":300},{"id":"round_fall_ball_60_players","duration":120},{"id":"round_basketfall","duration":120},{"id":"round_skeefall","duration":300},{"id":"round_fall_mountain_hub_complete","duration":300},{"id":"round_jump_showdown","duration":300},{"id":"round_hoops_blockade_solo","duration":300},{"id":"round_wall_guys","duration":300},{"id":"round_royal_rumble","duration":90},{"id":"round_jump_club","duration":90},{"id":"round_1v1_volleyfall","duration":100},{"id":"round_short_circuit_2","duration":180}]},{"id":"episode_event_yeetus","levels":[{"id":"round_fall_mountain_event_yeetus","duration":300},{"id":"round_door_dash_event_only_yeetus","duration":180},{"id":"round_tail_tag_event_only_yeetus","duration":90},{"id":"round_see_saw_event_yeetus","duration":180},{"id":"round_gauntlet_02_event_only_yeetus","duration":190},{"id":"round_tip_toe_event_yeetus","duration":120},{"id":"round_dodge_fall_event_yeetus","duration":180},{"id":"round_lava_event_only_yeetus","duration":140},{"id":"round_chompchomp_event_yeetus","duration":100},{"id":"round_gauntlet_04_event_yeetus","duration":180},{"id":"round_iceclimb_event_yeetus","duration":180},{"id":"round_gauntlet_06_event_yeetus","duration":180},{"id":"round_tunnel_race_event_yeetus","duration":120},{"id":"round_slimeclimb_2_event_yeetus","duration":190},{"id":"round_gauntlet_07_event_yeetus","duration":190},{"id":"round_tip_toe_final_event_yeetus","duration":120}]},{"id":"episode_fan_favourites","levels":[{"id":"round_jump_showdown","duration":300},{"id":"round_gauntlet_02","duration":180},{"id":"round_gauntlet_08","duration":180},{"id":"round_gauntlet_09","duration":90},{"id":"round_drumtop","duration":180},{"id":"round_lava","duration":140},{"id":"round_iceclimb","duration":180},{"id":"round_slimeclimb_2","duration":190},{"id":"round_block_party","duration":105},{"id":"round_hoverboardsurvival","duration":140},{"id":"round_jump_club","duration":90},{"id":"round_spin_ring","duration":180},{"id":"round_blastball_arenasurvival","duration":270},{"id":"round_floor_fall","duration":300}]},{"id":"episode_fp16_ski_fall_high_scorers","levels":[{"id":"round_floor_fall_event_only_final","duration":300},{"id":"round_event_only_skeefall_timetrial_s6_1","duration":120}]},{"id":"episode_greatest_squads_show","levels":[{"id":"gs_slimecycle","duration":300},{"id":"gs_topofthetrash","duration":120},{"id":"gs_sortitout","duration":180},{"id":"gs_boxparty","duration":120},{"id":"gs_chickengulch","duration":120},{"id":"gs_slidensmash","duration":120},{"id":"gs_bubblegumbrew","duration":180},{"id":"gs_goldrush","duration":100},{"id":"gs_treasuretrove","duration":100},{"id":"gs_circleoslime","duration":300},{"id":"gs_gooproperodeo","duration":300},{"id":"gs_slimeballshowdown","duration":180},{"id":"gs_castlesiege","duration":300},{"id":"gs_hopadrome","duration":300},{"id":"gs_rotateandeliminate","duration":300},{"id":"gs_teatime","duration":190},{"id":"gs_spacebounders","duration":190},{"id":"gs_mindthegap","duration":150},{"id":"gs_clumsycarnival","duration":190},{"id":"gs_spookyslingers","duration":190},{"id":"gs_clumsycaverns","duration":190},{"id":"gs_slimesaloon","duration":190},{"id":"gs_dragondashers","duration":180},{"id":"gs_slippyslopes","duration":180},{"id":"gs_bouncytravel","duration":90},{"id":"gs_theswirlygig","duration":90},{"id":"gs_zerogzone","duration":120},{"id":"gs_reboundrun","duration":150},{"id":"gs_bubblingbrook","duration":100},{"id":"gs_dodgedivesurvive","duration":300},{"id":"gs_pineclimb","duration":300},{"id":"gs_bubblegumroll","duration":105},{"id":"gs_aerialtableau","duration":190},{"id":"gs_rooftoprangers","duration":190},{"id":"gs_mellowcakes","duration":300},{"id":"gs_seasidesprint","duration":180},{"id":"gs_hightide","duration":180},{"id":"gs_pierpressure","duration":300},{"id":"gs_ineggout","duration":120}]},{"id":"episode_greatest_squads_show_ranked","levels":[{"id":"gs_slimecycle","duration":300},{"id":"gs_topofthetrash_ranked","duration":120},{"id":"gs_sortitout_ranked","duration":120},{"id":"gs_boxparty_ranked","duration":120},{"id":"gs_chickengulch_ranked","duration":120},{"id":"gs_slidensmash_ranked","duration":120},{"id":"gs_bubblegumbrew_ranked","duration":120},{"id":"gs_goldrush_ranked","duration":100},{"id":"gs_treasuretrove_ranked","duration":100},{"id":"gs_circleoslime","duration":300},{"id":"gs_gooproperodeo","duration":300},{"id":"gs_slimeballshowdown","duration":180},{"id":"gs_castlesiege","duration":300},{"id":"gs_hopadrome","duration":300},{"id":"gs_rotateandeliminate","duration":300},{"id":"gs_teatime","duration":190},{"id":"gs_spacebounders","duration":190},{"id":"gs_mindthegap","duration":150},{"id":"gs_clumsycarnival","duration":190},{"id":"gs_spookyslingers","duration":190},{"id":"gs_clumsycaverns","duration":190},{"id":"gs_slimesaloon","duration":190},{"id":"gs_dragondashers","duration":180},{"id":"gs_slippyslopes","duration":180},{"id":"gs_bouncytravel_ranked","duration":90},{"id":"gs_theswirlygig_ranked","duration":90},{"id":"gs_zerogzone_ranked","duration":120},{"id":"gs_reboundrun_ranked","duration":150},{"id":"gs_bubblingbrook_ranked","duration":100},{"id":"gs_dodgedivesurvive","duration":300},{"id":"gs_pineclimb","duration":300},{"id":"gs_bubblegumroll_ranked","duration":105},{"id":"gs_aerialtableau","duration":190},{"id":"gs_rooftoprangers","duration":190},{"id":"gs_mellowcakes","duration":300},{"id":"gs_seasidesprint","duration":180},{"id":"gs_hightide","duration":180},{"id":"gs_pierpressure","duration":300},{"id":"gs_ineggout_ranked","duration":120}]},{"id":"episode_just_invisibeans","levels":[{"id":"round_invisibeans","duration":180}]},{"id":"episode_just_invisibeans_pistachio","levels":[{"id":"round_pumpkin_pie","duration":180}]},{"id":"episode_knockout_mode","levels":[{"id":"knockout_hex-a-gone_large","duration":300},{"id":"knockout_dizzyheights_opener","duration":180},{"id":"knockout_door_dash","duration":180},{"id":"knockout_gatecrash","duration":100},{"id":"knockout_hit_parade","duration":180},{"id":"knockout_whirlygig_opener","duration":190},{"id":"knockout_seesaw_opener","duration":180},{"id":"knockout_bigfans_opener","duration":210},{"id":"knockout_knightfever_opener","duration":180},{"id":"knockout_tundrarun_opener","duration":190},{"id":"knockout_freezypeak","duration":180},{"id":"knockout_roll_on","duration":120},{"id":"knockout_lilyleapers","duration":180},{"id":"knockout_treetop_tumble_opener","duration":190},{"id":"knockout_speed_circuit_opener","duration":180},{"id":"knockout_trackattack","duration":90},{"id":"knockout_spacerace","duration":180},{"id":"knockout_teatime_opener","duration":190},{"id":"knockout_spacebouncers","duration":190},{"id":"knockout_mindthegap_opener","duration":190},{"id":"knockout_clumsycarnival_opener","duration":190},{"id":"knockout_spookyslingers_opener","duration":190},{"id":"knockout_clumsycaverns","duration":190},{"id":"knockout_dragondashers","duration":190},{"id":"knockout_slippyslopes","duration":180},{"id":"knockout_reboundrun","duration":240},{"id":"knockout_fruitchute","duration":180},{"id":"knockout_fulltilt","duration":180},{"id":"knockout_slimbclimb","duration":140},{"id":"knockout_tip_toe","duration":120},{"id":"knockout_shortcircuit","duration":300},{"id":"knockout_slimescraper","duration":190},{"id":"knockout_speedslider","duration":165},{"id":"knockout_starchart","duration":150},{"id":"knockout_slimesaloon","duration":190},{"id":"knockout_clumsycrusade","duration":150},{"id":"knockout_jump_club","duration":90},{"id":"knockout_roll_out","duration":150},{"id":"knockout_blastlantis","duration":270},{"id":"knockout_magnetmayhem_filler","duration":180},{"id":"knockout_perfectmatch","duration":80},{"id":"knockout_sumfruit","duration":101},{"id":"knockout_tail_tag","duration":90},{"id":"knockout_pegwin_pool_party","duration":300},{"id":"knockout_sortitout_filler","duration":240},{"id":"knockout_hoopsie_legends","duration":300},{"id":"knockout_skifall_filler","duration":300},{"id":"knockout_airtime","duration":300},{"id":"knockout_leadinglight","duration":300},{"id":"knockout_bounceparty","duration":300},{"id":"knockout_franticfactory_filler","duration":210},{"id":"knockout_hoopchute","duration":180},{"id":"knockout_topofthetrash_filler","duration":240},{"id":"knockout_slidensmash_filler","duration":180},{"id":"knockout_snowballsurvival_filler","duration":90},{"id":"knockout_stompinground","duration":70},{"id":"knockout_hoverboardheroes","duration":140},{"id":"knockout_hyperdriveheroes_filler","duration":170},{"id":"knockout_blunderboat","duration":90},{"id":"knockout_buttonbashers_filler","duration":90},{"id":"knockout_bubbletrouble","duration":300},{"id":"knockout_volleyfall_1v1","duration":100},{"id":"knockout_boxparty","duration":240},{"id":"knockout_chickengulch_filler","duration":180},{"id":"knockout_bubblegumbrew_filler","duration":180},{"id":"knockout_goldrush","duration":180},{"id":"knockout_treasuretrove","duration":180},{"id":"knockout_bubblingbrook","duration":180},{"id":"knockout_theswiveller","duration":180},{"id":"knockout_slimecycle_filler","duration":180},{"id":"knockout_wipeoutwaves_filler","duration":180},{"id":"knockout_shapeup","duration":120},{"id":"knockout_bigshots","duration":90},{"id":"knockout_blastball_final","duration":270},{"id":"knockout_fallmountain_final","duration":180},{"id":"knockout_hexagone_final","duration":300},{"id":"knockout_hexaring","duration":300},{"id":"knockout_hexaterrestrial_final","duration":300},{"id":"knockout_jump_showdown","duration":300},{"id":"knockout_krakenslam_final","duration":300},{"id":"knockout_losttemple_final","duration":300},{"id":"knockout_rolloff_final","duration":300},{"id":"knockout_royal_fumble","duration":90},{"id":"knockout_thin_ice_mini","duration":300},{"id":"knockout_rotateandeliminate","duration":300},{"id":"knockout_circleoslime_final_survival","duration":180},{"id":"knockout_gooprope_rodeo","duration":180},{"id":"knockout_slimeballshowdown","duration":180},{"id":"knockout_castlesiege_final","duration":300},{"id":"knockout_hopadrome_final","duration":300},{"id":"knockout_trickortrapeze_final_points","duration":180},{"id":"knockout_rollerderby_final","duration":180},{"id":"knockout_dodgedivesurvive_final","duration":300},{"id":"knockout_pineclimb_final","duration":300},{"id":"knockout_rooftop_rush","duration":180},{"id":"knockout_cylinder_stumble","duration":180},{"id":"knockout_blunderblocks","duration":300},{"id":"knockout_cosmichighway","duration":180},{"id":"knockout_seaside_sprint","duration":180},{"id":"knockout_high_tide","duration":180},{"id":"knockout_pier_pressure","duration":300},{"id":"knockout_skyline_stumble","duration":180},{"id":"knockout_pipedream","duration":180},{"id":"knockout_partypromenade","duration":180},{"id":"knockout_ineggout","duration":180},{"id":"knockout_blockparty","duration":105},{"id":"knockout_puzzlepath","duration":150},{"id":"knockout_wallguys","duration":300}]},{"id":"episode_no_elim_show","levels":[{"id":"round_floor_fall_noelim","duration":45},{"id":"round_gauntlet_01_noelim","duration":120},{"id":"round_gauntlet_02_noelim","duration":120},{"id":"round_gauntlet_03_noelim","duration":150},{"id":"round_door_dash_noelim","duration":90},{"id":"round_chompchomp_noelim","duration":100},{"id":"round_gauntlet_05_noelim","duration":120},{"id":"round_gauntlet_07_noelim","duration":120},{"id":"round_see_saw_360_noelim","duration":180},{"id":"round_gauntlet_09_noelim","duration":90},{"id":"round_slide_chute_noelim","duration":165},{"id":"round_shortcircuit_noelim","duration":180},{"id":"round_tip_toe_noelim","duration":120},{"id":"round_hoops_blockade_solo_noelim","duration":210},{"id":"round_snowballsurvival_noelim","duration":45},{"id":"round_robotrampage_arena_2_noelim","duration":45},{"id":"round_follow-the-leader_noelim","duration":150},{"id":"round_blastballruins_noelim","duration":45},{"id":"round_tunnel_final_noelim","duration":45},{"id":"round_thin_ice_noelim","duration":45},{"id":"round_blastball_arenasurvival_noelim","duration":45},{"id":"round_hexaring_noelim","duration":45},{"id":"round_hexsnake_noelim","duration":45},{"id":"round_kraken_attack_noelim","duration":45},{"id":"round_airtime_noelim","duration":180},{"id":"round_ffa_button_bashers_noelim","duration":210},{"id":"round_match_fall_noelim","duration":80},{"id":"round_starlink_noelim","duration":180},{"id":"round_fruitpunch_noelim","duration":30},{"id":"round_dodge_fall_noelim","duration":105},{"id":"round_penguin_solos_noelim","duration":210},{"id":"round_gauntlet_06_noelim","duration":210},{"id":"round_robotrampage_arena_2_final_noelim","duration":45},{"id":"round_snowballsurvival_final_noelim","duration":45},{"id":"round_seesaw_noelim","duration":150},{"id":"round_skifall_noelim","duration":150},{"id":"round_knightfever_noelim","duration":150},{"id":"round_hoopchute_noelim","duration":180},{"id":"round_gauntlet_08_noelim","duration":150},{"id":"round_pipedup_noelim","duration":180},{"id":"round_wall_guys_noelim","duration":150},{"id":"round_block_party_noelim","duration":60}]},{"id":"episode_no_elimination_explore","levels":[{"id":"round_airtime_noelim_explore","duration":300},{"id":"round_biggestfan_noelim_explore","duration":300},{"id":"round_gauntlet_02_noelim_explore","duration":300},{"id":"round_door_dash_noelim_explore","duration":300},{"id":"round_dodge_fall_noelim_explore","duration":300},{"id":"round_see_saw_360_noelim_explore","duration":300},{"id":"round_chompchomp_noelim_explore","duration":300},{"id":"round_gauntlet_01_noelim_explore","duration":300},{"id":"round_drumtop_noelim_explore","duration":300},{"id":"round_shortcircuit_noelim_explore","duration":300},{"id":"round_gauntlet_06_noelim_explore","duration":300},{"id":"round_slide_chute_noelim_explore","duration":300},{"id":"round_tip_toe_noelim_explore","duration":300},{"id":"round_gauntlet_09_noelim_explore","duration":300},{"id":"round_gauntlet_07_noelim_explore","duration":300},{"id":"round_gauntlet_05_noelim_explore","duration":300},{"id":"round_hoverboardsurvival_noelim_explore","duration":150},{"id":"round_gauntlet_03_noelim_explore","duration":300},{"id":"round_ffa_button_bashers_noelim_explore","duration":200},{"id":"round_hoops_blockade_solo_noelim_explore","duration":200},{"id":"round_follow-the-leader_noelim_explore","duration":200},{"id":"round_match_fall_noelim_explore","duration":80},{"id":"round_fruitpunch_noelim_explore","duration":60},{"id":"round_blastballruins_noelim_explore","duration":60},{"id":"round_lava_noelim_explore","duration":300},{"id":"round_floor_fall_noelim_explore","duration":60},{"id":"round_hexaring_noelim_explore","duration":60},{"id":"round_hexsnake_noelim_explore","duration":60},{"id":"round_slimeclimb_2_noelim_explore","duration":300},{"id":"round_spin_ring_noelim_explore","duration":60},{"id":"round_jump_club_noelim_explore","duration":60},{"id":"round_kraken_attack_noelim_explore","duration":60},{"id":"round_tunnel_noelim_explore","duration":60},{"id":"round_snowballsurvival_noelim_explore","duration":60},{"id":"round_robotrampage_arena_2_noelim_explore","duration":60},{"id":"round_thin_ice_noelim_explore","duration":60},{"id":"round_hoverboardsurvival2_noelim_explore","duration":170},{"id":"round_gauntlet_04_noelim_explore","duration":180},{"id":"round_tunnel_race_noelim_explore","duration":120},{"id":"round_skeefall_noelim_explore","duration":300},{"id":"round_speedcircuit_noelim_explore","duration":180},{"id":"round_king_of_the_hill_noelim_explore","duration":300},{"id":"round_see_saw_noelim_explore","duration":180},{"id":"round_iceclimb_noelim_explore","duration":180},{"id":"round_hoops_revenge_noelim_explore","duration":300},{"id":"round_partypromenade_noelim","duration":180},{"id":"round_pipedream_noelim","duration":180},{"id":"round_hoopchute_noelim","duration":180},{"id":"round_starchart_noelim","duration":180},{"id":"round_cosmichighway_noelim","duration":180},{"id":"round_fruit_bowl_noelim","duration":101},{"id":"round_pegwin_pool_party_noelim","duration":300},{"id":"round_rolloff_final_noelim","duration":60},{"id":"round_spacerace_noelim","duration":180},{"id":"round_jump_showdown_noelim","duration":60}]},{"id":"episode_pl_vaulted_show","levels":[{"id":"round_tunnel_final","duration":300},{"id":"round_gauntlet_02_40","duration":180},{"id":"round_door_dash_40","duration":180},{"id":"round_chompchomp_40_pl_vault","duration":100},{"id":"round_gauntlet_01_40","duration":180},{"id":"round_gauntlet_03_40","duration":180},{"id":"round_biggestfan_40","duration":210},{"id":"round_gauntlet_04_40_pl_vault","duration":180},{"id":"round_gauntlet_05_40","duration":180},{"id":"round_tunnel_40_pl_vault","duration":150},{"id":"round_gauntlet_06_40","duration":180},{"id":"round_shortcircuit_40","duration":300},{"id":"round_drumtop_40","duration":180},{"id":"round_gauntlet_07_40","duration":180},{"id":"round_see_saw_360_40_pl_vault","duration":180},{"id":"round_gauntlet_08_40","duration":180},{"id":"round_gauntlet_09_40","duration":90},{"id":"round_short_circuit_2_40","duration":180},{"id":"round_slide_chute_40","duration":165},{"id":"round_1v1_button_basher_40_pl_vault","duration":90},{"id":"round_1v1_volleyfall_40_pl_vault","duration":100},{"id":"round_basketfall_40_pl_vault","duration":120},{"id":"round_egg_grab_40_pl_vault","duration":120},{"id":"round_egg_grab_02_40_pl_vault","duration":120},{"id":"round_fall_ball_40_pl_vault","duration":120},{"id":"round_ballhogs_40_pl_vault","duration":90},{"id":"round_hoops_40_pl_vault","duration":120},{"id":"round_jinxed_40_pl_vault","duration":300},{"id":"round_chicken_chase_40_pl_vault","duration":120},{"id":"round_territory_control_40_pl_vault","duration":100},{"id":"round_rocknroll_40_pl_vault","duration":180},{"id":"round_snowy_scrap_40_pl_vault","duration":180},{"id":"round_conveyor_arena_40_pl_vault","duration":90},{"id":"round_pipedup_40","duration":180},{"id":"round_block_party_40","duration":105},{"id":"round_dodge_fall_40","duration":180},{"id":"round_jump_club_40","duration":90},{"id":"round_match_fall_40_pl_vault","duration":80},{"id":"round_tunnel_race_40_pl_vault","duration":120},{"id":"round_lava_40","duration":140},{"id":"round_tail_tag_40","duration":90},{"id":"round_tip_toe_40_pl_vault","duration":120},{"id":"round_hoops_blockade_solo_40_pl_vault","duration":300},{"id":"round_wall_guys_40","duration":300},{"id":"round_skeefall_40_pl_vault","duration":300},{"id":"round_snowballsurvival_40","duration":60},{"id":"round_fruitpunch_40_pl_vault","duration":90},{"id":"round_hoverboardsurvival_40","duration":140},{"id":"round_slimeclimb_2_40_pl_vault","duration":190},{"id":"round_penguin_solos_40_pl_vault","duration":300},{"id":"round_robotrampage_arena_2_40","duration":70},{"id":"round_fruit_bowl_40_pl_vault","duration":101},{"id":"round_airtime_40","duration":300},{"id":"round_follow-the-leader_40","duration":300},{"id":"round_spin_ring_40","duration":180},{"id":"round_ffa_button_bashers_40_pl_vault","duration":300},{"id":"round_hoverboardsurvival2_40","duration":170},{"id":"round_blastballruins_40","duration":270},{"id":"round_slippy_slide_40","duration":180},{"id":"round_follow_the_line_40","duration":150},{"id":"round_floor_fall_40","duration":300},{"id":"round_jump_showdown_40","duration":300},{"id":"round_royal_rumble_40_pl_vault","duration":90},{"id":"round_tunnel_final_40","duration":300},{"id":"round_thin_ice_40_pl_vault","duration":300},{"id":"round_crown_maze_40","duration":300},{"id":"round_blastball_arenasurvival_40","duration":270},{"id":"round_hexaring_40","duration":300},{"id":"round_hexsnake_40","duration":300},{"id":"round_kraken_attack_40","duration":300},{"id":"round_fall_mountain_hub_complete_40","duration":300},{"id":"round_see_saw_40","duration":180},{"id":"round_iceclimb_40","duration":180},{"id":"round_hoops_revenge_40","duration":300},{"id":"round_gauntlet_10_40","duration":180},{"id":"round_starlink_40","duration":150},{"id":"round_satellitehoppers_40","duration":180},{"id":"round_king_of_the_hill_40","duration":300}]},{"id":"episode_ranked_mode","levels":[{"id":"ranked_hexagone_final","duration":300},{"id":"ranked_lilyleapers_opener","duration":180},{"id":"ranked_speedcircuit_opener","duration":180},{"id":"ranked_dizzyheights_opener","duration":190},{"id":"ranked_bigfans_opener","duration":190},{"id":"ranked_trackattack_opener","duration":190},{"id":"ranked_fulltilt_opener","duration":190},{"id":"ranked_dragondashers_opener","duration":180},{"id":"ranked_clumsycarnival_opener","duration":190},{"id":"ranked_clumsycrusade_opener","duration":120},{"id":"ranked_reboundrun_opener","duration":240},{"id":"ranked_slippyslopes_opener","duration":190},{"id":"ranked_crumblecave_opener","duration":190},{"id":"ranked_buttonbashers_filler","duration":90},{"id":"ranked_slimescraper_filler","duration":190},{"id":"ranked_skifall_filler","duration":300},{"id":"ranked_slimeclimb_filler","duration":140},{"id":"ranked_franticfactory_filler","duration":210},{"id":"ranked_swiveller_filler","duration":90},{"id":"ranked_hoopsielegends_filler","duration":300},{"id":"ranked_leadinglight_filler","duration":180},{"id":"ranked_topofthetrash_filler","duration":240},{"id":"ranked_bubblingbrook_filler","duration":180},{"id":"ranked_slimesaloon_filler","duration":190},{"id":"ranked_rolloff_final","duration":300},{"id":"ranked_krakenslam_final","duration":300},{"id":"ranked_blastball_final","duration":300},{"id":"ranked_cycleoslime_final","duration":300},{"id":"ranked_dodgedivesurvive_final","duration":300},{"id":"ranked_pineclimb_final","duration":300}]},{"id":"episode_reversed_knockout","levels":[{"id":"reversed_knockout_door_dash","duration":180},{"id":"reversed_knockout_blastball_opener","duration":270},{"id":"reversed_knockout_fallmountain_opener","duration":180},{"id":"reversed_knockout_hexagone_opener","duration":300},{"id":"reversed_knockout_hexaring","duration":300},{"id":"reversed_knockout_hexaterrestrial_opener","duration":300},{"id":"reversed_knockout_jump_showdown","duration":300},{"id":"reversed_knockout_krakenslam_opener","duration":300},{"id":"reversed_knockout_losttemple_opener","duration":300},{"id":"reversed_knockout_rolloff_opener","duration":300},{"id":"reversed_knockout_royal_fumble","duration":90},{"id":"reversed_knockout_thin_ice_mini","duration":300},{"id":"reversed_knockout_rotateandeliminate","duration":300},{"id":"reversed_knockout_circleoslime_opener_survival","duration":180},{"id":"reversed_knockout_gooprope_rodeo","duration":180},{"id":"reversed_knockout_slimeballshowdown","duration":180},{"id":"reversed_knockout_castlesiege_opener","duration":300},{"id":"reversed_knockout_hopadrome_opener","duration":300},{"id":"reversed_knockout_trickortrapeze_opener_points","duration":180},{"id":"reversed_knockout_rollerderby_opener","duration":180},{"id":"reversed_knockout_dodgedivesurvive_opener","duration":300},{"id":"reversed_knockout_pineclimb_opener","duration":300},{"id":"reversed_knockout_blunderblocks","duration":300},{"id":"reversed_knockout_pier_pressure","duration":300},{"id":"reversed_knockout_fruitchute","duration":180},{"id":"reversed_knockout_fulltilt","duration":180},{"id":"reversed_knockout_slimbclimb","duration":140},{"id":"reversed_knockout_tip_toe","duration":120},{"id":"reversed_knockout_shortcircuit","duration":300},{"id":"reversed_knockout_slimescraper","duration":190},{"id":"reversed_knockout_speedslider","duration":165},{"id":"reversed_knockout_starchart","duration":150},{"id":"reversed_knockout_slimesaloon","duration":190},{"id":"reversed_knockout_clumsycrusade","duration":120},{"id":"reversed_knockout_jump_club","duration":90},{"id":"reversed_knockout_roll_out","duration":150},{"id":"reversed_knockout_blastlantis","duration":270},{"id":"reversed_knockout_magnetmayhem_filler","duration":180},{"id":"reversed_knockout_perfectmatch","duration":80},{"id":"reversed_knockout_sumfruit","duration":101},{"id":"reversed_knockout_tail_tag","duration":90},{"id":"reversed_knockout_pegwin_pool_party","duration":300},{"id":"reversed_knockout_sortitout_filler","duration":240},{"id":"reversed_knockout_hoopsie_legends","duration":300},{"id":"reversed_knockout_skifall_filler","duration":300},{"id":"reversed_knockout_airtime","duration":300},{"id":"reversed_knockout_leadinglight","duration":300},{"id":"reversed_knockout_bounceparty","duration":300},{"id":"reversed_knockout_franticfactory_filler","duration":210},{"id":"reversed_knockout_hoopchute","duration":180},{"id":"reversed_knockout_topofthetrash_filler","duration":240},{"id":"reversed_knockout_slidensmash_filler","duration":180},{"id":"reversed_knockout_snowballsurvival_filler","duration":90},{"id":"reversed_knockout_stompinground","duration":70},{"id":"reversed_knockout_hoverboardheroes","duration":140},{"id":"reversed_knockout_hyperdriveheroes_filler","duration":170},{"id":"reversed_knockout_blunderboat","duration":90},{"id":"reversed_knockout_buttonbashers_filler","duration":90},{"id":"reversed_knockout_bubbletrouble","duration":300},{"id":"reversed_knockout_volleyfall_1v1","duration":100},{"id":"reversed_knockout_boxparty","duration":240},{"id":"reversed_knockout_chickengulch_filler","duration":180},{"id":"reversed_knockout_bubblegumbrew_filler","duration":180},{"id":"reversed_knockout_goldrush","duration":180},{"id":"reversed_knockout_treasuretrove","duration":180},{"id":"reversed_knockout_bubblingbrook","duration":180},{"id":"reversed_knockout_theswiveller","duration":180},{"id":"reversed_knockout_slimecycle_filler","duration":180},{"id":"reversed_knockout_wipeoutwaves_filler","duration":180},{"id":"reversed_knockout_shapeup","duration":120},{"id":"reversed_knockout_bigshots","duration":90},{"id":"reversed_knockout_cosmichighway","duration":180},{"id":"reversed_knockout_high_tide","duration":180},{"id":"reversed_knockout_skyline_stumble","duration":180},{"id":"reversed_knockout_dizzyheights_final","duration":180},{"id":"reversed_knockout_gatecrash","duration":100},{"id":"reversed_knockout_hit_parade","duration":180},{"id":"reversed_knockout_whirlygig_final","duration":190},{"id":"reversed_knockout_seesaw_final","duration":180},{"id":"reversed_knockout_bigfans_final","duration":210},{"id":"reversed_knockout_knightfever_final","duration":180},{"id":"reversed_knockout_tundrarun_final","duration":190},{"id":"reversed_knockout_freezypeak","duration":180},{"id":"reversed_knockout_roll_on","duration":120},{"id":"reversed_knockout_lilyleapers","duration":180},{"id":"reversed_knockout_treetop_tumble_final","duration":190},{"id":"reversed_knockout_speed_circuit_final","duration":180},{"id":"reversed_knockout_trackattack","duration":90},{"id":"reversed_knockout_spacerace","duration":180},{"id":"reversed_knockout_teatime_final","duration":190},{"id":"reversed_knockout_spacebouncers","duration":190},{"id":"reversed_knockout_mindthegap_final","duration":190},{"id":"reversed_knockout_clumsycarnival_final","duration":190},{"id":"reversed_knockout_spookyslingers_final","duration":190},{"id":"reversed_knockout_clumsycaverns","duration":190},{"id":"reversed_knockout_dragondashers","duration":190},{"id":"reversed_knockout_slippyslopes","duration":180},{"id":"reversed_knockout_reboundrun","duration":240},{"id":"reversed_knockout_rooftop_rush","duration":180},{"id":"reversed_knockout_cylinder_stumble","duration":180},{"id":"reversed_knockout_seaside_sprint","duration":180},{"id":"reversed_knockout_party_promenade","duration":180},{"id":"reversed_knockout_piped_up","duration":180},{"id":"reversed_knockout_wall_guys","duration":300},{"id":"reversed_knockout_block_party","duration":105},{"id":"reversed_knockout_puzzlepath","duration":150}]},{"id":"episode_s10_solo_show","levels":[{"id":"round_hexsnake_40","duration":300},{"id":"round_gauntlet_01_solos","duration":180},{"id":"round_gauntlet_02_solos","duration":180},{"id":"round_gauntlet_03_solos","duration":180},{"id":"round_door_dash_solos","duration":180},{"id":"round_chompchomp_solos","duration":100},{"id":"round_biggestfan_solos","duration":210},{"id":"round_gauntlet_05_solos","duration":180},{"id":"round_gauntlet_06_solos","duration":180},{"id":"round_drumtop_solos","duration":180},{"id":"round_gauntlet_07_solos","duration":180},{"id":"round_see_saw_360_solos","duration":180},{"id":"round_gauntlet_09_solos","duration":90},{"id":"round_slide_chute_solos","duration":165},{"id":"round_jump_club_solos","duration":90},{"id":"round_tunnel_solos","duration":150},{"id":"round_tip_toe_solos","duration":120},{"id":"round_hoops_blockade_solo_solos","duration":300},{"id":"round_snowballsurvival_solos","duration":60},{"id":"round_robotrampage_arena_2_solos","duration":70},{"id":"round_follow-the-leader_solos","duration":300},{"id":"round_spin_ring_solos","duration":180},{"id":"round_blastballruins_solos","duration":270},{"id":"round_floor_fall_mini_solos","duration":300},{"id":"round_jump_showdown_solos","duration":300},{"id":"round_tunnel_final_solos","duration":300},{"id":"round_thin_ice_mini_solos","duration":300},{"id":"round_blastball_arenasurvival_solos","duration":270},{"id":"round_hexaring_solos","duration":300},{"id":"round_hexsnake_solos","duration":300},{"id":"round_kraken_attack_solos","duration":300},{"id":"round_fall_mountain_hub_complete_solos","duration":300},{"id":"round_airtime_solos","duration":300},{"id":"round_hoverboardsurvival_solos","duration":140},{"id":"round_ffa_button_bashers_solos_pl_vault","duration":300},{"id":"round_match_fall_solos_pl_vault","duration":80},{"id":"round_royal_rumble_solos_pl_vault","duration":90},{"id":"round_tail_tag_solos","duration":90},{"id":"round_fruitpunch_solos","duration":90},{"id":"round_dodge_fall_solos","duration":180},{"id":"round_shortcircuit_solos","duration":300},{"id":"round_1v1_volleyfall_solos","duration":100},{"id":"round_slimeclimb_2_solos","duration":190},{"id":"round_1v1_button_basher_solos","duration":90},{"id":"round_fruit_bowl_solos","duration":101},{"id":"round_penguin_solos","duration":300},{"id":"round_lava_solos","duration":140},{"id":"round_gauntlet_04_solos","duration":180},{"id":"round_skeefall_solos","duration":300},{"id":"round_short_circuit_2_solos","duration":180},{"id":"round_hoverboardsurvival2_solos","duration":170},{"id":"round_crown_maze_solos","duration":300},{"id":"round_gauntlet_10_solos","duration":180},{"id":"round_tunnel_race_solos","duration":120},{"id":"round_king_of_the_hill_solos","duration":300},{"id":"round_see_saw_solos","duration":180},{"id":"round_iceclimb_solos","duration":180},{"id":"round_hoops_revenge_solos","duration":300},{"id":"round_slippy_slide_solos","duration":180},{"id":"round_starlink_solos","duration":150},{"id":"round_satellitehoppers_solos","duration":180},{"id":"round_gauntlet_08_solos","duration":180},{"id":"round_pipedup_solos","duration":180},{"id":"round_floor_fall_solos","duration":300},{"id":"round_thin_ice_solos","duration":300},{"id":"round_floor_fall_mini_solos_2","duration":300},{"id":"round_jump_showdown_solos_2","duration":300},{"id":"round_tunnel_final_solos_2","duration":300},{"id":"round_thin_ice_mini_solos_2","duration":300},{"id":"round_blastball_arenasurvival_solos_2","duration":270},{"id":"round_hexaring_solos_2","duration":300},{"id":"round_hexsnake_solos_2","duration":300},{"id":"round_kraken_attack_solos_2","duration":300},{"id":"round_fall_mountain_hub_complete_solos_2","duration":300},{"id":"round_crown_maze_solos_2","duration":300},{"id":"round_wall_guys_solos","duration":300},{"id":"round_block_party_solos","duration":105},{"id":"round_follow_the_line_solos","duration":150}]},{"id":"episode_season_03","levels":[{"id":"round_thin_ice_sds_final","duration":300},{"id":"round_gauntlet_05_sds","duration":180},{"id":"round_skeefall_sds","duration":300},{"id":"round_snowy_scrap_sds","duration":180},{"id":"round_chicken_chase_sds","duration":120},{"id":"round_snowballsurvival_sds","duration":60},{"id":"round_iceclimb_sds","duration":180},{"id":"round_cloudyteacups_final_sds","duration":180},{"id":"round_goopropegrandslam_final_sds","duration":180},{"id":"round_winter_hohoholeymoley_sds","duration":240},{"id":"round_crumblecave_sds","duration":180},{"id":"round_standard_fireworks_sds","duration":240}]},{"id":"episode_sports_suddendeath_squads","levels":[{"id":"round_sports_suddendeath_fall_ball_02","duration":5},{"id":"round_sports_suddendeath_fall_ball_01","duration":5}]},{"id":"episode_symphony_1_launch","levels":[{"id":"round_blastball_arenasurvival_symphony_launch_show","duration":270},{"id":"round_short_circuit_2_symphony_launch_show","duration":180},{"id":"round_spin_ring_symphony_launch_show","duration":180},{"id":"round_hoops_revenge_symphony_launch_show","duration":300},{"id":"round_hexaring_symphony_launch_show","duration":300}]},{"id":"episode_timeattack_shuffle","levels":[{"id":"round_gauntlet_09_timeattack_final","duration":300},{"id":"round_drumtop_timeattack_final","duration":300},{"id":"round_gauntlet_02_timeattack_final","duration":180},{"id":"round_gauntlet_05_timeattack_final","duration":180},{"id":"round_gauntlet_07_timeattack_final","duration":300},{"id":"round_gauntlet_10_timeattack_final","duration":300},{"id":"round_biggestfans_timeattack_final","duration":180},{"id":"round_tunnel_race_timeattack_final","duration":300},{"id":"round_gauntlet_4_timeattack_final","duration":300},{"id":"round_slide_chute_timeattack_final","duration":300},{"id":"round_gauntlet_08_timeattack_final","duration":300}]},{"id":"episode_walnut","levels":[{"id":"round_floor_fall_event_walnut_final","duration":300},{"id":"round_floor_fall_event_walnut","duration":300},{"id":"round_hexaring_event_walnut","duration":300},{"id":"round_hexsnake_event_walnut","duration":300},{"id":"round_floor_fall_event_walnut_r2","duration":300},{"id":"round_hexaring_event_walnut_r2","duration":300},{"id":"round_hexsnake_event_walnut_r2","duration":300},{"id":"round_hexaring_event_walnut_final","duration":300},{"id":"round_hexsnake_event_walnut_final","duration":300}]},{"id":"episode_xtreme_explore","levels":[{"id":"round_thin_ice_xtreme_explore","duration":300},{"id":"round_biggestfan_xtreme_explore","duration":100},{"id":"round_blastball_arenasurvival_xtreme_explore","duration":270},{"id":"round_chompchomp_xtreme_explore","duration":100},{"id":"round_drumtop_xtreme_explore","duration":100},{"id":"round_floor_fall_xtreme_explore","duration":300},{"id":"round_gauntlet_03_xtreme_explore","duration":100},{"id":"round_gauntlet_05_xtreme_explore","duration":100},{"id":"round_gauntlet_06_xtreme_explore","duration":100},{"id":"round_gauntlet_07_xtreme_explore","duration":100},{"id":"round_hexaring_xtreme_explore","duration":300},{"id":"round_hexsnake_xtreme_explore","duration":300},{"id":"round_hoverboardsurvival_xtreme_explore","duration":140},{"id":"round_jump_showdown_xtreme_explore","duration":300},{"id":"round_lava_xtreme_explore","duration":140},{"id":"round_slide_chute_xtreme_explore","duration":165},{"id":"round_tunnel_final_xtreme_explore","duration":300}]},{"id":"event_only_ss2_squads_almond","levels":[{"id":"round_hexsnake_almond","duration":300},{"id":"round_satellitehoppers_almond","duration":180},{"id":"round_hoverboardsurvival2_almond","duration":170},{"id":"round_pixelperfect_almond","duration":180},{"id":"round_starlink_almond","duration":150},{"id":"round_tiptoefinale_almond","duration":300},{"id":"round_ffa_button_bashers_squads_almond","duration":300},{"id":"round_gauntlet_10_almond","duration":120}]},{"id":"event_squads_survival","levels":[{"id":"round_jump_showdown_squads_survival","duration":300},{"id":"round_block_party_squads_survival","duration":105},{"id":"round_floor_fall_squads_survival","duration":300},{"id":"round_jump_club_squads_survival","duration":90},{"id":"round_robotrampage_arena_2_squads_survival","duration":70},{"id":"round_spin_ring_squads_survival","duration":180},{"id":"round_hexaring_squads_survival","duration":300},{"id":"round_blastball_arenasurvival_squads_survival","duration":270},{"id":"round_blastballruins_squads","duration":150},{"id":"round_kraken_attack_squads","duration":300}]},{"id":"fp18_showcase","levels":[{"id":"showcase_bulletfallwoods","duration":120},{"id":"showcase_massiveoneswoods","duration":150},{"id":"showcase_toughencounterswoods_filler","duration":180},{"id":"showcase_treasuredungeonwoods","duration":120},{"id":"showcase_treeclimberswoods","duration":120}]},{"id":"ftue_uk_show","levels":[{"id":"knockout_losttemple_final","duration":300},{"id":"welcome_noelim_ftue_s1","duration":90},{"id":"soulful_narwhal_noelim_ftue_s2","duration":120},{"id":"ball_noelim_ftue","duration":120},{"id":"round_snowballsurvival_noelim_ftue_s2","duration":60}]},{"id":"mrs_pegwin_winter_ltm_2teamsfinal","levels":[{"id":"round_penguin_solos_pegwin_2teamsfinal","duration":120},{"id":"round_match_fall_pegwin_winter","duration":80},{"id":"round_gauntlet_05_pegwin_winter","duration":180},{"id":"round_fruitpunch_pegwin_winter","duration":90},{"id":"round_lava_pegwin_winter","duration":140},{"id":"round_gauntlet_06_pegwin_winter","duration":180},{"id":"round_slimeclimb_2_pegwin_winter","duration":190},{"id":"round_drumtop_40_pegwin_winter","duration":180},{"id":"round_robotrampage_arena_2_pegwin_winter","duration":70},{"id":"round_gauntlet_07_pegwin_winter","duration":180},{"id":"round_chicken_chase_pegwin_winter_2teamsfinal","duration":120}]},{"id":"only_solo_ss2_rounds","levels":[{"id":"round_hexsnake","duration":300},{"id":"round_gauntlet_10_ss2_solo_rounds","duration":180},{"id":"round_satellitehoppers_ss2_solo_rounds","duration":180},{"id":"round_hoverboardsurvival2_ss2_solo_rounds","duration":170},{"id":"round_ffa_button_bashers","duration":300},{"id":"round_starlink_ss2_solo_rounds","duration":150},{"id":"round_hexsnake_ss2_solo_rounds","duration":300}]},{"id":"pl_blastball","levels":[{"id":"pl_blastball","duration":300}]},{"id":"pl_duos_show","levels":[{"id":"round_hexsnake_duos","duration":300},{"id":"round_gauntlet_01_duos_pl","duration":120},{"id":"round_gauntlet_02_duos_pl","duration":120},{"id":"round_gauntlet_03_duos_pl","duration":120},{"id":"round_gauntlet_05_duos_pl","duration":120},{"id":"round_gauntlet_06_duos_pl","duration":120},{"id":"round_gauntlet_07_duos_pl","duration":120},{"id":"round_gauntlet_09_duos_pl","duration":90},{"id":"round_biggestfan_duos_pl","duration":120},{"id":"round_door_dash_duos_pl","duration":120},{"id":"round_drumtop_duos_pl","duration":140},{"id":"round_slide_chute_duos_pl","duration":120},{"id":"round_see_saw_360_duos_pl","duration":180},{"id":"round_chompchomp_duos_pl","duration":120},{"id":"round_tunnel_duos_pl","duration":90},{"id":"round_robotrampage_arena_2_duos_pl","duration":70},{"id":"round_blastballruins_duos_pl","duration":150},{"id":"round_jump_club_duos_pl","duration":90},{"id":"round_snowballsurvival_duos_pl","duration":60},{"id":"round_hoops_blockade_solo_duos_pl","duration":300},{"id":"round_spin_ring_duos_pl","duration":180},{"id":"round_tip_toe_duos_pl","duration":120},{"id":"round_pixelperfect_duos_pl","duration":180},{"id":"round_thin_ice_duos_pl","duration":300},{"id":"round_blastball_arenasurvival_final_duos_pl","duration":270},{"id":"round_hexaring_duos_pl","duration":300},{"id":"round_hexsnake_duos_pl","duration":300},{"id":"round_kraken_attack_duos_pl","duration":300},{"id":"round_floor_fall_duos_pl","duration":300},{"id":"round_jump_showdown_duos_pl","duration":300},{"id":"round_tunnel_final_duos_pl","duration":300},{"id":"round_fall_mountain_duos_pl","duration":300},{"id":"round_ffa_button_bashers_duos_pl","duration":300},{"id":"round_match_fall_duos_pl","duration":80},{"id":"round_royal_rumble_duos_pl","duration":90},{"id":"round_fruitpunch_duos_pl","duration":90},{"id":"round_dodge_fall_duos_pl","duration":120},{"id":"round_chicken_chase_duos_pl","duration":120},{"id":"round_1v1_volleyfall_final_duos_pl","duration":100},{"id":"round_1v1_volleyfall_duos_pl","duration":100},{"id":"round_slimeclimb_2_duos_pl","duration":190},{"id":"round_tiptoefinale_duos_pl","duration":300},{"id":"round_penguin_solos_duos_pl","duration":300},{"id":"round_fruit_bowl_duos_pl","duration":101},{"id":"round_lava_duos_pl","duration":140},{"id":"round_hoops_duos_pl","duration":120},{"id":"round_snowy_scrap_duos_pl","duration":180},{"id":"round_ballhogs_duos_pl","duration":90},{"id":"round_rocknroll_duos_pl","duration":120},{"id":"round_conveyor_arena_duos_pl","duration":90},{"id":"round_egg_grab_duos_pl","duration":120},{"id":"round_jinxed_duos_non_final_pl","duration":300},{"id":"round_jinxed_duos_pl","duration":300},{"id":"round_basketfall_duos_pl","duration":90},{"id":"round_fall_ball_duos_pl","duration":90},{"id":"round_fall_ball_duos_non_final_pl","duration":90},{"id":"round_basketfall_duos_non_final_pl","duration":90},{"id":"round_territory_control_duos_pl","duration":90},{"id":"round_territory_control_duos_non_final_pl","duration":90},{"id":"round_gauntlet_04_duos_pl","duration":120},{"id":"round_skeefall_duos_pl","duration":300},{"id":"round_egg_grab_02_duos_pl","duration":120},{"id":"round_crown_maze_duos_pl","duration":300},{"id":"round_gauntlet_10_duos_40_pl","duration":150},{"id":"round_hoverboardsurvival2_squads_pl","duration":170},{"id":"round_hoverboardsurvival_squads_pl","duration":140},{"id":"round_tunnel_race_duos_pl","duration":120},{"id":"round_king_of_the_hill_squads_pl","duration":300},{"id":"round_see_saw_duos_pl","duration":120},{"id":"round_iceclimb_squads_pl","duration":120},{"id":"round_hoops_revenge_duos_pl","duration":120},{"id":"round_slippy_slide_duos_pl","duration":180},{"id":"round_satellitehoppers_duos_pl","duration":180},{"id":"round_starlink_duos_pl","duration":150},{"id":"round_gauntlet_08_squads_pl","duration":120},{"id":"round_pipedup_duos_pl","duration":150}]},{"id":"pl_fallmountain","levels":[{"id":"pl_fallmountain","duration":180}]},{"id":"pl_hexagone","levels":[{"id":"pl_hexagone_mini","duration":300},{"id":"pl_hexagone_regular","duration":300}]},{"id":"pl_hexaring","levels":[{"id":"pl_hexaring","duration":300}]},{"id":"pl_hexaterrestrial","levels":[{"id":"pl_hexaterrestrial","duration":300}]},{"id":"pl_jumpshowdown","levels":[{"id":"pl_jumpshowdown","duration":300}]},{"id":"pl_krakenslam","levels":[{"id":"pl_krakenslam","duration":300}]},{"id":"pl_losttemple","levels":[{"id":"pl_losttemple","duration":300}]},{"id":"pl_rolloff","levels":[{"id":"pl_rolloff","duration":300}]},{"id":"pl_royal_fumble","levels":[{"id":"pl_royal_fumble","duration":90}]},{"id":"pl_solo_main_show","levels":[{"id":"round_hexsnake_40","duration":300},{"id":"round_gauntlet_01_40_pl","duration":180},{"id":"round_gauntlet_02_40_pl","duration":180},{"id":"round_gauntlet_03_40_pl","duration":180},{"id":"round_door_dash_40_pl","duration":180},{"id":"round_chompchomp_40_pl","duration":100},{"id":"round_biggestfan_40_pl","duration":210},{"id":"round_gauntlet_05_40_pl","duration":180},{"id":"round_gauntlet_06_40_pl","duration":180},{"id":"round_drumtop_40_pl","duration":180},{"id":"round_gauntlet_07_40_pl","duration":180},{"id":"round_see_saw_360_40_pl","duration":180},{"id":"round_gauntlet_09_40_pl","duration":90},{"id":"round_slide_chute_40_pl","duration":165},{"id":"round_jump_club_40_pl","duration":90},{"id":"round_tunnel_40_pl","duration":150},{"id":"round_tip_toe_40_pl","duration":120},{"id":"round_hoops_blockade_solo_40_pl","duration":300},{"id":"round_snowballsurvival_40_pl","duration":60},{"id":"round_robotrampage_arena_2_40_pl","duration":70},{"id":"round_follow-the-leader_40_pl","duration":300},{"id":"round_spin_ring_40_pl","duration":180},{"id":"round_blastballruins_40_pl","duration":270},{"id":"round_floor_fall_mini_40_pl","duration":300},{"id":"round_jump_showdown_40_pl","duration":300},{"id":"round_tunnel_final_40_pl","duration":300},{"id":"round_thin_ice_mini_40_pl","duration":300},{"id":"round_blastball_arenasurvival_40_pl","duration":270},{"id":"round_hexaring_40_pl","duration":300},{"id":"round_hexsnake_40_pl","duration":300},{"id":"round_kraken_attack_40_pl","duration":300},{"id":"round_fall_mountain_hub_complete_40_pl","duration":300},{"id":"round_airtime_40_pl","duration":300},{"id":"round_hoverboardsurvival_40_pl","duration":140},{"id":"round_ffa_button_bashers_40_pl_vault_pl","duration":300},{"id":"round_match_fall_40_pl_vault_pl","duration":80},{"id":"round_royal_rumble_40_pl_vault_pl","duration":90},{"id":"round_tail_tag_40_pl","duration":90},{"id":"round_fruitpunch_40_pl","duration":90},{"id":"round_dodge_fall_40_pl","duration":180},{"id":"round_shortcircuit_40_pl","duration":300},{"id":"round_1v1_volleyfall_40_pl","duration":100},{"id":"round_slimeclimb_2_40_pl","duration":190},{"id":"round_1v1_button_basher_40_pl","duration":90},{"id":"round_fruit_bowl_40_pl","duration":101},{"id":"round_penguin_solos_40_pl","duration":300},{"id":"round_lava_40_pl","duration":140},{"id":"round_gauntlet_04_40_pl","duration":180},{"id":"round_skeefall_40_pl","duration":300},{"id":"round_short_circuit_2_40_pl","duration":180},{"id":"round_hoverboardsurvival2_40_pl","duration":170},{"id":"round_crown_maze_40_pl","duration":300},{"id":"round_gauntlet_10_40_pl","duration":180},{"id":"round_tunnel_race_40_pl","duration":120},{"id":"round_king_of_the_hill_40_pl","duration":300},{"id":"round_see_saw_40_pl","duration":180},{"id":"round_iceclimb_40_pl","duration":180},{"id":"round_hoops_revenge_40_pl","duration":300},{"id":"round_slippy_slide_40_pl","duration":180},{"id":"round_starlink_40_pl","duration":150},{"id":"round_satellitehoppers_40_pl","duration":180},{"id":"round_gauntlet_08_40_pl","duration":180},{"id":"round_pipedup_40_pl","duration":180}]},{"id":"pl_squads_show","levels":[{"id":"round_hexsnake_squads","duration":300},{"id":"round_biggestfan_squads_pl","duration":120},{"id":"round_gauntlet_02_squads_pl","duration":120},{"id":"round_door_dash_squads_pl","duration":120},{"id":"round_slide_chute_squads_pl","duration":120},{"id":"round_gauntlet_01_squads_pl","duration":120},{"id":"round_drumtop_squads_pl","duration":140},{"id":"round_gauntlet_06_squads_pl","duration":120},{"id":"round_gauntlet_09_squads_pl","duration":90},{"id":"round_gauntlet_07_squads_pl","duration":120},{"id":"round_gauntlet_05_squads_pl","duration":120},{"id":"round_gauntlet_03_squads_pl","duration":120},{"id":"round_jinxed_squads_non_final_pl","duration":300},{"id":"round_jinxed_squads_pl","duration":300},{"id":"round_conveyor_arena_squads_pl","duration":90},{"id":"round_robotrampage_arena_2_squads_pl","duration":70},{"id":"round_blastballruins_squads_pl","duration":150},{"id":"round_pixelperfect_squads_pl","duration":180},{"id":"round_jump_club_squads_pl","duration":90},{"id":"round_spin_ring_squads_pl","duration":180},{"id":"round_fall_ball_squads_non_final_pl","duration":90},{"id":"round_fall_ball_squads_pl","duration":90},{"id":"round_blastball_arenasurvival_final_squads_pl","duration":270},{"id":"round_hexaring_squads_pl","duration":300},{"id":"round_hexsnake_squads_pl","duration":300},{"id":"round_kraken_attack_squads_pl","duration":300},{"id":"round_floor_fall_squads_pl","duration":300},{"id":"round_jump_showdown_squads_pl","duration":300},{"id":"round_tunnel_final_squads_pl","duration":300},{"id":"round_basketfall_squads_pl","duration":90},{"id":"round_basketfall_squads_final_pl","duration":90},{"id":"round_fall_mountain_squads_pl","duration":300},{"id":"round_see_saw_360_squads_pl","duration":180},{"id":"round_chompchomp_squads_pl","duration":120},{"id":"round_tunnel_squads_pl","duration":90},{"id":"round_snowballsurvival_squads_pl","duration":60},{"id":"round_snowy_scrap_squads_pl","duration":180},{"id":"round_thin_ice_squads_pl","duration":300},{"id":"round_tip_toe_squads_pl","duration":120},{"id":"round_hoops_blockade_squads_pl","duration":300},{"id":"round_ffa_button_bashers_squads_pl","duration":300},{"id":"round_match_fall_squads_pl","duration":80},{"id":"round_royal_rumble_squads_pl","duration":90},{"id":"round_fruit_bowl_squads_pl","duration":101},{"id":"round_penguin_solos_squads_pl","duration":300},{"id":"round_fruitpunch_squads_pl","duration":90},{"id":"round_chicken_chase_squads_pl","duration":120},{"id":"round_1v1_volleyfall_squads_pl","duration":100},{"id":"round_1v1_volleyfall_final_squads_pl","duration":100},{"id":"round_slimeclimb_2_squads_pl","duration":190},{"id":"round_tiptoefinale_pl","duration":300},{"id":"round_lava_squads_pl","duration":140},{"id":"round_hoops_squads_pl","duration":120},{"id":"round_egg_grab_squads_pl","duration":120},{"id":"round_ballhogs_squads_pl","duration":90},{"id":"round_rocknroll_squads_pl","duration":120},{"id":"round_territory_control_squads_non_final_pl","duration":90},{"id":"round_territory_control_squads_pl","duration":90},{"id":"round_gauntlet_04_squads_pl","duration":120},{"id":"round_skeefall_squads_pl","duration":300},{"id":"round_egg_grab_02_squads_pl","duration":120},{"id":"round_crown_maze_squads_pl","duration":300},{"id":"round_gauntlet_10_squads_40_pl","duration":150},{"id":"round_hoverboardsurvival2_squads_pl","duration":170},{"id":"round_hoverboardsurvival_squads_pl","duration":140},{"id":"round_dodge_fall_squads_pl","duration":120},{"id":"round_tunnel_race_squads_pl","duration":120},{"id":"round_king_of_the_hill_squads_pl","duration":300},{"id":"round_see_saw_squads_pl","duration":120},{"id":"round_iceclimb_squads_pl","duration":120},{"id":"round_hoops_revenge_squads_pl","duration":120},{"id":"round_slippy_slide_squads_pl","duration":180},{"id":"round_starlink_squads_pl","duration":150},{"id":"round_satellitehoppers_squads_pl","duration":180},{"id":"round_gauntlet_08_squads_pl","duration":120},{"id":"round_pipedup_squads_pl","duration":150}]},{"id":"pl_thin_ice","levels":[{"id":"pl_thin_ice_mini","duration":300},{"id":"pl_thin_ice_regular","duration":300}]},{"id":"pl_tiptoefinale","levels":[{"id":"pl_tiptoefinale","duration":300}]},{"id":"s10_squadcelebration","levels":[{"id":"s10_fallball_squads_squadcelebration_final","duration":90},{"id":"s10_conveyorarena_squads_squadcelebration","duration":90},{"id":"s10_pixelperfect_squads_squadcelebration","duration":180},{"id":"s10_snowyscrap_squads_squadcelebration","duration":180},{"id":"s10_jinxed_squads_squadcelebration_final","duration":300},{"id":"s10_basketfall_squads_squadcelebration_final","duration":90},{"id":"round_ballhogs_squads_autumn","duration":90},{"id":"round_egg_grab_02_squads_autumn","duration":120},{"id":"round_chicken_chase_squads_autumn","duration":120},{"id":"round_egg_grab_squads_autumn","duration":120},{"id":"round_territory_control_squads_autumn","duration":90},{"id":"round_rocknroll_squads_autumn","duration":120},{"id":"round_crown_maze_squads_squadscelebration","duration":300},{"id":"round_hoops_squads_autumn","duration":120}]},{"id":"showcase_fp13","levels":[{"id":"round_floor_fall_squads","duration":300},{"id":"showcase_boxparty_opener","duration":120},{"id":"showcase_sortitout_opener","duration":180},{"id":"showcase_mindthegap_opener","duration":150},{"id":"showcase_slidensmash_opener","duration":120},{"id":"showcase_chickengulch_filler","duration":120},{"id":"showcase_topofthetrash_filler","duration":120},{"id":"showcase_magnetmayhem_filler","duration":120},{"id":"showcase_shapeup_filler","duration":120},{"id":"showcase_cycleoslime_final","duration":180},{"id":"scrapyard_antibubblefactory","duration":120},{"id":"scrapyard_derrameburbujeante","duration":120},{"id":"scrapyard_scraphighway","duration":120},{"id":"showcase_magnetmayhem_filler_fallback","duration":120}]},{"id":"showcase_fp16","levels":[{"id":"round_fp16_goopropegrandslam","duration":180},{"id":"round_fp16_standardfireworks","duration":180},{"id":"round_fp16_crumblecave","duration":180},{"id":"round_fp16_cloudyteacups","duration":90},{"id":"fp16_hohoholeymoley_3teams","duration":100},{"id":"fp16_hohoholeymoley_4teams","duration":100},{"id":"round_fp16_cloudyteacups_final","duration":180}]},{"id":"showcase_fp17","levels":[{"id":"round_fp17_castlesiege","duration":180},{"id":"round_fp17_hallowbean","duration":180},{"id":"round_fp17_blueencounters","duration":180},{"id":"round_fp17_scorewhisk_hunt","duration":180},{"id":"round_fp17_gardenpardon","duration":180}]},{"id":"showcase_fp19","levels":[{"id":"fp19_mellowcakes","duration":300},{"id":"fp19_rooftoprangers","duration":180},{"id":"fp19_aerialtableau","duration":180}]},{"id":"showcase_fp20","levels":[{"id":"showcase_boats","duration":300},{"id":"showcase_challengingarena","duration":180},{"id":"showcase_magicalstairs","duration":180},{"id":"showcase_closingtime_3team","duration":120},{"id":"showcase_closingtime_4team","duration":120}]},{"id":"sports_show","levels":[{"id":"sports_fallball_final","duration":90},{"id":"sports_bowling_opener","duration":90},{"id":"sports_hockeyhijinks_opener","duration":90},{"id":"sports_basketfall_final","duration":90},{"id":"sports_volleyfall_final","duration":90},{"id":"sports_buttonbashers_final","duration":90},{"id":"sports_treadmill_opener","duration":90},{"id":"sports_massivegolf_opener","duration":90},{"id":"sports_bouncytravel_opener","duration":90},{"id":"sports_speedcircuit_opener","duration":90}]},{"id":"teams_show_ltm_episode","levels":[{"id":"round_fall_ball_duos_fallback","duration":90},{"id":"round_basketfall_teamgames","duration":90},{"id":"round_fall_ball_teamgames","duration":90},{"id":"round_hoops_duos_teamgames","duration":120},{"id":"round_chicken_chase_teamgames","duration":120},{"id":"round_territory_control_teamgames","duration":90},{"id":"round_conveyor_arena_teamgames","duration":90},{"id":"round_rocknroll_teamgames","duration":120},{"id":"round_ballhogs_teamgames","duration":90},{"id":"round_egg_grab_teamgames","duration":120},{"id":"round_snowy_scrap_teamgames","duration":180},{"id":"round_egg_grab_02_teamgames","duration":120},{"id":"round_jinxed_teamgames","duration":300},{"id":"round_1v1_volleyfall_duos_teamgames","duration":100},{"id":"round_tiptoefinale_duos_teamgames","duration":300},{"id":"round_chickengulch_teamgames","duration":90},{"id":"round_slidensmash_teamgames","duration":90},{"id":"round_treasuretrovefantasy_teamgames","duration":90},{"id":"round_treasuredungeonwoods_teamgames","duration":90},{"id":"round_hoops_revenge_teamgames","duration":120},{"id":"round_slippy_slide_teamgames","duration":90},{"id":"round_penguin_solos_pegwin_teamgames","duration":90},{"id":"round_topofthetrash_teamgames","duration":90},{"id":"round_airtime_teamgames","duration":90},{"id":"round_sortitout_teamgames","duration":90},{"id":"showcase_closingtime_teamgames","duration":120}]},{"id":"wle_mrs_bouncy_bean_time","levels":[{"id":"wle_mrs_bouncy_bean_time_final","duration":180},{"id":"wle_mrs_bouncy_bean_time_opener","duration":180},{"id":"wle_mrs_bouncy_bean_time_filler","duration":180},{"id":"wle_mrs_bouncy_bean_time_opener_02","duration":180},{"id":"wle_mrs_bouncy_bean_time_opener_03","duration":180},{"id":"wle_mrs_bouncy_bean_time_final_02","duration":180},{"id":"wle_mrs_bouncy_bean_time_final_03","duration":180},{"id":"wle_mrs_bouncy_bean_time_filler_04","duration":180},{"id":"wle_mrs_bouncy_bean_time_final_04","duration":180},{"id":"showcase_speedball","duration":180},{"id":"showcase_rainbowpinball","duration":180},{"id":"showcase_asteroidalley","duration":180},{"id":"showcase_slidenroll","duration":180},{"id":"showcase_rollinruins","duration":180}]},{"id":"wle_nature_ltm","levels":[{"id":"logroll_nature_ltm","duration":300},{"id":"fantasyforest_nature_ltm","duration":180},{"id":"junglerun_nature_ltm","duration":180},{"id":"bramblerun_nature_ltm","duration":180},{"id":"samama_nature_ltm","duration":180},{"id":"tarpitturmoil_nature_ltm","duration":240},{"id":"lilypadlimbo_nature_ltm","duration":180},{"id":"junglewall_nature_ltm","duration":180},{"id":"showcase_riverfallwoods","duration":180},{"id":"showcase_mysteriousforest","duration":180},{"id":"showcase_thedriftwoods","duration":240},{"id":"showcase_maraistemptueux","duration":180},{"id":"showcase_waterpusher","duration":300},{"id":"showcase_frogjet","duration":300},{"id":"showcase_clumsyjungle","duration":180}]}]}} \ No newline at end of file diff --git a/LiteDB.dll b/LiteDB.dll deleted file mode 100644 index 33aa62795..000000000 Binary files a/LiteDB.dll and /dev/null differ diff --git a/LogFileWatcher.cs b/LogFileWatcher.cs deleted file mode 100644 index 6e717e29f..000000000 --- a/LogFileWatcher.cs +++ /dev/null @@ -1,238 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -namespace FallGuysStats { - public class LogLine { - public string Namespace { get; set; } - public TimeSpan Time { get; } = TimeSpan.Zero; - public DateTime Date { get; set; } = DateTime.MinValue; - public string Line { get; set; } - - public LogLine(string ns, string line) { - Namespace = ns; - Line = line; - if (line.IndexOf(':') == 2 && line.IndexOf(':', 3) == 5 && line.IndexOf(':', 6) == 12) { - Time = TimeSpan.Parse(line.Substring(0, 12)); - } - } - - public override string ToString() { - return $"{Time}: {Line}"; - } - } - public class LogFileWatcher { - const int UpdateDelay = 500; - - private string filePath; - private string fileName; - private List lines = new List(); - private bool logFileExists; - private long offset; - private bool running; - private bool stop; - private Thread watcher, parser; - - public event Action> OnParsedLogLines; - public event Action OnLogFileFound; - - public void Start(string logDirectory, string fileName) { - if (running) { return; } - - this.fileName = fileName; - filePath = Path.Combine(logDirectory, fileName); - stop = false; - offset = 0; - logFileExists = false; - watcher = new Thread(ReadLogFile) { IsBackground = true }; - watcher.Start(); - parser = new Thread(ParseLines) { IsBackground = true }; - parser.Start(); - } - - public async Task Stop() { - stop = true; - while (running || watcher == null || watcher.ThreadState == ThreadState.Unstarted) { - await Task.Delay(50); - } - lines = new List(); - await Task.Factory.StartNew(() => watcher?.Join()); - } - - private void ReadLogFile() { - running = true; - List currentLines = new List(); - List tempLines = new List(); - DateTime lastDate = DateTime.MinValue; - while (!stop) { - FileInfo fileInfo = new FileInfo(filePath); - if (fileInfo.Exists) { - if (!logFileExists) { - logFileExists = true; - OnLogFileFound?.Invoke(fileName); - } - - using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { - tempLines.Clear(); - fs.Seek(offset, SeekOrigin.Begin); - - if (fs.Length > offset) { - using (StreamReader sr = new StreamReader(fs)) { - string line; - DateTime currentDate = lastDate; - while (!sr.EndOfStream && (line = sr.ReadLine()) != null) { - LogLine logLine = new LogLine(fileName, line); - - if (logLine.Time != TimeSpan.Zero) { - int index; - if ((index = line.IndexOf("[GlobalGameStateClient].PreStart called at ")) > 0) { - currentDate = DateTime.Parse(line.Substring(index + 43, 19)); - } - - if (currentDate != DateTime.MinValue) { - if (currentDate.TimeOfDay > logLine.Time) { - currentDate = currentDate.AddDays(1); - } - currentDate = currentDate.AddSeconds(logLine.Time.TotalSeconds - currentDate.TimeOfDay.TotalSeconds); - logLine.Date = currentDate; - } - - if (line.IndexOf(" == [CompletedEpisodeDto] ==") > 0) { - StringBuilder sb = new StringBuilder(line); - sb.AppendLine(); - while (!sr.EndOfStream && (line = sr.ReadLine()) != null) { - LogLine temp = new LogLine(fileName, line); - if (temp.Time != TimeSpan.Zero) { - logLine.Line = sb.ToString(); - currentLines.AddRange(tempLines); - currentLines.Add(logLine); - currentLines.Add(temp); - lastDate = currentDate; - offset = fs.Position; - tempLines.Clear(); - break; - } else if (!string.IsNullOrEmpty(line)) { - sb.AppendLine(line); - } - } - } else { - tempLines.Add(logLine); - } - } - } - } - } else if (offset > fs.Length) { - offset = 0; - } - } - } - - if (currentLines.Count > 0) { - lock (lines) { - lines.AddRange(currentLines); - currentLines.Clear(); - } - } - Thread.Sleep(UpdateDelay); - } - running = false; - } - private void ParseLines() { - RoundInfo stat = null; - List round = new List(); - List allStats = new List(); - int players; - bool countPlayers = false; - while (!stop) { - lock (lines) { - for (int i = 0; i < lines.Count; i++) { - LogLine line = lines[i]; - int index; - if ((index = line.Line.IndexOf("[StateGameLoading] Finished loading game level")) > 0) { - stat = new RoundInfo(); - round.Add(stat); - stat.Name = line.Line.Substring(index + 62); - countPlayers = true; - } else if (stat != null && countPlayers && line.Line.IndexOf("[ClientGameManager] Added player ") > 0 && (index = line.Line.IndexOf(" players in system.")) > 0) { - int prevIndex = line.Line.LastIndexOf(' ', index - 1); - if (int.TryParse(line.Line.Substring(prevIndex, index - prevIndex), out players)) { - stat.Players = players; - } - } else if (stat != null && line.Line.IndexOf("[GameSession] Changing state from Countdown to Playing") > 0) { - stat.Start = line.Date; - countPlayers = false; - } else if (stat != null && - (line.Line.IndexOf("[GameSession] Changing state from Playing to GameOver") > 0 - || line.Line.IndexOf("Changing local player state to: SpectatingEliminated") > 0)) { - stat.End = line.Date; - } else if (line.Line.IndexOf("[StateMainMenu] Loading scene MainMenu") > 0) { - round.Clear(); - stat = null; - } else if (line.Line.IndexOf(" == [CompletedEpisodeDto] ==") > 0) { - if (stat.End == DateTime.MinValue) { - stat.End = line.Date; - } - - StringReader sr = new StringReader(line.Line); - string detail; - bool foundRound = false; - while ((detail = sr.ReadLine()) != null) { - if (detail.IndexOf("[Round ") == 0) { - foundRound = true; - int roundNum = (int)detail[7] - 0x30 + 1; - stat = round[roundNum - 1]; - stat.Round = roundNum; - } else if (foundRound) { - if (detail.IndexOf("> Position: ") == 0) { - switch (stat.Name) { - case "round_block_party": - case "round_jump_club": - case "round_match_fall": - case "round_tunnel": - case "round_tail_tag": - case "round_fall_ball_60_players": - case "round_jinxed": - case "round_egg_grab": - case "round_ballhogs": - case "round_hoops": - case "round_rocknroll": - case "round_conveyor_arena": - break; - default: - stat.Position = int.Parse(detail.Substring(12)); - break; - } - } else if (detail.IndexOf("> Qualified: ") == 0) { - char qualified = detail[13]; - stat.Qualified = qualified == 'T'; - } else if (detail.IndexOf("> Bonus Tier: ") == 0 && detail.Length == 15) { - char tier = detail[14]; - stat.Tier = (int)tier - 0x30 + 1; - } else if (detail.IndexOf("> Kudos: ") == 0) { - stat.Kudos += int.Parse(detail.Substring(9)); - } else if (detail.IndexOf("> Bonus Kudos: ") == 0) { - stat.Kudos += int.Parse(detail.Substring(15)); - } - } - } - - allStats.AddRange(round); - round.Clear(); - stat = null; - } - } - - if (allStats.Count > 0) { - OnParsedLogLines?.Invoke(allStats); - allStats.Clear(); - } - - lines.Clear(); - } - Thread.Sleep(UpdateDelay); - } - } - } -} \ No newline at end of file diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index fabc4475e..2946057ad 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -1,14 +1,14 @@ using System.Reflection; using System.Runtime.InteropServices; -[assembly: AssemblyTitle("FallGuysStats")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyTitle("Fall Guys Stats Tracker")] +[assembly: AssemblyDescription("Program that will generate statistics for Fall Guys")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("FallGuysStats")] -[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyCompany("Fall Guys Stats")] +[assembly: AssemblyProduct("Fall Guys Stats")] +[assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("9ddf7bd8-3c77-43d4-a229-f79ce082c6e8")] -[assembly: AssemblyVersion("1.5.0.0")] -[assembly: AssemblyFileVersion("1.5.0.0")] \ No newline at end of file +[assembly: AssemblyVersion("1.438.1.0")] +[assembly: AssemblyFileVersion("1.438.1.0")] \ No newline at end of file diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index cfd44f6fe..915a49861 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -1,7 +1,6 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -19,7 +18,7 @@ namespace FallGuysStats.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -63,9 +62,5789 @@ internal Resources() { /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap info { + internal static System.Drawing.Bitmap background { get { - object obj = ResourceManager.GetObject("info", resourceCulture); + object obj = ResourceManager.GetObject("background", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_candycane { + get { + object obj = ResourceManager.GetObject("background_candycane", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_coffee { + get { + object obj = ResourceManager.GetObject("background_coffee", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_dove { + get { + object obj = ResourceManager.GetObject("background_dove", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_fall_guys_logo { + get { + object obj = ResourceManager.GetObject("background_fall_guys_logo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_helter_skelter { + get { + object obj = ResourceManager.GetObject("background_helter_skelter", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_hex_a_thon { + get { + object obj = ResourceManager.GetObject("background_hex_a_thon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_ill_be_slime { + get { + object obj = ResourceManager.GetObject("background_ill_be_slime", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_mockingbird { + get { + object obj = ResourceManager.GetObject("background_mockingbird", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_monarch { + get { + object obj = ResourceManager.GetObject("background_monarch", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_newlove { + get { + object obj = ResourceManager.GetObject("background_newlove", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_parade_guy { + get { + object obj = ResourceManager.GetObject("background_parade_guy", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_party_pegwin { + get { + object obj = ResourceManager.GetObject("background_party_pegwin", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_penguin { + get { + object obj = ResourceManager.GetObject("background_penguin", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_suits_you { + get { + object obj = ResourceManager.GetObject("background_suits_you", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_sunny_guys { + get { + object obj = ResourceManager.GetObject("background_sunny_guys", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_super_mario_bros { + get { + object obj = ResourceManager.GetObject("background_super_mario_bros", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_super_mario_bros_3 { + get { + object obj = ResourceManager.GetObject("background_super_mario_bros_3", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_ta_da { + get { + object obj = ResourceManager.GetObject("background_ta_da", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_timeattack { + get { + object obj = ResourceManager.GetObject("background_timeattack", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_wallpaper_01 { + get { + object obj = ResourceManager.GetObject("background_wallpaper_01", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_wallpaper_02 { + get { + object obj = ResourceManager.GetObject("background_wallpaper_02", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_wallpaper_03 { + get { + object obj = ResourceManager.GetObject("background_wallpaper_03", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap background_watermelon { + get { + object obj = ResourceManager.GetObject("background_watermelon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap bar_plot_gray_icon { + get { + object obj = ResourceManager.GetObject("bar_plot_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap bar_plot_icon { + get { + object obj = ResourceManager.GetObject("bar_plot_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap bar_plot_teal_icon { + get { + object obj = ResourceManager.GetObject("bar_plot_teal_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap calendar_gray_icon { + get { + object obj = ResourceManager.GetObject("calendar_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap calendar_icon { + get { + object obj = ResourceManager.GetObject("calendar_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap calendar_off_icon { + get { + object obj = ResourceManager.GetObject("calendar_off_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap calendar_on_icon { + get { + object obj = ResourceManager.GetObject("calendar_on_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap casual_show_icon { + get { + object obj = ResourceManager.GetObject("casual_show_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap checkmark_icon { + get { + object obj = ResourceManager.GetObject("checkmark_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap clock_gray_icon { + get { + object obj = ResourceManager.GetObject("clock_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap clock_icon { + get { + object obj = ResourceManager.GetObject("clock_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ad_icon { + get { + object obj = ResourceManager.GetObject("country_ad_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ad_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ad_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ae_icon { + get { + object obj = ResourceManager.GetObject("country_ae_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ae_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ae_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_af_icon { + get { + object obj = ResourceManager.GetObject("country_af_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_af_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_af_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ag_icon { + get { + object obj = ResourceManager.GetObject("country_ag_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ag_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ag_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ai_icon { + get { + object obj = ResourceManager.GetObject("country_ai_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ai_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ai_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_al_icon { + get { + object obj = ResourceManager.GetObject("country_al_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_al_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_al_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_am_icon { + get { + object obj = ResourceManager.GetObject("country_am_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_am_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_am_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_an_icon { + get { + object obj = ResourceManager.GetObject("country_an_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_an_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_an_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ao_icon { + get { + object obj = ResourceManager.GetObject("country_ao_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ao_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ao_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_aq_icon { + get { + object obj = ResourceManager.GetObject("country_aq_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_aq_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_aq_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ar_icon { + get { + object obj = ResourceManager.GetObject("country_ar_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ar_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ar_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_as_icon { + get { + object obj = ResourceManager.GetObject("country_as_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_as_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_as_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_at_icon { + get { + object obj = ResourceManager.GetObject("country_at_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_at_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_at_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_au_icon { + get { + object obj = ResourceManager.GetObject("country_au_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_au_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_au_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_aw_icon { + get { + object obj = ResourceManager.GetObject("country_aw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_aw_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_aw_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ax_icon { + get { + object obj = ResourceManager.GetObject("country_ax_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ax_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ax_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_az_icon { + get { + object obj = ResourceManager.GetObject("country_az_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_az_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_az_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ba_icon { + get { + object obj = ResourceManager.GetObject("country_ba_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ba_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ba_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bb_icon { + get { + object obj = ResourceManager.GetObject("country_bb_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bb_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bb_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bd_icon { + get { + object obj = ResourceManager.GetObject("country_bd_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bd_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bd_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_be_icon { + get { + object obj = ResourceManager.GetObject("country_be_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_be_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_be_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bf_icon { + get { + object obj = ResourceManager.GetObject("country_bf_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bf_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bf_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bg_icon { + get { + object obj = ResourceManager.GetObject("country_bg_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bg_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bg_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bh_icon { + get { + object obj = ResourceManager.GetObject("country_bh_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bh_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bh_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bi_icon { + get { + object obj = ResourceManager.GetObject("country_bi_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bi_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bi_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bj_icon { + get { + object obj = ResourceManager.GetObject("country_bj_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bj_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bj_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bl_icon { + get { + object obj = ResourceManager.GetObject("country_bl_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bl_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bl_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bm_icon { + get { + object obj = ResourceManager.GetObject("country_bm_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bm_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bm_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bn_icon { + get { + object obj = ResourceManager.GetObject("country_bn_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bn_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bn_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bo_icon { + get { + object obj = ResourceManager.GetObject("country_bo_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bo_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bo_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_br_icon { + get { + object obj = ResourceManager.GetObject("country_br_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_br_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_br_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bs_icon { + get { + object obj = ResourceManager.GetObject("country_bs_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bs_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bs_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bt_icon { + get { + object obj = ResourceManager.GetObject("country_bt_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bt_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bt_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bw_icon { + get { + object obj = ResourceManager.GetObject("country_bw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bw_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bw_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_by_icon { + get { + object obj = ResourceManager.GetObject("country_by_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_by_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_by_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bz_icon { + get { + object obj = ResourceManager.GetObject("country_bz_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_bz_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_bz_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ca_icon { + get { + object obj = ResourceManager.GetObject("country_ca_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ca_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ca_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cc_icon { + get { + object obj = ResourceManager.GetObject("country_cc_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cc_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cc_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cd_icon { + get { + object obj = ResourceManager.GetObject("country_cd_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cd_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cd_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cf_icon { + get { + object obj = ResourceManager.GetObject("country_cf_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cf_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cf_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cg_icon { + get { + object obj = ResourceManager.GetObject("country_cg_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cg_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cg_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ch_icon { + get { + object obj = ResourceManager.GetObject("country_ch_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ch_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ch_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ci_icon { + get { + object obj = ResourceManager.GetObject("country_ci_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ci_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ci_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ck_icon { + get { + object obj = ResourceManager.GetObject("country_ck_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ck_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ck_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cl_icon { + get { + object obj = ResourceManager.GetObject("country_cl_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cl_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cl_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cm_icon { + get { + object obj = ResourceManager.GetObject("country_cm_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cm_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cm_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cn_icon { + get { + object obj = ResourceManager.GetObject("country_cn_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cn_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cn_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_co_icon { + get { + object obj = ResourceManager.GetObject("country_co_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_co_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_co_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cr_icon { + get { + object obj = ResourceManager.GetObject("country_cr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cu_icon { + get { + object obj = ResourceManager.GetObject("country_cu_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cu_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cu_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cv_icon { + get { + object obj = ResourceManager.GetObject("country_cv_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cv_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cv_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cw_icon { + get { + object obj = ResourceManager.GetObject("country_cw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cw_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cw_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cx_icon { + get { + object obj = ResourceManager.GetObject("country_cx_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cx_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cx_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cy_icon { + get { + object obj = ResourceManager.GetObject("country_cy_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cy_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cy_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cz_icon { + get { + object obj = ResourceManager.GetObject("country_cz_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_cz_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_cz_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_de_icon { + get { + object obj = ResourceManager.GetObject("country_de_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_de_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_de_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_dj_icon { + get { + object obj = ResourceManager.GetObject("country_dj_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_dj_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_dj_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_dk_icon { + get { + object obj = ResourceManager.GetObject("country_dk_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_dk_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_dk_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_dm_icon { + get { + object obj = ResourceManager.GetObject("country_dm_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_dm_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_dm_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_do_icon { + get { + object obj = ResourceManager.GetObject("country_do_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_do_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_do_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_dz_icon { + get { + object obj = ResourceManager.GetObject("country_dz_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_dz_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_dz_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ec_icon { + get { + object obj = ResourceManager.GetObject("country_ec_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ec_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ec_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ee_icon { + get { + object obj = ResourceManager.GetObject("country_ee_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ee_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ee_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_eg_icon { + get { + object obj = ResourceManager.GetObject("country_eg_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_eg_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_eg_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_eh_icon { + get { + object obj = ResourceManager.GetObject("country_eh_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_eh_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_eh_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_er_icon { + get { + object obj = ResourceManager.GetObject("country_er_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_er_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_er_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_es_icon { + get { + object obj = ResourceManager.GetObject("country_es_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_es_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_es_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_et_icon { + get { + object obj = ResourceManager.GetObject("country_et_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_et_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_et_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_eu_icon { + get { + object obj = ResourceManager.GetObject("country_eu_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_eu_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_eu_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fi_icon { + get { + object obj = ResourceManager.GetObject("country_fi_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fi_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_fi_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fj_icon { + get { + object obj = ResourceManager.GetObject("country_fj_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fj_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_fj_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fk_icon { + get { + object obj = ResourceManager.GetObject("country_fk_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fk_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_fk_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fm_icon { + get { + object obj = ResourceManager.GetObject("country_fm_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fm_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_fm_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fo_icon { + get { + object obj = ResourceManager.GetObject("country_fo_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fo_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_fo_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fr_icon { + get { + object obj = ResourceManager.GetObject("country_fr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_fr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_fr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ga_icon { + get { + object obj = ResourceManager.GetObject("country_ga_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ga_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ga_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gb_icon { + get { + object obj = ResourceManager.GetObject("country_gb_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gb_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gb_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gd_icon { + get { + object obj = ResourceManager.GetObject("country_gd_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gd_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gd_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ge_icon { + get { + object obj = ResourceManager.GetObject("country_ge_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ge_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ge_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gg_icon { + get { + object obj = ResourceManager.GetObject("country_gg_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gg_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gg_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gh_icon { + get { + object obj = ResourceManager.GetObject("country_gh_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gh_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gh_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gi_icon { + get { + object obj = ResourceManager.GetObject("country_gi_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gi_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gi_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gl_icon { + get { + object obj = ResourceManager.GetObject("country_gl_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gl_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gl_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gm_icon { + get { + object obj = ResourceManager.GetObject("country_gm_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gm_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gm_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gn_icon { + get { + object obj = ResourceManager.GetObject("country_gn_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gn_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gn_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gq_icon { + get { + object obj = ResourceManager.GetObject("country_gq_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gq_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gq_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gr_icon { + get { + object obj = ResourceManager.GetObject("country_gr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gs_icon { + get { + object obj = ResourceManager.GetObject("country_gs_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gs_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gs_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gt_icon { + get { + object obj = ResourceManager.GetObject("country_gt_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gt_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gt_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gu_icon { + get { + object obj = ResourceManager.GetObject("country_gu_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gu_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gu_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gw_icon { + get { + object obj = ResourceManager.GetObject("country_gw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gw_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gw_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gy_icon { + get { + object obj = ResourceManager.GetObject("country_gy_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_gy_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_gy_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_hk_icon { + get { + object obj = ResourceManager.GetObject("country_hk_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_hk_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_hk_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_hn_icon { + get { + object obj = ResourceManager.GetObject("country_hn_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_hn_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_hn_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_hr_icon { + get { + object obj = ResourceManager.GetObject("country_hr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_hr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_hr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ht_icon { + get { + object obj = ResourceManager.GetObject("country_ht_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ht_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ht_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_hu_icon { + get { + object obj = ResourceManager.GetObject("country_hu_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_hu_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_hu_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ic_icon { + get { + object obj = ResourceManager.GetObject("country_ic_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ic_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ic_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_id_icon { + get { + object obj = ResourceManager.GetObject("country_id_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_id_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_id_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ie_icon { + get { + object obj = ResourceManager.GetObject("country_ie_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ie_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ie_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_il_icon { + get { + object obj = ResourceManager.GetObject("country_il_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_il_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_il_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_im_icon { + get { + object obj = ResourceManager.GetObject("country_im_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_im_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_im_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_in_icon { + get { + object obj = ResourceManager.GetObject("country_in_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_in_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_in_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_iq_icon { + get { + object obj = ResourceManager.GetObject("country_iq_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_iq_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_iq_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ir_icon { + get { + object obj = ResourceManager.GetObject("country_ir_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ir_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ir_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_is_icon { + get { + object obj = ResourceManager.GetObject("country_is_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_is_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_is_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_it_icon { + get { + object obj = ResourceManager.GetObject("country_it_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_it_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_it_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_je_icon { + get { + object obj = ResourceManager.GetObject("country_je_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_je_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_je_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_jm_icon { + get { + object obj = ResourceManager.GetObject("country_jm_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_jm_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_jm_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_jo_icon { + get { + object obj = ResourceManager.GetObject("country_jo_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_jo_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_jo_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_jp_icon { + get { + object obj = ResourceManager.GetObject("country_jp_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_jp_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_jp_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ke_icon { + get { + object obj = ResourceManager.GetObject("country_ke_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ke_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ke_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kg_icon { + get { + object obj = ResourceManager.GetObject("country_kg_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kg_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_kg_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kh_icon { + get { + object obj = ResourceManager.GetObject("country_kh_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kh_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_kh_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ki_icon { + get { + object obj = ResourceManager.GetObject("country_ki_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ki_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ki_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_km_icon { + get { + object obj = ResourceManager.GetObject("country_km_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_km_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_km_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kn_icon { + get { + object obj = ResourceManager.GetObject("country_kn_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kn_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_kn_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kp_icon { + get { + object obj = ResourceManager.GetObject("country_kp_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kp_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_kp_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kr_icon { + get { + object obj = ResourceManager.GetObject("country_kr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_kr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kw_icon { + get { + object obj = ResourceManager.GetObject("country_kw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kw_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_kw_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ky_icon { + get { + object obj = ResourceManager.GetObject("country_ky_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ky_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ky_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kz_icon { + get { + object obj = ResourceManager.GetObject("country_kz_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_kz_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_kz_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_la_icon { + get { + object obj = ResourceManager.GetObject("country_la_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_la_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_la_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lb_icon { + get { + object obj = ResourceManager.GetObject("country_lb_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lb_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_lb_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lc_icon { + get { + object obj = ResourceManager.GetObject("country_lc_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lc_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_lc_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_li_icon { + get { + object obj = ResourceManager.GetObject("country_li_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_li_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_li_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lk_icon { + get { + object obj = ResourceManager.GetObject("country_lk_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lk_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_lk_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lr_icon { + get { + object obj = ResourceManager.GetObject("country_lr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_lr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ls_icon { + get { + object obj = ResourceManager.GetObject("country_ls_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ls_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ls_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lt_icon { + get { + object obj = ResourceManager.GetObject("country_lt_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lt_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_lt_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lu_icon { + get { + object obj = ResourceManager.GetObject("country_lu_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lu_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_lu_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lv_icon { + get { + object obj = ResourceManager.GetObject("country_lv_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_lv_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_lv_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ly_icon { + get { + object obj = ResourceManager.GetObject("country_ly_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ly_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ly_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ma_icon { + get { + object obj = ResourceManager.GetObject("country_ma_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ma_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ma_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mc_icon { + get { + object obj = ResourceManager.GetObject("country_mc_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mc_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mc_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_md_icon { + get { + object obj = ResourceManager.GetObject("country_md_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_md_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_md_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_me_icon { + get { + object obj = ResourceManager.GetObject("country_me_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_me_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_me_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mf_icon { + get { + object obj = ResourceManager.GetObject("country_mf_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mf_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mf_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mg_icon { + get { + object obj = ResourceManager.GetObject("country_mg_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mg_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mg_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mh_icon { + get { + object obj = ResourceManager.GetObject("country_mh_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mh_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mh_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mk_icon { + get { + object obj = ResourceManager.GetObject("country_mk_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mk_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mk_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ml_icon { + get { + object obj = ResourceManager.GetObject("country_ml_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ml_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ml_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mm_icon { + get { + object obj = ResourceManager.GetObject("country_mm_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mm_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mm_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mn_icon { + get { + object obj = ResourceManager.GetObject("country_mn_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mn_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mn_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mo_icon { + get { + object obj = ResourceManager.GetObject("country_mo_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mo_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mo_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mp_icon { + get { + object obj = ResourceManager.GetObject("country_mp_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mp_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mp_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mq_icon { + get { + object obj = ResourceManager.GetObject("country_mq_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mq_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mq_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mr_icon { + get { + object obj = ResourceManager.GetObject("country_mr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ms_icon { + get { + object obj = ResourceManager.GetObject("country_ms_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ms_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ms_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mt_icon { + get { + object obj = ResourceManager.GetObject("country_mt_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mt_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mt_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mu_icon { + get { + object obj = ResourceManager.GetObject("country_mu_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mu_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mu_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mv_icon { + get { + object obj = ResourceManager.GetObject("country_mv_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mv_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mv_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mw_icon { + get { + object obj = ResourceManager.GetObject("country_mw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mw_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mw_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mx_icon { + get { + object obj = ResourceManager.GetObject("country_mx_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mx_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mx_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_my_icon { + get { + object obj = ResourceManager.GetObject("country_my_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_my_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_my_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mz_icon { + get { + object obj = ResourceManager.GetObject("country_mz_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_mz_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_mz_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_na_icon { + get { + object obj = ResourceManager.GetObject("country_na_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_na_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_na_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nc_icon { + get { + object obj = ResourceManager.GetObject("country_nc_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nc_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_nc_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ne_icon { + get { + object obj = ResourceManager.GetObject("country_ne_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ne_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ne_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nf_icon { + get { + object obj = ResourceManager.GetObject("country_nf_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nf_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_nf_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ng_icon { + get { + object obj = ResourceManager.GetObject("country_ng_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ng_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ng_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ni_icon { + get { + object obj = ResourceManager.GetObject("country_ni_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ni_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ni_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nl_icon { + get { + object obj = ResourceManager.GetObject("country_nl_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nl_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_nl_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_no_icon { + get { + object obj = ResourceManager.GetObject("country_no_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_no_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_no_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_np_icon { + get { + object obj = ResourceManager.GetObject("country_np_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_np_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_np_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nr_icon { + get { + object obj = ResourceManager.GetObject("country_nr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_nr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nu_icon { + get { + object obj = ResourceManager.GetObject("country_nu_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nu_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_nu_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nz_icon { + get { + object obj = ResourceManager.GetObject("country_nz_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_nz_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_nz_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_om_icon { + get { + object obj = ResourceManager.GetObject("country_om_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_om_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_om_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pa_icon { + get { + object obj = ResourceManager.GetObject("country_pa_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pa_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_pa_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pe_icon { + get { + object obj = ResourceManager.GetObject("country_pe_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pe_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_pe_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pf_icon { + get { + object obj = ResourceManager.GetObject("country_pf_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pf_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_pf_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pg_icon { + get { + object obj = ResourceManager.GetObject("country_pg_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pg_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_pg_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ph_icon { + get { + object obj = ResourceManager.GetObject("country_ph_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ph_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ph_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pk_icon { + get { + object obj = ResourceManager.GetObject("country_pk_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pk_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_pk_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pl_icon { + get { + object obj = ResourceManager.GetObject("country_pl_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pl_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_pl_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pn_icon { + get { + object obj = ResourceManager.GetObject("country_pn_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pn_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_pn_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pr_icon { + get { + object obj = ResourceManager.GetObject("country_pr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_pr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ps_icon { + get { + object obj = ResourceManager.GetObject("country_ps_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ps_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ps_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pt_icon { + get { + object obj = ResourceManager.GetObject("country_pt_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pt_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_pt_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pw_icon { + get { + object obj = ResourceManager.GetObject("country_pw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_pw_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_pw_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_py_icon { + get { + object obj = ResourceManager.GetObject("country_py_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_py_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_py_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_qa_icon { + get { + object obj = ResourceManager.GetObject("country_qa_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_qa_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_qa_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_re_icon { + get { + object obj = ResourceManager.GetObject("country_re_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_re_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_re_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ro_icon { + get { + object obj = ResourceManager.GetObject("country_ro_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ro_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ro_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_rs_icon { + get { + object obj = ResourceManager.GetObject("country_rs_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_rs_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_rs_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ru_icon { + get { + object obj = ResourceManager.GetObject("country_ru_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ru_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ru_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_rw_icon { + get { + object obj = ResourceManager.GetObject("country_rw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_rw_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_rw_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sa_icon { + get { + object obj = ResourceManager.GetObject("country_sa_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sa_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sa_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sb_icon { + get { + object obj = ResourceManager.GetObject("country_sb_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sb_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sb_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sc_icon { + get { + object obj = ResourceManager.GetObject("country_sc_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sc_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sc_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sd_icon { + get { + object obj = ResourceManager.GetObject("country_sd_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sd_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sd_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_se_icon { + get { + object obj = ResourceManager.GetObject("country_se_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_se_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_se_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sg_icon { + get { + object obj = ResourceManager.GetObject("country_sg_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sg_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sg_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sh_icon { + get { + object obj = ResourceManager.GetObject("country_sh_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sh_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sh_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_si_icon { + get { + object obj = ResourceManager.GetObject("country_si_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_si_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_si_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sk_icon { + get { + object obj = ResourceManager.GetObject("country_sk_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sk_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sk_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sl_icon { + get { + object obj = ResourceManager.GetObject("country_sl_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sl_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sl_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sm_icon { + get { + object obj = ResourceManager.GetObject("country_sm_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sm_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sm_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sn_icon { + get { + object obj = ResourceManager.GetObject("country_sn_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sn_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sn_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_so_icon { + get { + object obj = ResourceManager.GetObject("country_so_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_so_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_so_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sr_icon { + get { + object obj = ResourceManager.GetObject("country_sr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ss_icon { + get { + object obj = ResourceManager.GetObject("country_ss_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ss_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ss_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_st_icon { + get { + object obj = ResourceManager.GetObject("country_st_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_st_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_st_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sv_icon { + get { + object obj = ResourceManager.GetObject("country_sv_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sv_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sv_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sy_icon { + get { + object obj = ResourceManager.GetObject("country_sy_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sy_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sy_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sz_icon { + get { + object obj = ResourceManager.GetObject("country_sz_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_sz_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_sz_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tc_icon { + get { + object obj = ResourceManager.GetObject("country_tc_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tc_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tc_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_td_icon { + get { + object obj = ResourceManager.GetObject("country_td_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_td_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_td_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tf_icon { + get { + object obj = ResourceManager.GetObject("country_tf_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tf_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tf_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tg_icon { + get { + object obj = ResourceManager.GetObject("country_tg_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tg_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tg_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_th_icon { + get { + object obj = ResourceManager.GetObject("country_th_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_th_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_th_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tj_icon { + get { + object obj = ResourceManager.GetObject("country_tj_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tj_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tj_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tk_icon { + get { + object obj = ResourceManager.GetObject("country_tk_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tk_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tk_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tl_icon { + get { + object obj = ResourceManager.GetObject("country_tl_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tl_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tl_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tm_icon { + get { + object obj = ResourceManager.GetObject("country_tm_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tm_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tm_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tn_icon { + get { + object obj = ResourceManager.GetObject("country_tn_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tn_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tn_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_to_icon { + get { + object obj = ResourceManager.GetObject("country_to_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_to_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_to_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tr_icon { + get { + object obj = ResourceManager.GetObject("country_tr_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tr_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tr_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tt_icon { + get { + object obj = ResourceManager.GetObject("country_tt_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tt_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tt_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tv_icon { + get { + object obj = ResourceManager.GetObject("country_tv_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tv_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tv_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tw_icon { + get { + object obj = ResourceManager.GetObject("country_tw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tw_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tw_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tz_icon { + get { + object obj = ResourceManager.GetObject("country_tz_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_tz_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_tz_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ua_icon { + get { + object obj = ResourceManager.GetObject("country_ua_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ua_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ua_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ug_icon { + get { + object obj = ResourceManager.GetObject("country_ug_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ug_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ug_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_unknown_icon { + get { + object obj = ResourceManager.GetObject("country_unknown_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_unknown_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_unknown_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_us_icon { + get { + object obj = ResourceManager.GetObject("country_us_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_us_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_us_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_uy_icon { + get { + object obj = ResourceManager.GetObject("country_uy_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_uy_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_uy_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_uz_icon { + get { + object obj = ResourceManager.GetObject("country_uz_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_uz_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_uz_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_va_icon { + get { + object obj = ResourceManager.GetObject("country_va_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_va_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_va_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_vc_icon { + get { + object obj = ResourceManager.GetObject("country_vc_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_vc_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_vc_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ve_icon { + get { + object obj = ResourceManager.GetObject("country_ve_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ve_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ve_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_vg_icon { + get { + object obj = ResourceManager.GetObject("country_vg_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_vg_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_vg_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_vi_icon { + get { + object obj = ResourceManager.GetObject("country_vi_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_vi_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_vi_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_vn_icon { + get { + object obj = ResourceManager.GetObject("country_vn_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_vn_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_vn_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_vu_icon { + get { + object obj = ResourceManager.GetObject("country_vu_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_vu_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_vu_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_wf_icon { + get { + object obj = ResourceManager.GetObject("country_wf_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_wf_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_wf_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ws_icon { + get { + object obj = ResourceManager.GetObject("country_ws_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ws_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ws_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ye_icon { + get { + object obj = ResourceManager.GetObject("country_ye_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_ye_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_ye_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_yt_icon { + get { + object obj = ResourceManager.GetObject("country_yt_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_yt_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_yt_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_za_icon { + get { + object obj = ResourceManager.GetObject("country_za_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_za_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_za_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_zm_icon { + get { + object obj = ResourceManager.GetObject("country_zm_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_zm_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_zm_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_zw_icon { + get { + object obj = ResourceManager.GetObject("country_zw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap country_zw_shiny_icon { + get { + object obj = ResourceManager.GetObject("country_zw_shiny_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap crown_grid_icon { + get { + object obj = ResourceManager.GetObject("crown_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap crown_icon { + get { + object obj = ResourceManager.GetObject("crown_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap delete { + get { + object obj = ResourceManager.GetObject("delete", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap delete_gray { + get { + object obj = ResourceManager.GetObject("delete_gray", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap epic_grid_icon { + get { + object obj = ResourceManager.GetObject("epic_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap epic_icon { + get { + object obj = ResourceManager.GetObject("epic_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap epic_main_icon { + get { + object obj = ResourceManager.GetObject("epic_main_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap export { + get { + object obj = ResourceManager.GetObject("export", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap export_gray { + get { + object obj = ResourceManager.GetObject("export_gray", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap fallalytics_icon { + get { + object obj = ResourceManager.GetObject("fallalytics_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap fallguys_db_logo { + get { + object obj = ResourceManager.GetObject("fallguys_db_logo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap fallguys_icon { + get { + object obj = ResourceManager.GetObject("fallguys_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap fallGuys_official_icon { + get { + object obj = ResourceManager.GetObject("fallGuys_official_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap fandom_icon { + get { + object obj = ResourceManager.GetObject("fandom_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap filter_gray_icon { + get { + object obj = ResourceManager.GetObject("filter_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap filter_icon { + get { + object obj = ResourceManager.GetObject("filter_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap final_gray_icon { + get { + object obj = ResourceManager.GetObject("final_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap final_icon { + get { + object obj = ResourceManager.GetObject("final_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap first_button_icon { + get { + object obj = ResourceManager.GetObject("first_button_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap github_gray_icon { + get { + object obj = ResourceManager.GetObject("github_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap github_icon { + get { + object obj = ResourceManager.GetObject("github_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap github_update_gray_icon { + get { + object obj = ResourceManager.GetObject("github_update_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap github_update_icon { + get { + object obj = ResourceManager.GetObject("github_update_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap kudos_icon { + get { + object obj = ResourceManager.GetObject("kudos_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap language_icon { + get { + object obj = ResourceManager.GetObject("language_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap last_button_icon { + get { + object obj = ResourceManager.GetObject("last_button_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap leaderboard_gray_icon { + get { + object obj = ResourceManager.GetObject("leaderboard_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap leaderboard_icon { + get { + object obj = ResourceManager.GetObject("leaderboard_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap left_button_icon { + get { + object obj = ResourceManager.GetObject("left_button_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap link_gray_icon { + get { + object obj = ResourceManager.GetObject("link_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap link_icon { + get { + object obj = ResourceManager.GetObject("link_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap link_on_icon { + get { + object obj = ResourceManager.GetObject("link_on_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_1 { + get { + object obj = ResourceManager.GetObject("loading_1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_1_dark { + get { + object obj = ResourceManager.GetObject("loading_1_dark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_10 { + get { + object obj = ResourceManager.GetObject("loading_10", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_10_dark { + get { + object obj = ResourceManager.GetObject("loading_10_dark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_2 { + get { + object obj = ResourceManager.GetObject("loading_2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_2_dark { + get { + object obj = ResourceManager.GetObject("loading_2_dark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_3 { + get { + object obj = ResourceManager.GetObject("loading_3", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_3_dark { + get { + object obj = ResourceManager.GetObject("loading_3_dark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_4 { + get { + object obj = ResourceManager.GetObject("loading_4", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_4_dark { + get { + object obj = ResourceManager.GetObject("loading_4_dark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_5 { + get { + object obj = ResourceManager.GetObject("loading_5", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_5_dark { + get { + object obj = ResourceManager.GetObject("loading_5_dark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_6 { + get { + object obj = ResourceManager.GetObject("loading_6", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_6_dark { + get { + object obj = ResourceManager.GetObject("loading_6_dark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_7 { + get { + object obj = ResourceManager.GetObject("loading_7", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_7_dark { + get { + object obj = ResourceManager.GetObject("loading_7_dark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_8 { + get { + object obj = ResourceManager.GetObject("loading_8", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_8_dark { + get { + object obj = ResourceManager.GetObject("loading_8_dark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_9 { + get { + object obj = ResourceManager.GetObject("loading_9", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap loading_9_dark { + get { + object obj = ResourceManager.GetObject("loading_9_dark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap lollipop_plot_gray_icon { + get { + object obj = ResourceManager.GetObject("lollipop_plot_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap lollipop_plot_icon { + get { + object obj = ResourceManager.GetObject("lollipop_plot_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap lollipop_plot_teal_icon { + get { + object obj = ResourceManager.GetObject("lollipop_plot_teal_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap lost_temple_analyzer_icon { + get { + object obj = ResourceManager.GetObject("lost_temple_analyzer_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap main_120_icon { + get { + object obj = ResourceManager.GetObject("main_120_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap main_icon { + get { + object obj = ResourceManager.GetObject("main_icon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } @@ -75,7 +5854,2483 @@ internal static System.Drawing.Bitmap info { /// internal static System.Drawing.Bitmap medal_bronze { get { - object obj = ResourceManager.GetObject("medal_bronze", resourceCulture); + object obj = ResourceManager.GetObject("medal_bronze", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_bronze_2nd_grid_icon { + get { + object obj = ResourceManager.GetObject("medal_bronze_2nd_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_bronze_3rd_grid_icon { + get { + object obj = ResourceManager.GetObject("medal_bronze_3rd_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_bronze_grid_icon { + get { + object obj = ResourceManager.GetObject("medal_bronze_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_bronze_original { + get { + object obj = ResourceManager.GetObject("medal_bronze_original", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_eliminated { + get { + object obj = ResourceManager.GetObject("medal_eliminated", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_eliminated_grid_icon { + get { + object obj = ResourceManager.GetObject("medal_eliminated_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_eliminated_original { + get { + object obj = ResourceManager.GetObject("medal_eliminated_original", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_gold { + get { + object obj = ResourceManager.GetObject("medal_gold", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_gold_1st_grid_icon { + get { + object obj = ResourceManager.GetObject("medal_gold_1st_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_gold_grid_icon { + get { + object obj = ResourceManager.GetObject("medal_gold_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_gold_original { + get { + object obj = ResourceManager.GetObject("medal_gold_original", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_pink { + get { + object obj = ResourceManager.GetObject("medal_pink", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_pink_grid_icon { + get { + object obj = ResourceManager.GetObject("medal_pink_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_pink_original { + get { + object obj = ResourceManager.GetObject("medal_pink_original", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_silver { + get { + object obj = ResourceManager.GetObject("medal_silver", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_silver_2nd_grid_icon { + get { + object obj = ResourceManager.GetObject("medal_silver_2nd_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_silver_3rd_grid_icon { + get { + object obj = ResourceManager.GetObject("medal_silver_3rd_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_silver_grid_icon { + get { + object obj = ResourceManager.GetObject("medal_silver_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap medal_silver_original { + get { + object obj = ResourceManager.GetObject("medal_silver_original", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap mobile_icon { + get { + object obj = ResourceManager.GetObject("mobile_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap move { + get { + object obj = ResourceManager.GetObject("move", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap move_gray { + get { + object obj = ResourceManager.GetObject("move_gray", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream notify_sound_01 { + get { + return ResourceManager.GetStream("notify_sound_01", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream notify_sound_02 { + get { + return ResourceManager.GetStream("notify_sound_02", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream notify_sound_03 { + get { + return ResourceManager.GetStream("notify_sound_03", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream notify_sound_04 { + get { + return ResourceManager.GetStream("notify_sound_04", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_0 { + get { + object obj = ResourceManager.GetObject("number_0", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_1 { + get { + object obj = ResourceManager.GetObject("number_1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_10 { + get { + object obj = ResourceManager.GetObject("number_10", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_2 { + get { + object obj = ResourceManager.GetObject("number_2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_3 { + get { + object obj = ResourceManager.GetObject("number_3", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_4 { + get { + object obj = ResourceManager.GetObject("number_4", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_5 { + get { + object obj = ResourceManager.GetObject("number_5", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_6 { + get { + object obj = ResourceManager.GetObject("number_6", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_7 { + get { + object obj = ResourceManager.GetObject("number_7", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_8 { + get { + object obj = ResourceManager.GetObject("number_8", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap number_9 { + get { + object obj = ResourceManager.GetObject("number_9", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap pc_icon { + get { + object obj = ResourceManager.GetObject("pc_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ping_100_icon { + get { + object obj = ResourceManager.GetObject("ping_100_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ping_200_icon { + get { + object obj = ResourceManager.GetObject("ping_200_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap player_icon { + get { + object obj = ResourceManager.GetObject("player_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap position_ne_off_icon { + get { + object obj = ResourceManager.GetObject("position_ne_off_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap position_ne_on_icon { + get { + object obj = ResourceManager.GetObject("position_ne_on_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap position_nw_off_icon { + get { + object obj = ResourceManager.GetObject("position_nw_off_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap position_nw_on_icon { + get { + object obj = ResourceManager.GetObject("position_nw_on_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap position_se_off_icon { + get { + object obj = ResourceManager.GetObject("position_se_off_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap position_se_on_icon { + get { + object obj = ResourceManager.GetObject("position_se_on_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap position_sw_off_icon { + get { + object obj = ResourceManager.GetObject("position_sw_off_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap position_sw_on_icon { + get { + object obj = ResourceManager.GetObject("position_sw_on_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap profile_gray_icon { + get { + object obj = ResourceManager.GetObject("profile_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap profile_icon { + get { + object obj = ResourceManager.GetObject("profile_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap profile2_icon { + get { + object obj = ResourceManager.GetObject("profile2_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap profile2_linked_icon { + get { + object obj = ResourceManager.GetObject("profile2_linked_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap profile2_unlinked_icon { + get { + object obj = ResourceManager.GetObject("profile2_unlinked_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ps_icon { + get { + object obj = ResourceManager.GetObject("ps_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap reddit_icon { + get { + object obj = ResourceManager.GetObject("reddit_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap refresh_icon { + get { + object obj = ResourceManager.GetObject("refresh_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap report_icon { + get { + object obj = ResourceManager.GetObject("report_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap right_button_icon { + get { + object obj = ResourceManager.GetObject("right_button_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap roll_off_club_icon { + get { + object obj = ResourceManager.GetObject("roll_off_club_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_airtime_big_icon { + get { + object obj = ResourceManager.GetObject("round_airtime_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_airtime_icon { + get { + object obj = ResourceManager.GetObject("round_airtime_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_basketfall_big_icon { + get { + object obj = ResourceManager.GetObject("round_basketfall_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_basketfall_icon { + get { + object obj = ResourceManager.GetObject("round_basketfall_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_bean_hill_zone_big_icon { + get { + object obj = ResourceManager.GetObject("round_bean_hill_zone_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_bean_hill_zone_icon { + get { + object obj = ResourceManager.GetObject("round_bean_hill_zone_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_big_fans_big_icon { + get { + object obj = ResourceManager.GetObject("round_big_fans_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_big_fans_icon { + get { + object obj = ResourceManager.GetObject("round_big_fans_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_big_shots_big_icon { + get { + object obj = ResourceManager.GetObject("round_big_shots_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_big_shots_icon { + get { + object obj = ResourceManager.GetObject("round_big_shots_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_blast_ball_big_icon { + get { + object obj = ResourceManager.GetObject("round_blast_ball_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_blast_ball_icon { + get { + object obj = ResourceManager.GetObject("round_blast_ball_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_blastlantis_big_icon { + get { + object obj = ResourceManager.GetObject("round_blastlantis_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_blastlantis_icon { + get { + object obj = ResourceManager.GetObject("round_blastlantis_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_block_party_big_icon { + get { + object obj = ResourceManager.GetObject("round_block_party_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_block_party_icon { + get { + object obj = ResourceManager.GetObject("round_block_party_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_bounce_party_big_icon { + get { + object obj = ResourceManager.GetObject("round_bounce_party_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_bounce_party_icon { + get { + object obj = ResourceManager.GetObject("round_bounce_party_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_bubble_trouble_big_icon { + get { + object obj = ResourceManager.GetObject("round_bubble_trouble_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_bubble_trouble_icon { + get { + object obj = ResourceManager.GetObject("round_bubble_trouble_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_button_bashers_big_icon { + get { + object obj = ResourceManager.GetObject("round_button_bashers_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_button_bashers_icon { + get { + object obj = ResourceManager.GetObject("round_button_bashers_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_cosmic_highway_big_icon { + get { + object obj = ResourceManager.GetObject("round_cosmic_highway_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_cosmic_highway_icon { + get { + object obj = ResourceManager.GetObject("round_cosmic_highway_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_creative_big_icon { + get { + object obj = ResourceManager.GetObject("round_creative_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_creative_icon { + get { + object obj = ResourceManager.GetObject("round_creative_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_dizzy_heights_big_icon { + get { + object obj = ResourceManager.GetObject("round_dizzy_heights_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_dizzy_heights_icon { + get { + object obj = ResourceManager.GetObject("round_dizzy_heights_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_door_dash_big_icon { + get { + object obj = ResourceManager.GetObject("round_door_dash_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_door_dash_icon { + get { + object obj = ResourceManager.GetObject("round_door_dash_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_egg_scramble_big_icon { + get { + object obj = ResourceManager.GetObject("round_egg_scramble_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_egg_scramble_icon { + get { + object obj = ResourceManager.GetObject("round_egg_scramble_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_egg_siege_big_icon { + get { + object obj = ResourceManager.GetObject("round_egg_siege_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_egg_siege_icon { + get { + object obj = ResourceManager.GetObject("round_egg_siege_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_fall_ball_big_icon { + get { + object obj = ResourceManager.GetObject("round_fall_ball_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_fall_ball_icon { + get { + object obj = ResourceManager.GetObject("round_fall_ball_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_fall_mountain_big_icon { + get { + object obj = ResourceManager.GetObject("round_fall_mountain_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_fall_mountain_icon { + get { + object obj = ResourceManager.GetObject("round_fall_mountain_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_frantic_factory_big_icon { + get { + object obj = ResourceManager.GetObject("round_frantic_factory_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_frantic_factory_icon { + get { + object obj = ResourceManager.GetObject("round_frantic_factory_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_freezy_peak_big_icon { + get { + object obj = ResourceManager.GetObject("round_freezy_peak_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_freezy_peak_icon { + get { + object obj = ResourceManager.GetObject("round_freezy_peak_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_fruit_chute_big_icon { + get { + object obj = ResourceManager.GetObject("round_fruit_chute_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_fruit_chute_icon { + get { + object obj = ResourceManager.GetObject("round_fruit_chute_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_full_tilt_big_icon { + get { + object obj = ResourceManager.GetObject("round_full_tilt_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_full_tilt_icon { + get { + object obj = ResourceManager.GetObject("round_full_tilt_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_gate_crash_big_icon { + get { + object obj = ResourceManager.GetObject("round_gate_crash_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_gate_crash_icon { + get { + object obj = ResourceManager.GetObject("round_gate_crash_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_gauntlet_big_icon { + get { + object obj = ResourceManager.GetObject("round_gauntlet_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_gauntlet_icon { + get { + object obj = ResourceManager.GetObject("round_gauntlet_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_gray_icon { + get { + object obj = ResourceManager.GetObject("round_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hex_a_gone_big_icon { + get { + object obj = ResourceManager.GetObject("round_hex_a_gone_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hex_a_gone_icon { + get { + object obj = ResourceManager.GetObject("round_hex_a_gone_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hex_a_ring_big_icon { + get { + object obj = ResourceManager.GetObject("round_hex_a_ring_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hex_a_ring_icon { + get { + object obj = ResourceManager.GetObject("round_hex_a_ring_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hex_a_terrestrial_big_icon { + get { + object obj = ResourceManager.GetObject("round_hex_a_terrestrial_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hex_a_terrestrial_icon { + get { + object obj = ResourceManager.GetObject("round_hex_a_terrestrial_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hit_parade_big_icon { + get { + object obj = ResourceManager.GetObject("round_hit_parade_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hit_parade_icon { + get { + object obj = ResourceManager.GetObject("round_hit_parade_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hoarders_big_icon { + get { + object obj = ResourceManager.GetObject("round_hoarders_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hoarders_icon { + get { + object obj = ResourceManager.GetObject("round_hoarders_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hoop_chute_big_icon { + get { + object obj = ResourceManager.GetObject("round_hoop_chute_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hoop_chute_icon { + get { + object obj = ResourceManager.GetObject("round_hoop_chute_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hoopsie_daisy_big_icon { + get { + object obj = ResourceManager.GetObject("round_hoopsie_daisy_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hoopsie_daisy_icon { + get { + object obj = ResourceManager.GetObject("round_hoopsie_daisy_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hoopsie_legends_big_icon { + get { + object obj = ResourceManager.GetObject("round_hoopsie_legends_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hoopsie_legends_icon { + get { + object obj = ResourceManager.GetObject("round_hoopsie_legends_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hoverboard_heroes_big_icon { + get { + object obj = ResourceManager.GetObject("round_hoverboard_heroes_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hoverboard_heroes_icon { + get { + object obj = ResourceManager.GetObject("round_hoverboard_heroes_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hyperdrive_heroes_big_icon { + get { + object obj = ResourceManager.GetObject("round_hyperdrive_heroes_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_hyperdrive_heroes_icon { + get { + object obj = ResourceManager.GetObject("round_hyperdrive_heroes_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_icon { + get { + object obj = ResourceManager.GetObject("round_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_jinxed_big_icon { + get { + object obj = ResourceManager.GetObject("round_jinxed_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_jinxed_icon { + get { + object obj = ResourceManager.GetObject("round_jinxed_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_jump_club_big_icon { + get { + object obj = ResourceManager.GetObject("round_jump_club_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_jump_club_icon { + get { + object obj = ResourceManager.GetObject("round_jump_club_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_jump_showdown_big_icon { + get { + object obj = ResourceManager.GetObject("round_jump_showdown_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_jump_showdown_icon { + get { + object obj = ResourceManager.GetObject("round_jump_showdown_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_knight_fever_big_icon { + get { + object obj = ResourceManager.GetObject("round_knight_fever_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_knight_fever_icon { + get { + object obj = ResourceManager.GetObject("round_knight_fever_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_kraken_slam_big_icon { + get { + object obj = ResourceManager.GetObject("round_kraken_slam_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_kraken_slam_icon { + get { + object obj = ResourceManager.GetObject("round_kraken_slam_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_leading_light_big_icon { + get { + object obj = ResourceManager.GetObject("round_leading_light_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_leading_light_icon { + get { + object obj = ResourceManager.GetObject("round_leading_light_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_lily_leapers_big_icon { + get { + object obj = ResourceManager.GetObject("round_lily_leapers_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_lily_leapers_icon { + get { + object obj = ResourceManager.GetObject("round_lily_leapers_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_lost_temple_big_icon { + get { + object obj = ResourceManager.GetObject("round_lost_temple_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_lost_temple_icon { + get { + object obj = ResourceManager.GetObject("round_lost_temple_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_party_promenade_big_icon { + get { + object obj = ResourceManager.GetObject("round_party_promenade_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_party_promenade_icon { + get { + object obj = ResourceManager.GetObject("round_party_promenade_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_pegwin_pool_party_big_icon { + get { + object obj = ResourceManager.GetObject("round_pegwin_pool_party_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_pegwin_pool_party_icon { + get { + object obj = ResourceManager.GetObject("round_pegwin_pool_party_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_pegwin_pursuit_big_icon { + get { + object obj = ResourceManager.GetObject("round_pegwin_pursuit_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_pegwin_pursuit_icon { + get { + object obj = ResourceManager.GetObject("round_pegwin_pursuit_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_perfect_match_big_icon { + get { + object obj = ResourceManager.GetObject("round_perfect_match_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_perfect_match_icon { + get { + object obj = ResourceManager.GetObject("round_perfect_match_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_pipe_dream_big_icon { + get { + object obj = ResourceManager.GetObject("round_pipe_dream_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_pipe_dream_icon { + get { + object obj = ResourceManager.GetObject("round_pipe_dream_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_pixel_painters_big_icon { + get { + object obj = ResourceManager.GetObject("round_pixel_painters_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_pixel_painters_icon { + get { + object obj = ResourceManager.GetObject("round_pixel_painters_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_power_trip_big_icon { + get { + object obj = ResourceManager.GetObject("round_power_trip_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_power_trip_icon { + get { + object obj = ResourceManager.GetObject("round_power_trip_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_puzzle_path_big_icon { + get { + object obj = ResourceManager.GetObject("round_puzzle_path_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_puzzle_path_icon { + get { + object obj = ResourceManager.GetObject("round_puzzle_path_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_rock_n_roll_big_icon { + get { + object obj = ResourceManager.GetObject("round_rock_n_roll_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_rock_n_roll_icon { + get { + object obj = ResourceManager.GetObject("round_rock_n_roll_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_roll_off_big_icon { + get { + object obj = ResourceManager.GetObject("round_roll_off_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_roll_off_icon { + get { + object obj = ResourceManager.GetObject("round_roll_off_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_roll_on_big_icon { + get { + object obj = ResourceManager.GetObject("round_roll_on_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_roll_on_icon { + get { + object obj = ResourceManager.GetObject("round_roll_on_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_roll_out_big_icon { + get { + object obj = ResourceManager.GetObject("round_roll_out_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_roll_out_icon { + get { + object obj = ResourceManager.GetObject("round_roll_out_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_royal_fumble_big_icon { + get { + object obj = ResourceManager.GetObject("round_royal_fumble_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_royal_fumble_icon { + get { + object obj = ResourceManager.GetObject("round_royal_fumble_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_see_saw_big_icon { + get { + object obj = ResourceManager.GetObject("round_see_saw_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_see_saw_icon { + get { + object obj = ResourceManager.GetObject("round_see_saw_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_short_circuit_big_icon { + get { + object obj = ResourceManager.GetObject("round_short_circuit_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_short_circuit_icon { + get { + object obj = ResourceManager.GetObject("round_short_circuit_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_ski_fall_big_icon { + get { + object obj = ResourceManager.GetObject("round_ski_fall_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_ski_fall_icon { + get { + object obj = ResourceManager.GetObject("round_ski_fall_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_skyline_stumble_big_icon { + get { + object obj = ResourceManager.GetObject("round_skyline_stumble_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_skyline_stumble_icon { + get { + object obj = ResourceManager.GetObject("round_skyline_stumble_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_slime_climb_big_icon { + get { + object obj = ResourceManager.GetObject("round_slime_climb_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_slime_climb_icon { + get { + object obj = ResourceManager.GetObject("round_slime_climb_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_snowball_survival_big_icon { + get { + object obj = ResourceManager.GetObject("round_snowball_survival_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_snowball_survival_icon { + get { + object obj = ResourceManager.GetObject("round_snowball_survival_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_snowy_scrap_big_icon { + get { + object obj = ResourceManager.GetObject("round_snowy_scrap_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_snowy_scrap_icon { + get { + object obj = ResourceManager.GetObject("round_snowy_scrap_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_space_race_big_icon { + get { + object obj = ResourceManager.GetObject("round_space_race_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_space_race_icon { + get { + object obj = ResourceManager.GetObject("round_space_race_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_speed_circuit_big_icon { + get { + object obj = ResourceManager.GetObject("round_speed_circuit_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_speed_circuit_icon { + get { + object obj = ResourceManager.GetObject("round_speed_circuit_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_speed_slider_big_icon { + get { + object obj = ResourceManager.GetObject("round_speed_slider_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_speed_slider_icon { + get { + object obj = ResourceManager.GetObject("round_speed_slider_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_starchart_big_icon { + get { + object obj = ResourceManager.GetObject("round_starchart_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_starchart_icon { + get { + object obj = ResourceManager.GetObject("round_starchart_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_stompin_ground_big_icon { + get { + object obj = ResourceManager.GetObject("round_stompin_ground_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_stompin_ground_icon { + get { + object obj = ResourceManager.GetObject("round_stompin_ground_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_sum_fruit_big_icon { + get { + object obj = ResourceManager.GetObject("round_sum_fruit_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_sum_fruit_icon { + get { + object obj = ResourceManager.GetObject("round_sum_fruit_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_sweet_thieves_big_icon { + get { + object obj = ResourceManager.GetObject("round_sweet_thieves_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_sweet_thieves_icon { + get { + object obj = ResourceManager.GetObject("round_sweet_thieves_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_tail_tag_big_icon { + get { + object obj = ResourceManager.GetObject("round_tail_tag_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_tail_tag_icon { + get { + object obj = ResourceManager.GetObject("round_tail_tag_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_team_tail_tag_big_icon { + get { + object obj = ResourceManager.GetObject("round_team_tail_tag_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_team_tail_tag_icon { + get { + object obj = ResourceManager.GetObject("round_team_tail_tag_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_the_slimescraper_big_icon { + get { + object obj = ResourceManager.GetObject("round_the_slimescraper_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_the_slimescraper_icon { + get { + object obj = ResourceManager.GetObject("round_the_slimescraper_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_the_swiveller_big_icon { + get { + object obj = ResourceManager.GetObject("round_the_swiveller_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_the_swiveller_icon { + get { + object obj = ResourceManager.GetObject("round_the_swiveller_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_the_whirlygig_big_icon { + get { + object obj = ResourceManager.GetObject("round_the_whirlygig_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_the_whirlygig_icon { + get { + object obj = ResourceManager.GetObject("round_the_whirlygig_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_thin_ice_big_icon { + get { + object obj = ResourceManager.GetObject("round_thin_ice_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_thin_ice_icon { + get { + object obj = ResourceManager.GetObject("round_thin_ice_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_tip_toe_big_icon { + get { + object obj = ResourceManager.GetObject("round_tip_toe_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_tip_toe_finale_big_icon { + get { + object obj = ResourceManager.GetObject("round_tip_toe_finale_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_tip_toe_finale_icon { + get { + object obj = ResourceManager.GetObject("round_tip_toe_finale_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_tip_toe_icon { + get { + object obj = ResourceManager.GetObject("round_tip_toe_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_track_attack_big_icon { + get { + object obj = ResourceManager.GetObject("round_track_attack_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_track_attack_icon { + get { + object obj = ResourceManager.GetObject("round_track_attack_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_treat_thieves_big_icon { + get { + object obj = ResourceManager.GetObject("round_treat_thieves_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_treat_thieves_icon { + get { + object obj = ResourceManager.GetObject("round_treat_thieves_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_treetop_tumble_big_icon { + get { + object obj = ResourceManager.GetObject("round_treetop_tumble_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_treetop_tumble_icon { + get { + object obj = ResourceManager.GetObject("round_treetop_tumble_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_tundra_run_big_icon { + get { + object obj = ResourceManager.GetObject("round_tundra_run_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_tundra_run_icon { + get { + object obj = ResourceManager.GetObject("round_tundra_run_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_unknown_big_icon { + get { + object obj = ResourceManager.GetObject("round_unknown_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_unknown_icon { + get { + object obj = ResourceManager.GetObject("round_unknown_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_volleyfall_big_icon { + get { + object obj = ResourceManager.GetObject("round_volleyfall_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_volleyfall_icon { + get { + object obj = ResourceManager.GetObject("round_volleyfall_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_wall_guys_big_icon { + get { + object obj = ResourceManager.GetObject("round_wall_guys_big_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_wall_guys_icon { + get { + object obj = ResourceManager.GetObject("round_wall_guys_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap scatter_plot_gray_icon { + get { + object obj = ResourceManager.GetObject("scatter_plot_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap scatter_plot_icon { + get { + object obj = ResourceManager.GetObject("scatter_plot_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap scatter_plot_teal_icon { + get { + object obj = ResourceManager.GetObject("scatter_plot_teal_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap setting_gray_icon { + get { + object obj = ResourceManager.GetObject("setting_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap setting_icon { + get { + object obj = ResourceManager.GetObject("setting_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap shards_grid_icon { + get { + object obj = ResourceManager.GetObject("shards_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap shards_icon { + get { + object obj = ResourceManager.GetObject("shards_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap show_icon { + get { + object obj = ResourceManager.GetObject("show_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap shutdown_gray_icon { + get { + object obj = ResourceManager.GetObject("shutdown_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap shutdown_icon { + get { + object obj = ResourceManager.GetObject("shutdown_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap splash_image { + get { + object obj = ResourceManager.GetObject("splash_image", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap stat_gray_icon { + get { + object obj = ResourceManager.GetObject("stat_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap stat_icon { + get { + object obj = ResourceManager.GetObject("stat_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap steam_grid_icon { + get { + object obj = ResourceManager.GetObject("steam_grid_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap steam_icon { + get { + object obj = ResourceManager.GetObject("steam_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap steam_main_icon { + get { + object obj = ResourceManager.GetObject("steam_main_icon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } @@ -83,9 +8338,9 @@ internal static System.Drawing.Bitmap medal_bronze { /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap medal_eliminated { + internal static System.Drawing.Bitmap switch_icon { get { - object obj = ResourceManager.GetObject("medal_eliminated", resourceCulture); + object obj = ResourceManager.GetObject("switch_icon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } @@ -93,9 +8348,9 @@ internal static System.Drawing.Bitmap medal_eliminated { /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap medal_gold { + internal static System.Drawing.Bitmap switch_lock_icon { get { - object obj = ResourceManager.GetObject("medal_gold", resourceCulture); + object obj = ResourceManager.GetObject("switch_lock_icon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } @@ -103,9 +8358,9 @@ internal static System.Drawing.Bitmap medal_gold { /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap medal_pink { + internal static System.Drawing.Bitmap switch_unlock_icon { get { - object obj = ResourceManager.GetObject("medal_pink", resourceCulture); + object obj = ResourceManager.GetObject("switch_unlock_icon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } @@ -113,9 +8368,309 @@ internal static System.Drawing.Bitmap medal_pink { /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap medal_silver { + internal static System.Drawing.Bitmap tab_selected { get { - object obj = ResourceManager.GetObject("medal_silver", resourceCulture); + object obj = ResourceManager.GetObject("tab_selected", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected { + get { + object obj = ResourceManager.GetObject("tab_unselected", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_candycane { + get { + object obj = ResourceManager.GetObject("tab_unselected_candycane", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_coffee { + get { + object obj = ResourceManager.GetObject("tab_unselected_coffee", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_dove { + get { + object obj = ResourceManager.GetObject("tab_unselected_dove", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_fall_guys_logo { + get { + object obj = ResourceManager.GetObject("tab_unselected_fall_guys_logo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_helter_skelter { + get { + object obj = ResourceManager.GetObject("tab_unselected_helter_skelter", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_hex_a_thon { + get { + object obj = ResourceManager.GetObject("tab_unselected_hex_a_thon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_ill_be_slime { + get { + object obj = ResourceManager.GetObject("tab_unselected_ill_be_slime", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_mockingbird { + get { + object obj = ResourceManager.GetObject("tab_unselected_mockingbird", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_monarch { + get { + object obj = ResourceManager.GetObject("tab_unselected_monarch", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_newlove { + get { + object obj = ResourceManager.GetObject("tab_unselected_newlove", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_parade_guy { + get { + object obj = ResourceManager.GetObject("tab_unselected_parade_guy", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_party_pegwin { + get { + object obj = ResourceManager.GetObject("tab_unselected_party_pegwin", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_penguin { + get { + object obj = ResourceManager.GetObject("tab_unselected_penguin", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_suits_you { + get { + object obj = ResourceManager.GetObject("tab_unselected_suits_you", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_sunny_guys { + get { + object obj = ResourceManager.GetObject("tab_unselected_sunny_guys", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_super_mario_bros { + get { + object obj = ResourceManager.GetObject("tab_unselected_super_mario_bros", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_super_mario_bros_3 { + get { + object obj = ResourceManager.GetObject("tab_unselected_super_mario_bros_3", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_ta_da { + get { + object obj = ResourceManager.GetObject("tab_unselected_ta_da", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_timeattack { + get { + object obj = ResourceManager.GetObject("tab_unselected_timeattack", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_wallpaper_01 { + get { + object obj = ResourceManager.GetObject("tab_unselected_wallpaper_01", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_wallpaper_02 { + get { + object obj = ResourceManager.GetObject("tab_unselected_wallpaper_02", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_wallpaper_03 { + get { + object obj = ResourceManager.GetObject("tab_unselected_wallpaper_03", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tab_unselected_watermelon { + get { + object obj = ResourceManager.GetObject("tab_unselected_watermelon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap transform_gray_icon { + get { + object obj = ResourceManager.GetObject("transform_gray_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap transform_icon { + get { + object obj = ResourceManager.GetObject("transform_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap uncheckmark_icon { + get { + object obj = ResourceManager.GetObject("uncheckmark_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap update { + get { + object obj = ResourceManager.GetObject("update", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap update_gray { + get { + object obj = ResourceManager.GetObject("update_gray", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap xbox_icon { + get { + object obj = ResourceManager.GetObject("xbox_icon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } diff --git a/Properties/Resources.resx b/Properties/Resources.resx index 2576a8752..ec306f4fa 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -53,7 +53,7 @@ value : The object must be serialized with : System.Runtime.Serialization.Formatters.Soap.SoapFormatter : and then encoded with base64 encoding. - + mimetype: application/x-microsoft.net.object.bytearray.base64 value : The object must be serialized into a byte array : using a System.ComponentModel.TypeConverter @@ -118,22 +118,2590 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\info.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\medal_pink.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_pink_original.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_pink_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_gold.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_gold_original.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_gold_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_gold_1st_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\medal_bronze.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\medal_bronze.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_bronze_original.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_bronze_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_bronze_2nd_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_bronze_3rd_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\medal_eliminated.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\medal_eliminated.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\medal_gold.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\medal_eliminated_original.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\medal_pink.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\medal_eliminated_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\medal_silver.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\medal_silver.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_silver_original.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_silver_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_silver_2nd_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\medal_silver_3rd_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\export_gray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\delete_gray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\move.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\move_gray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\update.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\update_gray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\fallguys_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\fallguys_db_logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\main_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\main_120_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\fandom_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\reddit_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\roll_off_club_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\lost_temple_analyzer_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\fallalytics_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\fallGuys_official_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\shutdown_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\shutdown_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\stat_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\stat_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\show_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ping_100_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ping_200_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\report_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\pc_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ps_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\xbox_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\switch_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\mobile_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\player_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_0.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_6.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_7.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_8.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_9.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\number_10.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\github_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\github_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\github_update_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\github_update_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\profile_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\profile_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\profile2_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\profile2_linked_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\profile2_unlinked_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\filter_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\filter_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\final_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\final_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\setting_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\setting_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\clock_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\clock_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\crown_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\crown_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\shards_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\shards_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\kudos_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\language_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\checkmark_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\uncheckmark_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\steam_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\epic_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\steam_main_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\epic_main_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\steam_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\epic_grid_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\position_ne_off_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\position_nw_off_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\position_se_off_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\position_sw_off_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\position_ne_on_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\position_nw_on_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\position_se_on_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\position_sw_on_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\switch_lock_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\switch_unlock_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\link_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\link_on_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\link_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\transform_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\transform_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\refresh_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\bar_plot_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\bar_plot_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\bar_plot_teal_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\calendar_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\calendar_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\calendar_off_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\calendar_on_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\casual_show_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\lollipop_plot_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\lollipop_plot_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\lollipop_plot_teal_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\scatter_plot_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\scatter_plot_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\scatter_plot_teal_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\left_button_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\right_button_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\first_button_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\last_button_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\splash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_6.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_7.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_8.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_9.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_10.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_1_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_2_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_3_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_4_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_5_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_6_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_7_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_8_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_9_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\loading_10_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\icon_Unknown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\icon_Unknown_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\creative\icon_Creative.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\creative\icon_Gauntlet.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_Blast_Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_FallMountain.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_HexAGone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_Hex-A-Ring.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_Hex-A-Terrestrial.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_JumpShowdown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_Kraken_Slam.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_LostTemple.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_RollOff.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_RoyalFumble.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_ThinIce.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_TipToeFinale.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Airtime.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Bean_Hill_Zone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Bounce_Party.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_BubbleTrouble.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_ButtonBashers.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Frantic_Factory.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Hoop_Chute.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_HoopsieLegends.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Leading_Light.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_PegwinPoolParty.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_TailTag.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Volleyfall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\invisibeans\icon_Sweet_Thieves.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\invisibeans\icon_Treat_Thieves.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\logic\icon_Pixel_Painters.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\logic\icon_PerfectMatch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\logic\icon_SumFruit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_BigFans.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_CosmicHighway.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_DizzyHeights.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_DoorDash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_FreezyPeak.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_FruitChute.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Full_Tilt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_GateCrash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_HitParade.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_KnightFever.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_LilyLeapers.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Party_Promenade.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Pipe_Dream.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Puzzle_Path.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_RollOn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_SeeSaw.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_ShortCircuit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_SkiFall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_SkylineStumble.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_SlimeClimb.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_SpaceRace.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Speed_Circuit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Speed_Slider.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Starchart.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_TheSlimescraper.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_TheWhirlygig.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_TipToe.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Track_Attack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_TreetopTumble.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_TundraRun.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_WallGuys.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_BigShots.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_Blastlantis.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_BlockParty.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_HoverboardHeroes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_Hyperdrive_Heroes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_JumpClub.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_RollOut.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_SnowballSurvival.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_StompinGround.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_The_Swiveller.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_Basketfall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_EggScramble.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_EggSiege.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_FallBall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_Hoarders.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_HoopsieDaisy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_Jinxed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_PegwinPursuit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_PowerTrip.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_RocknRoll.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_SnowyScrap.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_TeamTailTag.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\creative\icon_Creative_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\creative\icon_Gauntlet_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_Blast_Ball_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_FallMountain_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_HexAGone_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_Hex-A-Ring_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_Hex-A-Terrestrial_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_JumpShowdown_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_Kraken_Slam_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_LostTemple_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_RollOff_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_RoyalFumble_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_ThinIce_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\final\icon_TipToeFinale_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Airtime_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Bean_Hill_Zone_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Bounce_Party_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_BubbleTrouble_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_ButtonBashers_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Frantic_Factory_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Hoop_Chute_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_HoopsieLegends_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Leading_Light_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_PegwinPoolParty_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_TailTag_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\hunt\icon_Volleyfall_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\invisibeans\icon_Sweet_Thieves_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\invisibeans\icon_Treat_Thieves_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\logic\icon_Pixel_Painters_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\logic\icon_PerfectMatch_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\logic\icon_SumFruit_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_BigFans_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_CosmicHighway_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_DizzyHeights_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_DoorDash_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_FreezyPeak_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_FruitChute_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Full_Tilt_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_GateCrash_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_HitParade_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_KnightFever_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_LilyLeapers_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Party_Promenade_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Pipe_Dream_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Puzzle_Path_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_RollOn_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_SeeSaw_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_ShortCircuit_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_SkiFall_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_SkylineStumble_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_SlimeClimb_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_SpaceRace_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Speed_Circuit_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Speed_Slider_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Starchart_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_TheSlimescraper_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_TheWhirlygig_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_TipToe_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_Track_Attack_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_TreetopTumble_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_TundraRun_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\race\icon_WallGuys_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_BigShots_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_Blastlantis_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_BlockParty_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_HoverboardHeroes_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_Hyperdrive_Heroes_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_JumpClub_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_RollOut_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_SnowballSurvival_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_StompinGround_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\survival\icon_The_Swiveller_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_Basketfall_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_EggScramble_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_EggSiege_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_FallBall_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_Hoarders_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_HoopsieDaisy_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_Jinxed_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_PegwinPursuit_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_PowerTrip_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_RocknRoll_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_SnowyScrap_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_icon\team\icon_TeamTailTag_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_candycane.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_coffee.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_dove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_fall_guys_logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_helter_skelter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_hex_a_thon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_ill_be_slime.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_mockingbird.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_monarch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_newlove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_parade_guy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_party_pegwin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_penguin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_suits_you.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_sunny_guys.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_super_mario_bros.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_super_mario_bros_3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_ta_da.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_timeattack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_watermelon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_wallpaper_01.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_wallpaper_02.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\background_wallpaper_03.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_selected.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_candycane.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_coffee.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_dove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_fall_guys_logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_helter_skelter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_hex_a_thon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_ill_be_slime.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_mockingbird.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_monarch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_newlove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_parade_guy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_party_pegwin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_penguin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_suits_you.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_sunny_guys.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_super_mario_bros.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_super_mario_bros_3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_ta_da.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_timeattack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_watermelon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_wallpaper_01.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_wallpaper_02.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\overlay\tab_unselected_wallpaper_03.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AF.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AL.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AQ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AX.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BB.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BF.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BJ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BL.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CF.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CK.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CL.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CV.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CX.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DJ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DK.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\EC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\EE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\EG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\EH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ER.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ES.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ET.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\EU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FJ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FK.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GB.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GL.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GQ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\HK.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\HN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\HR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\HT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\HU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ID.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IL.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IQ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\JE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\JM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\JO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\JP.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KP.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LB.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LK.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LV.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ME.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MF.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MK.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ML.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MP.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MQ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MV.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MX.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NF.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NL.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NP.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\OM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PF.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PK.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PL.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\QA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\RE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\RO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\RS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\RU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\RW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SB.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SK.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SL.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ST.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SV.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TF.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TJ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TK.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TL.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TV.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\UA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\UG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\US.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\UY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\UZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\WF.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\WS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\YE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\YT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ZA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ZM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ZW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\UNKNOWN.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AD_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AF_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AI_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AL_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AQ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AS_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AT_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AU_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AW_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AX_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\AZ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BB_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BD_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BF_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BH_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BI_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BJ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BL_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BS_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BT_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BW_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BY_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\BZ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CC_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CD_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CF_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CH_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CI_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CK_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CL_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CU_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CV_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CW_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CX_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CY_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\CZ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DJ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DK_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\DZ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\EC_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\EE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\EG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\EH_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ER_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ES_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ET_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\EU_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FI_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FJ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FK_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\FR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GB_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GD_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GH_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GI_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GL_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GQ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GS_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GT_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GU_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GW_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\GY_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\HK_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\HN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\HR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\HT_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\HU_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IC_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ID_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IL_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IQ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IS_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\IT_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\JE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\JM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\JO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\JP_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KH_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KI_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KP_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KW_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KY_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\KZ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LB_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LC_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LI_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LK_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LS_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LT_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LU_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LV_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\LY_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MC_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MD_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ME_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MF_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MH_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MK_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ML_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MP_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MQ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MS_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MT_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MU_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MV_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MW_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MX_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MY_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\MZ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NC_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NF_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NI_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NL_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NP_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NU_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\NZ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\OM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PF_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PH_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PK_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PL_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PS_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PT_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PW_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\PY_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\QA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\RE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\RO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\RS_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\RU_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\RW_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SB_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SC_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SD_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SH_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SI_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SK_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SL_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SS_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ST_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SV_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SY_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\SZ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TC_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TD_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TF_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TH_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TJ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TK_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TL_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TO_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TR_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TT_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TV_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TW_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\TZ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\UA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\UG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\US_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\UY_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\UZ_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VC_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VG_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VI_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\VU_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\WF_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\WS_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\YE_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\YT_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ZA_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ZM_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\ZW_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\country_icon\UNKNOWN_SHINY.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\notify_sound\notify_sound_01.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\notify_sound\notify_sound_02.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\notify_sound\notify_sound_03.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\notify_sound\notify_sound_04.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\leaderboard_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\leaderboard_gray_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs index e13750c76..b2a78d010 100644 --- a/Properties/Settings.Designer.cs +++ b/Properties/Settings.Designer.cs @@ -9,14 +9,14 @@ //------------------------------------------------------------------------------ namespace FallGuysStats.Properties { - - + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - + public static Settings Default { get { return defaultInstance; diff --git a/Properties/automaticProfileChange.png b/Properties/automaticProfileChange.png new file mode 100644 index 000000000..ec9ae0a68 Binary files /dev/null and b/Properties/automaticProfileChange.png differ diff --git a/Properties/chartWindow.png b/Properties/chartWindow.png new file mode 100644 index 000000000..e816fad1e Binary files /dev/null and b/Properties/chartWindow.png differ diff --git a/Properties/customizedOverlay.png b/Properties/customizedOverlay.png new file mode 100644 index 000000000..e4401026d Binary files /dev/null and b/Properties/customizedOverlay.png differ diff --git a/Properties/download.png b/Properties/download.png new file mode 100644 index 000000000..43fd8b780 Binary files /dev/null and b/Properties/download.png differ diff --git a/Properties/github_star.png b/Properties/github_star.png new file mode 100644 index 000000000..3375a290e Binary files /dev/null and b/Properties/github_star.png differ diff --git a/Properties/leaderboards.png b/Properties/leaderboards.png new file mode 100644 index 000000000..e48ef45ed Binary files /dev/null and b/Properties/leaderboards.png differ diff --git a/Properties/leaderboardsMenu.png b/Properties/leaderboardsMenu.png new file mode 100644 index 000000000..6964964ba Binary files /dev/null and b/Properties/leaderboardsMenu.png differ diff --git a/Properties/leaderboardsOptions.png b/Properties/leaderboardsOptions.png new file mode 100644 index 000000000..5d7d6039a Binary files /dev/null and b/Properties/leaderboardsOptions.png differ diff --git a/Properties/levelWindow.png b/Properties/levelWindow.png new file mode 100644 index 000000000..6efbd3d3a Binary files /dev/null and b/Properties/levelWindow.png differ diff --git a/Properties/levelWindowDarkTheme.png b/Properties/levelWindowDarkTheme.png new file mode 100644 index 000000000..37614041c Binary files /dev/null and b/Properties/levelWindowDarkTheme.png differ diff --git a/Properties/levelWindowLightTheme.png b/Properties/levelWindowLightTheme.png new file mode 100644 index 000000000..6efbd3d3a Binary files /dev/null and b/Properties/levelWindowLightTheme.png differ diff --git a/Properties/mainFallguysSeason.png b/Properties/mainFallguysSeason.png new file mode 100644 index 000000000..b9ab945d4 Binary files /dev/null and b/Properties/mainFallguysSeason.png differ diff --git a/Properties/mainWindow.png b/Properties/mainWindow.png new file mode 100644 index 000000000..46c135cac Binary files /dev/null and b/Properties/mainWindow.png differ diff --git a/Properties/mainWindowDarkTheme.png b/Properties/mainWindowDarkTheme.png new file mode 100644 index 000000000..4d9df14a2 Binary files /dev/null and b/Properties/mainWindowDarkTheme.png differ diff --git a/Properties/mainWindowLightTheme.png b/Properties/mainWindowLightTheme.png new file mode 100644 index 000000000..46c135cac Binary files /dev/null and b/Properties/mainWindowLightTheme.png differ diff --git a/Properties/original_image_for_overlay.zip b/Properties/original_image_for_overlay.zip new file mode 100644 index 000000000..fb3f6b0d4 Binary files /dev/null and b/Properties/original_image_for_overlay.zip differ diff --git a/Properties/overlay.png b/Properties/overlay.png new file mode 100644 index 000000000..83dc9f65b Binary files /dev/null and b/Properties/overlay.png differ diff --git a/Properties/profileAndShowLinkage.png b/Properties/profileAndShowLinkage.png new file mode 100644 index 000000000..0eee4b5a5 Binary files /dev/null and b/Properties/profileAndShowLinkage.png differ diff --git a/Properties/showWindow.png b/Properties/showWindow.png new file mode 100644 index 000000000..20a49774c Binary files /dev/null and b/Properties/showWindow.png differ diff --git a/Properties/showsWindow.png b/Properties/showsWindow.png new file mode 100644 index 000000000..fac19f88d Binary files /dev/null and b/Properties/showsWindow.png differ diff --git a/README.md b/README.md index 89028e50c..0543e9128 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,1155 @@ -# Fall Guys Stats +![Fall Guys Stats](https://capsule-render.vercel.app/api?type=waving&color=timeAuto&height=300§ion=header&text=Fall%20Guys%20Stats&desc=Fall%20Guys%20Stats%20Tracker&fontSize=70&descAlignY=70) + +

+ + MIT License + + + Tests Passing + + + Issues + + + GitHub pull requests + + + + + + + +
+
+ 🇺🇸 English + | + 🇫🇷 Français + | + 🇰🇷 한국어 + | + 🇯🇵 日本語 +
+
+ This application is not affiliated with MediaTonic.
Images of FallGuys are the property of Mediatonic Limited.
+

+ Simple program to generate stats for the game Fall Guys. Reads the games log file to track how you are doing. -## Info +![Fall Guys Stats Welcome Logo](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainFallguysSeason.png) + +# Table of Contents + - [**Download**](#download) + - [**First Run**](#first-run) + - [**Usage**](#usage) + - [**Theme**](#theme) + - [**Light Theme**](#light-theme) + - [**Dark Theme**](#dark-theme) + - [**Multilingual Support**](#multilingual-support) + - [**Overlay**](#overlay) + - [**Hotkey**](#hotkey) + - [**Create your own overlays**](#create-your-own-overlays) + - [**How to Overlay Background Image Customized**](#how-to-overlay-background-image-customized) + - [**Profile**](#profile) + - [**Linking Profiles and Shows**](#linking-profiles-and-shows) + - [**Deleting shows or moving shows to another profile**](#deleting-shows-or-moving-shows-to-another-profile) + - [**Leaderboards**](#leaderboards) + - [**Leaderboards Menu**](#leaderboards-menu) + - [**Leaderboards Options**](#leaderboards-options) + - [**FAQ**](#faq) + - [**How to set `Launch FallGuys` option in Epic Games**](#how-to-set-launch-fallguys-option-in-epic-games) + - [**Changelog**](#changelog) + + +## Download +  ![FallGuysStats.zip](Resources/FallGuysStats-download.svg) + - Or, if you have a false detection problem with your virus program, download the version below with the automatic update feature removed. + +  ![FallGuysStats.zip](Resources/FallGuysStatsManualUpdate-download.svg) + +
+ +

+ + + +
+ If you want FallGuysStats to continue to be updated, don't forget to star the GitHub repo! +
+

+ +--- + +>If, while downloading a file, your web browser suspects it to be malware and stops the download, refer to the screenshot below. +FallGuysStats is open source, meaning anyone can view the code, so download it with confidence. + +![Download](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/download.png) + +![Download](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/download2.png) + +### First Run + + - When running the program for the first time, refer to the screenshot below. + +![First Run](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/firstRun.png) + +> **[Information]** **Certificates for Windows programs cost between $200 and $400 per year.** + +## Usage + - Extract zip to it's own folder - Run the program while playing Fall Guys to see new stats. - - Only updates after a show has been completed and results are given. \ No newline at end of file + - Only updates after a show has been completed and results are given. + + +### Main Window +![Fall Guys Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindow.png) + +### Shows Stats List +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/showWindow.png) + +### Rounds Stats List +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindow.png) + +### Wins Per Day Chart +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/chartWindow.png) + +## Theme + - FallGuysStats supports two themes, `Light` and `Dark`. + +### Light Theme +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindowLightTheme.png) + +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindowLightTheme.png) + +### Dark Theme +![Fall Guys Stats Dark Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindowDarkTheme.png) + +![Fall Guys Stats Dark Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindowDarkTheme.png) + +## Multilingual Support + - FallGuysStats supports the following languages. + - ![🇺🇸](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/country_icon/US.png) `English` + - ![🇫🇷](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/country_icon/FR.png) `French` + - ![🇰🇷](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/country_icon/KR.png) `Korean` + - ![🇯🇵](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/country_icon/JP.png) `Japanese` + - ![🇨🇳](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/country_icon/CN.png) `Simplified Chinese` + - ![🇨🇳](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/country_icon/CN.png) `Traditional Chinese` + +## Overlay +![Overlay](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/overlay.png) + +### Hotkey + - Hit Keys `Ctrl + Shift + X` to set the overlay to it's default size. + - Hit Keys `Ctrl + Shift + C` to reset the position of the overlay. + - Hit Keys `Ctrl + T` to toggle background colors. + - Hit Keys `Ctrl + F` to flip the Display. + - Hit Keys `Ctrl + C` to shows the number of users by platform. + - Hit Keys `Ctrl + R` the round name shows the colored badge for the round type. + - Hit Keys `P` to change the profile order. + - Hit Keys `1 through 9` to select profiles 1 through 9. + - Hit Keys `Shift + mouse wheel Up` or `Shift + mouse wheel Down` to select the previous or next profile. + - Hit Keys `Shift + (↑, ←) arrow keys` or `Shift + (↓, →) arrow keys` to select the previous or next profile. + + +### Create your own overlays +![Customized Overlay](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/customizedOverlay.png) + + +### How to Overlay Background Image Customized + - **Setp 1.** [Download](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/original_image_for_overlay.zip) the original image of the overlay. + + + - **Step 2.** Edit the `background.png` and `tab.png` files [here](https://www.photopea.com/) to your liking. + + + - **Step 3.** Rename the edited image as below. + - `{my_image_name}` must be the same for both files. + - background_**{my_image_name}**.png + - tab_**{my_image_name}**.png + + + - **Step 4.** Place the image inside the Overlay folder in the FallGuysStats folder. + + + - **Step 5.** You can see that the background image you added appears first in the Background Image of the Overlay item in Settings. + + + - **Step 6.** Select and save the added image. + +## Profile + +### Linking Profiles and Shows + - Link your profile and show so your profile automatically changes when the show starts. + + + - `Profile Settings` + +![Profile And Show Linkage](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/profileAndShowLinkage.png) + + + - `Settings` - `Automatically change to linked profile` + +![Automatic Profile Change](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/automaticProfileChange.png) + + +### Deleting shows or moving shows to another profile + - On the main screen, click the Shows label at the top. + - Highlight any number of shows and hit the `DEL` key or `right-click` to manage the show through the `Delete` and `Move show data` menus. + +![Shows Window](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/showsWindow.png) + +## Leaderboards + +![Leaderboards](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboards.png) + +### Leaderboards Menu + +- Click your online nickname to open the leaderboards menu. + +![Leaderboards Menu](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboardsMenu.png) + +### Leaderboards Options + +- Enable the Fallalytics option to join the leaderboard. + +![Leaderboards Options](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboardsOptions.png) + +## FAQ +### How to set `Launch FallGuys` option in Epic Games +1. Open Epic Games Launcher (if you are playing FallGuys, close FallGuys) + + +2. Click `Library` + + +3. Click `...` of FallGuys + + +4. Click `Manage` +![IMG1](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_1.png) + + +5. Click `CREATE` +![IMG2](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_2.png) + + +6. Open FallGuysStats (ver >= 1.136) + + +7. Click `Settings` + + +8. Click `Launch Fall Guys` + + +9. Click EpicGames Icon in `Platform` + + +10. Click `Browse` +![IMG3](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_3.png) + + +11. Select shortcut of FallGuys in Desktop +![IMG4](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_4.png) + +![Footer](https://capsule-render.vercel.app/api?type=waving&color=auto&height=200§ion=footer) + +## Changelog +
+ Details + + - `1.438` + - Bugfix and program optimization + - `1.437` + - Bugfix and program optimization + - `1.436` + - Bugfix and program optimization + - `1.435` + - Bugfix and program optimization + - `1.434` + - Bugfix and program optimization + - `1.433` + - Bugfix and program optimization + - `1.432` + - Bugfix and program optimization + - `1.431` + - Bugfix and program optimization + - `1.430` + - Bugfix and program optimization + - `1.429` + - Bugfix and program optimization + - `1.428` + - Bugfix and program optimization + - `1.427` + - Bugfix and program optimization + - `1.426` + - Bugfix and program optimization + - `1.425` + - Bugfix and program optimization + - `1.424` + - Bugfix and program optimization + - `1.423` + - Bugfix and program optimization + - `1.422` + - Bugfix and program optimization + - `1.421` + - Bugfix and program optimization + - `1.420` + - Bugfix and program optimization + - `1.419` + - Bugfix and program optimization + - `1.418` + - Bugfix and program optimization + - `1.417` + - Bugfix and program optimization + - `1.416` + - Bugfix and program optimization + - `1.415` + - Bugfix and program optimization + - `1.414` + - Bugfix and program optimization + - `1.413` + - Bugfix and program optimization + - `1.412` + - Bugfix and program optimization + - `1.411` + - Bugfix and program optimization + - `1.410` + - Bugfix and program optimization + - `1.409` + - Bugfix and program optimization + - `1.408` + - Bugfix and program optimization + - `1.407` + - Bugfix and program optimization + - `1.406` + - Bugfix and program optimization + - `1.405` + - Bugfix and program optimization + - `1.404` + - Bugfix and program optimization + - `1.403` + - Bugfix and program optimization + - `1.402` + - Bugfix and program optimization + - `1.401` + - Bugfix and program optimization + - `1.400` + - Bugfix and program optimization + - `1.399` + - Bugfix and program optimization + - `1.398` + - Bugfix and program optimization + - `1.397` + - Bugfix and program optimization + - `1.396` + - Bugfix and program optimization + - `1.395` + - Bugfix and program optimization + - `1.394` + - Bugfix and program optimization + - `1.393` + - Bugfix and program optimization + - `1.392` + - Bugfix and program optimization + - `1.391` + - Bugfix and program optimization + - `1.390` + - Bugfix and program optimization + - `1.389` + - Bugfix and program optimization + - `1.388` + - Bugfix and program optimization + - `1.387` + - Bugfix and program optimization + - `1.386` + - Add proxy settings + - Bugfix and program optimization + - `1.385` + - Bugfix and program optimization + - `1.384` + - Bugfix and program optimization + - `1.383` + - Bugfix and program optimization + - `1.382` + - Bugfix and program optimization + - `1.381` + - Bugfix and program optimization + - `1.380` + - Bugfix and program optimization + - `1.379` + - Bugfix and program optimization + - `1.378` + - Bugfix and program optimization + - `1.377` + - Bugfix and program optimization + - `1.376` + - Bugfix and program optimization + - `1.375` + - Bugfix and program optimization + - `1.374` + - Bugfix and program optimization + - `1.373` + - Bugfix and program optimization + - `1.372` + - Bugfix and program optimization + - `1.371` + - Bugfix and program optimization + - `1.370` + - Bugfix and program optimization + - `1.369` + - Bugfix and program optimization + - `1.368` + - Bugfix and program optimization + - `1.367` + - Bugfix and program optimization + - `1.366` + - Banning users using hacking programs + - Bugfix and program optimization + - `1.365` + - Bugfix and program optimization + - `1.364` + - Bugfix and program optimization + - `1.363` + - Bugfix and program optimization + - `1.362` + - Bugfix and program optimization + - `1.361` + - Banning users using hacking programs + - Bugfix and program optimization + - `1.360` + - Updated new show and round names + - Bugfix and program optimization + - `1.359` + - Bugfix and program optimization + - `1.358` + - Bugfix and program optimization + - `1.357` + - Bugfix and program optimization + - `1.356` + - Bugfix and program optimization + - `1.355` + - Updated new show and round names + - Bugfix and program optimization + - `1.354` + - Bugfix and program optimization + - `1.353` + - Bugfix and program optimization + - `1.352` + - Updated new show and round names + - Bugfix and program optimization + - `1.351` + - Updated new show and round names + - Bugfix and program optimization + - `1.350` + - Updated new show and round names + - Bugfix and program optimization + - `1.349` + - Bugfix and program optimization + - `1.348` + - Bugfix and program optimization + - `1.347` + - Updated new show and round names + - Bugfix and program optimization + - `1.346` + - Bugfix and program optimization + - `1.345` + - Updated new show and round names + - Bugfix and program optimization + - `1.344` + - Bugfix and program optimization + - `1.343` + - Bugfix and program optimization + - `1.342` + - Bugfix and program optimization + - `1.341` + - Bugfix and program optimization + - `1.340` + - Bugfix and program optimization + - `1.339` + - Bugfix and program optimization + - `1.338` + - Updated new show and round names + - Bugfix and program optimization + - `1.337` + - Bugfix and program optimization + - `1.336` + - Bugfix and program optimization + - `1.335` + - Updated new show and round names + - Bugfix and program optimization + - `1.334` + - Updated new show and round names + - Bugfix and program optimization + - `1.333` + - Bugfix and program optimization + - `1.332` + - Bugfix and program optimization + - `1.331` + - Updated new show and round names + - Bugfix and program optimization + - `1.330` + - Updated new show and round names + - Bugfix and program optimization + - `1.329` + - Bugfix and program optimization + - `1.328` + - Bugfix and program optimization + - `1.327` + - Updated new show and round names + - Bugfix and program optimization + - `1.326` + - Bugfix and program optimization + - `1.325` + - Updated new show and round names + - Bugfix and program optimization + - `1.324` + - Bugfix and program optimization + - `1.323` + - Weekly Crown League is now open on FALLALYTICS + - Bugfix and program optimization + - `1.322` + - Weekly Crown League is now open on FALLALYTICS + - Bugfix and program optimization + - `1.321` + - Bugfix and program optimization + - `1.320` + - Bugfix and program optimization + - `1.319` + - Updated new show and round names + - Bugfix and program optimization + - `1.318` + - Bugfix and program optimization + - `1.317` + - Updated new show and round names + - Bugfix and program optimization + - `1.316` + - Bugfix and program optimization + - `1.315` + - Updated new show and round names + - Bugfix and program optimization + - `1.314` + - Bugfix and program optimization + - `1.313` + - Updated new show and round names + - Bugfix and program optimization + - `1.312` + - Updated new show and round names + - Bugfix and program optimization + - `1.311` + - Bugfix and program optimization + - `1.310` + - Bugfix and program optimization + - `1.309` + - Bugfix and program optimization + - `1.308` + - Updated new show and round names + - Bugfix and program optimization + - `1.307` + - Bugfix and program optimization + - `1.306` + - Bugfix and program optimization + - `1.305` + - Bugfix and program optimization + - `1.304` + - Bugfix and program optimization + - `1.303` + - Bugfix and program optimization + - `1.302` + - Updated new show and round names + - Bugfix and program optimization + - `1.301` + - Updated new show and round names + - Bugfix and program optimization + - `1.300` + - Bugfix and program optimization + - `1.299` + - Released the FALLALYTICS Speedrun Leaderboard + - Bugfix and program optimization + - `1.298` + - Bugfix and program optimization + - `1.297` + - Bugfix and program optimization + - `1.296` + - Updated new show and round names + - Bugfix and program optimization + - `1.295` + - Bugfix and program optimization + - `1.294` + - Bugfix and program optimization + - `1.293` + - Bugfix and program optimization + - `1.292` + - Bugfix and program optimization + - `1.291` + - Bugfix and program optimization + - `1.290` + - Bugfix and program optimization + - `1.289` + - Bugfix and program optimization + - `1.288` + - Bugfix and program optimization + - `1.287` + - Bugfix and program optimization + - `1.286` + - Bugfix and program optimization + - `1.285` + - Bugfix and program optimization + - `1.284` + - Bugfix and program optimization + - `1.283` + - Updated new show and round names + - Bugfix and program optimization + - `1.282` + - Bugfix and program optimization + - `1.281` + - Bugfix and program optimization + - `1.280` + - Bugfix and program optimization + - `1.279` + - Bugfix and program optimization + - `1.278` + - Bugfix and program optimization + - `1.277` + - Updated new show and round names + - Bugfix and program optimization + - `1.276` + - Bugfix and program optimization + - `1.275` + - Bugfix and program optimization + - `1.274` + - Updated new show and round names + - Bugfix and program optimization + - `1.273` + - Added and improved win per day graph feature + - Bugfix and program optimization + - `1.272` + - Updated new show and round names + - Bugfix and program optimization + - `1.271` + - Bugfix and program optimization + - `1.270` + - Updated new show and round names + - Bugfix and program optimization + - `1.269` + - Bugfix and program optimization + - `1.268` + - Updated new show and round names + - Bugfix and program optimization + - `1.267` + - Bugfix and program optimization + - `1.266` + - Bugfix and program optimization + - `1.265` + - Updated new show and round names + - Bugfix and program optimization + - `1.264` + - Bugfix and program optimization + - `1.263` + - Bugfix and program optimization + - `1.262` + - Updated new show and round names + - Bugfix and program optimization + - `1.261` + - Bugfix and program optimization + - `1.260` + - Bugfix and program optimization + - `1.259` + - Updated new show and round names + - Bugfix and program optimization + - `1.258` + - Bugfix and program optimization + - `1.257` + - Updated new show and round names + - Bugfix and program optimization + - `1.256` + - Bugfix and program optimization + - `1.255` + - Bugfix and program optimization + - `1.254` + - Bugfix and program optimization + - `1.253` + - Bugfix and program optimization + - `1.252` + - Bugfix and program optimization + - `1.251` + - Bugfix and program optimization + - `1.250` + - Overlay display improvements + - Bugfix and program optimization + - `1.249` + - Display queued players + - Bugfix and program optimization + - `1.248` + - Updated new show and round names + - Bugfix and program optimization + - `1.247` + - Bugfix and program optimization + - `1.246` + - Bugfix and program optimization + - `1.245` + - Bugfix and program optimization + - `1.244` + - Added creative round grouping option + - Bugfix and program optimization + - `1.243` + - Updated new show and round names + - Bugfix and program optimization + - `1.242` + - Bugfix and program optimization + - `1.241` + - Bugfix and program optimization + - `1.240` + - Bugfix and program optimization + - `1.239` + - Bugfix and program optimization + - `1.238` + - Bugfix and program optimization + - `1.237` + - Bugfix and program optimization + - `1.236` + - Updated new show and round names + - Bugfix and program optimization + - `1.235` + - Bugfix and program optimization + - `1.234` + - Bugfix and program optimization + - `1.233` + - Bugfix and program optimization + - `1.232` + - Add language (Traditional Chinese) + - Bugfix and program optimization + - `1.231` + - Bugfix and program optimization + - `1.230` + - Bugfix and program optimization + - `1.229` + - Bugfix and program optimization + - `1.228` + - Bugfix and program optimization + - `1.227` + - Bugfix and program optimization + - `1.226` + - Bugfix and program optimization + - `1.225` + - Bugfix and program optimization + - `1.224` + - Bugfix and program optimization + - `1.223` + - Bugfix and program optimization + - `1.222` + - Bugfix and program optimization + - `1.221` + - Bugfix and program optimization + - `1.220` + - Bugfix and program optimization + - `1.219` + - Bugfix and program optimization + - `1.218` + - Display time limit in Solo Show, Duo Show and Squad Show + - Bugfix and program optimization + - `1.217` + - Bugfix and program optimization + - `1.216` + - Bugfix and program optimization + - `1.215` + - Bugfix and program optimization + - `1.214` + - Bugfix and program optimization + - `1.213` + - Bugfix and program optimization + - `1.212` + - Improved display of time limits on user creative maps + - `1.211` + - Display the user creative map's time limit + - Bugfix and program optimization + - `1.210` + - Bugfix and program optimization + - `1.209` + - Updated new show and round names + - Bugfix and program optimization + - `1.208` + - Bugfix and program optimization + - `1.207` + - Updated new show and round names + - Bugfix and program optimization + - `1.206` + - Updated new show and round names + - Bugfix and program optimization + - `1.205` + - Bugfix and program optimization + - `1.204` + - Bugfix and program optimization + - `1.203` + - Bugfix and program optimization + - `1.202` + - Bugfix and program optimization + - `1.201` + - Added window notification option with server name when server is connected + - Bugfix and program optimization + - `1.200` + - Bugfix and program optimization + - `1.199` + - Updated new show and round names + - Bugfix and program optimization + - `1.198` + - Improved round name display + - Bugfix and program optimization + - `1.197` + - Bugfix and program optimization + - `1.196` + - Bugfix and program optimization + - `1.195` + - Bugfix and program optimization + - `1.194` + - Updated new show and round names + - Bugfix and program optimization + - `1.193` + - Bugfix and program optimization + - `1.192` + - Bugfix and program optimization + - `1.191` + - Bugfix and program optimization + - `1.190` + - Add information to graph of grades by round + - Bugfix and program optimization + - `1.189` + - Add a graph of grades by round (Click Playtime) + - Bugfix and program optimization + - `1.188` + - Updated new show and round names + - `1.187` + - Bugfix and program optimization + - `1.186` + - Bugfix and program optimization + - `1.185` + - When the country icon is visible, click the overlay to show the country's full name + - Optimized for country and ping display + - Bugfix and program optimization + - `1.184` + - Displays the icon of the country where the server is located + - Bugfix and program optimization + - `1.183` + - Add a new show id + - Bugfix and program optimization + - `1.182` + - Bugfix and program optimization + - `1.181` + - Bugfix and program optimization + - `1.180` + - Bugfix and program optimization + - `1.179` + - Improved ping display + - Added anti-overlay click option + - Bugfix and program optimization + - `1.178` + - Bug fixes + - `1.177` + - Changed the way pings are received + - Bugfix and program optimization + - `1.176` + - Bugfix and program optimization + - `1.175` + - Bugfix and program optimization + - `1.174` + - Bugfix and program optimization + - `1.173` + - Bug fixes + - `1.172` + - Add manual update menu for creative show information + - Fix round id (Bean Hill Zone) + - Bugfix and program optimization + - `1.171` + - Add custom range filter, seasonal stats + - Add a new show id + - Bugfix and program optimization + - `1.170` + - Add information about rounds played with shared code via fallguysdb + - Add final exception (basketfall) + - Bugfix and program optimization + - `1.169` + - Bugfix and program optimization + - `1.168` + - Bugfix and program optimization + - `1.167` + - Bugfix and program optimization + - `1.166` + - Display overlay information for rounds played with shared code + - Double-click a share code in the round details to copy it to the clipboard + - Program optimization + - `1.165` + - Bugfix and program optimization + - `1.164` + - Bug fixes + - `1.163` + - Save user creative round + - `1.162` + - Bug fixes + - `1.161` + - Apply a round timer using share code + - `1.160` + - Updates for SS4 (Thanks to iku55) + - `1.159` + - Added the option to auto-generate profiles on first run + - Bugfix and program optimization + - `1.158` + - Bugfix and program optimization + - `1.157` + - Program optimization + - `1.156` + - Added the option to use the system tray icon + - `1.155` + - UI updates + - `1.154` + - UI updates and bugfixes + - `1.153` + - Add Fallalytics reporting (Optional) + - `1.152` + - Add tray icon + - Save kudos from quests + - Program optimization + - `1.151` + - Bug fixes + - `1.150` + - Bug fixes + - `1.149` + - Fix mouse cursor bug prevention + - `1.148` + - Various updates (Thanks to Micdu70) + - `1.147` + - Improved mouse cursor bug prevention + - Fix the Finish time when you are 'Out for now' but qualified + - `1.146` + - Bug fixes + - `1.145` + - Fixed additional prevent mouse cursor bugs + - `1.144` + - Change Settings UI (Thanks to iku55) + - Add prevent mouse cursor bugs (Experimental) + - `1.143` + - Add style option to the daily win stats graph + - `1.142` + - Add overlay background opacity adjustment option + - `1.141` + - Upgrade Win Per Day Charts + - Finals bug fix + - `1.140` + - Update all packages due to package vulnerabilities + - `1.139` + - Bug fixes and Correct typos + - `1.138` + - Added theme option and change overlay background image option + - `1.137` + - Added a function to automatically select a linked profile when a show starts by linking a profile with a show + - `1.136` + - Overlay position fixed function button addition and changed the graph to make it look better + - `1.135` + - Bug fixes and multilanguage updates + - `1.134` + - Many updates from the community. Multilanguage / Profile Editing / Various Fixes + - `1.133` + - Add Bean Hill Zone and fix names (Thanks to iku55 & Foolyfish) + - `1.132` + - Season 9 (aka Season 3) + - `1.131` + - Update by ThreesFG to fix date parsing + - `1.130` + - Update by ThreesFG to fix log parsing for new update + - `1.129` + - Try and fix Leading Light + - `1.128` + - Update Season filter + - `1.127` + - Season 8 (aka Season 2) + - `1.126` + - Fix some log parsing + - `1.125` + - Move Blast Ball to final category + - `1.124` + - Season 7 (aka Season 1) + - `1.123` + - Fix group play stats + - `1.122` + - Add Sweet Thieves + - `1.121` + - Possibly fix Sum Fruit + - `1.120` + - Season 6 update + - `1.119` + - Round name fix + - `1.118` + - Season 5 update + - `1.117` + - Season 4.5 update + - `1.116` + - Fix for round names + - `1.115` + - Season 4 update + - `1.114` + - Fix overlay not showing correct stats for Snowball Survivor + - `1.113` + - Fix Snowball Survival + - `1.112` + - Update for new game patch + - `1.111` + - Try and fix false negatives by removing NDI + - `1.110` + - Fix error reading log file date/time in rare instances + - `1.109` + - Add ability to track if a final is actually a final + - `1.108` + - Fix Hex a gone game mode from showing all wins/finals + - Fix font selector not remembering font + - `1.107` + - Add Font Chooser for overlay + - Fix Average times on main grid + - `1.106` + - Added better options for the cycle stats on overlay in settings + - Added average finish time to main grid + - Minor sorting fixes + - `1.105` + - Grid sorting improvements + - Display issue with private lobby stats on overlay + - `1.104` + - Implemented a number of improvements from hunterpankey + - `1.103` + - Fix log reading during live rounds + - `1.102` + - Fix issues reading log file in certain cases + - Made sure private lobbies stats dont show in main screen + - `1.101` + - Add ability to track private lobbies + - `1.100` + - Fixes and added levels for Season 3 + - `1.99` + - Hopefully made it so game modes wont affect levels anymore + - `1.98` + - Logic to handle new game mode + - Added ability to only show certain stats on overlay instead of having to cycle them + - `1.97` + - Logic to handle new game mode + - `1.96` + - Fixed existing levels for the northernlion game mode to show up correctly + - `1.95` + - Fixed new game mode adding levels that shouldn't be there + - `1.94` + - Fixed typo in level name + - `1.93` + - Added ability to rename Hoopsie Legends to Hoopsie Heroes + - Added logic to save main window size + - `1.92` + - Added code to handle levels with variations in their name + - `1.91` + - Added Big Fans Level + - `1.90` + - Fixed names on overlay + - `1.89` + - Fixed names for new Slime Event levels + - `1.88` + - Added more info to AssemblyInfo to possibly help with false positives in AV programs + - `1.87` + - Fixed level names in level details for gauntlet matches + - Allowed main window to be resizable + - `1.86` + - Fixed Level stats grid columns + - `1.85` + - Finish time on overlay will now become gold when you beat overall best time or green when you beat best time for current filter + - Time on overlay will now also show the timeout duration + - `1.84` + - Fixed a filter issue with profiles + - `1.83` + - Added ability to switch between a Main and Practice profile + - `1.82` + - Fixed season filter dates + - `1.81` + - Fixed guantlet levels not showing up on Overlay properly + - `1.80` + - Added Final Streak to cycle with Win Streak + - Added new maps + - `1.79` + - Added option to cycle between Players and Server Ping on overlay + - `1.78` + - Changed logic when not cycling stats on overlay to show the most interesting stat + - Added option to show / hide percentages on overlay + - `1.77` + - Added individual option for Cycle Qualify / Gold and Cycle Fastest / Longest to settings + - `1.76` + - Moved Season 2 start date to Oct 8th + - Added ability to choose when starting program to include previous stats or not + - `1.75` + - Fixed streak count on overlay + - `1.74` + - Fixed stat calculations for shows crossing filter boundries + - Added some extra stats to the Wins Per Day popup + - Added option in settings to show / hide Wins info for overlay + - `1.73` + - Added options to settings screen for overlay color and flip to make it more visible to the user + - Added ability to manually resize overlay from the corners + - `1.72` + - Changed overlay so it stays visible when you minimize amin screen + - `1.71` + - Changed main screen to show Fastest / Longest qualifications for each level + - Fixed minor sorting issue in the grids + - `1.70` + - Cleaned up auto update feature a bit + - `1.69` + - Program will save last location of main window now and restore it when opened again + - `1.68` + - Fixed Week / Day filters + - Added more filter options in settings + - Added logic to account for new levels that may come up in Season 2 + - Added option to auto update program in settings + - `1.67` + - Fixed times in database to be stored correctly as utc + - `1.66` + - Hopefully fixed an issue with times counting down on overlay in rare cases + - `1.65` + - Added export to MarkDown option + - Added ability to click on Win% label to toggle columns to show %s and back + - `1.64` + - Fixed time issue when parsing log + - `1.63` + - Added export options for both Html and BBCode when right clicking any grid + - `1.62` + - Fixed some logic when deleting shows while filtered + - Switched the Longest/Fastest to align with Qualify/Gold + - `1.61` + - Added logic to reset overlay position if it ended up off screen + - Tightened up the overlay when hiding the round info + - `1.60` + - Added option to show tab on overlay for current filter + - `1.59` + - Try and make sure deleted shows dont get added back accidentally + - `1.58` + - Fixed rare case when deleting show didnt work + - `1.57` + - Fixed overlay missing image on startup + - `1.56` + - Add ability to show / hide information on overlay + - `1.55` + - Fixed overlay getting out of wack if you change filters a lot + - `1.54` + - Added mouse hover tool tip on Qualified / Gold / Silver / Bronze to show value as a % + - `1.53` + - Fixed Filters on overlay not taking into account UTC time + - `1.52` + - Fixed Time display on overlay not updating sometimes + - `1.51` + - Fixed an issue around results coming from a previous match + - `1.50` + - Fixed accidental debug typo + - `1.49` + - Added filter options to settings page for overlay display + - `1.48` + - Fixed Gold statistic on overlay, was using wrong medal type + - `1.47` + - Added Gold statistic to overlay that rotates with Qualify + - `1.46` + - Fixed overlay display not updating + - `1.45` + - Cleaned up labels on overlay + - `1.44` + - Fixed end of round numbers on overlay + - `1.43` + - Added ability to delete Shows in Shows screen + +
\ No newline at end of file diff --git a/Resources/FallGuysStats-download.svg b/Resources/FallGuysStats-download.svg new file mode 100644 index 000000000..f9d8635e1 --- /dev/null +++ b/Resources/FallGuysStats-download.svg @@ -0,0 +1,107 @@ + + +
+ + + +
+
+
\ No newline at end of file diff --git a/Resources/FallGuysStatsManualUpdate-download.svg b/Resources/FallGuysStatsManualUpdate-download.svg new file mode 100644 index 000000000..0e4dcaea6 --- /dev/null +++ b/Resources/FallGuysStatsManualUpdate-download.svg @@ -0,0 +1,107 @@ + + +
+ + + +
+
+
\ No newline at end of file diff --git a/Resources/bar_plot_gray_icon.png b/Resources/bar_plot_gray_icon.png new file mode 100644 index 000000000..8343af761 Binary files /dev/null and b/Resources/bar_plot_gray_icon.png differ diff --git a/Resources/bar_plot_icon.png b/Resources/bar_plot_icon.png new file mode 100644 index 000000000..bdb68a084 Binary files /dev/null and b/Resources/bar_plot_icon.png differ diff --git a/Resources/bar_plot_teal_icon.png b/Resources/bar_plot_teal_icon.png new file mode 100644 index 000000000..2e7b3d0e4 Binary files /dev/null and b/Resources/bar_plot_teal_icon.png differ diff --git a/Resources/calendar_gray_icon.png b/Resources/calendar_gray_icon.png new file mode 100644 index 000000000..5507775be Binary files /dev/null and b/Resources/calendar_gray_icon.png differ diff --git a/Resources/calendar_icon.png b/Resources/calendar_icon.png new file mode 100644 index 000000000..5488f9fc1 Binary files /dev/null and b/Resources/calendar_icon.png differ diff --git a/Resources/calendar_off_icon.png b/Resources/calendar_off_icon.png new file mode 100644 index 000000000..7bb8a5b4f Binary files /dev/null and b/Resources/calendar_off_icon.png differ diff --git a/Resources/calendar_on_icon.png b/Resources/calendar_on_icon.png new file mode 100644 index 000000000..a3a186470 Binary files /dev/null and b/Resources/calendar_on_icon.png differ diff --git a/Resources/casual_show_icon.png b/Resources/casual_show_icon.png new file mode 100644 index 000000000..e50912844 Binary files /dev/null and b/Resources/casual_show_icon.png differ diff --git a/Resources/checkmark_icon.png b/Resources/checkmark_icon.png new file mode 100644 index 000000000..fedf27122 Binary files /dev/null and b/Resources/checkmark_icon.png differ diff --git a/Resources/clock_gray_icon.png b/Resources/clock_gray_icon.png new file mode 100644 index 000000000..96f88cff2 Binary files /dev/null and b/Resources/clock_gray_icon.png differ diff --git a/Resources/clock_icon.png b/Resources/clock_icon.png new file mode 100644 index 000000000..579a33492 Binary files /dev/null and b/Resources/clock_icon.png differ diff --git a/Resources/country_icon/AD.png b/Resources/country_icon/AD.png new file mode 100644 index 000000000..29e002757 Binary files /dev/null and b/Resources/country_icon/AD.png differ diff --git a/Resources/country_icon/AD_SHINY.png b/Resources/country_icon/AD_SHINY.png new file mode 100644 index 000000000..52b3f8dca Binary files /dev/null and b/Resources/country_icon/AD_SHINY.png differ diff --git a/Resources/country_icon/AE.png b/Resources/country_icon/AE.png new file mode 100644 index 000000000..8263f12c4 Binary files /dev/null and b/Resources/country_icon/AE.png differ diff --git a/Resources/country_icon/AE_SHINY.png b/Resources/country_icon/AE_SHINY.png new file mode 100644 index 000000000..a4383d264 Binary files /dev/null and b/Resources/country_icon/AE_SHINY.png differ diff --git a/Resources/country_icon/AF.png b/Resources/country_icon/AF.png new file mode 100644 index 000000000..e5c8d7b44 Binary files /dev/null and b/Resources/country_icon/AF.png differ diff --git a/Resources/country_icon/AF_SHINY.png b/Resources/country_icon/AF_SHINY.png new file mode 100644 index 000000000..11074cc59 Binary files /dev/null and b/Resources/country_icon/AF_SHINY.png differ diff --git a/Resources/country_icon/AG.png b/Resources/country_icon/AG.png new file mode 100644 index 000000000..81a6c22d1 Binary files /dev/null and b/Resources/country_icon/AG.png differ diff --git a/Resources/country_icon/AG_SHINY.png b/Resources/country_icon/AG_SHINY.png new file mode 100644 index 000000000..ca6848225 Binary files /dev/null and b/Resources/country_icon/AG_SHINY.png differ diff --git a/Resources/country_icon/AI.png b/Resources/country_icon/AI.png new file mode 100644 index 000000000..754da164c Binary files /dev/null and b/Resources/country_icon/AI.png differ diff --git a/Resources/country_icon/AI_SHINY.png b/Resources/country_icon/AI_SHINY.png new file mode 100644 index 000000000..c2d32a34e Binary files /dev/null and b/Resources/country_icon/AI_SHINY.png differ diff --git a/Resources/country_icon/AL.png b/Resources/country_icon/AL.png new file mode 100644 index 000000000..281fd9297 Binary files /dev/null and b/Resources/country_icon/AL.png differ diff --git a/Resources/country_icon/AL_SHINY.png b/Resources/country_icon/AL_SHINY.png new file mode 100644 index 000000000..9b6ce18d5 Binary files /dev/null and b/Resources/country_icon/AL_SHINY.png differ diff --git a/Resources/country_icon/AM.png b/Resources/country_icon/AM.png new file mode 100644 index 000000000..5e6fcd92d Binary files /dev/null and b/Resources/country_icon/AM.png differ diff --git a/Resources/country_icon/AM_SHINY.png b/Resources/country_icon/AM_SHINY.png new file mode 100644 index 000000000..30975d040 Binary files /dev/null and b/Resources/country_icon/AM_SHINY.png differ diff --git a/Resources/country_icon/AN.png b/Resources/country_icon/AN.png new file mode 100644 index 000000000..143256973 Binary files /dev/null and b/Resources/country_icon/AN.png differ diff --git a/Resources/country_icon/AN_SHINY.png b/Resources/country_icon/AN_SHINY.png new file mode 100644 index 000000000..b09f15295 Binary files /dev/null and b/Resources/country_icon/AN_SHINY.png differ diff --git a/Resources/country_icon/AO.png b/Resources/country_icon/AO.png new file mode 100644 index 000000000..feac91ac5 Binary files /dev/null and b/Resources/country_icon/AO.png differ diff --git a/Resources/country_icon/AO_SHINY.png b/Resources/country_icon/AO_SHINY.png new file mode 100644 index 000000000..f73e6e37d Binary files /dev/null and b/Resources/country_icon/AO_SHINY.png differ diff --git a/Resources/country_icon/AQ.png b/Resources/country_icon/AQ.png new file mode 100644 index 000000000..69be87b52 Binary files /dev/null and b/Resources/country_icon/AQ.png differ diff --git a/Resources/country_icon/AQ_SHINY.png b/Resources/country_icon/AQ_SHINY.png new file mode 100644 index 000000000..cfd62d0d0 Binary files /dev/null and b/Resources/country_icon/AQ_SHINY.png differ diff --git a/Resources/country_icon/AR.png b/Resources/country_icon/AR.png new file mode 100644 index 000000000..5a0e3a6e6 Binary files /dev/null and b/Resources/country_icon/AR.png differ diff --git a/Resources/country_icon/AR_SHINY.png b/Resources/country_icon/AR_SHINY.png new file mode 100644 index 000000000..3f11d7533 Binary files /dev/null and b/Resources/country_icon/AR_SHINY.png differ diff --git a/Resources/country_icon/AS.png b/Resources/country_icon/AS.png new file mode 100644 index 000000000..07ce8bd86 Binary files /dev/null and b/Resources/country_icon/AS.png differ diff --git a/Resources/country_icon/AS_SHINY.png b/Resources/country_icon/AS_SHINY.png new file mode 100644 index 000000000..bc04b1d78 Binary files /dev/null and b/Resources/country_icon/AS_SHINY.png differ diff --git a/Resources/country_icon/AT.png b/Resources/country_icon/AT.png new file mode 100644 index 000000000..4c43c0272 Binary files /dev/null and b/Resources/country_icon/AT.png differ diff --git a/Resources/country_icon/AT_SHINY.png b/Resources/country_icon/AT_SHINY.png new file mode 100644 index 000000000..563e011c4 Binary files /dev/null and b/Resources/country_icon/AT_SHINY.png differ diff --git a/Resources/country_icon/AU.png b/Resources/country_icon/AU.png new file mode 100644 index 000000000..a7962b55f Binary files /dev/null and b/Resources/country_icon/AU.png differ diff --git a/Resources/country_icon/AU_SHINY.png b/Resources/country_icon/AU_SHINY.png new file mode 100644 index 000000000..1f60807b7 Binary files /dev/null and b/Resources/country_icon/AU_SHINY.png differ diff --git a/Resources/country_icon/AW.png b/Resources/country_icon/AW.png new file mode 100644 index 000000000..e411a751e Binary files /dev/null and b/Resources/country_icon/AW.png differ diff --git a/Resources/country_icon/AW_SHINY.png b/Resources/country_icon/AW_SHINY.png new file mode 100644 index 000000000..641697520 Binary files /dev/null and b/Resources/country_icon/AW_SHINY.png differ diff --git a/Resources/country_icon/AX.png b/Resources/country_icon/AX.png new file mode 100644 index 000000000..906ee2e39 Binary files /dev/null and b/Resources/country_icon/AX.png differ diff --git a/Resources/country_icon/AX_SHINY.png b/Resources/country_icon/AX_SHINY.png new file mode 100644 index 000000000..32d816194 Binary files /dev/null and b/Resources/country_icon/AX_SHINY.png differ diff --git a/Resources/country_icon/AZ.png b/Resources/country_icon/AZ.png new file mode 100644 index 000000000..64931b7d5 Binary files /dev/null and b/Resources/country_icon/AZ.png differ diff --git a/Resources/country_icon/AZ_SHINY.png b/Resources/country_icon/AZ_SHINY.png new file mode 100644 index 000000000..f2c8a781f Binary files /dev/null and b/Resources/country_icon/AZ_SHINY.png differ diff --git a/Resources/country_icon/BA.png b/Resources/country_icon/BA.png new file mode 100644 index 000000000..95080437a Binary files /dev/null and b/Resources/country_icon/BA.png differ diff --git a/Resources/country_icon/BA_SHINY.png b/Resources/country_icon/BA_SHINY.png new file mode 100644 index 000000000..a4b3d21d0 Binary files /dev/null and b/Resources/country_icon/BA_SHINY.png differ diff --git a/Resources/country_icon/BB.png b/Resources/country_icon/BB.png new file mode 100644 index 000000000..3e6ce2e37 Binary files /dev/null and b/Resources/country_icon/BB.png differ diff --git a/Resources/country_icon/BB_SHINY.png b/Resources/country_icon/BB_SHINY.png new file mode 100644 index 000000000..863a34719 Binary files /dev/null and b/Resources/country_icon/BB_SHINY.png differ diff --git a/Resources/country_icon/BD.png b/Resources/country_icon/BD.png new file mode 100644 index 000000000..a6a4ecf8b Binary files /dev/null and b/Resources/country_icon/BD.png differ diff --git a/Resources/country_icon/BD_SHINY.png b/Resources/country_icon/BD_SHINY.png new file mode 100644 index 000000000..88e78d74a Binary files /dev/null and b/Resources/country_icon/BD_SHINY.png differ diff --git a/Resources/country_icon/BE.png b/Resources/country_icon/BE.png new file mode 100644 index 000000000..df1eb1657 Binary files /dev/null and b/Resources/country_icon/BE.png differ diff --git a/Resources/country_icon/BE_SHINY.png b/Resources/country_icon/BE_SHINY.png new file mode 100644 index 000000000..c3ea8ce6b Binary files /dev/null and b/Resources/country_icon/BE_SHINY.png differ diff --git a/Resources/country_icon/BF.png b/Resources/country_icon/BF.png new file mode 100644 index 000000000..e352be318 Binary files /dev/null and b/Resources/country_icon/BF.png differ diff --git a/Resources/country_icon/BF_SHINY.png b/Resources/country_icon/BF_SHINY.png new file mode 100644 index 000000000..cb5daf2e8 Binary files /dev/null and b/Resources/country_icon/BF_SHINY.png differ diff --git a/Resources/country_icon/BG.png b/Resources/country_icon/BG.png new file mode 100644 index 000000000..b24e1e21e Binary files /dev/null and b/Resources/country_icon/BG.png differ diff --git a/Resources/country_icon/BG_SHINY.png b/Resources/country_icon/BG_SHINY.png new file mode 100644 index 000000000..ffb444a2e Binary files /dev/null and b/Resources/country_icon/BG_SHINY.png differ diff --git a/Resources/country_icon/BH.png b/Resources/country_icon/BH.png new file mode 100644 index 000000000..2d5e754df Binary files /dev/null and b/Resources/country_icon/BH.png differ diff --git a/Resources/country_icon/BH_SHINY.png b/Resources/country_icon/BH_SHINY.png new file mode 100644 index 000000000..3ac5bae40 Binary files /dev/null and b/Resources/country_icon/BH_SHINY.png differ diff --git a/Resources/country_icon/BI.png b/Resources/country_icon/BI.png new file mode 100644 index 000000000..d5acd6659 Binary files /dev/null and b/Resources/country_icon/BI.png differ diff --git a/Resources/country_icon/BI_SHINY.png b/Resources/country_icon/BI_SHINY.png new file mode 100644 index 000000000..ebe14f3e9 Binary files /dev/null and b/Resources/country_icon/BI_SHINY.png differ diff --git a/Resources/country_icon/BJ.png b/Resources/country_icon/BJ.png new file mode 100644 index 000000000..3cdb27cf2 Binary files /dev/null and b/Resources/country_icon/BJ.png differ diff --git a/Resources/country_icon/BJ_SHINY.png b/Resources/country_icon/BJ_SHINY.png new file mode 100644 index 000000000..d78c94c87 Binary files /dev/null and b/Resources/country_icon/BJ_SHINY.png differ diff --git a/Resources/country_icon/BL.png b/Resources/country_icon/BL.png new file mode 100644 index 000000000..67f7149e6 Binary files /dev/null and b/Resources/country_icon/BL.png differ diff --git a/Resources/country_icon/BL_SHINY.png b/Resources/country_icon/BL_SHINY.png new file mode 100644 index 000000000..ade01d449 Binary files /dev/null and b/Resources/country_icon/BL_SHINY.png differ diff --git a/Resources/country_icon/BM.png b/Resources/country_icon/BM.png new file mode 100644 index 000000000..f06f74c21 Binary files /dev/null and b/Resources/country_icon/BM.png differ diff --git a/Resources/country_icon/BM_SHINY.png b/Resources/country_icon/BM_SHINY.png new file mode 100644 index 000000000..ed7fb2ff5 Binary files /dev/null and b/Resources/country_icon/BM_SHINY.png differ diff --git a/Resources/country_icon/BN.png b/Resources/country_icon/BN.png new file mode 100644 index 000000000..ef38045d9 Binary files /dev/null and b/Resources/country_icon/BN.png differ diff --git a/Resources/country_icon/BN_SHINY.png b/Resources/country_icon/BN_SHINY.png new file mode 100644 index 000000000..d6d0d6cb3 Binary files /dev/null and b/Resources/country_icon/BN_SHINY.png differ diff --git a/Resources/country_icon/BO.png b/Resources/country_icon/BO.png new file mode 100644 index 000000000..d413a7280 Binary files /dev/null and b/Resources/country_icon/BO.png differ diff --git a/Resources/country_icon/BO_SHINY.png b/Resources/country_icon/BO_SHINY.png new file mode 100644 index 000000000..ac32cdf18 Binary files /dev/null and b/Resources/country_icon/BO_SHINY.png differ diff --git a/Resources/country_icon/BR.png b/Resources/country_icon/BR.png new file mode 100644 index 000000000..40890a6dc Binary files /dev/null and b/Resources/country_icon/BR.png differ diff --git a/Resources/country_icon/BR_SHINY.png b/Resources/country_icon/BR_SHINY.png new file mode 100644 index 000000000..e660338c4 Binary files /dev/null and b/Resources/country_icon/BR_SHINY.png differ diff --git a/Resources/country_icon/BS.png b/Resources/country_icon/BS.png new file mode 100644 index 000000000..b9ca7b5d5 Binary files /dev/null and b/Resources/country_icon/BS.png differ diff --git a/Resources/country_icon/BS_SHINY.png b/Resources/country_icon/BS_SHINY.png new file mode 100644 index 000000000..24db9da3f Binary files /dev/null and b/Resources/country_icon/BS_SHINY.png differ diff --git a/Resources/country_icon/BT.png b/Resources/country_icon/BT.png new file mode 100644 index 000000000..acaa38097 Binary files /dev/null and b/Resources/country_icon/BT.png differ diff --git a/Resources/country_icon/BT_SHINY.png b/Resources/country_icon/BT_SHINY.png new file mode 100644 index 000000000..13989ed32 Binary files /dev/null and b/Resources/country_icon/BT_SHINY.png differ diff --git a/Resources/country_icon/BW.png b/Resources/country_icon/BW.png new file mode 100644 index 000000000..c65187724 Binary files /dev/null and b/Resources/country_icon/BW.png differ diff --git a/Resources/country_icon/BW_SHINY.png b/Resources/country_icon/BW_SHINY.png new file mode 100644 index 000000000..77c37611c Binary files /dev/null and b/Resources/country_icon/BW_SHINY.png differ diff --git a/Resources/country_icon/BY.png b/Resources/country_icon/BY.png new file mode 100644 index 000000000..9c5be98c2 Binary files /dev/null and b/Resources/country_icon/BY.png differ diff --git a/Resources/country_icon/BY_SHINY.png b/Resources/country_icon/BY_SHINY.png new file mode 100644 index 000000000..784f69cc7 Binary files /dev/null and b/Resources/country_icon/BY_SHINY.png differ diff --git a/Resources/country_icon/BZ.png b/Resources/country_icon/BZ.png new file mode 100644 index 000000000..c3031651c Binary files /dev/null and b/Resources/country_icon/BZ.png differ diff --git a/Resources/country_icon/BZ_SHINY.png b/Resources/country_icon/BZ_SHINY.png new file mode 100644 index 000000000..ca66a1557 Binary files /dev/null and b/Resources/country_icon/BZ_SHINY.png differ diff --git a/Resources/country_icon/CA.png b/Resources/country_icon/CA.png new file mode 100644 index 000000000..dae9153f3 Binary files /dev/null and b/Resources/country_icon/CA.png differ diff --git a/Resources/country_icon/CA_SHINY.png b/Resources/country_icon/CA_SHINY.png new file mode 100644 index 000000000..fd089c2a1 Binary files /dev/null and b/Resources/country_icon/CA_SHINY.png differ diff --git a/Resources/country_icon/CC.png b/Resources/country_icon/CC.png new file mode 100644 index 000000000..aee171e2c Binary files /dev/null and b/Resources/country_icon/CC.png differ diff --git a/Resources/country_icon/CC_SHINY.png b/Resources/country_icon/CC_SHINY.png new file mode 100644 index 000000000..35cfe7f0c Binary files /dev/null and b/Resources/country_icon/CC_SHINY.png differ diff --git a/Resources/country_icon/CD.png b/Resources/country_icon/CD.png new file mode 100644 index 000000000..1b9bf6f78 Binary files /dev/null and b/Resources/country_icon/CD.png differ diff --git a/Resources/country_icon/CD_SHINY.png b/Resources/country_icon/CD_SHINY.png new file mode 100644 index 000000000..bec710de4 Binary files /dev/null and b/Resources/country_icon/CD_SHINY.png differ diff --git a/Resources/country_icon/CF.png b/Resources/country_icon/CF.png new file mode 100644 index 000000000..902b32375 Binary files /dev/null and b/Resources/country_icon/CF.png differ diff --git a/Resources/country_icon/CF_SHINY.png b/Resources/country_icon/CF_SHINY.png new file mode 100644 index 000000000..ae3345200 Binary files /dev/null and b/Resources/country_icon/CF_SHINY.png differ diff --git a/Resources/country_icon/CG.png b/Resources/country_icon/CG.png new file mode 100644 index 000000000..b7449050b Binary files /dev/null and b/Resources/country_icon/CG.png differ diff --git a/Resources/country_icon/CG_SHINY.png b/Resources/country_icon/CG_SHINY.png new file mode 100644 index 000000000..c0b72bc50 Binary files /dev/null and b/Resources/country_icon/CG_SHINY.png differ diff --git a/Resources/country_icon/CH.png b/Resources/country_icon/CH.png new file mode 100644 index 000000000..985ff52f4 Binary files /dev/null and b/Resources/country_icon/CH.png differ diff --git a/Resources/country_icon/CH_SHINY.png b/Resources/country_icon/CH_SHINY.png new file mode 100644 index 000000000..2f22b90e9 Binary files /dev/null and b/Resources/country_icon/CH_SHINY.png differ diff --git a/Resources/country_icon/CI.png b/Resources/country_icon/CI.png new file mode 100644 index 000000000..f908d9b56 Binary files /dev/null and b/Resources/country_icon/CI.png differ diff --git a/Resources/country_icon/CI_SHINY.png b/Resources/country_icon/CI_SHINY.png new file mode 100644 index 000000000..8326e1d39 Binary files /dev/null and b/Resources/country_icon/CI_SHINY.png differ diff --git a/Resources/country_icon/CK.png b/Resources/country_icon/CK.png new file mode 100644 index 000000000..7b884dbe9 Binary files /dev/null and b/Resources/country_icon/CK.png differ diff --git a/Resources/country_icon/CK_SHINY.png b/Resources/country_icon/CK_SHINY.png new file mode 100644 index 000000000..fbdb7dd69 Binary files /dev/null and b/Resources/country_icon/CK_SHINY.png differ diff --git a/Resources/country_icon/CL.png b/Resources/country_icon/CL.png new file mode 100644 index 000000000..9e16fd9a0 Binary files /dev/null and b/Resources/country_icon/CL.png differ diff --git a/Resources/country_icon/CL_SHINY.png b/Resources/country_icon/CL_SHINY.png new file mode 100644 index 000000000..6768c75f4 Binary files /dev/null and b/Resources/country_icon/CL_SHINY.png differ diff --git a/Resources/country_icon/CM.png b/Resources/country_icon/CM.png new file mode 100644 index 000000000..70136aab5 Binary files /dev/null and b/Resources/country_icon/CM.png differ diff --git a/Resources/country_icon/CM_SHINY.png b/Resources/country_icon/CM_SHINY.png new file mode 100644 index 000000000..c03409b47 Binary files /dev/null and b/Resources/country_icon/CM_SHINY.png differ diff --git a/Resources/country_icon/CN.png b/Resources/country_icon/CN.png new file mode 100644 index 000000000..17cd5d018 Binary files /dev/null and b/Resources/country_icon/CN.png differ diff --git a/Resources/country_icon/CN_SHINY.png b/Resources/country_icon/CN_SHINY.png new file mode 100644 index 000000000..08fca13d5 Binary files /dev/null and b/Resources/country_icon/CN_SHINY.png differ diff --git a/Resources/country_icon/CO.png b/Resources/country_icon/CO.png new file mode 100644 index 000000000..0b0eddc6f Binary files /dev/null and b/Resources/country_icon/CO.png differ diff --git a/Resources/country_icon/CO_SHINY.png b/Resources/country_icon/CO_SHINY.png new file mode 100644 index 000000000..af86cd037 Binary files /dev/null and b/Resources/country_icon/CO_SHINY.png differ diff --git a/Resources/country_icon/CR.png b/Resources/country_icon/CR.png new file mode 100644 index 000000000..7d9c882d5 Binary files /dev/null and b/Resources/country_icon/CR.png differ diff --git a/Resources/country_icon/CR_SHINY.png b/Resources/country_icon/CR_SHINY.png new file mode 100644 index 000000000..9de7a24d1 Binary files /dev/null and b/Resources/country_icon/CR_SHINY.png differ diff --git a/Resources/country_icon/CU.png b/Resources/country_icon/CU.png new file mode 100644 index 000000000..e282c1ca4 Binary files /dev/null and b/Resources/country_icon/CU.png differ diff --git a/Resources/country_icon/CU_SHINY.png b/Resources/country_icon/CU_SHINY.png new file mode 100644 index 000000000..4ba1a41c6 Binary files /dev/null and b/Resources/country_icon/CU_SHINY.png differ diff --git a/Resources/country_icon/CV.png b/Resources/country_icon/CV.png new file mode 100644 index 000000000..03b727bea Binary files /dev/null and b/Resources/country_icon/CV.png differ diff --git a/Resources/country_icon/CV_SHINY.png b/Resources/country_icon/CV_SHINY.png new file mode 100644 index 000000000..b8bf1798a Binary files /dev/null and b/Resources/country_icon/CV_SHINY.png differ diff --git a/Resources/country_icon/CW.png b/Resources/country_icon/CW.png new file mode 100644 index 000000000..2073ba2fa Binary files /dev/null and b/Resources/country_icon/CW.png differ diff --git a/Resources/country_icon/CW_SHINY.png b/Resources/country_icon/CW_SHINY.png new file mode 100644 index 000000000..58b08de2d Binary files /dev/null and b/Resources/country_icon/CW_SHINY.png differ diff --git a/Resources/country_icon/CX.png b/Resources/country_icon/CX.png new file mode 100644 index 000000000..96c017394 Binary files /dev/null and b/Resources/country_icon/CX.png differ diff --git a/Resources/country_icon/CX_SHINY.png b/Resources/country_icon/CX_SHINY.png new file mode 100644 index 000000000..0916464d1 Binary files /dev/null and b/Resources/country_icon/CX_SHINY.png differ diff --git a/Resources/country_icon/CY.png b/Resources/country_icon/CY.png new file mode 100644 index 000000000..89b1ced55 Binary files /dev/null and b/Resources/country_icon/CY.png differ diff --git a/Resources/country_icon/CY_SHINY.png b/Resources/country_icon/CY_SHINY.png new file mode 100644 index 000000000..885bfd62e Binary files /dev/null and b/Resources/country_icon/CY_SHINY.png differ diff --git a/Resources/country_icon/CZ.png b/Resources/country_icon/CZ.png new file mode 100644 index 000000000..82ce85ce0 Binary files /dev/null and b/Resources/country_icon/CZ.png differ diff --git a/Resources/country_icon/CZ_SHINY.png b/Resources/country_icon/CZ_SHINY.png new file mode 100644 index 000000000..73ac44241 Binary files /dev/null and b/Resources/country_icon/CZ_SHINY.png differ diff --git a/Resources/country_icon/DE.png b/Resources/country_icon/DE.png new file mode 100644 index 000000000..ebb184348 Binary files /dev/null and b/Resources/country_icon/DE.png differ diff --git a/Resources/country_icon/DE_SHINY.png b/Resources/country_icon/DE_SHINY.png new file mode 100644 index 000000000..0c229c322 Binary files /dev/null and b/Resources/country_icon/DE_SHINY.png differ diff --git a/Resources/country_icon/DJ.png b/Resources/country_icon/DJ.png new file mode 100644 index 000000000..a0b0bcceb Binary files /dev/null and b/Resources/country_icon/DJ.png differ diff --git a/Resources/country_icon/DJ_SHINY.png b/Resources/country_icon/DJ_SHINY.png new file mode 100644 index 000000000..68a297b3c Binary files /dev/null and b/Resources/country_icon/DJ_SHINY.png differ diff --git a/Resources/country_icon/DK.png b/Resources/country_icon/DK.png new file mode 100644 index 000000000..cb7bff7c9 Binary files /dev/null and b/Resources/country_icon/DK.png differ diff --git a/Resources/country_icon/DK_SHINY.png b/Resources/country_icon/DK_SHINY.png new file mode 100644 index 000000000..6edf00b3f Binary files /dev/null and b/Resources/country_icon/DK_SHINY.png differ diff --git a/Resources/country_icon/DM.png b/Resources/country_icon/DM.png new file mode 100644 index 000000000..1a336ccee Binary files /dev/null and b/Resources/country_icon/DM.png differ diff --git a/Resources/country_icon/DM_SHINY.png b/Resources/country_icon/DM_SHINY.png new file mode 100644 index 000000000..7cd1131b0 Binary files /dev/null and b/Resources/country_icon/DM_SHINY.png differ diff --git a/Resources/country_icon/DO.png b/Resources/country_icon/DO.png new file mode 100644 index 000000000..76f136346 Binary files /dev/null and b/Resources/country_icon/DO.png differ diff --git a/Resources/country_icon/DO_SHINY.png b/Resources/country_icon/DO_SHINY.png new file mode 100644 index 000000000..d2ae5b668 Binary files /dev/null and b/Resources/country_icon/DO_SHINY.png differ diff --git a/Resources/country_icon/DZ.png b/Resources/country_icon/DZ.png new file mode 100644 index 000000000..124e087b2 Binary files /dev/null and b/Resources/country_icon/DZ.png differ diff --git a/Resources/country_icon/DZ_SHINY.png b/Resources/country_icon/DZ_SHINY.png new file mode 100644 index 000000000..9cde08726 Binary files /dev/null and b/Resources/country_icon/DZ_SHINY.png differ diff --git a/Resources/country_icon/EC.png b/Resources/country_icon/EC.png new file mode 100644 index 000000000..58a6aa471 Binary files /dev/null and b/Resources/country_icon/EC.png differ diff --git a/Resources/country_icon/EC_SHINY.png b/Resources/country_icon/EC_SHINY.png new file mode 100644 index 000000000..ba11aaaff Binary files /dev/null and b/Resources/country_icon/EC_SHINY.png differ diff --git a/Resources/country_icon/EE.png b/Resources/country_icon/EE.png new file mode 100644 index 000000000..47eb4f6c0 Binary files /dev/null and b/Resources/country_icon/EE.png differ diff --git a/Resources/country_icon/EE_SHINY.png b/Resources/country_icon/EE_SHINY.png new file mode 100644 index 000000000..20150fcd5 Binary files /dev/null and b/Resources/country_icon/EE_SHINY.png differ diff --git a/Resources/country_icon/EG.png b/Resources/country_icon/EG.png new file mode 100644 index 000000000..9bc728461 Binary files /dev/null and b/Resources/country_icon/EG.png differ diff --git a/Resources/country_icon/EG_SHINY.png b/Resources/country_icon/EG_SHINY.png new file mode 100644 index 000000000..9b157a4c1 Binary files /dev/null and b/Resources/country_icon/EG_SHINY.png differ diff --git a/Resources/country_icon/EH.png b/Resources/country_icon/EH.png new file mode 100644 index 000000000..7cd1b3ba8 Binary files /dev/null and b/Resources/country_icon/EH.png differ diff --git a/Resources/country_icon/EH_SHINY.png b/Resources/country_icon/EH_SHINY.png new file mode 100644 index 000000000..caec7187a Binary files /dev/null and b/Resources/country_icon/EH_SHINY.png differ diff --git a/Resources/country_icon/ER.png b/Resources/country_icon/ER.png new file mode 100644 index 000000000..025ac945f Binary files /dev/null and b/Resources/country_icon/ER.png differ diff --git a/Resources/country_icon/ER_SHINY.png b/Resources/country_icon/ER_SHINY.png new file mode 100644 index 000000000..c36d2184b Binary files /dev/null and b/Resources/country_icon/ER_SHINY.png differ diff --git a/Resources/country_icon/ES.png b/Resources/country_icon/ES.png new file mode 100644 index 000000000..cf53a8d65 Binary files /dev/null and b/Resources/country_icon/ES.png differ diff --git a/Resources/country_icon/ES_SHINY.png b/Resources/country_icon/ES_SHINY.png new file mode 100644 index 000000000..39d0c76c7 Binary files /dev/null and b/Resources/country_icon/ES_SHINY.png differ diff --git a/Resources/country_icon/ET.png b/Resources/country_icon/ET.png new file mode 100644 index 000000000..95711ddd4 Binary files /dev/null and b/Resources/country_icon/ET.png differ diff --git a/Resources/country_icon/ET_SHINY.png b/Resources/country_icon/ET_SHINY.png new file mode 100644 index 000000000..87da26f07 Binary files /dev/null and b/Resources/country_icon/ET_SHINY.png differ diff --git a/Resources/country_icon/EU.png b/Resources/country_icon/EU.png new file mode 100644 index 000000000..a9af51cae Binary files /dev/null and b/Resources/country_icon/EU.png differ diff --git a/Resources/country_icon/EU_SHINY.png b/Resources/country_icon/EU_SHINY.png new file mode 100644 index 000000000..ccdf7d820 Binary files /dev/null and b/Resources/country_icon/EU_SHINY.png differ diff --git a/Resources/country_icon/FI.png b/Resources/country_icon/FI.png new file mode 100644 index 000000000..a585cf483 Binary files /dev/null and b/Resources/country_icon/FI.png differ diff --git a/Resources/country_icon/FI_SHINY.png b/Resources/country_icon/FI_SHINY.png new file mode 100644 index 000000000..c9f17f6d9 Binary files /dev/null and b/Resources/country_icon/FI_SHINY.png differ diff --git a/Resources/country_icon/FJ.png b/Resources/country_icon/FJ.png new file mode 100644 index 000000000..f7b5ccbf2 Binary files /dev/null and b/Resources/country_icon/FJ.png differ diff --git a/Resources/country_icon/FJ_SHINY.png b/Resources/country_icon/FJ_SHINY.png new file mode 100644 index 000000000..13a8bfd4d Binary files /dev/null and b/Resources/country_icon/FJ_SHINY.png differ diff --git a/Resources/country_icon/FK.png b/Resources/country_icon/FK.png new file mode 100644 index 000000000..e375bc133 Binary files /dev/null and b/Resources/country_icon/FK.png differ diff --git a/Resources/country_icon/FK_SHINY.png b/Resources/country_icon/FK_SHINY.png new file mode 100644 index 000000000..f9ebef293 Binary files /dev/null and b/Resources/country_icon/FK_SHINY.png differ diff --git a/Resources/country_icon/FM.png b/Resources/country_icon/FM.png new file mode 100644 index 000000000..7dccaf043 Binary files /dev/null and b/Resources/country_icon/FM.png differ diff --git a/Resources/country_icon/FM_SHINY.png b/Resources/country_icon/FM_SHINY.png new file mode 100644 index 000000000..e4596cea9 Binary files /dev/null and b/Resources/country_icon/FM_SHINY.png differ diff --git a/Resources/country_icon/FO.png b/Resources/country_icon/FO.png new file mode 100644 index 000000000..02daeca4b Binary files /dev/null and b/Resources/country_icon/FO.png differ diff --git a/Resources/country_icon/FO_SHINY.png b/Resources/country_icon/FO_SHINY.png new file mode 100644 index 000000000..8cb6c9059 Binary files /dev/null and b/Resources/country_icon/FO_SHINY.png differ diff --git a/Resources/country_icon/FR.png b/Resources/country_icon/FR.png new file mode 100644 index 000000000..91a645e83 Binary files /dev/null and b/Resources/country_icon/FR.png differ diff --git a/Resources/country_icon/FR_SHINY.png b/Resources/country_icon/FR_SHINY.png new file mode 100644 index 000000000..f27f41143 Binary files /dev/null and b/Resources/country_icon/FR_SHINY.png differ diff --git a/Resources/country_icon/GA.png b/Resources/country_icon/GA.png new file mode 100644 index 000000000..beeaa4fb1 Binary files /dev/null and b/Resources/country_icon/GA.png differ diff --git a/Resources/country_icon/GA_SHINY.png b/Resources/country_icon/GA_SHINY.png new file mode 100644 index 000000000..317dd6716 Binary files /dev/null and b/Resources/country_icon/GA_SHINY.png differ diff --git a/Resources/country_icon/GB.png b/Resources/country_icon/GB.png new file mode 100644 index 000000000..fb1edaa08 Binary files /dev/null and b/Resources/country_icon/GB.png differ diff --git a/Resources/country_icon/GB_SHINY.png b/Resources/country_icon/GB_SHINY.png new file mode 100644 index 000000000..02fa2a15c Binary files /dev/null and b/Resources/country_icon/GB_SHINY.png differ diff --git a/Resources/country_icon/GD.png b/Resources/country_icon/GD.png new file mode 100644 index 000000000..ccd427102 Binary files /dev/null and b/Resources/country_icon/GD.png differ diff --git a/Resources/country_icon/GD_SHINY.png b/Resources/country_icon/GD_SHINY.png new file mode 100644 index 000000000..1670317d7 Binary files /dev/null and b/Resources/country_icon/GD_SHINY.png differ diff --git a/Resources/country_icon/GE.png b/Resources/country_icon/GE.png new file mode 100644 index 000000000..ae3088bde Binary files /dev/null and b/Resources/country_icon/GE.png differ diff --git a/Resources/country_icon/GE_SHINY.png b/Resources/country_icon/GE_SHINY.png new file mode 100644 index 000000000..eda18d86f Binary files /dev/null and b/Resources/country_icon/GE_SHINY.png differ diff --git a/Resources/country_icon/GG.png b/Resources/country_icon/GG.png new file mode 100644 index 000000000..2d7233cbf Binary files /dev/null and b/Resources/country_icon/GG.png differ diff --git a/Resources/country_icon/GG_SHINY.png b/Resources/country_icon/GG_SHINY.png new file mode 100644 index 000000000..273e5e701 Binary files /dev/null and b/Resources/country_icon/GG_SHINY.png differ diff --git a/Resources/country_icon/GH.png b/Resources/country_icon/GH.png new file mode 100644 index 000000000..d76972ea2 Binary files /dev/null and b/Resources/country_icon/GH.png differ diff --git a/Resources/country_icon/GH_SHINY.png b/Resources/country_icon/GH_SHINY.png new file mode 100644 index 000000000..4fcc198c4 Binary files /dev/null and b/Resources/country_icon/GH_SHINY.png differ diff --git a/Resources/country_icon/GI.png b/Resources/country_icon/GI.png new file mode 100644 index 000000000..07017bac0 Binary files /dev/null and b/Resources/country_icon/GI.png differ diff --git a/Resources/country_icon/GI_SHINY.png b/Resources/country_icon/GI_SHINY.png new file mode 100644 index 000000000..8b76b45eb Binary files /dev/null and b/Resources/country_icon/GI_SHINY.png differ diff --git a/Resources/country_icon/GL.png b/Resources/country_icon/GL.png new file mode 100644 index 000000000..572fa5c6e Binary files /dev/null and b/Resources/country_icon/GL.png differ diff --git a/Resources/country_icon/GL_SHINY.png b/Resources/country_icon/GL_SHINY.png new file mode 100644 index 000000000..a3835b797 Binary files /dev/null and b/Resources/country_icon/GL_SHINY.png differ diff --git a/Resources/country_icon/GM.png b/Resources/country_icon/GM.png new file mode 100644 index 000000000..643f21a0b Binary files /dev/null and b/Resources/country_icon/GM.png differ diff --git a/Resources/country_icon/GM_SHINY.png b/Resources/country_icon/GM_SHINY.png new file mode 100644 index 000000000..814d391d9 Binary files /dev/null and b/Resources/country_icon/GM_SHINY.png differ diff --git a/Resources/country_icon/GN.png b/Resources/country_icon/GN.png new file mode 100644 index 000000000..eeb48b709 Binary files /dev/null and b/Resources/country_icon/GN.png differ diff --git a/Resources/country_icon/GN_SHINY.png b/Resources/country_icon/GN_SHINY.png new file mode 100644 index 000000000..1c3b5b2a6 Binary files /dev/null and b/Resources/country_icon/GN_SHINY.png differ diff --git a/Resources/country_icon/GQ.png b/Resources/country_icon/GQ.png new file mode 100644 index 000000000..8292015fd Binary files /dev/null and b/Resources/country_icon/GQ.png differ diff --git a/Resources/country_icon/GQ_SHINY.png b/Resources/country_icon/GQ_SHINY.png new file mode 100644 index 000000000..ce5390710 Binary files /dev/null and b/Resources/country_icon/GQ_SHINY.png differ diff --git a/Resources/country_icon/GR.png b/Resources/country_icon/GR.png new file mode 100644 index 000000000..c185d0bf3 Binary files /dev/null and b/Resources/country_icon/GR.png differ diff --git a/Resources/country_icon/GR_SHINY.png b/Resources/country_icon/GR_SHINY.png new file mode 100644 index 000000000..5f6320fae Binary files /dev/null and b/Resources/country_icon/GR_SHINY.png differ diff --git a/Resources/country_icon/GS.png b/Resources/country_icon/GS.png new file mode 100644 index 000000000..73ac17c35 Binary files /dev/null and b/Resources/country_icon/GS.png differ diff --git a/Resources/country_icon/GS_SHINY.png b/Resources/country_icon/GS_SHINY.png new file mode 100644 index 000000000..00d20b638 Binary files /dev/null and b/Resources/country_icon/GS_SHINY.png differ diff --git a/Resources/country_icon/GT.png b/Resources/country_icon/GT.png new file mode 100644 index 000000000..8ce5c7191 Binary files /dev/null and b/Resources/country_icon/GT.png differ diff --git a/Resources/country_icon/GT_SHINY.png b/Resources/country_icon/GT_SHINY.png new file mode 100644 index 000000000..a587b5148 Binary files /dev/null and b/Resources/country_icon/GT_SHINY.png differ diff --git a/Resources/country_icon/GU.png b/Resources/country_icon/GU.png new file mode 100644 index 000000000..3a0081a07 Binary files /dev/null and b/Resources/country_icon/GU.png differ diff --git a/Resources/country_icon/GU_SHINY.png b/Resources/country_icon/GU_SHINY.png new file mode 100644 index 000000000..5004db65a Binary files /dev/null and b/Resources/country_icon/GU_SHINY.png differ diff --git a/Resources/country_icon/GW.png b/Resources/country_icon/GW.png new file mode 100644 index 000000000..d87c8351c Binary files /dev/null and b/Resources/country_icon/GW.png differ diff --git a/Resources/country_icon/GW_SHINY.png b/Resources/country_icon/GW_SHINY.png new file mode 100644 index 000000000..808a1ef58 Binary files /dev/null and b/Resources/country_icon/GW_SHINY.png differ diff --git a/Resources/country_icon/GY.png b/Resources/country_icon/GY.png new file mode 100644 index 000000000..0064a1cae Binary files /dev/null and b/Resources/country_icon/GY.png differ diff --git a/Resources/country_icon/GY_SHINY.png b/Resources/country_icon/GY_SHINY.png new file mode 100644 index 000000000..b94d73611 Binary files /dev/null and b/Resources/country_icon/GY_SHINY.png differ diff --git a/Resources/country_icon/HK.png b/Resources/country_icon/HK.png new file mode 100644 index 000000000..1137e86d1 Binary files /dev/null and b/Resources/country_icon/HK.png differ diff --git a/Resources/country_icon/HK_SHINY.png b/Resources/country_icon/HK_SHINY.png new file mode 100644 index 000000000..c17e4ce43 Binary files /dev/null and b/Resources/country_icon/HK_SHINY.png differ diff --git a/Resources/country_icon/HN.png b/Resources/country_icon/HN.png new file mode 100644 index 000000000..d59671c2c Binary files /dev/null and b/Resources/country_icon/HN.png differ diff --git a/Resources/country_icon/HN_SHINY.png b/Resources/country_icon/HN_SHINY.png new file mode 100644 index 000000000..9635f7ec6 Binary files /dev/null and b/Resources/country_icon/HN_SHINY.png differ diff --git a/Resources/country_icon/HR.png b/Resources/country_icon/HR.png new file mode 100644 index 000000000..effebf8b3 Binary files /dev/null and b/Resources/country_icon/HR.png differ diff --git a/Resources/country_icon/HR_SHINY.png b/Resources/country_icon/HR_SHINY.png new file mode 100644 index 000000000..e4fc75ac6 Binary files /dev/null and b/Resources/country_icon/HR_SHINY.png differ diff --git a/Resources/country_icon/HT.png b/Resources/country_icon/HT.png new file mode 100644 index 000000000..c12253a51 Binary files /dev/null and b/Resources/country_icon/HT.png differ diff --git a/Resources/country_icon/HT_SHINY.png b/Resources/country_icon/HT_SHINY.png new file mode 100644 index 000000000..9f52fc4c3 Binary files /dev/null and b/Resources/country_icon/HT_SHINY.png differ diff --git a/Resources/country_icon/HU.png b/Resources/country_icon/HU.png new file mode 100644 index 000000000..62bfc27cf Binary files /dev/null and b/Resources/country_icon/HU.png differ diff --git a/Resources/country_icon/HU_SHINY.png b/Resources/country_icon/HU_SHINY.png new file mode 100644 index 000000000..6d4478f89 Binary files /dev/null and b/Resources/country_icon/HU_SHINY.png differ diff --git a/Resources/country_icon/IC.png b/Resources/country_icon/IC.png new file mode 100644 index 000000000..b600e4e61 Binary files /dev/null and b/Resources/country_icon/IC.png differ diff --git a/Resources/country_icon/IC_SHINY.png b/Resources/country_icon/IC_SHINY.png new file mode 100644 index 000000000..5f2343f33 Binary files /dev/null and b/Resources/country_icon/IC_SHINY.png differ diff --git a/Resources/country_icon/ID.png b/Resources/country_icon/ID.png new file mode 100644 index 000000000..e938f433b Binary files /dev/null and b/Resources/country_icon/ID.png differ diff --git a/Resources/country_icon/ID_SHINY.png b/Resources/country_icon/ID_SHINY.png new file mode 100644 index 000000000..63ad1fcf4 Binary files /dev/null and b/Resources/country_icon/ID_SHINY.png differ diff --git a/Resources/country_icon/IE.png b/Resources/country_icon/IE.png new file mode 100644 index 000000000..baaae6a70 Binary files /dev/null and b/Resources/country_icon/IE.png differ diff --git a/Resources/country_icon/IE_SHINY.png b/Resources/country_icon/IE_SHINY.png new file mode 100644 index 000000000..44062f6c9 Binary files /dev/null and b/Resources/country_icon/IE_SHINY.png differ diff --git a/Resources/country_icon/IL.png b/Resources/country_icon/IL.png new file mode 100644 index 000000000..9bac6ece5 Binary files /dev/null and b/Resources/country_icon/IL.png differ diff --git a/Resources/country_icon/IL_SHINY.png b/Resources/country_icon/IL_SHINY.png new file mode 100644 index 000000000..8a8d4a8f8 Binary files /dev/null and b/Resources/country_icon/IL_SHINY.png differ diff --git a/Resources/country_icon/IM.png b/Resources/country_icon/IM.png new file mode 100644 index 000000000..442bfd9bd Binary files /dev/null and b/Resources/country_icon/IM.png differ diff --git a/Resources/country_icon/IM_SHINY.png b/Resources/country_icon/IM_SHINY.png new file mode 100644 index 000000000..3f30b7ae4 Binary files /dev/null and b/Resources/country_icon/IM_SHINY.png differ diff --git a/Resources/country_icon/IN.png b/Resources/country_icon/IN.png new file mode 100644 index 000000000..0e5ee79c5 Binary files /dev/null and b/Resources/country_icon/IN.png differ diff --git a/Resources/country_icon/IN_SHINY.png b/Resources/country_icon/IN_SHINY.png new file mode 100644 index 000000000..3e4333786 Binary files /dev/null and b/Resources/country_icon/IN_SHINY.png differ diff --git a/Resources/country_icon/IQ.png b/Resources/country_icon/IQ.png new file mode 100644 index 000000000..b712f74f1 Binary files /dev/null and b/Resources/country_icon/IQ.png differ diff --git a/Resources/country_icon/IQ_SHINY.png b/Resources/country_icon/IQ_SHINY.png new file mode 100644 index 000000000..6418593bd Binary files /dev/null and b/Resources/country_icon/IQ_SHINY.png differ diff --git a/Resources/country_icon/IR.png b/Resources/country_icon/IR.png new file mode 100644 index 000000000..eca434ca4 Binary files /dev/null and b/Resources/country_icon/IR.png differ diff --git a/Resources/country_icon/IR_SHINY.png b/Resources/country_icon/IR_SHINY.png new file mode 100644 index 000000000..1506e99db Binary files /dev/null and b/Resources/country_icon/IR_SHINY.png differ diff --git a/Resources/country_icon/IS.png b/Resources/country_icon/IS.png new file mode 100644 index 000000000..01e12fbb8 Binary files /dev/null and b/Resources/country_icon/IS.png differ diff --git a/Resources/country_icon/IS_SHINY.png b/Resources/country_icon/IS_SHINY.png new file mode 100644 index 000000000..33d249970 Binary files /dev/null and b/Resources/country_icon/IS_SHINY.png differ diff --git a/Resources/country_icon/IT.png b/Resources/country_icon/IT.png new file mode 100644 index 000000000..8e9e7fa69 Binary files /dev/null and b/Resources/country_icon/IT.png differ diff --git a/Resources/country_icon/IT_SHINY.png b/Resources/country_icon/IT_SHINY.png new file mode 100644 index 000000000..53ec70252 Binary files /dev/null and b/Resources/country_icon/IT_SHINY.png differ diff --git a/Resources/country_icon/JE.png b/Resources/country_icon/JE.png new file mode 100644 index 000000000..606798c98 Binary files /dev/null and b/Resources/country_icon/JE.png differ diff --git a/Resources/country_icon/JE_SHINY.png b/Resources/country_icon/JE_SHINY.png new file mode 100644 index 000000000..2e3a1a760 Binary files /dev/null and b/Resources/country_icon/JE_SHINY.png differ diff --git a/Resources/country_icon/JM.png b/Resources/country_icon/JM.png new file mode 100644 index 000000000..002f61ff3 Binary files /dev/null and b/Resources/country_icon/JM.png differ diff --git a/Resources/country_icon/JM_SHINY.png b/Resources/country_icon/JM_SHINY.png new file mode 100644 index 000000000..b55ccfc69 Binary files /dev/null and b/Resources/country_icon/JM_SHINY.png differ diff --git a/Resources/country_icon/JO.png b/Resources/country_icon/JO.png new file mode 100644 index 000000000..ace43ca8a Binary files /dev/null and b/Resources/country_icon/JO.png differ diff --git a/Resources/country_icon/JO_SHINY.png b/Resources/country_icon/JO_SHINY.png new file mode 100644 index 000000000..7a3be3fce Binary files /dev/null and b/Resources/country_icon/JO_SHINY.png differ diff --git a/Resources/country_icon/JP.png b/Resources/country_icon/JP.png new file mode 100644 index 000000000..8fb1a36a3 Binary files /dev/null and b/Resources/country_icon/JP.png differ diff --git a/Resources/country_icon/JP_SHINY.png b/Resources/country_icon/JP_SHINY.png new file mode 100644 index 000000000..0516af4a9 Binary files /dev/null and b/Resources/country_icon/JP_SHINY.png differ diff --git a/Resources/country_icon/KE.png b/Resources/country_icon/KE.png new file mode 100644 index 000000000..87f6c6e5d Binary files /dev/null and b/Resources/country_icon/KE.png differ diff --git a/Resources/country_icon/KE_SHINY.png b/Resources/country_icon/KE_SHINY.png new file mode 100644 index 000000000..7296684db Binary files /dev/null and b/Resources/country_icon/KE_SHINY.png differ diff --git a/Resources/country_icon/KG.png b/Resources/country_icon/KG.png new file mode 100644 index 000000000..c3bd3f6d0 Binary files /dev/null and b/Resources/country_icon/KG.png differ diff --git a/Resources/country_icon/KG_SHINY.png b/Resources/country_icon/KG_SHINY.png new file mode 100644 index 000000000..1b38e318a Binary files /dev/null and b/Resources/country_icon/KG_SHINY.png differ diff --git a/Resources/country_icon/KH.png b/Resources/country_icon/KH.png new file mode 100644 index 000000000..f9f196de9 Binary files /dev/null and b/Resources/country_icon/KH.png differ diff --git a/Resources/country_icon/KH_SHINY.png b/Resources/country_icon/KH_SHINY.png new file mode 100644 index 000000000..4881570e9 Binary files /dev/null and b/Resources/country_icon/KH_SHINY.png differ diff --git a/Resources/country_icon/KI.png b/Resources/country_icon/KI.png new file mode 100644 index 000000000..6f04a1f72 Binary files /dev/null and b/Resources/country_icon/KI.png differ diff --git a/Resources/country_icon/KI_SHINY.png b/Resources/country_icon/KI_SHINY.png new file mode 100644 index 000000000..0bf057e18 Binary files /dev/null and b/Resources/country_icon/KI_SHINY.png differ diff --git a/Resources/country_icon/KM.png b/Resources/country_icon/KM.png new file mode 100644 index 000000000..fbaceecaf Binary files /dev/null and b/Resources/country_icon/KM.png differ diff --git a/Resources/country_icon/KM_SHINY.png b/Resources/country_icon/KM_SHINY.png new file mode 100644 index 000000000..eef9dcb3c Binary files /dev/null and b/Resources/country_icon/KM_SHINY.png differ diff --git a/Resources/country_icon/KN.png b/Resources/country_icon/KN.png new file mode 100644 index 000000000..27a1f7fca Binary files /dev/null and b/Resources/country_icon/KN.png differ diff --git a/Resources/country_icon/KN_SHINY.png b/Resources/country_icon/KN_SHINY.png new file mode 100644 index 000000000..55a0a88e7 Binary files /dev/null and b/Resources/country_icon/KN_SHINY.png differ diff --git a/Resources/country_icon/KP.png b/Resources/country_icon/KP.png new file mode 100644 index 000000000..bd631b8aa Binary files /dev/null and b/Resources/country_icon/KP.png differ diff --git a/Resources/country_icon/KP_SHINY.png b/Resources/country_icon/KP_SHINY.png new file mode 100644 index 000000000..8323a97ed Binary files /dev/null and b/Resources/country_icon/KP_SHINY.png differ diff --git a/Resources/country_icon/KR.png b/Resources/country_icon/KR.png new file mode 100644 index 000000000..58b00b580 Binary files /dev/null and b/Resources/country_icon/KR.png differ diff --git a/Resources/country_icon/KR_SHINY.png b/Resources/country_icon/KR_SHINY.png new file mode 100644 index 000000000..f6f6baaf0 Binary files /dev/null and b/Resources/country_icon/KR_SHINY.png differ diff --git a/Resources/country_icon/KW.png b/Resources/country_icon/KW.png new file mode 100644 index 000000000..7ac9ab13a Binary files /dev/null and b/Resources/country_icon/KW.png differ diff --git a/Resources/country_icon/KW_SHINY.png b/Resources/country_icon/KW_SHINY.png new file mode 100644 index 000000000..3e899f6f4 Binary files /dev/null and b/Resources/country_icon/KW_SHINY.png differ diff --git a/Resources/country_icon/KY.png b/Resources/country_icon/KY.png new file mode 100644 index 000000000..fb4ea9bd1 Binary files /dev/null and b/Resources/country_icon/KY.png differ diff --git a/Resources/country_icon/KY_SHINY.png b/Resources/country_icon/KY_SHINY.png new file mode 100644 index 000000000..49e4c7c5d Binary files /dev/null and b/Resources/country_icon/KY_SHINY.png differ diff --git a/Resources/country_icon/KZ.png b/Resources/country_icon/KZ.png new file mode 100644 index 000000000..9891af676 Binary files /dev/null and b/Resources/country_icon/KZ.png differ diff --git a/Resources/country_icon/KZ_SHINY.png b/Resources/country_icon/KZ_SHINY.png new file mode 100644 index 000000000..04e0e429f Binary files /dev/null and b/Resources/country_icon/KZ_SHINY.png differ diff --git a/Resources/country_icon/LA.png b/Resources/country_icon/LA.png new file mode 100644 index 000000000..8905a7be7 Binary files /dev/null and b/Resources/country_icon/LA.png differ diff --git a/Resources/country_icon/LA_SHINY.png b/Resources/country_icon/LA_SHINY.png new file mode 100644 index 000000000..e3d22fd0c Binary files /dev/null and b/Resources/country_icon/LA_SHINY.png differ diff --git a/Resources/country_icon/LB.png b/Resources/country_icon/LB.png new file mode 100644 index 000000000..9486645fb Binary files /dev/null and b/Resources/country_icon/LB.png differ diff --git a/Resources/country_icon/LB_SHINY.png b/Resources/country_icon/LB_SHINY.png new file mode 100644 index 000000000..04d889cd4 Binary files /dev/null and b/Resources/country_icon/LB_SHINY.png differ diff --git a/Resources/country_icon/LC.png b/Resources/country_icon/LC.png new file mode 100644 index 000000000..7c03a0f11 Binary files /dev/null and b/Resources/country_icon/LC.png differ diff --git a/Resources/country_icon/LC_SHINY.png b/Resources/country_icon/LC_SHINY.png new file mode 100644 index 000000000..fbba84e56 Binary files /dev/null and b/Resources/country_icon/LC_SHINY.png differ diff --git a/Resources/country_icon/LI.png b/Resources/country_icon/LI.png new file mode 100644 index 000000000..1d9203e7d Binary files /dev/null and b/Resources/country_icon/LI.png differ diff --git a/Resources/country_icon/LI_SHINY.png b/Resources/country_icon/LI_SHINY.png new file mode 100644 index 000000000..78ddc1fdc Binary files /dev/null and b/Resources/country_icon/LI_SHINY.png differ diff --git a/Resources/country_icon/LK.png b/Resources/country_icon/LK.png new file mode 100644 index 000000000..e9b9c8775 Binary files /dev/null and b/Resources/country_icon/LK.png differ diff --git a/Resources/country_icon/LK_SHINY.png b/Resources/country_icon/LK_SHINY.png new file mode 100644 index 000000000..d393119c6 Binary files /dev/null and b/Resources/country_icon/LK_SHINY.png differ diff --git a/Resources/country_icon/LR.png b/Resources/country_icon/LR.png new file mode 100644 index 000000000..5a1f700fd Binary files /dev/null and b/Resources/country_icon/LR.png differ diff --git a/Resources/country_icon/LR_SHINY.png b/Resources/country_icon/LR_SHINY.png new file mode 100644 index 000000000..17954ee8a Binary files /dev/null and b/Resources/country_icon/LR_SHINY.png differ diff --git a/Resources/country_icon/LS.png b/Resources/country_icon/LS.png new file mode 100644 index 000000000..6c8b9f530 Binary files /dev/null and b/Resources/country_icon/LS.png differ diff --git a/Resources/country_icon/LS_SHINY.png b/Resources/country_icon/LS_SHINY.png new file mode 100644 index 000000000..9eca7935d Binary files /dev/null and b/Resources/country_icon/LS_SHINY.png differ diff --git a/Resources/country_icon/LT.png b/Resources/country_icon/LT.png new file mode 100644 index 000000000..ed53328e9 Binary files /dev/null and b/Resources/country_icon/LT.png differ diff --git a/Resources/country_icon/LT_SHINY.png b/Resources/country_icon/LT_SHINY.png new file mode 100644 index 000000000..3d2b52547 Binary files /dev/null and b/Resources/country_icon/LT_SHINY.png differ diff --git a/Resources/country_icon/LU.png b/Resources/country_icon/LU.png new file mode 100644 index 000000000..b28669f56 Binary files /dev/null and b/Resources/country_icon/LU.png differ diff --git a/Resources/country_icon/LU_SHINY.png b/Resources/country_icon/LU_SHINY.png new file mode 100644 index 000000000..36171c83c Binary files /dev/null and b/Resources/country_icon/LU_SHINY.png differ diff --git a/Resources/country_icon/LV.png b/Resources/country_icon/LV.png new file mode 100644 index 000000000..007cdce96 Binary files /dev/null and b/Resources/country_icon/LV.png differ diff --git a/Resources/country_icon/LV_SHINY.png b/Resources/country_icon/LV_SHINY.png new file mode 100644 index 000000000..89f459f7c Binary files /dev/null and b/Resources/country_icon/LV_SHINY.png differ diff --git a/Resources/country_icon/LY.png b/Resources/country_icon/LY.png new file mode 100644 index 000000000..6ebc28674 Binary files /dev/null and b/Resources/country_icon/LY.png differ diff --git a/Resources/country_icon/LY_SHINY.png b/Resources/country_icon/LY_SHINY.png new file mode 100644 index 000000000..58ad284da Binary files /dev/null and b/Resources/country_icon/LY_SHINY.png differ diff --git a/Resources/country_icon/MA.png b/Resources/country_icon/MA.png new file mode 100644 index 000000000..05ba8113e Binary files /dev/null and b/Resources/country_icon/MA.png differ diff --git a/Resources/country_icon/MA_SHINY.png b/Resources/country_icon/MA_SHINY.png new file mode 100644 index 000000000..055948e17 Binary files /dev/null and b/Resources/country_icon/MA_SHINY.png differ diff --git a/Resources/country_icon/MC.png b/Resources/country_icon/MC.png new file mode 100644 index 000000000..e938f433b Binary files /dev/null and b/Resources/country_icon/MC.png differ diff --git a/Resources/country_icon/MC_SHINY.png b/Resources/country_icon/MC_SHINY.png new file mode 100644 index 000000000..63ad1fcf4 Binary files /dev/null and b/Resources/country_icon/MC_SHINY.png differ diff --git a/Resources/country_icon/MD.png b/Resources/country_icon/MD.png new file mode 100644 index 000000000..20870c2eb Binary files /dev/null and b/Resources/country_icon/MD.png differ diff --git a/Resources/country_icon/MD_SHINY.png b/Resources/country_icon/MD_SHINY.png new file mode 100644 index 000000000..6713c3836 Binary files /dev/null and b/Resources/country_icon/MD_SHINY.png differ diff --git a/Resources/country_icon/ME.png b/Resources/country_icon/ME.png new file mode 100644 index 000000000..90be1f11a Binary files /dev/null and b/Resources/country_icon/ME.png differ diff --git a/Resources/country_icon/ME_SHINY.png b/Resources/country_icon/ME_SHINY.png new file mode 100644 index 000000000..663cd0706 Binary files /dev/null and b/Resources/country_icon/ME_SHINY.png differ diff --git a/Resources/country_icon/MF.png b/Resources/country_icon/MF.png new file mode 100644 index 000000000..73b52519c Binary files /dev/null and b/Resources/country_icon/MF.png differ diff --git a/Resources/country_icon/MF_SHINY.png b/Resources/country_icon/MF_SHINY.png new file mode 100644 index 000000000..af19531b9 Binary files /dev/null and b/Resources/country_icon/MF_SHINY.png differ diff --git a/Resources/country_icon/MG.png b/Resources/country_icon/MG.png new file mode 100644 index 000000000..404af7162 Binary files /dev/null and b/Resources/country_icon/MG.png differ diff --git a/Resources/country_icon/MG_SHINY.png b/Resources/country_icon/MG_SHINY.png new file mode 100644 index 000000000..78baaa8bc Binary files /dev/null and b/Resources/country_icon/MG_SHINY.png differ diff --git a/Resources/country_icon/MH.png b/Resources/country_icon/MH.png new file mode 100644 index 000000000..e93857aef Binary files /dev/null and b/Resources/country_icon/MH.png differ diff --git a/Resources/country_icon/MH_SHINY.png b/Resources/country_icon/MH_SHINY.png new file mode 100644 index 000000000..3ead7c0c3 Binary files /dev/null and b/Resources/country_icon/MH_SHINY.png differ diff --git a/Resources/country_icon/MK.png b/Resources/country_icon/MK.png new file mode 100644 index 000000000..a93dc0e12 Binary files /dev/null and b/Resources/country_icon/MK.png differ diff --git a/Resources/country_icon/MK_SHINY.png b/Resources/country_icon/MK_SHINY.png new file mode 100644 index 000000000..3bdb9a830 Binary files /dev/null and b/Resources/country_icon/MK_SHINY.png differ diff --git a/Resources/country_icon/ML.png b/Resources/country_icon/ML.png new file mode 100644 index 000000000..bc27e269a Binary files /dev/null and b/Resources/country_icon/ML.png differ diff --git a/Resources/country_icon/ML_SHINY.png b/Resources/country_icon/ML_SHINY.png new file mode 100644 index 000000000..a027a3c1a Binary files /dev/null and b/Resources/country_icon/ML_SHINY.png differ diff --git a/Resources/country_icon/MM.png b/Resources/country_icon/MM.png new file mode 100644 index 000000000..6ef221a47 Binary files /dev/null and b/Resources/country_icon/MM.png differ diff --git a/Resources/country_icon/MM_SHINY.png b/Resources/country_icon/MM_SHINY.png new file mode 100644 index 000000000..798d802fd Binary files /dev/null and b/Resources/country_icon/MM_SHINY.png differ diff --git a/Resources/country_icon/MN.png b/Resources/country_icon/MN.png new file mode 100644 index 000000000..1dc766a04 Binary files /dev/null and b/Resources/country_icon/MN.png differ diff --git a/Resources/country_icon/MN_SHINY.png b/Resources/country_icon/MN_SHINY.png new file mode 100644 index 000000000..2f7145553 Binary files /dev/null and b/Resources/country_icon/MN_SHINY.png differ diff --git a/Resources/country_icon/MO.png b/Resources/country_icon/MO.png new file mode 100644 index 000000000..cc4f37956 Binary files /dev/null and b/Resources/country_icon/MO.png differ diff --git a/Resources/country_icon/MO_SHINY.png b/Resources/country_icon/MO_SHINY.png new file mode 100644 index 000000000..3d9e0e0a0 Binary files /dev/null and b/Resources/country_icon/MO_SHINY.png differ diff --git a/Resources/country_icon/MP.png b/Resources/country_icon/MP.png new file mode 100644 index 000000000..cfc726184 Binary files /dev/null and b/Resources/country_icon/MP.png differ diff --git a/Resources/country_icon/MP_SHINY.png b/Resources/country_icon/MP_SHINY.png new file mode 100644 index 000000000..5b59f9186 Binary files /dev/null and b/Resources/country_icon/MP_SHINY.png differ diff --git a/Resources/country_icon/MQ.png b/Resources/country_icon/MQ.png new file mode 100644 index 000000000..c90ff2ae6 Binary files /dev/null and b/Resources/country_icon/MQ.png differ diff --git a/Resources/country_icon/MQ_SHINY.png b/Resources/country_icon/MQ_SHINY.png new file mode 100644 index 000000000..45766c26d Binary files /dev/null and b/Resources/country_icon/MQ_SHINY.png differ diff --git a/Resources/country_icon/MR.png b/Resources/country_icon/MR.png new file mode 100644 index 000000000..f5866f88e Binary files /dev/null and b/Resources/country_icon/MR.png differ diff --git a/Resources/country_icon/MR_SHINY.png b/Resources/country_icon/MR_SHINY.png new file mode 100644 index 000000000..e5f0792e6 Binary files /dev/null and b/Resources/country_icon/MR_SHINY.png differ diff --git a/Resources/country_icon/MS.png b/Resources/country_icon/MS.png new file mode 100644 index 000000000..f63321261 Binary files /dev/null and b/Resources/country_icon/MS.png differ diff --git a/Resources/country_icon/MS_SHINY.png b/Resources/country_icon/MS_SHINY.png new file mode 100644 index 000000000..7f9ee942d Binary files /dev/null and b/Resources/country_icon/MS_SHINY.png differ diff --git a/Resources/country_icon/MT.png b/Resources/country_icon/MT.png new file mode 100644 index 000000000..f633f295e Binary files /dev/null and b/Resources/country_icon/MT.png differ diff --git a/Resources/country_icon/MT_SHINY.png b/Resources/country_icon/MT_SHINY.png new file mode 100644 index 000000000..a44e22fa7 Binary files /dev/null and b/Resources/country_icon/MT_SHINY.png differ diff --git a/Resources/country_icon/MU.png b/Resources/country_icon/MU.png new file mode 100644 index 000000000..18fc541b0 Binary files /dev/null and b/Resources/country_icon/MU.png differ diff --git a/Resources/country_icon/MU_SHINY.png b/Resources/country_icon/MU_SHINY.png new file mode 100644 index 000000000..1c2741155 Binary files /dev/null and b/Resources/country_icon/MU_SHINY.png differ diff --git a/Resources/country_icon/MV.png b/Resources/country_icon/MV.png new file mode 100644 index 000000000..703aa75e6 Binary files /dev/null and b/Resources/country_icon/MV.png differ diff --git a/Resources/country_icon/MV_SHINY.png b/Resources/country_icon/MV_SHINY.png new file mode 100644 index 000000000..4e924019e Binary files /dev/null and b/Resources/country_icon/MV_SHINY.png differ diff --git a/Resources/country_icon/MW.png b/Resources/country_icon/MW.png new file mode 100644 index 000000000..10e134a69 Binary files /dev/null and b/Resources/country_icon/MW.png differ diff --git a/Resources/country_icon/MW_SHINY.png b/Resources/country_icon/MW_SHINY.png new file mode 100644 index 000000000..149a1d151 Binary files /dev/null and b/Resources/country_icon/MW_SHINY.png differ diff --git a/Resources/country_icon/MX.png b/Resources/country_icon/MX.png new file mode 100644 index 000000000..5a8e4b4de Binary files /dev/null and b/Resources/country_icon/MX.png differ diff --git a/Resources/country_icon/MX_SHINY.png b/Resources/country_icon/MX_SHINY.png new file mode 100644 index 000000000..86f127205 Binary files /dev/null and b/Resources/country_icon/MX_SHINY.png differ diff --git a/Resources/country_icon/MY.png b/Resources/country_icon/MY.png new file mode 100644 index 000000000..51606fa87 Binary files /dev/null and b/Resources/country_icon/MY.png differ diff --git a/Resources/country_icon/MY_SHINY.png b/Resources/country_icon/MY_SHINY.png new file mode 100644 index 000000000..7ba7b031b Binary files /dev/null and b/Resources/country_icon/MY_SHINY.png differ diff --git a/Resources/country_icon/MZ.png b/Resources/country_icon/MZ.png new file mode 100644 index 000000000..2825be910 Binary files /dev/null and b/Resources/country_icon/MZ.png differ diff --git a/Resources/country_icon/MZ_SHINY.png b/Resources/country_icon/MZ_SHINY.png new file mode 100644 index 000000000..f20e52545 Binary files /dev/null and b/Resources/country_icon/MZ_SHINY.png differ diff --git a/Resources/country_icon/NA.png b/Resources/country_icon/NA.png new file mode 100644 index 000000000..6ab06d177 Binary files /dev/null and b/Resources/country_icon/NA.png differ diff --git a/Resources/country_icon/NA_SHINY.png b/Resources/country_icon/NA_SHINY.png new file mode 100644 index 000000000..100b38e79 Binary files /dev/null and b/Resources/country_icon/NA_SHINY.png differ diff --git a/Resources/country_icon/NC.png b/Resources/country_icon/NC.png new file mode 100644 index 000000000..36f9c702f Binary files /dev/null and b/Resources/country_icon/NC.png differ diff --git a/Resources/country_icon/NC_SHINY.png b/Resources/country_icon/NC_SHINY.png new file mode 100644 index 000000000..2c8bb2afe Binary files /dev/null and b/Resources/country_icon/NC_SHINY.png differ diff --git a/Resources/country_icon/NE.png b/Resources/country_icon/NE.png new file mode 100644 index 000000000..2b46f7a39 Binary files /dev/null and b/Resources/country_icon/NE.png differ diff --git a/Resources/country_icon/NE_SHINY.png b/Resources/country_icon/NE_SHINY.png new file mode 100644 index 000000000..8f501cd17 Binary files /dev/null and b/Resources/country_icon/NE_SHINY.png differ diff --git a/Resources/country_icon/NF.png b/Resources/country_icon/NF.png new file mode 100644 index 000000000..2bca9549d Binary files /dev/null and b/Resources/country_icon/NF.png differ diff --git a/Resources/country_icon/NF_SHINY.png b/Resources/country_icon/NF_SHINY.png new file mode 100644 index 000000000..be1ed1032 Binary files /dev/null and b/Resources/country_icon/NF_SHINY.png differ diff --git a/Resources/country_icon/NG.png b/Resources/country_icon/NG.png new file mode 100644 index 000000000..14eef7997 Binary files /dev/null and b/Resources/country_icon/NG.png differ diff --git a/Resources/country_icon/NG_SHINY.png b/Resources/country_icon/NG_SHINY.png new file mode 100644 index 000000000..4a00307d1 Binary files /dev/null and b/Resources/country_icon/NG_SHINY.png differ diff --git a/Resources/country_icon/NI.png b/Resources/country_icon/NI.png new file mode 100644 index 000000000..1dcb912e5 Binary files /dev/null and b/Resources/country_icon/NI.png differ diff --git a/Resources/country_icon/NI_SHINY.png b/Resources/country_icon/NI_SHINY.png new file mode 100644 index 000000000..709fcc6f4 Binary files /dev/null and b/Resources/country_icon/NI_SHINY.png differ diff --git a/Resources/country_icon/NL.png b/Resources/country_icon/NL.png new file mode 100644 index 000000000..0f98743cb Binary files /dev/null and b/Resources/country_icon/NL.png differ diff --git a/Resources/country_icon/NL_SHINY.png b/Resources/country_icon/NL_SHINY.png new file mode 100644 index 000000000..505b9ce81 Binary files /dev/null and b/Resources/country_icon/NL_SHINY.png differ diff --git a/Resources/country_icon/NO.png b/Resources/country_icon/NO.png new file mode 100644 index 000000000..f228e9f48 Binary files /dev/null and b/Resources/country_icon/NO.png differ diff --git a/Resources/country_icon/NO_SHINY.png b/Resources/country_icon/NO_SHINY.png new file mode 100644 index 000000000..20d653425 Binary files /dev/null and b/Resources/country_icon/NO_SHINY.png differ diff --git a/Resources/country_icon/NP.png b/Resources/country_icon/NP.png new file mode 100644 index 000000000..3d896f915 Binary files /dev/null and b/Resources/country_icon/NP.png differ diff --git a/Resources/country_icon/NP_SHINY.png b/Resources/country_icon/NP_SHINY.png new file mode 100644 index 000000000..75c012e67 Binary files /dev/null and b/Resources/country_icon/NP_SHINY.png differ diff --git a/Resources/country_icon/NR.png b/Resources/country_icon/NR.png new file mode 100644 index 000000000..179fa7874 Binary files /dev/null and b/Resources/country_icon/NR.png differ diff --git a/Resources/country_icon/NR_SHINY.png b/Resources/country_icon/NR_SHINY.png new file mode 100644 index 000000000..a970507da Binary files /dev/null and b/Resources/country_icon/NR_SHINY.png differ diff --git a/Resources/country_icon/NU.png b/Resources/country_icon/NU.png new file mode 100644 index 000000000..7bb2da231 Binary files /dev/null and b/Resources/country_icon/NU.png differ diff --git a/Resources/country_icon/NU_SHINY.png b/Resources/country_icon/NU_SHINY.png new file mode 100644 index 000000000..cd3c5dc8f Binary files /dev/null and b/Resources/country_icon/NU_SHINY.png differ diff --git a/Resources/country_icon/NZ.png b/Resources/country_icon/NZ.png new file mode 100644 index 000000000..70091f3bf Binary files /dev/null and b/Resources/country_icon/NZ.png differ diff --git a/Resources/country_icon/NZ_SHINY.png b/Resources/country_icon/NZ_SHINY.png new file mode 100644 index 000000000..0c5a8e075 Binary files /dev/null and b/Resources/country_icon/NZ_SHINY.png differ diff --git a/Resources/country_icon/OM.png b/Resources/country_icon/OM.png new file mode 100644 index 000000000..d757f9086 Binary files /dev/null and b/Resources/country_icon/OM.png differ diff --git a/Resources/country_icon/OM_SHINY.png b/Resources/country_icon/OM_SHINY.png new file mode 100644 index 000000000..384def24e Binary files /dev/null and b/Resources/country_icon/OM_SHINY.png differ diff --git a/Resources/country_icon/PA.png b/Resources/country_icon/PA.png new file mode 100644 index 000000000..0908aac7f Binary files /dev/null and b/Resources/country_icon/PA.png differ diff --git a/Resources/country_icon/PA_SHINY.png b/Resources/country_icon/PA_SHINY.png new file mode 100644 index 000000000..e20a7430e Binary files /dev/null and b/Resources/country_icon/PA_SHINY.png differ diff --git a/Resources/country_icon/PE.png b/Resources/country_icon/PE.png new file mode 100644 index 000000000..ff9254200 Binary files /dev/null and b/Resources/country_icon/PE.png differ diff --git a/Resources/country_icon/PE_SHINY.png b/Resources/country_icon/PE_SHINY.png new file mode 100644 index 000000000..616b65572 Binary files /dev/null and b/Resources/country_icon/PE_SHINY.png differ diff --git a/Resources/country_icon/PF.png b/Resources/country_icon/PF.png new file mode 100644 index 000000000..dc3a828bd Binary files /dev/null and b/Resources/country_icon/PF.png differ diff --git a/Resources/country_icon/PF_SHINY.png b/Resources/country_icon/PF_SHINY.png new file mode 100644 index 000000000..2ad2502ea Binary files /dev/null and b/Resources/country_icon/PF_SHINY.png differ diff --git a/Resources/country_icon/PG.png b/Resources/country_icon/PG.png new file mode 100644 index 000000000..0f2c976ac Binary files /dev/null and b/Resources/country_icon/PG.png differ diff --git a/Resources/country_icon/PG_SHINY.png b/Resources/country_icon/PG_SHINY.png new file mode 100644 index 000000000..13dc48a3b Binary files /dev/null and b/Resources/country_icon/PG_SHINY.png differ diff --git a/Resources/country_icon/PH.png b/Resources/country_icon/PH.png new file mode 100644 index 000000000..9686b2550 Binary files /dev/null and b/Resources/country_icon/PH.png differ diff --git a/Resources/country_icon/PH_SHINY.png b/Resources/country_icon/PH_SHINY.png new file mode 100644 index 000000000..36b3612db Binary files /dev/null and b/Resources/country_icon/PH_SHINY.png differ diff --git a/Resources/country_icon/PK.png b/Resources/country_icon/PK.png new file mode 100644 index 000000000..d01eddf08 Binary files /dev/null and b/Resources/country_icon/PK.png differ diff --git a/Resources/country_icon/PK_SHINY.png b/Resources/country_icon/PK_SHINY.png new file mode 100644 index 000000000..317e02dbd Binary files /dev/null and b/Resources/country_icon/PK_SHINY.png differ diff --git a/Resources/country_icon/PL.png b/Resources/country_icon/PL.png new file mode 100644 index 000000000..b9807dcce Binary files /dev/null and b/Resources/country_icon/PL.png differ diff --git a/Resources/country_icon/PL_SHINY.png b/Resources/country_icon/PL_SHINY.png new file mode 100644 index 000000000..92cd1ca36 Binary files /dev/null and b/Resources/country_icon/PL_SHINY.png differ diff --git a/Resources/country_icon/PN.png b/Resources/country_icon/PN.png new file mode 100644 index 000000000..a27696fd1 Binary files /dev/null and b/Resources/country_icon/PN.png differ diff --git a/Resources/country_icon/PN_SHINY.png b/Resources/country_icon/PN_SHINY.png new file mode 100644 index 000000000..e26fad996 Binary files /dev/null and b/Resources/country_icon/PN_SHINY.png differ diff --git a/Resources/country_icon/PR.png b/Resources/country_icon/PR.png new file mode 100644 index 000000000..fdfc417be Binary files /dev/null and b/Resources/country_icon/PR.png differ diff --git a/Resources/country_icon/PR_SHINY.png b/Resources/country_icon/PR_SHINY.png new file mode 100644 index 000000000..b466682f1 Binary files /dev/null and b/Resources/country_icon/PR_SHINY.png differ diff --git a/Resources/country_icon/PS.png b/Resources/country_icon/PS.png new file mode 100644 index 000000000..205061fca Binary files /dev/null and b/Resources/country_icon/PS.png differ diff --git a/Resources/country_icon/PS_SHINY.png b/Resources/country_icon/PS_SHINY.png new file mode 100644 index 000000000..d95bacb85 Binary files /dev/null and b/Resources/country_icon/PS_SHINY.png differ diff --git a/Resources/country_icon/PT.png b/Resources/country_icon/PT.png new file mode 100644 index 000000000..8698cfaa8 Binary files /dev/null and b/Resources/country_icon/PT.png differ diff --git a/Resources/country_icon/PT_SHINY.png b/Resources/country_icon/PT_SHINY.png new file mode 100644 index 000000000..6e4d73407 Binary files /dev/null and b/Resources/country_icon/PT_SHINY.png differ diff --git a/Resources/country_icon/PW.png b/Resources/country_icon/PW.png new file mode 100644 index 000000000..cf148a2a9 Binary files /dev/null and b/Resources/country_icon/PW.png differ diff --git a/Resources/country_icon/PW_SHINY.png b/Resources/country_icon/PW_SHINY.png new file mode 100644 index 000000000..6852102e1 Binary files /dev/null and b/Resources/country_icon/PW_SHINY.png differ diff --git a/Resources/country_icon/PY.png b/Resources/country_icon/PY.png new file mode 100644 index 000000000..fc4b2a21b Binary files /dev/null and b/Resources/country_icon/PY.png differ diff --git a/Resources/country_icon/PY_SHINY.png b/Resources/country_icon/PY_SHINY.png new file mode 100644 index 000000000..e4445d58c Binary files /dev/null and b/Resources/country_icon/PY_SHINY.png differ diff --git a/Resources/country_icon/QA.png b/Resources/country_icon/QA.png new file mode 100644 index 000000000..0a1876f2a Binary files /dev/null and b/Resources/country_icon/QA.png differ diff --git a/Resources/country_icon/QA_SHINY.png b/Resources/country_icon/QA_SHINY.png new file mode 100644 index 000000000..e3fa51f55 Binary files /dev/null and b/Resources/country_icon/QA_SHINY.png differ diff --git a/Resources/country_icon/RE.png b/Resources/country_icon/RE.png new file mode 100644 index 000000000..91a645e83 Binary files /dev/null and b/Resources/country_icon/RE.png differ diff --git a/Resources/country_icon/RE_SHINY.png b/Resources/country_icon/RE_SHINY.png new file mode 100644 index 000000000..f27f41143 Binary files /dev/null and b/Resources/country_icon/RE_SHINY.png differ diff --git a/Resources/country_icon/RO.png b/Resources/country_icon/RO.png new file mode 100644 index 000000000..cc2494d25 Binary files /dev/null and b/Resources/country_icon/RO.png differ diff --git a/Resources/country_icon/RO_SHINY.png b/Resources/country_icon/RO_SHINY.png new file mode 100644 index 000000000..e7fa4f5c9 Binary files /dev/null and b/Resources/country_icon/RO_SHINY.png differ diff --git a/Resources/country_icon/RS.png b/Resources/country_icon/RS.png new file mode 100644 index 000000000..8dca35407 Binary files /dev/null and b/Resources/country_icon/RS.png differ diff --git a/Resources/country_icon/RS_SHINY.png b/Resources/country_icon/RS_SHINY.png new file mode 100644 index 000000000..4c1e9f512 Binary files /dev/null and b/Resources/country_icon/RS_SHINY.png differ diff --git a/Resources/country_icon/RU.png b/Resources/country_icon/RU.png new file mode 100644 index 000000000..d36f4b8f9 Binary files /dev/null and b/Resources/country_icon/RU.png differ diff --git a/Resources/country_icon/RU_SHINY.png b/Resources/country_icon/RU_SHINY.png new file mode 100644 index 000000000..d9624ca1c Binary files /dev/null and b/Resources/country_icon/RU_SHINY.png differ diff --git a/Resources/country_icon/RW.png b/Resources/country_icon/RW.png new file mode 100644 index 000000000..2e87e41c9 Binary files /dev/null and b/Resources/country_icon/RW.png differ diff --git a/Resources/country_icon/RW_SHINY.png b/Resources/country_icon/RW_SHINY.png new file mode 100644 index 000000000..6f5f588bf Binary files /dev/null and b/Resources/country_icon/RW_SHINY.png differ diff --git a/Resources/country_icon/SA.png b/Resources/country_icon/SA.png new file mode 100644 index 000000000..f5a10f013 Binary files /dev/null and b/Resources/country_icon/SA.png differ diff --git a/Resources/country_icon/SA_SHINY.png b/Resources/country_icon/SA_SHINY.png new file mode 100644 index 000000000..d386dc0e4 Binary files /dev/null and b/Resources/country_icon/SA_SHINY.png differ diff --git a/Resources/country_icon/SB.png b/Resources/country_icon/SB.png new file mode 100644 index 000000000..4836b72a1 Binary files /dev/null and b/Resources/country_icon/SB.png differ diff --git a/Resources/country_icon/SB_SHINY.png b/Resources/country_icon/SB_SHINY.png new file mode 100644 index 000000000..1c2555340 Binary files /dev/null and b/Resources/country_icon/SB_SHINY.png differ diff --git a/Resources/country_icon/SC.png b/Resources/country_icon/SC.png new file mode 100644 index 000000000..52becc548 Binary files /dev/null and b/Resources/country_icon/SC.png differ diff --git a/Resources/country_icon/SC_SHINY.png b/Resources/country_icon/SC_SHINY.png new file mode 100644 index 000000000..dd27a2173 Binary files /dev/null and b/Resources/country_icon/SC_SHINY.png differ diff --git a/Resources/country_icon/SD.png b/Resources/country_icon/SD.png new file mode 100644 index 000000000..7d75423f9 Binary files /dev/null and b/Resources/country_icon/SD.png differ diff --git a/Resources/country_icon/SD_SHINY.png b/Resources/country_icon/SD_SHINY.png new file mode 100644 index 000000000..4cbba36ac Binary files /dev/null and b/Resources/country_icon/SD_SHINY.png differ diff --git a/Resources/country_icon/SE.png b/Resources/country_icon/SE.png new file mode 100644 index 000000000..df520500f Binary files /dev/null and b/Resources/country_icon/SE.png differ diff --git a/Resources/country_icon/SE_SHINY.png b/Resources/country_icon/SE_SHINY.png new file mode 100644 index 000000000..fd0b55b29 Binary files /dev/null and b/Resources/country_icon/SE_SHINY.png differ diff --git a/Resources/country_icon/SG.png b/Resources/country_icon/SG.png new file mode 100644 index 000000000..b23f6850b Binary files /dev/null and b/Resources/country_icon/SG.png differ diff --git a/Resources/country_icon/SG_SHINY.png b/Resources/country_icon/SG_SHINY.png new file mode 100644 index 000000000..a3dbbfc71 Binary files /dev/null and b/Resources/country_icon/SG_SHINY.png differ diff --git a/Resources/country_icon/SH.png b/Resources/country_icon/SH.png new file mode 100644 index 000000000..35c6ac79e Binary files /dev/null and b/Resources/country_icon/SH.png differ diff --git a/Resources/country_icon/SH_SHINY.png b/Resources/country_icon/SH_SHINY.png new file mode 100644 index 000000000..225041332 Binary files /dev/null and b/Resources/country_icon/SH_SHINY.png differ diff --git a/Resources/country_icon/SI.png b/Resources/country_icon/SI.png new file mode 100644 index 000000000..584888a16 Binary files /dev/null and b/Resources/country_icon/SI.png differ diff --git a/Resources/country_icon/SI_SHINY.png b/Resources/country_icon/SI_SHINY.png new file mode 100644 index 000000000..9938beef4 Binary files /dev/null and b/Resources/country_icon/SI_SHINY.png differ diff --git a/Resources/country_icon/SK.png b/Resources/country_icon/SK.png new file mode 100644 index 000000000..8d9d1d76d Binary files /dev/null and b/Resources/country_icon/SK.png differ diff --git a/Resources/country_icon/SK_SHINY.png b/Resources/country_icon/SK_SHINY.png new file mode 100644 index 000000000..bf7a247f0 Binary files /dev/null and b/Resources/country_icon/SK_SHINY.png differ diff --git a/Resources/country_icon/SL.png b/Resources/country_icon/SL.png new file mode 100644 index 000000000..3ff9f7c30 Binary files /dev/null and b/Resources/country_icon/SL.png differ diff --git a/Resources/country_icon/SL_SHINY.png b/Resources/country_icon/SL_SHINY.png new file mode 100644 index 000000000..f5ccc931c Binary files /dev/null and b/Resources/country_icon/SL_SHINY.png differ diff --git a/Resources/country_icon/SM.png b/Resources/country_icon/SM.png new file mode 100644 index 000000000..b058d14a3 Binary files /dev/null and b/Resources/country_icon/SM.png differ diff --git a/Resources/country_icon/SM_SHINY.png b/Resources/country_icon/SM_SHINY.png new file mode 100644 index 000000000..fc5036c9a Binary files /dev/null and b/Resources/country_icon/SM_SHINY.png differ diff --git a/Resources/country_icon/SN.png b/Resources/country_icon/SN.png new file mode 100644 index 000000000..0c6664f36 Binary files /dev/null and b/Resources/country_icon/SN.png differ diff --git a/Resources/country_icon/SN_SHINY.png b/Resources/country_icon/SN_SHINY.png new file mode 100644 index 000000000..861df133a Binary files /dev/null and b/Resources/country_icon/SN_SHINY.png differ diff --git a/Resources/country_icon/SO.png b/Resources/country_icon/SO.png new file mode 100644 index 000000000..8acf3de1b Binary files /dev/null and b/Resources/country_icon/SO.png differ diff --git a/Resources/country_icon/SO_SHINY.png b/Resources/country_icon/SO_SHINY.png new file mode 100644 index 000000000..ea7eb21c4 Binary files /dev/null and b/Resources/country_icon/SO_SHINY.png differ diff --git a/Resources/country_icon/SR.png b/Resources/country_icon/SR.png new file mode 100644 index 000000000..dca8d1b63 Binary files /dev/null and b/Resources/country_icon/SR.png differ diff --git a/Resources/country_icon/SR_SHINY.png b/Resources/country_icon/SR_SHINY.png new file mode 100644 index 000000000..4fa6114fb Binary files /dev/null and b/Resources/country_icon/SR_SHINY.png differ diff --git a/Resources/country_icon/SS.png b/Resources/country_icon/SS.png new file mode 100644 index 000000000..bdaa77cea Binary files /dev/null and b/Resources/country_icon/SS.png differ diff --git a/Resources/country_icon/SS_SHINY.png b/Resources/country_icon/SS_SHINY.png new file mode 100644 index 000000000..7e6448987 Binary files /dev/null and b/Resources/country_icon/SS_SHINY.png differ diff --git a/Resources/country_icon/ST.png b/Resources/country_icon/ST.png new file mode 100644 index 000000000..5fe3cb2f3 Binary files /dev/null and b/Resources/country_icon/ST.png differ diff --git a/Resources/country_icon/ST_SHINY.png b/Resources/country_icon/ST_SHINY.png new file mode 100644 index 000000000..34868539a Binary files /dev/null and b/Resources/country_icon/ST_SHINY.png differ diff --git a/Resources/country_icon/SV.png b/Resources/country_icon/SV.png new file mode 100644 index 000000000..78c554a21 Binary files /dev/null and b/Resources/country_icon/SV.png differ diff --git a/Resources/country_icon/SV_SHINY.png b/Resources/country_icon/SV_SHINY.png new file mode 100644 index 000000000..a3697967c Binary files /dev/null and b/Resources/country_icon/SV_SHINY.png differ diff --git a/Resources/country_icon/SY.png b/Resources/country_icon/SY.png new file mode 100644 index 000000000..cf21d7f8a Binary files /dev/null and b/Resources/country_icon/SY.png differ diff --git a/Resources/country_icon/SY_SHINY.png b/Resources/country_icon/SY_SHINY.png new file mode 100644 index 000000000..aee3c969b Binary files /dev/null and b/Resources/country_icon/SY_SHINY.png differ diff --git a/Resources/country_icon/SZ.png b/Resources/country_icon/SZ.png new file mode 100644 index 000000000..a1a9d5aec Binary files /dev/null and b/Resources/country_icon/SZ.png differ diff --git a/Resources/country_icon/SZ_SHINY.png b/Resources/country_icon/SZ_SHINY.png new file mode 100644 index 000000000..b89f4d1ce Binary files /dev/null and b/Resources/country_icon/SZ_SHINY.png differ diff --git a/Resources/country_icon/TC.png b/Resources/country_icon/TC.png new file mode 100644 index 000000000..10a979869 Binary files /dev/null and b/Resources/country_icon/TC.png differ diff --git a/Resources/country_icon/TC_SHINY.png b/Resources/country_icon/TC_SHINY.png new file mode 100644 index 000000000..f076b4abe Binary files /dev/null and b/Resources/country_icon/TC_SHINY.png differ diff --git a/Resources/country_icon/TD.png b/Resources/country_icon/TD.png new file mode 100644 index 000000000..09a123660 Binary files /dev/null and b/Resources/country_icon/TD.png differ diff --git a/Resources/country_icon/TD_SHINY.png b/Resources/country_icon/TD_SHINY.png new file mode 100644 index 000000000..8b17d5ce5 Binary files /dev/null and b/Resources/country_icon/TD_SHINY.png differ diff --git a/Resources/country_icon/TF.png b/Resources/country_icon/TF.png new file mode 100644 index 000000000..83b017bc2 Binary files /dev/null and b/Resources/country_icon/TF.png differ diff --git a/Resources/country_icon/TF_SHINY.png b/Resources/country_icon/TF_SHINY.png new file mode 100644 index 000000000..64a3748d7 Binary files /dev/null and b/Resources/country_icon/TF_SHINY.png differ diff --git a/Resources/country_icon/TG.png b/Resources/country_icon/TG.png new file mode 100644 index 000000000..406e51ba0 Binary files /dev/null and b/Resources/country_icon/TG.png differ diff --git a/Resources/country_icon/TG_SHINY.png b/Resources/country_icon/TG_SHINY.png new file mode 100644 index 000000000..00933c4d6 Binary files /dev/null and b/Resources/country_icon/TG_SHINY.png differ diff --git a/Resources/country_icon/TH.png b/Resources/country_icon/TH.png new file mode 100644 index 000000000..a50b0e446 Binary files /dev/null and b/Resources/country_icon/TH.png differ diff --git a/Resources/country_icon/TH_SHINY.png b/Resources/country_icon/TH_SHINY.png new file mode 100644 index 000000000..0ea4ed858 Binary files /dev/null and b/Resources/country_icon/TH_SHINY.png differ diff --git a/Resources/country_icon/TJ.png b/Resources/country_icon/TJ.png new file mode 100644 index 000000000..147d03f60 Binary files /dev/null and b/Resources/country_icon/TJ.png differ diff --git a/Resources/country_icon/TJ_SHINY.png b/Resources/country_icon/TJ_SHINY.png new file mode 100644 index 000000000..69222445c Binary files /dev/null and b/Resources/country_icon/TJ_SHINY.png differ diff --git a/Resources/country_icon/TK.png b/Resources/country_icon/TK.png new file mode 100644 index 000000000..6c965dd93 Binary files /dev/null and b/Resources/country_icon/TK.png differ diff --git a/Resources/country_icon/TK_SHINY.png b/Resources/country_icon/TK_SHINY.png new file mode 100644 index 000000000..466a67b2f Binary files /dev/null and b/Resources/country_icon/TK_SHINY.png differ diff --git a/Resources/country_icon/TL.png b/Resources/country_icon/TL.png new file mode 100644 index 000000000..ee26b56e1 Binary files /dev/null and b/Resources/country_icon/TL.png differ diff --git a/Resources/country_icon/TL_SHINY.png b/Resources/country_icon/TL_SHINY.png new file mode 100644 index 000000000..a8e5a43a2 Binary files /dev/null and b/Resources/country_icon/TL_SHINY.png differ diff --git a/Resources/country_icon/TM.png b/Resources/country_icon/TM.png new file mode 100644 index 000000000..c2f342a44 Binary files /dev/null and b/Resources/country_icon/TM.png differ diff --git a/Resources/country_icon/TM_SHINY.png b/Resources/country_icon/TM_SHINY.png new file mode 100644 index 000000000..e0813d0c7 Binary files /dev/null and b/Resources/country_icon/TM_SHINY.png differ diff --git a/Resources/country_icon/TN.png b/Resources/country_icon/TN.png new file mode 100644 index 000000000..cf508c64a Binary files /dev/null and b/Resources/country_icon/TN.png differ diff --git a/Resources/country_icon/TN_SHINY.png b/Resources/country_icon/TN_SHINY.png new file mode 100644 index 000000000..deacc5b66 Binary files /dev/null and b/Resources/country_icon/TN_SHINY.png differ diff --git a/Resources/country_icon/TO.png b/Resources/country_icon/TO.png new file mode 100644 index 000000000..36873d336 Binary files /dev/null and b/Resources/country_icon/TO.png differ diff --git a/Resources/country_icon/TO_SHINY.png b/Resources/country_icon/TO_SHINY.png new file mode 100644 index 000000000..f2e9026c9 Binary files /dev/null and b/Resources/country_icon/TO_SHINY.png differ diff --git a/Resources/country_icon/TR.png b/Resources/country_icon/TR.png new file mode 100644 index 000000000..c147631c8 Binary files /dev/null and b/Resources/country_icon/TR.png differ diff --git a/Resources/country_icon/TR_SHINY.png b/Resources/country_icon/TR_SHINY.png new file mode 100644 index 000000000..786d7364b Binary files /dev/null and b/Resources/country_icon/TR_SHINY.png differ diff --git a/Resources/country_icon/TT.png b/Resources/country_icon/TT.png new file mode 100644 index 000000000..2a2ec086f Binary files /dev/null and b/Resources/country_icon/TT.png differ diff --git a/Resources/country_icon/TT_SHINY.png b/Resources/country_icon/TT_SHINY.png new file mode 100644 index 000000000..99b1d60d5 Binary files /dev/null and b/Resources/country_icon/TT_SHINY.png differ diff --git a/Resources/country_icon/TV.png b/Resources/country_icon/TV.png new file mode 100644 index 000000000..b48b323f4 Binary files /dev/null and b/Resources/country_icon/TV.png differ diff --git a/Resources/country_icon/TV_SHINY.png b/Resources/country_icon/TV_SHINY.png new file mode 100644 index 000000000..3c3637889 Binary files /dev/null and b/Resources/country_icon/TV_SHINY.png differ diff --git a/Resources/country_icon/TW.png b/Resources/country_icon/TW.png new file mode 100644 index 000000000..03a51bcf4 Binary files /dev/null and b/Resources/country_icon/TW.png differ diff --git a/Resources/country_icon/TW_SHINY.png b/Resources/country_icon/TW_SHINY.png new file mode 100644 index 000000000..0bd41256f Binary files /dev/null and b/Resources/country_icon/TW_SHINY.png differ diff --git a/Resources/country_icon/TZ.png b/Resources/country_icon/TZ.png new file mode 100644 index 000000000..26389e15d Binary files /dev/null and b/Resources/country_icon/TZ.png differ diff --git a/Resources/country_icon/TZ_SHINY.png b/Resources/country_icon/TZ_SHINY.png new file mode 100644 index 000000000..c927c6565 Binary files /dev/null and b/Resources/country_icon/TZ_SHINY.png differ diff --git a/Resources/country_icon/UA.png b/Resources/country_icon/UA.png new file mode 100644 index 000000000..badac50f4 Binary files /dev/null and b/Resources/country_icon/UA.png differ diff --git a/Resources/country_icon/UA_SHINY.png b/Resources/country_icon/UA_SHINY.png new file mode 100644 index 000000000..e46611fac Binary files /dev/null and b/Resources/country_icon/UA_SHINY.png differ diff --git a/Resources/country_icon/UG.png b/Resources/country_icon/UG.png new file mode 100644 index 000000000..3a8f4e1a0 Binary files /dev/null and b/Resources/country_icon/UG.png differ diff --git a/Resources/country_icon/UG_SHINY.png b/Resources/country_icon/UG_SHINY.png new file mode 100644 index 000000000..209aa452c Binary files /dev/null and b/Resources/country_icon/UG_SHINY.png differ diff --git a/Resources/country_icon/UNKNOWN.png b/Resources/country_icon/UNKNOWN.png new file mode 100644 index 000000000..656e8dd34 Binary files /dev/null and b/Resources/country_icon/UNKNOWN.png differ diff --git a/Resources/country_icon/UNKNOWN_SHINY.png b/Resources/country_icon/UNKNOWN_SHINY.png new file mode 100644 index 000000000..2e663614b Binary files /dev/null and b/Resources/country_icon/UNKNOWN_SHINY.png differ diff --git a/Resources/country_icon/US.png b/Resources/country_icon/US.png new file mode 100644 index 000000000..b269593a3 Binary files /dev/null and b/Resources/country_icon/US.png differ diff --git a/Resources/country_icon/US_SHINY.png b/Resources/country_icon/US_SHINY.png new file mode 100644 index 000000000..2b04dcf7e Binary files /dev/null and b/Resources/country_icon/US_SHINY.png differ diff --git a/Resources/country_icon/UY.png b/Resources/country_icon/UY.png new file mode 100644 index 000000000..6789faad4 Binary files /dev/null and b/Resources/country_icon/UY.png differ diff --git a/Resources/country_icon/UY_SHINY.png b/Resources/country_icon/UY_SHINY.png new file mode 100644 index 000000000..0edaf691b Binary files /dev/null and b/Resources/country_icon/UY_SHINY.png differ diff --git a/Resources/country_icon/UZ.png b/Resources/country_icon/UZ.png new file mode 100644 index 000000000..0a0cc5181 Binary files /dev/null and b/Resources/country_icon/UZ.png differ diff --git a/Resources/country_icon/UZ_SHINY.png b/Resources/country_icon/UZ_SHINY.png new file mode 100644 index 000000000..19f5c3903 Binary files /dev/null and b/Resources/country_icon/UZ_SHINY.png differ diff --git a/Resources/country_icon/VA.png b/Resources/country_icon/VA.png new file mode 100644 index 000000000..6ebc4ee26 Binary files /dev/null and b/Resources/country_icon/VA.png differ diff --git a/Resources/country_icon/VA_SHINY.png b/Resources/country_icon/VA_SHINY.png new file mode 100644 index 000000000..ed1d70ad1 Binary files /dev/null and b/Resources/country_icon/VA_SHINY.png differ diff --git a/Resources/country_icon/VC.png b/Resources/country_icon/VC.png new file mode 100644 index 000000000..f0b561de9 Binary files /dev/null and b/Resources/country_icon/VC.png differ diff --git a/Resources/country_icon/VC_SHINY.png b/Resources/country_icon/VC_SHINY.png new file mode 100644 index 000000000..5191c65f8 Binary files /dev/null and b/Resources/country_icon/VC_SHINY.png differ diff --git a/Resources/country_icon/VE.png b/Resources/country_icon/VE.png new file mode 100644 index 000000000..6e3a46520 Binary files /dev/null and b/Resources/country_icon/VE.png differ diff --git a/Resources/country_icon/VE_SHINY.png b/Resources/country_icon/VE_SHINY.png new file mode 100644 index 000000000..e28cbf7da Binary files /dev/null and b/Resources/country_icon/VE_SHINY.png differ diff --git a/Resources/country_icon/VG.png b/Resources/country_icon/VG.png new file mode 100644 index 000000000..870a155ea Binary files /dev/null and b/Resources/country_icon/VG.png differ diff --git a/Resources/country_icon/VG_SHINY.png b/Resources/country_icon/VG_SHINY.png new file mode 100644 index 000000000..00c72f890 Binary files /dev/null and b/Resources/country_icon/VG_SHINY.png differ diff --git a/Resources/country_icon/VI.png b/Resources/country_icon/VI.png new file mode 100644 index 000000000..fcaf84e62 Binary files /dev/null and b/Resources/country_icon/VI.png differ diff --git a/Resources/country_icon/VI_SHINY.png b/Resources/country_icon/VI_SHINY.png new file mode 100644 index 000000000..bce202d2e Binary files /dev/null and b/Resources/country_icon/VI_SHINY.png differ diff --git a/Resources/country_icon/VN.png b/Resources/country_icon/VN.png new file mode 100644 index 000000000..6668916c2 Binary files /dev/null and b/Resources/country_icon/VN.png differ diff --git a/Resources/country_icon/VN_SHINY.png b/Resources/country_icon/VN_SHINY.png new file mode 100644 index 000000000..33385c12c Binary files /dev/null and b/Resources/country_icon/VN_SHINY.png differ diff --git a/Resources/country_icon/VU.png b/Resources/country_icon/VU.png new file mode 100644 index 000000000..b000f11b0 Binary files /dev/null and b/Resources/country_icon/VU.png differ diff --git a/Resources/country_icon/VU_SHINY.png b/Resources/country_icon/VU_SHINY.png new file mode 100644 index 000000000..08534b95d Binary files /dev/null and b/Resources/country_icon/VU_SHINY.png differ diff --git a/Resources/country_icon/WF.png b/Resources/country_icon/WF.png new file mode 100644 index 000000000..bf2c8682a Binary files /dev/null and b/Resources/country_icon/WF.png differ diff --git a/Resources/country_icon/WF_SHINY.png b/Resources/country_icon/WF_SHINY.png new file mode 100644 index 000000000..97678d89e Binary files /dev/null and b/Resources/country_icon/WF_SHINY.png differ diff --git a/Resources/country_icon/WS.png b/Resources/country_icon/WS.png new file mode 100644 index 000000000..c88f2e860 Binary files /dev/null and b/Resources/country_icon/WS.png differ diff --git a/Resources/country_icon/WS_SHINY.png b/Resources/country_icon/WS_SHINY.png new file mode 100644 index 000000000..520b84f4e Binary files /dev/null and b/Resources/country_icon/WS_SHINY.png differ diff --git a/Resources/country_icon/YE.png b/Resources/country_icon/YE.png new file mode 100644 index 000000000..eed64e038 Binary files /dev/null and b/Resources/country_icon/YE.png differ diff --git a/Resources/country_icon/YE_SHINY.png b/Resources/country_icon/YE_SHINY.png new file mode 100644 index 000000000..651c4f09e Binary files /dev/null and b/Resources/country_icon/YE_SHINY.png differ diff --git a/Resources/country_icon/YT.png b/Resources/country_icon/YT.png new file mode 100644 index 000000000..338607410 Binary files /dev/null and b/Resources/country_icon/YT.png differ diff --git a/Resources/country_icon/YT_SHINY.png b/Resources/country_icon/YT_SHINY.png new file mode 100644 index 000000000..dea0a0f71 Binary files /dev/null and b/Resources/country_icon/YT_SHINY.png differ diff --git a/Resources/country_icon/ZA.png b/Resources/country_icon/ZA.png new file mode 100644 index 000000000..be9909f26 Binary files /dev/null and b/Resources/country_icon/ZA.png differ diff --git a/Resources/country_icon/ZA_SHINY.png b/Resources/country_icon/ZA_SHINY.png new file mode 100644 index 000000000..177fe751d Binary files /dev/null and b/Resources/country_icon/ZA_SHINY.png differ diff --git a/Resources/country_icon/ZM.png b/Resources/country_icon/ZM.png new file mode 100644 index 000000000..04946ddfa Binary files /dev/null and b/Resources/country_icon/ZM.png differ diff --git a/Resources/country_icon/ZM_SHINY.png b/Resources/country_icon/ZM_SHINY.png new file mode 100644 index 000000000..26f99693a Binary files /dev/null and b/Resources/country_icon/ZM_SHINY.png differ diff --git a/Resources/country_icon/ZW.png b/Resources/country_icon/ZW.png new file mode 100644 index 000000000..52b47a4ea Binary files /dev/null and b/Resources/country_icon/ZW.png differ diff --git a/Resources/country_icon/ZW_SHINY.png b/Resources/country_icon/ZW_SHINY.png new file mode 100644 index 000000000..6cccf56f9 Binary files /dev/null and b/Resources/country_icon/ZW_SHINY.png differ diff --git a/Resources/crown_grid_icon.png b/Resources/crown_grid_icon.png new file mode 100644 index 000000000..66b801282 Binary files /dev/null and b/Resources/crown_grid_icon.png differ diff --git a/Resources/crown_icon.png b/Resources/crown_icon.png new file mode 100644 index 000000000..aa2ee8bf7 Binary files /dev/null and b/Resources/crown_icon.png differ diff --git a/Resources/delete.png b/Resources/delete.png new file mode 100644 index 000000000..724c13b87 Binary files /dev/null and b/Resources/delete.png differ diff --git a/Resources/delete_gray.png b/Resources/delete_gray.png new file mode 100644 index 000000000..d1e0154b9 Binary files /dev/null and b/Resources/delete_gray.png differ diff --git a/Resources/epic_grid_icon.png b/Resources/epic_grid_icon.png new file mode 100644 index 000000000..bcef13608 Binary files /dev/null and b/Resources/epic_grid_icon.png differ diff --git a/Resources/epic_icon.png b/Resources/epic_icon.png new file mode 100644 index 000000000..3c4080211 Binary files /dev/null and b/Resources/epic_icon.png differ diff --git a/Resources/epic_main_icon.png b/Resources/epic_main_icon.png new file mode 100644 index 000000000..3545c46cd Binary files /dev/null and b/Resources/epic_main_icon.png differ diff --git a/Resources/export.png b/Resources/export.png new file mode 100644 index 000000000..a1e684fa4 Binary files /dev/null and b/Resources/export.png differ diff --git a/Resources/export_gray.png b/Resources/export_gray.png new file mode 100644 index 000000000..e8d046338 Binary files /dev/null and b/Resources/export_gray.png differ diff --git a/fall.ico b/Resources/fall.ico similarity index 100% rename from fall.ico rename to Resources/fall.ico diff --git a/Resources/fall2.ico b/Resources/fall2.ico new file mode 100644 index 000000000..b81b6c0c5 Binary files /dev/null and b/Resources/fall2.ico differ diff --git a/Resources/fallalytics_icon.png b/Resources/fallalytics_icon.png new file mode 100644 index 000000000..4da8e540a Binary files /dev/null and b/Resources/fallalytics_icon.png differ diff --git a/Resources/fallguys_db_logo.png b/Resources/fallguys_db_logo.png new file mode 100644 index 000000000..3707c1c28 Binary files /dev/null and b/Resources/fallguys_db_logo.png differ diff --git a/Resources/fallguys_icon.png b/Resources/fallguys_icon.png new file mode 100644 index 000000000..79fe1482d Binary files /dev/null and b/Resources/fallguys_icon.png differ diff --git a/Resources/fallguys_official_icon.png b/Resources/fallguys_official_icon.png new file mode 100644 index 000000000..5e0ca7456 Binary files /dev/null and b/Resources/fallguys_official_icon.png differ diff --git a/Resources/fandom_icon.png b/Resources/fandom_icon.png new file mode 100644 index 000000000..caf747b82 Binary files /dev/null and b/Resources/fandom_icon.png differ diff --git a/Resources/filter_gray_icon.png b/Resources/filter_gray_icon.png new file mode 100644 index 000000000..3386f6a3b Binary files /dev/null and b/Resources/filter_gray_icon.png differ diff --git a/Resources/filter_icon.png b/Resources/filter_icon.png new file mode 100644 index 000000000..b0af25769 Binary files /dev/null and b/Resources/filter_icon.png differ diff --git a/Resources/final_gray_icon.png b/Resources/final_gray_icon.png new file mode 100644 index 000000000..8381bb830 Binary files /dev/null and b/Resources/final_gray_icon.png differ diff --git a/Resources/final_icon.png b/Resources/final_icon.png new file mode 100644 index 000000000..80afb0447 Binary files /dev/null and b/Resources/final_icon.png differ diff --git a/Resources/first_button_icon.png b/Resources/first_button_icon.png new file mode 100644 index 000000000..2fe954a0b Binary files /dev/null and b/Resources/first_button_icon.png differ diff --git a/Resources/font/NotoSansSC-Regular.otf b/Resources/font/NotoSansSC-Regular.otf new file mode 100644 index 000000000..dfc5c0303 Binary files /dev/null and b/Resources/font/NotoSansSC-Regular.otf differ diff --git a/Resources/font/PretendardJP-Medium.ttf b/Resources/font/PretendardJP-Medium.ttf new file mode 100644 index 000000000..abc0b83af Binary files /dev/null and b/Resources/font/PretendardJP-Medium.ttf differ diff --git a/Resources/font/TitanOne-Regular.ttf b/Resources/font/TitanOne-Regular.ttf new file mode 100644 index 000000000..c615c9be4 Binary files /dev/null and b/Resources/font/TitanOne-Regular.ttf differ diff --git a/Resources/github_gray_icon.png b/Resources/github_gray_icon.png new file mode 100644 index 000000000..24593a710 Binary files /dev/null and b/Resources/github_gray_icon.png differ diff --git a/Resources/github_icon.png b/Resources/github_icon.png new file mode 100644 index 000000000..9490ffc6d Binary files /dev/null and b/Resources/github_icon.png differ diff --git a/Resources/github_update_gray_icon.png b/Resources/github_update_gray_icon.png new file mode 100644 index 000000000..12107e499 Binary files /dev/null and b/Resources/github_update_gray_icon.png differ diff --git a/Resources/github_update_icon.png b/Resources/github_update_icon.png new file mode 100644 index 000000000..24074e1bb Binary files /dev/null and b/Resources/github_update_icon.png differ diff --git a/Resources/kudos_icon.png b/Resources/kudos_icon.png new file mode 100644 index 000000000..d0a6a0ed3 Binary files /dev/null and b/Resources/kudos_icon.png differ diff --git a/Resources/language_icon.png b/Resources/language_icon.png new file mode 100644 index 000000000..505aaed4b Binary files /dev/null and b/Resources/language_icon.png differ diff --git a/Resources/last_button_icon.png b/Resources/last_button_icon.png new file mode 100644 index 000000000..5fcab50c9 Binary files /dev/null and b/Resources/last_button_icon.png differ diff --git a/Resources/leaderboard_gray_icon.png b/Resources/leaderboard_gray_icon.png new file mode 100644 index 000000000..4fccd3be7 Binary files /dev/null and b/Resources/leaderboard_gray_icon.png differ diff --git a/Resources/leaderboard_icon.png b/Resources/leaderboard_icon.png new file mode 100644 index 000000000..3e5d5152f Binary files /dev/null and b/Resources/leaderboard_icon.png differ diff --git a/Resources/left_button_icon.png b/Resources/left_button_icon.png new file mode 100644 index 000000000..74750c991 Binary files /dev/null and b/Resources/left_button_icon.png differ diff --git a/Resources/link_gray_icon.png b/Resources/link_gray_icon.png new file mode 100644 index 000000000..992f82fca Binary files /dev/null and b/Resources/link_gray_icon.png differ diff --git a/Resources/link_icon.png b/Resources/link_icon.png new file mode 100644 index 000000000..db6278ae9 Binary files /dev/null and b/Resources/link_icon.png differ diff --git a/Resources/link_on_icon.png b/Resources/link_on_icon.png new file mode 100644 index 000000000..925972439 Binary files /dev/null and b/Resources/link_on_icon.png differ diff --git a/Resources/loading_1.png b/Resources/loading_1.png new file mode 100644 index 000000000..c17256bd6 Binary files /dev/null and b/Resources/loading_1.png differ diff --git a/Resources/loading_10.png b/Resources/loading_10.png new file mode 100644 index 000000000..ed0e7ac99 Binary files /dev/null and b/Resources/loading_10.png differ diff --git a/Resources/loading_10_dark.png b/Resources/loading_10_dark.png new file mode 100644 index 000000000..71ceb2501 Binary files /dev/null and b/Resources/loading_10_dark.png differ diff --git a/Resources/loading_1_dark.png b/Resources/loading_1_dark.png new file mode 100644 index 000000000..ded689d3b Binary files /dev/null and b/Resources/loading_1_dark.png differ diff --git a/Resources/loading_2.png b/Resources/loading_2.png new file mode 100644 index 000000000..a00f0906e Binary files /dev/null and b/Resources/loading_2.png differ diff --git a/Resources/loading_2_dark.png b/Resources/loading_2_dark.png new file mode 100644 index 000000000..7d022caac Binary files /dev/null and b/Resources/loading_2_dark.png differ diff --git a/Resources/loading_3.png b/Resources/loading_3.png new file mode 100644 index 000000000..529cd4449 Binary files /dev/null and b/Resources/loading_3.png differ diff --git a/Resources/loading_3_dark.png b/Resources/loading_3_dark.png new file mode 100644 index 000000000..8c5ca103b Binary files /dev/null and b/Resources/loading_3_dark.png differ diff --git a/Resources/loading_4.png b/Resources/loading_4.png new file mode 100644 index 000000000..3b007b834 Binary files /dev/null and b/Resources/loading_4.png differ diff --git a/Resources/loading_4_dark.png b/Resources/loading_4_dark.png new file mode 100644 index 000000000..1ed6753c8 Binary files /dev/null and b/Resources/loading_4_dark.png differ diff --git a/Resources/loading_5.png b/Resources/loading_5.png new file mode 100644 index 000000000..10cb73a10 Binary files /dev/null and b/Resources/loading_5.png differ diff --git a/Resources/loading_5_dark.png b/Resources/loading_5_dark.png new file mode 100644 index 000000000..71cf3814a Binary files /dev/null and b/Resources/loading_5_dark.png differ diff --git a/Resources/loading_6.png b/Resources/loading_6.png new file mode 100644 index 000000000..fbd2aca00 Binary files /dev/null and b/Resources/loading_6.png differ diff --git a/Resources/loading_6_dark.png b/Resources/loading_6_dark.png new file mode 100644 index 000000000..dc9226136 Binary files /dev/null and b/Resources/loading_6_dark.png differ diff --git a/Resources/loading_7.png b/Resources/loading_7.png new file mode 100644 index 000000000..2f6a88284 Binary files /dev/null and b/Resources/loading_7.png differ diff --git a/Resources/loading_7_dark.png b/Resources/loading_7_dark.png new file mode 100644 index 000000000..c235c4347 Binary files /dev/null and b/Resources/loading_7_dark.png differ diff --git a/Resources/loading_8.png b/Resources/loading_8.png new file mode 100644 index 000000000..f9e6f8d7c Binary files /dev/null and b/Resources/loading_8.png differ diff --git a/Resources/loading_8_dark.png b/Resources/loading_8_dark.png new file mode 100644 index 000000000..8ce497273 Binary files /dev/null and b/Resources/loading_8_dark.png differ diff --git a/Resources/loading_9.png b/Resources/loading_9.png new file mode 100644 index 000000000..ee81e81f2 Binary files /dev/null and b/Resources/loading_9.png differ diff --git a/Resources/loading_9_dark.png b/Resources/loading_9_dark.png new file mode 100644 index 000000000..657e9c78b Binary files /dev/null and b/Resources/loading_9_dark.png differ diff --git a/Resources/lollipop_plot_gray_icon.png b/Resources/lollipop_plot_gray_icon.png new file mode 100644 index 000000000..aaa2cb90f Binary files /dev/null and b/Resources/lollipop_plot_gray_icon.png differ diff --git a/Resources/lollipop_plot_icon.png b/Resources/lollipop_plot_icon.png new file mode 100644 index 000000000..93cabff40 Binary files /dev/null and b/Resources/lollipop_plot_icon.png differ diff --git a/Resources/lollipop_plot_teal_icon.png b/Resources/lollipop_plot_teal_icon.png new file mode 100644 index 000000000..a23579d8e Binary files /dev/null and b/Resources/lollipop_plot_teal_icon.png differ diff --git a/Resources/lost_temple_analyzer_icon.png b/Resources/lost_temple_analyzer_icon.png new file mode 100644 index 000000000..421e27771 Binary files /dev/null and b/Resources/lost_temple_analyzer_icon.png differ diff --git a/Resources/main_120_icon.png b/Resources/main_120_icon.png new file mode 100644 index 000000000..3a25b5e62 Binary files /dev/null and b/Resources/main_120_icon.png differ diff --git a/Resources/main_icon.png b/Resources/main_icon.png new file mode 100644 index 000000000..3ca11e18d Binary files /dev/null and b/Resources/main_icon.png differ diff --git a/Resources/medal_bronze.png b/Resources/medal_bronze.png new file mode 100644 index 000000000..bd9cd2493 Binary files /dev/null and b/Resources/medal_bronze.png differ diff --git a/Resources/medal_bronze_2nd_grid_icon.png b/Resources/medal_bronze_2nd_grid_icon.png new file mode 100644 index 000000000..20c6348c1 Binary files /dev/null and b/Resources/medal_bronze_2nd_grid_icon.png differ diff --git a/Resources/medal_bronze_3rd_grid_icon.png b/Resources/medal_bronze_3rd_grid_icon.png new file mode 100644 index 000000000..627b9a5d0 Binary files /dev/null and b/Resources/medal_bronze_3rd_grid_icon.png differ diff --git a/Resources/medal_bronze_grid_icon.png b/Resources/medal_bronze_grid_icon.png new file mode 100644 index 000000000..ed0fd1809 Binary files /dev/null and b/Resources/medal_bronze_grid_icon.png differ diff --git a/Resources/medal_bronze_original.png b/Resources/medal_bronze_original.png new file mode 100644 index 000000000..d39a004af Binary files /dev/null and b/Resources/medal_bronze_original.png differ diff --git a/Resources/medal_eliminated.png b/Resources/medal_eliminated.png new file mode 100644 index 000000000..54d2fef81 Binary files /dev/null and b/Resources/medal_eliminated.png differ diff --git a/Resources/medal_eliminated_grid_icon.png b/Resources/medal_eliminated_grid_icon.png new file mode 100644 index 000000000..848c61e8b Binary files /dev/null and b/Resources/medal_eliminated_grid_icon.png differ diff --git a/Resources/medal_eliminated_original.png b/Resources/medal_eliminated_original.png new file mode 100644 index 000000000..384047b5e Binary files /dev/null and b/Resources/medal_eliminated_original.png differ diff --git a/Resources/medal_gold.png b/Resources/medal_gold.png new file mode 100644 index 000000000..31d0e0469 Binary files /dev/null and b/Resources/medal_gold.png differ diff --git a/Resources/medal_gold_1st_grid_icon.png b/Resources/medal_gold_1st_grid_icon.png new file mode 100644 index 000000000..e3c1f8dab Binary files /dev/null and b/Resources/medal_gold_1st_grid_icon.png differ diff --git a/Resources/medal_gold_grid_icon.png b/Resources/medal_gold_grid_icon.png new file mode 100644 index 000000000..e8ca26756 Binary files /dev/null and b/Resources/medal_gold_grid_icon.png differ diff --git a/Resources/medal_gold_original.png b/Resources/medal_gold_original.png new file mode 100644 index 000000000..2e5429b6d Binary files /dev/null and b/Resources/medal_gold_original.png differ diff --git a/Resources/medal_pink.png b/Resources/medal_pink.png new file mode 100644 index 000000000..51818bac4 Binary files /dev/null and b/Resources/medal_pink.png differ diff --git a/Resources/medal_pink_grid_icon.png b/Resources/medal_pink_grid_icon.png new file mode 100644 index 000000000..816063798 Binary files /dev/null and b/Resources/medal_pink_grid_icon.png differ diff --git a/Resources/medal_pink_original.png b/Resources/medal_pink_original.png new file mode 100644 index 000000000..66d7fc605 Binary files /dev/null and b/Resources/medal_pink_original.png differ diff --git a/Resources/medal_silver.png b/Resources/medal_silver.png new file mode 100644 index 000000000..42addb6c7 Binary files /dev/null and b/Resources/medal_silver.png differ diff --git a/Resources/medal_silver_2nd_grid_icon.png b/Resources/medal_silver_2nd_grid_icon.png new file mode 100644 index 000000000..f9f9c718d Binary files /dev/null and b/Resources/medal_silver_2nd_grid_icon.png differ diff --git a/Resources/medal_silver_3rd_grid_icon.png b/Resources/medal_silver_3rd_grid_icon.png new file mode 100644 index 000000000..f04e554a2 Binary files /dev/null and b/Resources/medal_silver_3rd_grid_icon.png differ diff --git a/Resources/medal_silver_grid_icon.png b/Resources/medal_silver_grid_icon.png new file mode 100644 index 000000000..1ab1b780d Binary files /dev/null and b/Resources/medal_silver_grid_icon.png differ diff --git a/Resources/medal_silver_original.png b/Resources/medal_silver_original.png new file mode 100644 index 000000000..0f9a4d8b6 Binary files /dev/null and b/Resources/medal_silver_original.png differ diff --git a/Resources/mobile_icon.png b/Resources/mobile_icon.png new file mode 100644 index 000000000..46cf2377d Binary files /dev/null and b/Resources/mobile_icon.png differ diff --git a/Resources/move.png b/Resources/move.png new file mode 100644 index 000000000..cc500ac48 Binary files /dev/null and b/Resources/move.png differ diff --git a/Resources/move_gray.png b/Resources/move_gray.png new file mode 100644 index 000000000..c71fc6857 Binary files /dev/null and b/Resources/move_gray.png differ diff --git a/Resources/notify_sound/notify_sound_01.wav b/Resources/notify_sound/notify_sound_01.wav new file mode 100644 index 000000000..7f0005407 Binary files /dev/null and b/Resources/notify_sound/notify_sound_01.wav differ diff --git a/Resources/notify_sound/notify_sound_02.wav b/Resources/notify_sound/notify_sound_02.wav new file mode 100644 index 000000000..ba625dd41 Binary files /dev/null and b/Resources/notify_sound/notify_sound_02.wav differ diff --git a/Resources/notify_sound/notify_sound_03.wav b/Resources/notify_sound/notify_sound_03.wav new file mode 100644 index 000000000..2ab6f7bf3 Binary files /dev/null and b/Resources/notify_sound/notify_sound_03.wav differ diff --git a/Resources/notify_sound/notify_sound_04.wav b/Resources/notify_sound/notify_sound_04.wav new file mode 100644 index 000000000..7c9a4a18d Binary files /dev/null and b/Resources/notify_sound/notify_sound_04.wav differ diff --git a/Resources/number_0.png b/Resources/number_0.png new file mode 100644 index 000000000..02da7778c Binary files /dev/null and b/Resources/number_0.png differ diff --git a/Resources/number_1.png b/Resources/number_1.png new file mode 100644 index 000000000..6b4c4f848 Binary files /dev/null and b/Resources/number_1.png differ diff --git a/Resources/number_10.png b/Resources/number_10.png new file mode 100644 index 000000000..d80f2f3ec Binary files /dev/null and b/Resources/number_10.png differ diff --git a/Resources/number_2.png b/Resources/number_2.png new file mode 100644 index 000000000..5c27204b0 Binary files /dev/null and b/Resources/number_2.png differ diff --git a/Resources/number_3.png b/Resources/number_3.png new file mode 100644 index 000000000..c1a3f541f Binary files /dev/null and b/Resources/number_3.png differ diff --git a/Resources/number_4.png b/Resources/number_4.png new file mode 100644 index 000000000..75640e7df Binary files /dev/null and b/Resources/number_4.png differ diff --git a/Resources/number_5.png b/Resources/number_5.png new file mode 100644 index 000000000..f83066035 Binary files /dev/null and b/Resources/number_5.png differ diff --git a/Resources/number_6.png b/Resources/number_6.png new file mode 100644 index 000000000..ff5d3d6df Binary files /dev/null and b/Resources/number_6.png differ diff --git a/Resources/number_7.png b/Resources/number_7.png new file mode 100644 index 000000000..9174362b1 Binary files /dev/null and b/Resources/number_7.png differ diff --git a/Resources/number_8.png b/Resources/number_8.png new file mode 100644 index 000000000..5a63ba302 Binary files /dev/null and b/Resources/number_8.png differ diff --git a/Resources/number_9.png b/Resources/number_9.png new file mode 100644 index 000000000..60678b685 Binary files /dev/null and b/Resources/number_9.png differ diff --git a/Resources/overlay/background.png b/Resources/overlay/background.png new file mode 100644 index 000000000..f59cc4b9d Binary files /dev/null and b/Resources/overlay/background.png differ diff --git a/Resources/overlay/background_candycane.png b/Resources/overlay/background_candycane.png new file mode 100644 index 000000000..a1ecd0986 Binary files /dev/null and b/Resources/overlay/background_candycane.png differ diff --git a/Resources/overlay/background_coffee.png b/Resources/overlay/background_coffee.png new file mode 100644 index 000000000..31f627881 Binary files /dev/null and b/Resources/overlay/background_coffee.png differ diff --git a/Resources/overlay/background_dove.png b/Resources/overlay/background_dove.png new file mode 100644 index 000000000..f3eb6ace4 Binary files /dev/null and b/Resources/overlay/background_dove.png differ diff --git a/Resources/overlay/background_fall_guys_logo.png b/Resources/overlay/background_fall_guys_logo.png new file mode 100644 index 000000000..5f1d6f808 Binary files /dev/null and b/Resources/overlay/background_fall_guys_logo.png differ diff --git a/Resources/overlay/background_helter_skelter.png b/Resources/overlay/background_helter_skelter.png new file mode 100644 index 000000000..6d6063270 Binary files /dev/null and b/Resources/overlay/background_helter_skelter.png differ diff --git a/Resources/overlay/background_hex_a_thon.png b/Resources/overlay/background_hex_a_thon.png new file mode 100644 index 000000000..8e83918f5 Binary files /dev/null and b/Resources/overlay/background_hex_a_thon.png differ diff --git a/Resources/overlay/background_ill_be_slime.png b/Resources/overlay/background_ill_be_slime.png new file mode 100644 index 000000000..deeb32980 Binary files /dev/null and b/Resources/overlay/background_ill_be_slime.png differ diff --git a/Resources/overlay/background_mockingbird.png b/Resources/overlay/background_mockingbird.png new file mode 100644 index 000000000..94469c002 Binary files /dev/null and b/Resources/overlay/background_mockingbird.png differ diff --git a/Resources/overlay/background_monarch.png b/Resources/overlay/background_monarch.png new file mode 100644 index 000000000..3e5979e80 Binary files /dev/null and b/Resources/overlay/background_monarch.png differ diff --git a/Resources/overlay/background_newlove.png b/Resources/overlay/background_newlove.png new file mode 100644 index 000000000..c6c5ed0a2 Binary files /dev/null and b/Resources/overlay/background_newlove.png differ diff --git a/Resources/overlay/background_parade_guy.png b/Resources/overlay/background_parade_guy.png new file mode 100644 index 000000000..3e79b703b Binary files /dev/null and b/Resources/overlay/background_parade_guy.png differ diff --git a/Resources/overlay/background_party_pegwin.png b/Resources/overlay/background_party_pegwin.png new file mode 100644 index 000000000..029c15356 Binary files /dev/null and b/Resources/overlay/background_party_pegwin.png differ diff --git a/Resources/overlay/background_penguin.png b/Resources/overlay/background_penguin.png new file mode 100644 index 000000000..01b761ff3 Binary files /dev/null and b/Resources/overlay/background_penguin.png differ diff --git a/Resources/overlay/background_suits_you.png b/Resources/overlay/background_suits_you.png new file mode 100644 index 000000000..0d393052a Binary files /dev/null and b/Resources/overlay/background_suits_you.png differ diff --git a/Resources/overlay/background_sunny_guys.png b/Resources/overlay/background_sunny_guys.png new file mode 100644 index 000000000..351a43473 Binary files /dev/null and b/Resources/overlay/background_sunny_guys.png differ diff --git a/Resources/overlay/background_super_mario_bros.png b/Resources/overlay/background_super_mario_bros.png new file mode 100644 index 000000000..5c993c7f0 Binary files /dev/null and b/Resources/overlay/background_super_mario_bros.png differ diff --git a/Resources/overlay/background_super_mario_bros_3.png b/Resources/overlay/background_super_mario_bros_3.png new file mode 100644 index 000000000..99db86d75 Binary files /dev/null and b/Resources/overlay/background_super_mario_bros_3.png differ diff --git a/Resources/overlay/background_ta_da.png b/Resources/overlay/background_ta_da.png new file mode 100644 index 000000000..6155e1482 Binary files /dev/null and b/Resources/overlay/background_ta_da.png differ diff --git a/Resources/overlay/background_timeattack.png b/Resources/overlay/background_timeattack.png new file mode 100644 index 000000000..5cbe3df87 Binary files /dev/null and b/Resources/overlay/background_timeattack.png differ diff --git a/Resources/overlay/background_wallpaper_01.png b/Resources/overlay/background_wallpaper_01.png new file mode 100644 index 000000000..71cf34027 Binary files /dev/null and b/Resources/overlay/background_wallpaper_01.png differ diff --git a/Resources/overlay/background_wallpaper_02.png b/Resources/overlay/background_wallpaper_02.png new file mode 100644 index 000000000..39a453cd9 Binary files /dev/null and b/Resources/overlay/background_wallpaper_02.png differ diff --git a/Resources/overlay/background_wallpaper_03.png b/Resources/overlay/background_wallpaper_03.png new file mode 100644 index 000000000..5a84eb660 Binary files /dev/null and b/Resources/overlay/background_wallpaper_03.png differ diff --git a/Resources/overlay/background_watermelon.png b/Resources/overlay/background_watermelon.png new file mode 100644 index 000000000..e4abc230d Binary files /dev/null and b/Resources/overlay/background_watermelon.png differ diff --git a/Resources/overlay/tab_selected.png b/Resources/overlay/tab_selected.png new file mode 100644 index 000000000..819ae58d7 Binary files /dev/null and b/Resources/overlay/tab_selected.png differ diff --git a/Resources/overlay/tab_unselected.png b/Resources/overlay/tab_unselected.png new file mode 100644 index 000000000..ad61d942c Binary files /dev/null and b/Resources/overlay/tab_unselected.png differ diff --git a/Resources/overlay/tab_unselected_candycane.png b/Resources/overlay/tab_unselected_candycane.png new file mode 100644 index 000000000..5e92d1ce7 Binary files /dev/null and b/Resources/overlay/tab_unselected_candycane.png differ diff --git a/Resources/overlay/tab_unselected_coffee.png b/Resources/overlay/tab_unselected_coffee.png new file mode 100644 index 000000000..c52db8bff Binary files /dev/null and b/Resources/overlay/tab_unselected_coffee.png differ diff --git a/Resources/overlay/tab_unselected_dove.png b/Resources/overlay/tab_unselected_dove.png new file mode 100644 index 000000000..87a8b24b0 Binary files /dev/null and b/Resources/overlay/tab_unselected_dove.png differ diff --git a/Resources/overlay/tab_unselected_fall_guys_logo.png b/Resources/overlay/tab_unselected_fall_guys_logo.png new file mode 100644 index 000000000..b2620fb34 Binary files /dev/null and b/Resources/overlay/tab_unselected_fall_guys_logo.png differ diff --git a/Resources/overlay/tab_unselected_helter_skelter.png b/Resources/overlay/tab_unselected_helter_skelter.png new file mode 100644 index 000000000..f00966cac Binary files /dev/null and b/Resources/overlay/tab_unselected_helter_skelter.png differ diff --git a/Resources/overlay/tab_unselected_hex_a_thon.png b/Resources/overlay/tab_unselected_hex_a_thon.png new file mode 100644 index 000000000..081794093 Binary files /dev/null and b/Resources/overlay/tab_unselected_hex_a_thon.png differ diff --git a/Resources/overlay/tab_unselected_ill_be_slime.png b/Resources/overlay/tab_unselected_ill_be_slime.png new file mode 100644 index 000000000..461a4b4f7 Binary files /dev/null and b/Resources/overlay/tab_unselected_ill_be_slime.png differ diff --git a/Resources/overlay/tab_unselected_mockingbird.png b/Resources/overlay/tab_unselected_mockingbird.png new file mode 100644 index 000000000..d4cb459a3 Binary files /dev/null and b/Resources/overlay/tab_unselected_mockingbird.png differ diff --git a/Resources/overlay/tab_unselected_monarch.png b/Resources/overlay/tab_unselected_monarch.png new file mode 100644 index 000000000..f9d56dc16 Binary files /dev/null and b/Resources/overlay/tab_unselected_monarch.png differ diff --git a/Resources/overlay/tab_unselected_newlove.png b/Resources/overlay/tab_unselected_newlove.png new file mode 100644 index 000000000..29a3a82fa Binary files /dev/null and b/Resources/overlay/tab_unselected_newlove.png differ diff --git a/Resources/overlay/tab_unselected_parade_guy.png b/Resources/overlay/tab_unselected_parade_guy.png new file mode 100644 index 000000000..092fbd439 Binary files /dev/null and b/Resources/overlay/tab_unselected_parade_guy.png differ diff --git a/Resources/overlay/tab_unselected_party_pegwin.png b/Resources/overlay/tab_unselected_party_pegwin.png new file mode 100644 index 000000000..d6096ca88 Binary files /dev/null and b/Resources/overlay/tab_unselected_party_pegwin.png differ diff --git a/Resources/overlay/tab_unselected_penguin.png b/Resources/overlay/tab_unselected_penguin.png new file mode 100644 index 000000000..c204e3b4a Binary files /dev/null and b/Resources/overlay/tab_unselected_penguin.png differ diff --git a/Resources/overlay/tab_unselected_suits_you.png b/Resources/overlay/tab_unselected_suits_you.png new file mode 100644 index 000000000..55a9f5821 Binary files /dev/null and b/Resources/overlay/tab_unselected_suits_you.png differ diff --git a/Resources/overlay/tab_unselected_sunny_guys.png b/Resources/overlay/tab_unselected_sunny_guys.png new file mode 100644 index 000000000..3be6a0ab8 Binary files /dev/null and b/Resources/overlay/tab_unselected_sunny_guys.png differ diff --git a/Resources/overlay/tab_unselected_super_mario_bros.png b/Resources/overlay/tab_unselected_super_mario_bros.png new file mode 100644 index 000000000..f017ff7fb Binary files /dev/null and b/Resources/overlay/tab_unselected_super_mario_bros.png differ diff --git a/Resources/overlay/tab_unselected_super_mario_bros_3.png b/Resources/overlay/tab_unselected_super_mario_bros_3.png new file mode 100644 index 000000000..e78776738 Binary files /dev/null and b/Resources/overlay/tab_unselected_super_mario_bros_3.png differ diff --git a/Resources/overlay/tab_unselected_ta_da.png b/Resources/overlay/tab_unselected_ta_da.png new file mode 100644 index 000000000..b0730692c Binary files /dev/null and b/Resources/overlay/tab_unselected_ta_da.png differ diff --git a/Resources/overlay/tab_unselected_timeattack.png b/Resources/overlay/tab_unselected_timeattack.png new file mode 100644 index 000000000..ef4619022 Binary files /dev/null and b/Resources/overlay/tab_unselected_timeattack.png differ diff --git a/Resources/overlay/tab_unselected_wallpaper_01.png b/Resources/overlay/tab_unselected_wallpaper_01.png new file mode 100644 index 000000000..59d9184b6 Binary files /dev/null and b/Resources/overlay/tab_unselected_wallpaper_01.png differ diff --git a/Resources/overlay/tab_unselected_wallpaper_02.png b/Resources/overlay/tab_unselected_wallpaper_02.png new file mode 100644 index 000000000..29ac88ad8 Binary files /dev/null and b/Resources/overlay/tab_unselected_wallpaper_02.png differ diff --git a/Resources/overlay/tab_unselected_wallpaper_03.png b/Resources/overlay/tab_unselected_wallpaper_03.png new file mode 100644 index 000000000..186ee1b12 Binary files /dev/null and b/Resources/overlay/tab_unselected_wallpaper_03.png differ diff --git a/Resources/overlay/tab_unselected_watermelon.png b/Resources/overlay/tab_unselected_watermelon.png new file mode 100644 index 000000000..096187c0e Binary files /dev/null and b/Resources/overlay/tab_unselected_watermelon.png differ diff --git a/Resources/pc_icon.png b/Resources/pc_icon.png new file mode 100644 index 000000000..b7460ed81 Binary files /dev/null and b/Resources/pc_icon.png differ diff --git a/Resources/ping_100_icon.png b/Resources/ping_100_icon.png new file mode 100644 index 000000000..2051b26e3 Binary files /dev/null and b/Resources/ping_100_icon.png differ diff --git a/Resources/ping_200_icon.png b/Resources/ping_200_icon.png new file mode 100644 index 000000000..11d9a5488 Binary files /dev/null and b/Resources/ping_200_icon.png differ diff --git a/Resources/player_icon.png b/Resources/player_icon.png new file mode 100644 index 000000000..90342930d Binary files /dev/null and b/Resources/player_icon.png differ diff --git a/Resources/position_ne_off_icon.png b/Resources/position_ne_off_icon.png new file mode 100644 index 000000000..2ededa1b4 Binary files /dev/null and b/Resources/position_ne_off_icon.png differ diff --git a/Resources/position_ne_on_icon.png b/Resources/position_ne_on_icon.png new file mode 100644 index 000000000..5c41031f5 Binary files /dev/null and b/Resources/position_ne_on_icon.png differ diff --git a/Resources/position_nw_off_icon.png b/Resources/position_nw_off_icon.png new file mode 100644 index 000000000..0e53c8a3f Binary files /dev/null and b/Resources/position_nw_off_icon.png differ diff --git a/Resources/position_nw_on_icon.png b/Resources/position_nw_on_icon.png new file mode 100644 index 000000000..fb5f4a868 Binary files /dev/null and b/Resources/position_nw_on_icon.png differ diff --git a/Resources/position_se_off_icon.png b/Resources/position_se_off_icon.png new file mode 100644 index 000000000..9f8c1e1bb Binary files /dev/null and b/Resources/position_se_off_icon.png differ diff --git a/Resources/position_se_on_icon.png b/Resources/position_se_on_icon.png new file mode 100644 index 000000000..369ada528 Binary files /dev/null and b/Resources/position_se_on_icon.png differ diff --git a/Resources/position_sw_off_icon.png b/Resources/position_sw_off_icon.png new file mode 100644 index 000000000..e8506bb45 Binary files /dev/null and b/Resources/position_sw_off_icon.png differ diff --git a/Resources/position_sw_on_icon.png b/Resources/position_sw_on_icon.png new file mode 100644 index 000000000..f280e80ad Binary files /dev/null and b/Resources/position_sw_on_icon.png differ diff --git a/Resources/profile2_icon.png b/Resources/profile2_icon.png new file mode 100644 index 000000000..7070d8525 Binary files /dev/null and b/Resources/profile2_icon.png differ diff --git a/Resources/profile2_linked_icon.png b/Resources/profile2_linked_icon.png new file mode 100644 index 000000000..11b558342 Binary files /dev/null and b/Resources/profile2_linked_icon.png differ diff --git a/Resources/profile2_unlinked_icon.png b/Resources/profile2_unlinked_icon.png new file mode 100644 index 000000000..5e2bbe8b9 Binary files /dev/null and b/Resources/profile2_unlinked_icon.png differ diff --git a/Resources/profile_gray_icon.png b/Resources/profile_gray_icon.png new file mode 100644 index 000000000..bb7c5df0f Binary files /dev/null and b/Resources/profile_gray_icon.png differ diff --git a/Resources/profile_icon.png b/Resources/profile_icon.png new file mode 100644 index 000000000..326f7bb05 Binary files /dev/null and b/Resources/profile_icon.png differ diff --git a/Resources/ps_icon.png b/Resources/ps_icon.png new file mode 100644 index 000000000..73bb4a3d6 Binary files /dev/null and b/Resources/ps_icon.png differ diff --git a/Resources/reddit_icon.png b/Resources/reddit_icon.png new file mode 100644 index 000000000..7d5586030 Binary files /dev/null and b/Resources/reddit_icon.png differ diff --git a/Resources/refresh_icon.png b/Resources/refresh_icon.png new file mode 100644 index 000000000..eb140a857 Binary files /dev/null and b/Resources/refresh_icon.png differ diff --git a/Resources/report_icon.png b/Resources/report_icon.png new file mode 100644 index 000000000..25424bf1f Binary files /dev/null and b/Resources/report_icon.png differ diff --git a/Resources/right_button_icon.png b/Resources/right_button_icon.png new file mode 100644 index 000000000..56235ca14 Binary files /dev/null and b/Resources/right_button_icon.png differ diff --git a/Resources/roll_off_club_icon.png b/Resources/roll_off_club_icon.png new file mode 100644 index 000000000..6f408e738 Binary files /dev/null and b/Resources/roll_off_club_icon.png differ diff --git a/Resources/round_gray_icon.png b/Resources/round_gray_icon.png new file mode 100644 index 000000000..8d84b2db3 Binary files /dev/null and b/Resources/round_gray_icon.png differ diff --git a/Resources/round_icon.png b/Resources/round_icon.png new file mode 100644 index 000000000..d9c8ed6d7 Binary files /dev/null and b/Resources/round_icon.png differ diff --git a/Resources/round_icon/creative/icon_Creative.png b/Resources/round_icon/creative/icon_Creative.png new file mode 100644 index 000000000..ac0ca0643 Binary files /dev/null and b/Resources/round_icon/creative/icon_Creative.png differ diff --git a/Resources/round_icon/creative/icon_Creative_big.png b/Resources/round_icon/creative/icon_Creative_big.png new file mode 100644 index 000000000..af1c3db6d Binary files /dev/null and b/Resources/round_icon/creative/icon_Creative_big.png differ diff --git a/Resources/round_icon/creative/icon_Gauntlet.png b/Resources/round_icon/creative/icon_Gauntlet.png new file mode 100644 index 000000000..da9c7fa2f Binary files /dev/null and b/Resources/round_icon/creative/icon_Gauntlet.png differ diff --git a/Resources/round_icon/creative/icon_Gauntlet_big.png b/Resources/round_icon/creative/icon_Gauntlet_big.png new file mode 100644 index 000000000..1c09ffaf4 Binary files /dev/null and b/Resources/round_icon/creative/icon_Gauntlet_big.png differ diff --git a/Resources/round_icon/final/icon_Blast_Ball.png b/Resources/round_icon/final/icon_Blast_Ball.png new file mode 100644 index 000000000..8b2e522bb Binary files /dev/null and b/Resources/round_icon/final/icon_Blast_Ball.png differ diff --git a/Resources/round_icon/final/icon_Blast_Ball_big.png b/Resources/round_icon/final/icon_Blast_Ball_big.png new file mode 100644 index 000000000..ee5011e4e Binary files /dev/null and b/Resources/round_icon/final/icon_Blast_Ball_big.png differ diff --git a/Resources/round_icon/final/icon_FallMountain.png b/Resources/round_icon/final/icon_FallMountain.png new file mode 100644 index 000000000..f55e948c6 Binary files /dev/null and b/Resources/round_icon/final/icon_FallMountain.png differ diff --git a/Resources/round_icon/final/icon_FallMountain_big.png b/Resources/round_icon/final/icon_FallMountain_big.png new file mode 100644 index 000000000..974b8250b Binary files /dev/null and b/Resources/round_icon/final/icon_FallMountain_big.png differ diff --git a/Resources/round_icon/final/icon_Hex-A-Ring.png b/Resources/round_icon/final/icon_Hex-A-Ring.png new file mode 100644 index 000000000..ef132183c Binary files /dev/null and b/Resources/round_icon/final/icon_Hex-A-Ring.png differ diff --git a/Resources/round_icon/final/icon_Hex-A-Ring_big.png b/Resources/round_icon/final/icon_Hex-A-Ring_big.png new file mode 100644 index 000000000..d4eb5ee00 Binary files /dev/null and b/Resources/round_icon/final/icon_Hex-A-Ring_big.png differ diff --git a/Resources/round_icon/final/icon_Hex-A-Terrestrial.png b/Resources/round_icon/final/icon_Hex-A-Terrestrial.png new file mode 100644 index 000000000..5e4fb8d66 Binary files /dev/null and b/Resources/round_icon/final/icon_Hex-A-Terrestrial.png differ diff --git a/Resources/round_icon/final/icon_Hex-A-Terrestrial_big.png b/Resources/round_icon/final/icon_Hex-A-Terrestrial_big.png new file mode 100644 index 000000000..788666f3f Binary files /dev/null and b/Resources/round_icon/final/icon_Hex-A-Terrestrial_big.png differ diff --git a/Resources/round_icon/final/icon_HexAGone.png b/Resources/round_icon/final/icon_HexAGone.png new file mode 100644 index 000000000..d40f6df0d Binary files /dev/null and b/Resources/round_icon/final/icon_HexAGone.png differ diff --git a/Resources/round_icon/final/icon_HexAGone_big.png b/Resources/round_icon/final/icon_HexAGone_big.png new file mode 100644 index 000000000..b40a22cb5 Binary files /dev/null and b/Resources/round_icon/final/icon_HexAGone_big.png differ diff --git a/Resources/round_icon/final/icon_JumpShowdown.png b/Resources/round_icon/final/icon_JumpShowdown.png new file mode 100644 index 000000000..f035829f7 Binary files /dev/null and b/Resources/round_icon/final/icon_JumpShowdown.png differ diff --git a/Resources/round_icon/final/icon_JumpShowdown_big.png b/Resources/round_icon/final/icon_JumpShowdown_big.png new file mode 100644 index 000000000..b752879c5 Binary files /dev/null and b/Resources/round_icon/final/icon_JumpShowdown_big.png differ diff --git a/Resources/round_icon/final/icon_Kraken_Slam.png b/Resources/round_icon/final/icon_Kraken_Slam.png new file mode 100644 index 000000000..d6bb17891 Binary files /dev/null and b/Resources/round_icon/final/icon_Kraken_Slam.png differ diff --git a/Resources/round_icon/final/icon_Kraken_Slam_big.png b/Resources/round_icon/final/icon_Kraken_Slam_big.png new file mode 100644 index 000000000..ed6f506f4 Binary files /dev/null and b/Resources/round_icon/final/icon_Kraken_Slam_big.png differ diff --git a/Resources/round_icon/final/icon_LostTemple.png b/Resources/round_icon/final/icon_LostTemple.png new file mode 100644 index 000000000..a89d4a6c2 Binary files /dev/null and b/Resources/round_icon/final/icon_LostTemple.png differ diff --git a/Resources/round_icon/final/icon_LostTemple_big.png b/Resources/round_icon/final/icon_LostTemple_big.png new file mode 100644 index 000000000..f2fbe86cf Binary files /dev/null and b/Resources/round_icon/final/icon_LostTemple_big.png differ diff --git a/Resources/round_icon/final/icon_RollOff.png b/Resources/round_icon/final/icon_RollOff.png new file mode 100644 index 000000000..fd86af472 Binary files /dev/null and b/Resources/round_icon/final/icon_RollOff.png differ diff --git a/Resources/round_icon/final/icon_RollOff_big.png b/Resources/round_icon/final/icon_RollOff_big.png new file mode 100644 index 000000000..c65392065 Binary files /dev/null and b/Resources/round_icon/final/icon_RollOff_big.png differ diff --git a/Resources/round_icon/final/icon_RoyalFumble.png b/Resources/round_icon/final/icon_RoyalFumble.png new file mode 100644 index 000000000..c9e33719f Binary files /dev/null and b/Resources/round_icon/final/icon_RoyalFumble.png differ diff --git a/Resources/round_icon/final/icon_RoyalFumble_big.png b/Resources/round_icon/final/icon_RoyalFumble_big.png new file mode 100644 index 000000000..f8dca9045 Binary files /dev/null and b/Resources/round_icon/final/icon_RoyalFumble_big.png differ diff --git a/Resources/round_icon/final/icon_ThinIce.png b/Resources/round_icon/final/icon_ThinIce.png new file mode 100644 index 000000000..61c12f85c Binary files /dev/null and b/Resources/round_icon/final/icon_ThinIce.png differ diff --git a/Resources/round_icon/final/icon_ThinIce_big.png b/Resources/round_icon/final/icon_ThinIce_big.png new file mode 100644 index 000000000..9be676043 Binary files /dev/null and b/Resources/round_icon/final/icon_ThinIce_big.png differ diff --git a/Resources/round_icon/final/icon_TipToeFinale.png b/Resources/round_icon/final/icon_TipToeFinale.png new file mode 100644 index 000000000..541fc667f Binary files /dev/null and b/Resources/round_icon/final/icon_TipToeFinale.png differ diff --git a/Resources/round_icon/final/icon_TipToeFinale_big.png b/Resources/round_icon/final/icon_TipToeFinale_big.png new file mode 100644 index 000000000..c0c3cf5dc Binary files /dev/null and b/Resources/round_icon/final/icon_TipToeFinale_big.png differ diff --git a/Resources/round_icon/hunt/icon_Airtime.png b/Resources/round_icon/hunt/icon_Airtime.png new file mode 100644 index 000000000..144d1ed47 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Airtime.png differ diff --git a/Resources/round_icon/hunt/icon_Airtime_big.png b/Resources/round_icon/hunt/icon_Airtime_big.png new file mode 100644 index 000000000..f718b86e3 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Airtime_big.png differ diff --git a/Resources/round_icon/hunt/icon_Bean_Hill_Zone.png b/Resources/round_icon/hunt/icon_Bean_Hill_Zone.png new file mode 100644 index 000000000..1c853293b Binary files /dev/null and b/Resources/round_icon/hunt/icon_Bean_Hill_Zone.png differ diff --git a/Resources/round_icon/hunt/icon_Bean_Hill_Zone_big.png b/Resources/round_icon/hunt/icon_Bean_Hill_Zone_big.png new file mode 100644 index 000000000..169ed4ab3 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Bean_Hill_Zone_big.png differ diff --git a/Resources/round_icon/hunt/icon_Bounce_Party.png b/Resources/round_icon/hunt/icon_Bounce_Party.png new file mode 100644 index 000000000..ccfd44910 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Bounce_Party.png differ diff --git a/Resources/round_icon/hunt/icon_Bounce_Party_big.png b/Resources/round_icon/hunt/icon_Bounce_Party_big.png new file mode 100644 index 000000000..98994d9d9 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Bounce_Party_big.png differ diff --git a/Resources/round_icon/hunt/icon_BubbleTrouble.png b/Resources/round_icon/hunt/icon_BubbleTrouble.png new file mode 100644 index 000000000..3c89bcde5 Binary files /dev/null and b/Resources/round_icon/hunt/icon_BubbleTrouble.png differ diff --git a/Resources/round_icon/hunt/icon_BubbleTrouble_big.png b/Resources/round_icon/hunt/icon_BubbleTrouble_big.png new file mode 100644 index 000000000..b9b8d817c Binary files /dev/null and b/Resources/round_icon/hunt/icon_BubbleTrouble_big.png differ diff --git a/Resources/round_icon/hunt/icon_ButtonBashers.png b/Resources/round_icon/hunt/icon_ButtonBashers.png new file mode 100644 index 000000000..e7248ed5d Binary files /dev/null and b/Resources/round_icon/hunt/icon_ButtonBashers.png differ diff --git a/Resources/round_icon/hunt/icon_ButtonBashers_big.png b/Resources/round_icon/hunt/icon_ButtonBashers_big.png new file mode 100644 index 000000000..3a1fe7bf5 Binary files /dev/null and b/Resources/round_icon/hunt/icon_ButtonBashers_big.png differ diff --git a/Resources/round_icon/hunt/icon_Frantic_Factory.png b/Resources/round_icon/hunt/icon_Frantic_Factory.png new file mode 100644 index 000000000..3eaba8f16 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Frantic_Factory.png differ diff --git a/Resources/round_icon/hunt/icon_Frantic_Factory_big.png b/Resources/round_icon/hunt/icon_Frantic_Factory_big.png new file mode 100644 index 000000000..020ac9862 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Frantic_Factory_big.png differ diff --git a/Resources/round_icon/hunt/icon_Hoop_Chute.png b/Resources/round_icon/hunt/icon_Hoop_Chute.png new file mode 100644 index 000000000..97b7b30d5 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Hoop_Chute.png differ diff --git a/Resources/round_icon/hunt/icon_Hoop_Chute_big.png b/Resources/round_icon/hunt/icon_Hoop_Chute_big.png new file mode 100644 index 000000000..d7fbb2767 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Hoop_Chute_big.png differ diff --git a/Resources/round_icon/hunt/icon_HoopsieLegends.png b/Resources/round_icon/hunt/icon_HoopsieLegends.png new file mode 100644 index 000000000..bc2b8920b Binary files /dev/null and b/Resources/round_icon/hunt/icon_HoopsieLegends.png differ diff --git a/Resources/round_icon/hunt/icon_HoopsieLegends_big.png b/Resources/round_icon/hunt/icon_HoopsieLegends_big.png new file mode 100644 index 000000000..ec074946f Binary files /dev/null and b/Resources/round_icon/hunt/icon_HoopsieLegends_big.png differ diff --git a/Resources/round_icon/hunt/icon_Leading_Light.png b/Resources/round_icon/hunt/icon_Leading_Light.png new file mode 100644 index 000000000..18c7fd380 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Leading_Light.png differ diff --git a/Resources/round_icon/hunt/icon_Leading_Light_big.png b/Resources/round_icon/hunt/icon_Leading_Light_big.png new file mode 100644 index 000000000..dd4eeb44f Binary files /dev/null and b/Resources/round_icon/hunt/icon_Leading_Light_big.png differ diff --git a/Resources/round_icon/hunt/icon_PegwinPoolParty.png b/Resources/round_icon/hunt/icon_PegwinPoolParty.png new file mode 100644 index 000000000..810bb94f1 Binary files /dev/null and b/Resources/round_icon/hunt/icon_PegwinPoolParty.png differ diff --git a/Resources/round_icon/hunt/icon_PegwinPoolParty_big.png b/Resources/round_icon/hunt/icon_PegwinPoolParty_big.png new file mode 100644 index 000000000..1dbbe7780 Binary files /dev/null and b/Resources/round_icon/hunt/icon_PegwinPoolParty_big.png differ diff --git a/Resources/round_icon/hunt/icon_TailTag.png b/Resources/round_icon/hunt/icon_TailTag.png new file mode 100644 index 000000000..7a4a2db6d Binary files /dev/null and b/Resources/round_icon/hunt/icon_TailTag.png differ diff --git a/Resources/round_icon/hunt/icon_TailTag_big.png b/Resources/round_icon/hunt/icon_TailTag_big.png new file mode 100644 index 000000000..52c03f6ca Binary files /dev/null and b/Resources/round_icon/hunt/icon_TailTag_big.png differ diff --git a/Resources/round_icon/hunt/icon_Volleyfall.png b/Resources/round_icon/hunt/icon_Volleyfall.png new file mode 100644 index 000000000..d485e1e0c Binary files /dev/null and b/Resources/round_icon/hunt/icon_Volleyfall.png differ diff --git a/Resources/round_icon/hunt/icon_Volleyfall_big.png b/Resources/round_icon/hunt/icon_Volleyfall_big.png new file mode 100644 index 000000000..5dc62bdd6 Binary files /dev/null and b/Resources/round_icon/hunt/icon_Volleyfall_big.png differ diff --git a/Resources/round_icon/icon_Unknown.png b/Resources/round_icon/icon_Unknown.png new file mode 100644 index 000000000..96eba005f Binary files /dev/null and b/Resources/round_icon/icon_Unknown.png differ diff --git a/Resources/round_icon/icon_Unknown_big.png b/Resources/round_icon/icon_Unknown_big.png new file mode 100644 index 000000000..abeb51846 Binary files /dev/null and b/Resources/round_icon/icon_Unknown_big.png differ diff --git a/Resources/round_icon/invisibeans/icon_Sweet_Thieves.png b/Resources/round_icon/invisibeans/icon_Sweet_Thieves.png new file mode 100644 index 000000000..5f611c8b5 Binary files /dev/null and b/Resources/round_icon/invisibeans/icon_Sweet_Thieves.png differ diff --git a/Resources/round_icon/invisibeans/icon_Sweet_Thieves_big.png b/Resources/round_icon/invisibeans/icon_Sweet_Thieves_big.png new file mode 100644 index 000000000..5b85039c2 Binary files /dev/null and b/Resources/round_icon/invisibeans/icon_Sweet_Thieves_big.png differ diff --git a/Resources/round_icon/invisibeans/icon_Treat_Thieves.png b/Resources/round_icon/invisibeans/icon_Treat_Thieves.png new file mode 100644 index 000000000..2d56951d7 Binary files /dev/null and b/Resources/round_icon/invisibeans/icon_Treat_Thieves.png differ diff --git a/Resources/round_icon/invisibeans/icon_Treat_Thieves_big.png b/Resources/round_icon/invisibeans/icon_Treat_Thieves_big.png new file mode 100644 index 000000000..294f2b6fc Binary files /dev/null and b/Resources/round_icon/invisibeans/icon_Treat_Thieves_big.png differ diff --git a/Resources/round_icon/logic/icon_PerfectMatch.png b/Resources/round_icon/logic/icon_PerfectMatch.png new file mode 100644 index 000000000..553d39cf7 Binary files /dev/null and b/Resources/round_icon/logic/icon_PerfectMatch.png differ diff --git a/Resources/round_icon/logic/icon_PerfectMatch_big.png b/Resources/round_icon/logic/icon_PerfectMatch_big.png new file mode 100644 index 000000000..07b6ea686 Binary files /dev/null and b/Resources/round_icon/logic/icon_PerfectMatch_big.png differ diff --git a/Resources/round_icon/logic/icon_Pixel_Painters.png b/Resources/round_icon/logic/icon_Pixel_Painters.png new file mode 100644 index 000000000..b74236a01 Binary files /dev/null and b/Resources/round_icon/logic/icon_Pixel_Painters.png differ diff --git a/Resources/round_icon/logic/icon_Pixel_Painters_big.png b/Resources/round_icon/logic/icon_Pixel_Painters_big.png new file mode 100644 index 000000000..5cb659e18 Binary files /dev/null and b/Resources/round_icon/logic/icon_Pixel_Painters_big.png differ diff --git a/Resources/round_icon/logic/icon_SumFruit.png b/Resources/round_icon/logic/icon_SumFruit.png new file mode 100644 index 000000000..df75e8ee8 Binary files /dev/null and b/Resources/round_icon/logic/icon_SumFruit.png differ diff --git a/Resources/round_icon/logic/icon_SumFruit_big.png b/Resources/round_icon/logic/icon_SumFruit_big.png new file mode 100644 index 000000000..459440b13 Binary files /dev/null and b/Resources/round_icon/logic/icon_SumFruit_big.png differ diff --git a/Resources/round_icon/race/icon_BigFans.png b/Resources/round_icon/race/icon_BigFans.png new file mode 100644 index 000000000..4ee5367a4 Binary files /dev/null and b/Resources/round_icon/race/icon_BigFans.png differ diff --git a/Resources/round_icon/race/icon_BigFans_big.png b/Resources/round_icon/race/icon_BigFans_big.png new file mode 100644 index 000000000..05ec6befa Binary files /dev/null and b/Resources/round_icon/race/icon_BigFans_big.png differ diff --git a/Resources/round_icon/race/icon_CosmicHighway.png b/Resources/round_icon/race/icon_CosmicHighway.png new file mode 100644 index 000000000..0dcab5d91 Binary files /dev/null and b/Resources/round_icon/race/icon_CosmicHighway.png differ diff --git a/Resources/round_icon/race/icon_CosmicHighway_big.png b/Resources/round_icon/race/icon_CosmicHighway_big.png new file mode 100644 index 000000000..76a4792de Binary files /dev/null and b/Resources/round_icon/race/icon_CosmicHighway_big.png differ diff --git a/Resources/round_icon/race/icon_DizzyHeights.png b/Resources/round_icon/race/icon_DizzyHeights.png new file mode 100644 index 000000000..7773100a2 Binary files /dev/null and b/Resources/round_icon/race/icon_DizzyHeights.png differ diff --git a/Resources/round_icon/race/icon_DizzyHeights_big.png b/Resources/round_icon/race/icon_DizzyHeights_big.png new file mode 100644 index 000000000..bca4e187d Binary files /dev/null and b/Resources/round_icon/race/icon_DizzyHeights_big.png differ diff --git a/Resources/round_icon/race/icon_DoorDash.png b/Resources/round_icon/race/icon_DoorDash.png new file mode 100644 index 000000000..27ac7aba0 Binary files /dev/null and b/Resources/round_icon/race/icon_DoorDash.png differ diff --git a/Resources/round_icon/race/icon_DoorDash_big.png b/Resources/round_icon/race/icon_DoorDash_big.png new file mode 100644 index 000000000..633882888 Binary files /dev/null and b/Resources/round_icon/race/icon_DoorDash_big.png differ diff --git a/Resources/round_icon/race/icon_FreezyPeak.png b/Resources/round_icon/race/icon_FreezyPeak.png new file mode 100644 index 000000000..039f73684 Binary files /dev/null and b/Resources/round_icon/race/icon_FreezyPeak.png differ diff --git a/Resources/round_icon/race/icon_FreezyPeak_big.png b/Resources/round_icon/race/icon_FreezyPeak_big.png new file mode 100644 index 000000000..9d15f948e Binary files /dev/null and b/Resources/round_icon/race/icon_FreezyPeak_big.png differ diff --git a/Resources/round_icon/race/icon_FruitChute.png b/Resources/round_icon/race/icon_FruitChute.png new file mode 100644 index 000000000..3fc3114f0 Binary files /dev/null and b/Resources/round_icon/race/icon_FruitChute.png differ diff --git a/Resources/round_icon/race/icon_FruitChute_big.png b/Resources/round_icon/race/icon_FruitChute_big.png new file mode 100644 index 000000000..c86f7b96a Binary files /dev/null and b/Resources/round_icon/race/icon_FruitChute_big.png differ diff --git a/Resources/round_icon/race/icon_Full_Tilt.png b/Resources/round_icon/race/icon_Full_Tilt.png new file mode 100644 index 000000000..d2581453e Binary files /dev/null and b/Resources/round_icon/race/icon_Full_Tilt.png differ diff --git a/Resources/round_icon/race/icon_Full_Tilt_big.png b/Resources/round_icon/race/icon_Full_Tilt_big.png new file mode 100644 index 000000000..ec33cf420 Binary files /dev/null and b/Resources/round_icon/race/icon_Full_Tilt_big.png differ diff --git a/Resources/round_icon/race/icon_GateCrash.png b/Resources/round_icon/race/icon_GateCrash.png new file mode 100644 index 000000000..8da38135e Binary files /dev/null and b/Resources/round_icon/race/icon_GateCrash.png differ diff --git a/Resources/round_icon/race/icon_GateCrash_big.png b/Resources/round_icon/race/icon_GateCrash_big.png new file mode 100644 index 000000000..e512d6ed1 Binary files /dev/null and b/Resources/round_icon/race/icon_GateCrash_big.png differ diff --git a/Resources/round_icon/race/icon_HitParade.png b/Resources/round_icon/race/icon_HitParade.png new file mode 100644 index 000000000..4d1ba234c Binary files /dev/null and b/Resources/round_icon/race/icon_HitParade.png differ diff --git a/Resources/round_icon/race/icon_HitParade_big.png b/Resources/round_icon/race/icon_HitParade_big.png new file mode 100644 index 000000000..2556b23b4 Binary files /dev/null and b/Resources/round_icon/race/icon_HitParade_big.png differ diff --git a/Resources/round_icon/race/icon_KnightFever.png b/Resources/round_icon/race/icon_KnightFever.png new file mode 100644 index 000000000..4988ec3cb Binary files /dev/null and b/Resources/round_icon/race/icon_KnightFever.png differ diff --git a/Resources/round_icon/race/icon_KnightFever_big.png b/Resources/round_icon/race/icon_KnightFever_big.png new file mode 100644 index 000000000..c4e673038 Binary files /dev/null and b/Resources/round_icon/race/icon_KnightFever_big.png differ diff --git a/Resources/round_icon/race/icon_LilyLeapers.png b/Resources/round_icon/race/icon_LilyLeapers.png new file mode 100644 index 000000000..512807de1 Binary files /dev/null and b/Resources/round_icon/race/icon_LilyLeapers.png differ diff --git a/Resources/round_icon/race/icon_LilyLeapers_big.png b/Resources/round_icon/race/icon_LilyLeapers_big.png new file mode 100644 index 000000000..f3e860272 Binary files /dev/null and b/Resources/round_icon/race/icon_LilyLeapers_big.png differ diff --git a/Resources/round_icon/race/icon_Party_Promenade.png b/Resources/round_icon/race/icon_Party_Promenade.png new file mode 100644 index 000000000..44d26ad82 Binary files /dev/null and b/Resources/round_icon/race/icon_Party_Promenade.png differ diff --git a/Resources/round_icon/race/icon_Party_Promenade_big.png b/Resources/round_icon/race/icon_Party_Promenade_big.png new file mode 100644 index 000000000..83e43ed3c Binary files /dev/null and b/Resources/round_icon/race/icon_Party_Promenade_big.png differ diff --git a/Resources/round_icon/race/icon_Pipe_Dream.png b/Resources/round_icon/race/icon_Pipe_Dream.png new file mode 100644 index 000000000..64a9ef012 Binary files /dev/null and b/Resources/round_icon/race/icon_Pipe_Dream.png differ diff --git a/Resources/round_icon/race/icon_Pipe_Dream_big.png b/Resources/round_icon/race/icon_Pipe_Dream_big.png new file mode 100644 index 000000000..cd8f25674 Binary files /dev/null and b/Resources/round_icon/race/icon_Pipe_Dream_big.png differ diff --git a/Resources/round_icon/race/icon_Puzzle_Path.png b/Resources/round_icon/race/icon_Puzzle_Path.png new file mode 100644 index 000000000..f86661ca9 Binary files /dev/null and b/Resources/round_icon/race/icon_Puzzle_Path.png differ diff --git a/Resources/round_icon/race/icon_Puzzle_Path_big.png b/Resources/round_icon/race/icon_Puzzle_Path_big.png new file mode 100644 index 000000000..3de32e497 Binary files /dev/null and b/Resources/round_icon/race/icon_Puzzle_Path_big.png differ diff --git a/Resources/round_icon/race/icon_RollOn.png b/Resources/round_icon/race/icon_RollOn.png new file mode 100644 index 000000000..4b17c4bca Binary files /dev/null and b/Resources/round_icon/race/icon_RollOn.png differ diff --git a/Resources/round_icon/race/icon_RollOn_big.png b/Resources/round_icon/race/icon_RollOn_big.png new file mode 100644 index 000000000..d1c37cbe9 Binary files /dev/null and b/Resources/round_icon/race/icon_RollOn_big.png differ diff --git a/Resources/round_icon/race/icon_SeeSaw.png b/Resources/round_icon/race/icon_SeeSaw.png new file mode 100644 index 000000000..e47d0b56e Binary files /dev/null and b/Resources/round_icon/race/icon_SeeSaw.png differ diff --git a/Resources/round_icon/race/icon_SeeSaw_big.png b/Resources/round_icon/race/icon_SeeSaw_big.png new file mode 100644 index 000000000..683fbe191 Binary files /dev/null and b/Resources/round_icon/race/icon_SeeSaw_big.png differ diff --git a/Resources/round_icon/race/icon_ShortCircuit.png b/Resources/round_icon/race/icon_ShortCircuit.png new file mode 100644 index 000000000..4b8cdf51e Binary files /dev/null and b/Resources/round_icon/race/icon_ShortCircuit.png differ diff --git a/Resources/round_icon/race/icon_ShortCircuit_big.png b/Resources/round_icon/race/icon_ShortCircuit_big.png new file mode 100644 index 000000000..d64e49d4e Binary files /dev/null and b/Resources/round_icon/race/icon_ShortCircuit_big.png differ diff --git a/Resources/round_icon/race/icon_SkiFall.png b/Resources/round_icon/race/icon_SkiFall.png new file mode 100644 index 000000000..33530dc90 Binary files /dev/null and b/Resources/round_icon/race/icon_SkiFall.png differ diff --git a/Resources/round_icon/race/icon_SkiFall_big.png b/Resources/round_icon/race/icon_SkiFall_big.png new file mode 100644 index 000000000..1e952c738 Binary files /dev/null and b/Resources/round_icon/race/icon_SkiFall_big.png differ diff --git a/Resources/round_icon/race/icon_SkylineStumble.png b/Resources/round_icon/race/icon_SkylineStumble.png new file mode 100644 index 000000000..681c63bc3 Binary files /dev/null and b/Resources/round_icon/race/icon_SkylineStumble.png differ diff --git a/Resources/round_icon/race/icon_SkylineStumble_big.png b/Resources/round_icon/race/icon_SkylineStumble_big.png new file mode 100644 index 000000000..408dfc984 Binary files /dev/null and b/Resources/round_icon/race/icon_SkylineStumble_big.png differ diff --git a/Resources/round_icon/race/icon_SlimeClimb.png b/Resources/round_icon/race/icon_SlimeClimb.png new file mode 100644 index 000000000..379f53963 Binary files /dev/null and b/Resources/round_icon/race/icon_SlimeClimb.png differ diff --git a/Resources/round_icon/race/icon_SlimeClimb_big.png b/Resources/round_icon/race/icon_SlimeClimb_big.png new file mode 100644 index 000000000..727a396fb Binary files /dev/null and b/Resources/round_icon/race/icon_SlimeClimb_big.png differ diff --git a/Resources/round_icon/race/icon_SpaceRace.png b/Resources/round_icon/race/icon_SpaceRace.png new file mode 100644 index 000000000..bcaf8a24b Binary files /dev/null and b/Resources/round_icon/race/icon_SpaceRace.png differ diff --git a/Resources/round_icon/race/icon_SpaceRace_big.png b/Resources/round_icon/race/icon_SpaceRace_big.png new file mode 100644 index 000000000..33b22e416 Binary files /dev/null and b/Resources/round_icon/race/icon_SpaceRace_big.png differ diff --git a/Resources/round_icon/race/icon_Speed_Circuit.png b/Resources/round_icon/race/icon_Speed_Circuit.png new file mode 100644 index 000000000..813d18235 Binary files /dev/null and b/Resources/round_icon/race/icon_Speed_Circuit.png differ diff --git a/Resources/round_icon/race/icon_Speed_Circuit_big.png b/Resources/round_icon/race/icon_Speed_Circuit_big.png new file mode 100644 index 000000000..28981e730 Binary files /dev/null and b/Resources/round_icon/race/icon_Speed_Circuit_big.png differ diff --git a/Resources/round_icon/race/icon_Speed_Slider.png b/Resources/round_icon/race/icon_Speed_Slider.png new file mode 100644 index 000000000..70b07fcd4 Binary files /dev/null and b/Resources/round_icon/race/icon_Speed_Slider.png differ diff --git a/Resources/round_icon/race/icon_Speed_Slider_big.png b/Resources/round_icon/race/icon_Speed_Slider_big.png new file mode 100644 index 000000000..e19ab1d04 Binary files /dev/null and b/Resources/round_icon/race/icon_Speed_Slider_big.png differ diff --git a/Resources/round_icon/race/icon_Starchart.png b/Resources/round_icon/race/icon_Starchart.png new file mode 100644 index 000000000..3503e8013 Binary files /dev/null and b/Resources/round_icon/race/icon_Starchart.png differ diff --git a/Resources/round_icon/race/icon_Starchart_big.png b/Resources/round_icon/race/icon_Starchart_big.png new file mode 100644 index 000000000..dc50678a2 Binary files /dev/null and b/Resources/round_icon/race/icon_Starchart_big.png differ diff --git a/Resources/round_icon/race/icon_TheSlimescraper.png b/Resources/round_icon/race/icon_TheSlimescraper.png new file mode 100644 index 000000000..7850db678 Binary files /dev/null and b/Resources/round_icon/race/icon_TheSlimescraper.png differ diff --git a/Resources/round_icon/race/icon_TheSlimescraper_big.png b/Resources/round_icon/race/icon_TheSlimescraper_big.png new file mode 100644 index 000000000..374189220 Binary files /dev/null and b/Resources/round_icon/race/icon_TheSlimescraper_big.png differ diff --git a/Resources/round_icon/race/icon_TheWhirlygig.png b/Resources/round_icon/race/icon_TheWhirlygig.png new file mode 100644 index 000000000..21b07eabd Binary files /dev/null and b/Resources/round_icon/race/icon_TheWhirlygig.png differ diff --git a/Resources/round_icon/race/icon_TheWhirlygig_big.png b/Resources/round_icon/race/icon_TheWhirlygig_big.png new file mode 100644 index 000000000..0f0268c45 Binary files /dev/null and b/Resources/round_icon/race/icon_TheWhirlygig_big.png differ diff --git a/Resources/round_icon/race/icon_TipToe.png b/Resources/round_icon/race/icon_TipToe.png new file mode 100644 index 000000000..f5417bd05 Binary files /dev/null and b/Resources/round_icon/race/icon_TipToe.png differ diff --git a/Resources/round_icon/race/icon_TipToe_big.png b/Resources/round_icon/race/icon_TipToe_big.png new file mode 100644 index 000000000..03b434c35 Binary files /dev/null and b/Resources/round_icon/race/icon_TipToe_big.png differ diff --git a/Resources/round_icon/race/icon_Track_Attack.png b/Resources/round_icon/race/icon_Track_Attack.png new file mode 100644 index 000000000..f0b1722a5 Binary files /dev/null and b/Resources/round_icon/race/icon_Track_Attack.png differ diff --git a/Resources/round_icon/race/icon_Track_Attack_big.png b/Resources/round_icon/race/icon_Track_Attack_big.png new file mode 100644 index 000000000..f19da76fd Binary files /dev/null and b/Resources/round_icon/race/icon_Track_Attack_big.png differ diff --git a/Resources/round_icon/race/icon_TreetopTumble.png b/Resources/round_icon/race/icon_TreetopTumble.png new file mode 100644 index 000000000..6e5298bfc Binary files /dev/null and b/Resources/round_icon/race/icon_TreetopTumble.png differ diff --git a/Resources/round_icon/race/icon_TreetopTumble_big.png b/Resources/round_icon/race/icon_TreetopTumble_big.png new file mode 100644 index 000000000..80530101e Binary files /dev/null and b/Resources/round_icon/race/icon_TreetopTumble_big.png differ diff --git a/Resources/round_icon/race/icon_TundraRun.png b/Resources/round_icon/race/icon_TundraRun.png new file mode 100644 index 000000000..3b6623b61 Binary files /dev/null and b/Resources/round_icon/race/icon_TundraRun.png differ diff --git a/Resources/round_icon/race/icon_TundraRun_big.png b/Resources/round_icon/race/icon_TundraRun_big.png new file mode 100644 index 000000000..65a746105 Binary files /dev/null and b/Resources/round_icon/race/icon_TundraRun_big.png differ diff --git a/Resources/round_icon/race/icon_WallGuys.png b/Resources/round_icon/race/icon_WallGuys.png new file mode 100644 index 000000000..de342d3c2 Binary files /dev/null and b/Resources/round_icon/race/icon_WallGuys.png differ diff --git a/Resources/round_icon/race/icon_WallGuys_big.png b/Resources/round_icon/race/icon_WallGuys_big.png new file mode 100644 index 000000000..190ff89cf Binary files /dev/null and b/Resources/round_icon/race/icon_WallGuys_big.png differ diff --git a/Resources/round_icon/survival/icon_BigShots.png b/Resources/round_icon/survival/icon_BigShots.png new file mode 100644 index 000000000..6d85be1b0 Binary files /dev/null and b/Resources/round_icon/survival/icon_BigShots.png differ diff --git a/Resources/round_icon/survival/icon_BigShots_big.png b/Resources/round_icon/survival/icon_BigShots_big.png new file mode 100644 index 000000000..61220f472 Binary files /dev/null and b/Resources/round_icon/survival/icon_BigShots_big.png differ diff --git a/Resources/round_icon/survival/icon_Blastlantis.png b/Resources/round_icon/survival/icon_Blastlantis.png new file mode 100644 index 000000000..bfb86b2f2 Binary files /dev/null and b/Resources/round_icon/survival/icon_Blastlantis.png differ diff --git a/Resources/round_icon/survival/icon_Blastlantis_big.png b/Resources/round_icon/survival/icon_Blastlantis_big.png new file mode 100644 index 000000000..ff704dde2 Binary files /dev/null and b/Resources/round_icon/survival/icon_Blastlantis_big.png differ diff --git a/Resources/round_icon/survival/icon_BlockParty.png b/Resources/round_icon/survival/icon_BlockParty.png new file mode 100644 index 000000000..0695fe1aa Binary files /dev/null and b/Resources/round_icon/survival/icon_BlockParty.png differ diff --git a/Resources/round_icon/survival/icon_BlockParty_big.png b/Resources/round_icon/survival/icon_BlockParty_big.png new file mode 100644 index 000000000..6eb10f4ce Binary files /dev/null and b/Resources/round_icon/survival/icon_BlockParty_big.png differ diff --git a/Resources/round_icon/survival/icon_HoverboardHeroes.png b/Resources/round_icon/survival/icon_HoverboardHeroes.png new file mode 100644 index 000000000..75e1b743e Binary files /dev/null and b/Resources/round_icon/survival/icon_HoverboardHeroes.png differ diff --git a/Resources/round_icon/survival/icon_HoverboardHeroes_big.png b/Resources/round_icon/survival/icon_HoverboardHeroes_big.png new file mode 100644 index 000000000..d608f8001 Binary files /dev/null and b/Resources/round_icon/survival/icon_HoverboardHeroes_big.png differ diff --git a/Resources/round_icon/survival/icon_Hyperdrive_Heroes.png b/Resources/round_icon/survival/icon_Hyperdrive_Heroes.png new file mode 100644 index 000000000..742ad9de8 Binary files /dev/null and b/Resources/round_icon/survival/icon_Hyperdrive_Heroes.png differ diff --git a/Resources/round_icon/survival/icon_Hyperdrive_Heroes_big.png b/Resources/round_icon/survival/icon_Hyperdrive_Heroes_big.png new file mode 100644 index 000000000..c9aae1e43 Binary files /dev/null and b/Resources/round_icon/survival/icon_Hyperdrive_Heroes_big.png differ diff --git a/Resources/round_icon/survival/icon_JumpClub.png b/Resources/round_icon/survival/icon_JumpClub.png new file mode 100644 index 000000000..38acd8336 Binary files /dev/null and b/Resources/round_icon/survival/icon_JumpClub.png differ diff --git a/Resources/round_icon/survival/icon_JumpClub_big.png b/Resources/round_icon/survival/icon_JumpClub_big.png new file mode 100644 index 000000000..34780bcf6 Binary files /dev/null and b/Resources/round_icon/survival/icon_JumpClub_big.png differ diff --git a/Resources/round_icon/survival/icon_RollOut.png b/Resources/round_icon/survival/icon_RollOut.png new file mode 100644 index 000000000..8a6254156 Binary files /dev/null and b/Resources/round_icon/survival/icon_RollOut.png differ diff --git a/Resources/round_icon/survival/icon_RollOut_big.png b/Resources/round_icon/survival/icon_RollOut_big.png new file mode 100644 index 000000000..56c8fdd44 Binary files /dev/null and b/Resources/round_icon/survival/icon_RollOut_big.png differ diff --git a/Resources/round_icon/survival/icon_SnowballSurvival.png b/Resources/round_icon/survival/icon_SnowballSurvival.png new file mode 100644 index 000000000..ea9e0ab3f Binary files /dev/null and b/Resources/round_icon/survival/icon_SnowballSurvival.png differ diff --git a/Resources/round_icon/survival/icon_SnowballSurvival_big.png b/Resources/round_icon/survival/icon_SnowballSurvival_big.png new file mode 100644 index 000000000..39ed24c87 Binary files /dev/null and b/Resources/round_icon/survival/icon_SnowballSurvival_big.png differ diff --git a/Resources/round_icon/survival/icon_StompinGround.png b/Resources/round_icon/survival/icon_StompinGround.png new file mode 100644 index 000000000..992388cbe Binary files /dev/null and b/Resources/round_icon/survival/icon_StompinGround.png differ diff --git a/Resources/round_icon/survival/icon_StompinGround_big.png b/Resources/round_icon/survival/icon_StompinGround_big.png new file mode 100644 index 000000000..de10f28d4 Binary files /dev/null and b/Resources/round_icon/survival/icon_StompinGround_big.png differ diff --git a/Resources/round_icon/survival/icon_The_Swiveller.png b/Resources/round_icon/survival/icon_The_Swiveller.png new file mode 100644 index 000000000..d17ba50a7 Binary files /dev/null and b/Resources/round_icon/survival/icon_The_Swiveller.png differ diff --git a/Resources/round_icon/survival/icon_The_Swiveller_big.png b/Resources/round_icon/survival/icon_The_Swiveller_big.png new file mode 100644 index 000000000..7d632b2e4 Binary files /dev/null and b/Resources/round_icon/survival/icon_The_Swiveller_big.png differ diff --git a/Resources/round_icon/team/icon_Basketfall.png b/Resources/round_icon/team/icon_Basketfall.png new file mode 100644 index 000000000..caff8a733 Binary files /dev/null and b/Resources/round_icon/team/icon_Basketfall.png differ diff --git a/Resources/round_icon/team/icon_Basketfall_big.png b/Resources/round_icon/team/icon_Basketfall_big.png new file mode 100644 index 000000000..d33bc803c Binary files /dev/null and b/Resources/round_icon/team/icon_Basketfall_big.png differ diff --git a/Resources/round_icon/team/icon_EggScramble.png b/Resources/round_icon/team/icon_EggScramble.png new file mode 100644 index 000000000..9ce1f966d Binary files /dev/null and b/Resources/round_icon/team/icon_EggScramble.png differ diff --git a/Resources/round_icon/team/icon_EggScramble_big.png b/Resources/round_icon/team/icon_EggScramble_big.png new file mode 100644 index 000000000..a111b9755 Binary files /dev/null and b/Resources/round_icon/team/icon_EggScramble_big.png differ diff --git a/Resources/round_icon/team/icon_EggSiege.png b/Resources/round_icon/team/icon_EggSiege.png new file mode 100644 index 000000000..580799e05 Binary files /dev/null and b/Resources/round_icon/team/icon_EggSiege.png differ diff --git a/Resources/round_icon/team/icon_EggSiege_big.png b/Resources/round_icon/team/icon_EggSiege_big.png new file mode 100644 index 000000000..9f4486da8 Binary files /dev/null and b/Resources/round_icon/team/icon_EggSiege_big.png differ diff --git a/Resources/round_icon/team/icon_FallBall.png b/Resources/round_icon/team/icon_FallBall.png new file mode 100644 index 000000000..4739b7319 Binary files /dev/null and b/Resources/round_icon/team/icon_FallBall.png differ diff --git a/Resources/round_icon/team/icon_FallBall_big.png b/Resources/round_icon/team/icon_FallBall_big.png new file mode 100644 index 000000000..cdeef51bd Binary files /dev/null and b/Resources/round_icon/team/icon_FallBall_big.png differ diff --git a/Resources/round_icon/team/icon_Hoarders.png b/Resources/round_icon/team/icon_Hoarders.png new file mode 100644 index 000000000..c6f3a51bd Binary files /dev/null and b/Resources/round_icon/team/icon_Hoarders.png differ diff --git a/Resources/round_icon/team/icon_Hoarders_big.png b/Resources/round_icon/team/icon_Hoarders_big.png new file mode 100644 index 000000000..b6be88fe4 Binary files /dev/null and b/Resources/round_icon/team/icon_Hoarders_big.png differ diff --git a/Resources/round_icon/team/icon_HoopsieDaisy.png b/Resources/round_icon/team/icon_HoopsieDaisy.png new file mode 100644 index 000000000..6e134c4c6 Binary files /dev/null and b/Resources/round_icon/team/icon_HoopsieDaisy.png differ diff --git a/Resources/round_icon/team/icon_HoopsieDaisy_big.png b/Resources/round_icon/team/icon_HoopsieDaisy_big.png new file mode 100644 index 000000000..bbb5eedf6 Binary files /dev/null and b/Resources/round_icon/team/icon_HoopsieDaisy_big.png differ diff --git a/Resources/round_icon/team/icon_Jinxed.png b/Resources/round_icon/team/icon_Jinxed.png new file mode 100644 index 000000000..9ff85534a Binary files /dev/null and b/Resources/round_icon/team/icon_Jinxed.png differ diff --git a/Resources/round_icon/team/icon_Jinxed_big.png b/Resources/round_icon/team/icon_Jinxed_big.png new file mode 100644 index 000000000..d16d5e4c4 Binary files /dev/null and b/Resources/round_icon/team/icon_Jinxed_big.png differ diff --git a/Resources/round_icon/team/icon_PegwinPursuit.png b/Resources/round_icon/team/icon_PegwinPursuit.png new file mode 100644 index 000000000..ed8b8b05a Binary files /dev/null and b/Resources/round_icon/team/icon_PegwinPursuit.png differ diff --git a/Resources/round_icon/team/icon_PegwinPursuit_big.png b/Resources/round_icon/team/icon_PegwinPursuit_big.png new file mode 100644 index 000000000..5b5a399d6 Binary files /dev/null and b/Resources/round_icon/team/icon_PegwinPursuit_big.png differ diff --git a/Resources/round_icon/team/icon_PowerTrip.png b/Resources/round_icon/team/icon_PowerTrip.png new file mode 100644 index 000000000..eaccdf43e Binary files /dev/null and b/Resources/round_icon/team/icon_PowerTrip.png differ diff --git a/Resources/round_icon/team/icon_PowerTrip_big.png b/Resources/round_icon/team/icon_PowerTrip_big.png new file mode 100644 index 000000000..a831cbe84 Binary files /dev/null and b/Resources/round_icon/team/icon_PowerTrip_big.png differ diff --git a/Resources/round_icon/team/icon_RocknRoll.png b/Resources/round_icon/team/icon_RocknRoll.png new file mode 100644 index 000000000..b02352d66 Binary files /dev/null and b/Resources/round_icon/team/icon_RocknRoll.png differ diff --git a/Resources/round_icon/team/icon_RocknRoll_big.png b/Resources/round_icon/team/icon_RocknRoll_big.png new file mode 100644 index 000000000..1e4541e5d Binary files /dev/null and b/Resources/round_icon/team/icon_RocknRoll_big.png differ diff --git a/Resources/round_icon/team/icon_SnowyScrap.png b/Resources/round_icon/team/icon_SnowyScrap.png new file mode 100644 index 000000000..a047781e9 Binary files /dev/null and b/Resources/round_icon/team/icon_SnowyScrap.png differ diff --git a/Resources/round_icon/team/icon_SnowyScrap_big.png b/Resources/round_icon/team/icon_SnowyScrap_big.png new file mode 100644 index 000000000..8a62a27e8 Binary files /dev/null and b/Resources/round_icon/team/icon_SnowyScrap_big.png differ diff --git a/Resources/round_icon/team/icon_TeamTailTag.png b/Resources/round_icon/team/icon_TeamTailTag.png new file mode 100644 index 000000000..09a0789b1 Binary files /dev/null and b/Resources/round_icon/team/icon_TeamTailTag.png differ diff --git a/Resources/round_icon/team/icon_TeamTailTag_big.png b/Resources/round_icon/team/icon_TeamTailTag_big.png new file mode 100644 index 000000000..31c0eead4 Binary files /dev/null and b/Resources/round_icon/team/icon_TeamTailTag_big.png differ diff --git a/Resources/scatter_plot_gray_icon.png b/Resources/scatter_plot_gray_icon.png new file mode 100644 index 000000000..76582b16f Binary files /dev/null and b/Resources/scatter_plot_gray_icon.png differ diff --git a/Resources/scatter_plot_icon.png b/Resources/scatter_plot_icon.png new file mode 100644 index 000000000..40b2985f6 Binary files /dev/null and b/Resources/scatter_plot_icon.png differ diff --git a/Resources/scatter_plot_teal_icon.png b/Resources/scatter_plot_teal_icon.png new file mode 100644 index 000000000..4a4809f1c Binary files /dev/null and b/Resources/scatter_plot_teal_icon.png differ diff --git a/Resources/setting_gray_icon.png b/Resources/setting_gray_icon.png new file mode 100644 index 000000000..1d9ec4aca Binary files /dev/null and b/Resources/setting_gray_icon.png differ diff --git a/Resources/setting_icon.png b/Resources/setting_icon.png new file mode 100644 index 000000000..27ca80243 Binary files /dev/null and b/Resources/setting_icon.png differ diff --git a/Resources/shards_grid_icon.png b/Resources/shards_grid_icon.png new file mode 100644 index 000000000..c942afe3c Binary files /dev/null and b/Resources/shards_grid_icon.png differ diff --git a/Resources/shards_icon.png b/Resources/shards_icon.png new file mode 100644 index 000000000..c721d7e5b Binary files /dev/null and b/Resources/shards_icon.png differ diff --git a/Resources/show_icon.png b/Resources/show_icon.png new file mode 100644 index 000000000..af6e74bea Binary files /dev/null and b/Resources/show_icon.png differ diff --git a/Resources/shutdown_gray_icon.png b/Resources/shutdown_gray_icon.png new file mode 100644 index 000000000..dd937864a Binary files /dev/null and b/Resources/shutdown_gray_icon.png differ diff --git a/Resources/shutdown_icon.png b/Resources/shutdown_icon.png new file mode 100644 index 000000000..ef40d608a Binary files /dev/null and b/Resources/shutdown_icon.png differ diff --git a/Resources/splash.png b/Resources/splash.png new file mode 100644 index 000000000..1d57e8827 Binary files /dev/null and b/Resources/splash.png differ diff --git a/Resources/stat_gray_icon.png b/Resources/stat_gray_icon.png new file mode 100644 index 000000000..8ed8fee03 Binary files /dev/null and b/Resources/stat_gray_icon.png differ diff --git a/Resources/stat_icon.png b/Resources/stat_icon.png new file mode 100644 index 000000000..03e0fe611 Binary files /dev/null and b/Resources/stat_icon.png differ diff --git a/Resources/steam_grid_icon.png b/Resources/steam_grid_icon.png new file mode 100644 index 000000000..20aefe0da Binary files /dev/null and b/Resources/steam_grid_icon.png differ diff --git a/Resources/steam_icon.png b/Resources/steam_icon.png new file mode 100644 index 000000000..b40d585bf Binary files /dev/null and b/Resources/steam_icon.png differ diff --git a/Resources/steam_main_icon.png b/Resources/steam_main_icon.png new file mode 100644 index 000000000..d59ef56a9 Binary files /dev/null and b/Resources/steam_main_icon.png differ diff --git a/Resources/switch_icon.png b/Resources/switch_icon.png new file mode 100644 index 000000000..9cd542ded Binary files /dev/null and b/Resources/switch_icon.png differ diff --git a/Resources/switch_lock_icon.png b/Resources/switch_lock_icon.png new file mode 100644 index 000000000..b34fd73f7 Binary files /dev/null and b/Resources/switch_lock_icon.png differ diff --git a/Resources/switch_unlock_icon.png b/Resources/switch_unlock_icon.png new file mode 100644 index 000000000..7432c9574 Binary files /dev/null and b/Resources/switch_unlock_icon.png differ diff --git a/Resources/transform_gray_icon.png b/Resources/transform_gray_icon.png new file mode 100644 index 000000000..ae5aab006 Binary files /dev/null and b/Resources/transform_gray_icon.png differ diff --git a/Resources/transform_icon.png b/Resources/transform_icon.png new file mode 100644 index 000000000..7e7c63321 Binary files /dev/null and b/Resources/transform_icon.png differ diff --git a/Resources/uncheckmark_icon.png b/Resources/uncheckmark_icon.png new file mode 100644 index 000000000..dc80e532d Binary files /dev/null and b/Resources/uncheckmark_icon.png differ diff --git a/Resources/update.png b/Resources/update.png new file mode 100644 index 000000000..004283eb2 Binary files /dev/null and b/Resources/update.png differ diff --git a/Resources/update_gray.png b/Resources/update_gray.png new file mode 100644 index 000000000..f6434afeb Binary files /dev/null and b/Resources/update_gray.png differ diff --git a/Resources/xbox_icon.png b/Resources/xbox_icon.png new file mode 100644 index 000000000..12b242013 Binary files /dev/null and b/Resources/xbox_icon.png differ diff --git a/Stats.Designer.cs b/Stats.Designer.cs deleted file mode 100644 index bbe82022d..000000000 --- a/Stats.Designer.cs +++ /dev/null @@ -1,233 +0,0 @@ -namespace FallGuysStats { - partial class Stats { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Stats)); - this.lblTotalShows = new System.Windows.Forms.Label(); - this.lblTotalTime = new System.Windows.Forms.Label(); - this.lblTotalRounds = new System.Windows.Forms.Label(); - this.lblTotalWins = new System.Windows.Forms.Label(); - this.lblFinalChance = new System.Windows.Forms.Label(); - this.lblWinChance = new System.Windows.Forms.Label(); - this.gridDetails = new FallGuysStats.Grid(); - this.rdAll = new System.Windows.Forms.RadioButton(); - this.rdSeason = new System.Windows.Forms.RadioButton(); - this.rdWeek = new System.Windows.Forms.RadioButton(); - this.rdSession = new System.Windows.Forms.RadioButton(); - ((System.ComponentModel.ISupportInitialize)(this.gridDetails)).BeginInit(); - this.SuspendLayout(); - // - // lblTotalShows - // - this.lblTotalShows.AutoSize = true; - this.lblTotalShows.Location = new System.Drawing.Point(145, 34); - this.lblTotalShows.Name = "lblTotalShows"; - this.lblTotalShows.Size = new System.Drawing.Size(51, 13); - this.lblTotalShows.TabIndex = 5; - this.lblTotalShows.Text = "Shows: 0"; - // - // lblTotalTime - // - this.lblTotalTime.AutoSize = true; - this.lblTotalTime.Location = new System.Drawing.Point(8, 34); - this.lblTotalTime.Name = "lblTotalTime"; - this.lblTotalTime.Size = new System.Drawing.Size(113, 13); - this.lblTotalTime.TabIndex = 4; - this.lblTotalTime.Text = "Time Played: 00:00:00"; - // - // lblTotalRounds - // - this.lblTotalRounds.AutoSize = true; - this.lblTotalRounds.Location = new System.Drawing.Point(231, 34); - this.lblTotalRounds.Name = "lblTotalRounds"; - this.lblTotalRounds.Size = new System.Drawing.Size(56, 13); - this.lblTotalRounds.TabIndex = 6; - this.lblTotalRounds.Text = "Rounds: 0"; - // - // lblTotalWins - // - this.lblTotalWins.AutoSize = true; - this.lblTotalWins.Location = new System.Drawing.Point(323, 34); - this.lblTotalWins.Name = "lblTotalWins"; - this.lblTotalWins.Size = new System.Drawing.Size(43, 13); - this.lblTotalWins.TabIndex = 7; - this.lblTotalWins.Text = "Wins: 0"; - // - // lblFinalChance - // - this.lblFinalChance.AutoSize = true; - this.lblFinalChance.Location = new System.Drawing.Point(399, 34); - this.lblFinalChance.Name = "lblFinalChance"; - this.lblFinalChance.Size = new System.Drawing.Size(52, 13); - this.lblFinalChance.TabIndex = 8; - this.lblFinalChance.Text = "Final %: 0"; - // - // lblWinChance - // - this.lblWinChance.AutoSize = true; - this.lblWinChance.Location = new System.Drawing.Point(492, 34); - this.lblWinChance.Name = "lblWinChance"; - this.lblWinChance.Size = new System.Drawing.Size(49, 13); - this.lblWinChance.TabIndex = 9; - this.lblWinChance.Text = "Win %: 0"; - // - // gridDetails - // - this.gridDetails.AllowUserToDeleteRows = false; - this.gridDetails.AllowUserToOrderColumns = false; - this.gridDetails.AllowUserToResizeColumns = false; - this.gridDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.gridDetails.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.None; - this.gridDetails.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.gridDetails.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle1.BackColor = System.Drawing.Color.LightGray; - dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; - dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.Cyan; - dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black; - dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.gridDetails.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; - this.gridDetails.ColumnHeadersHeight = 20; - this.gridDetails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle2.BackColor = System.Drawing.Color.White; - dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black; - dataGridViewCellStyle2.SelectionBackColor = System.Drawing.Color.White; - dataGridViewCellStyle2.SelectionForeColor = System.Drawing.Color.Black; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.gridDetails.DefaultCellStyle = dataGridViewCellStyle2; - this.gridDetails.EnableHeadersVisualStyles = false; - this.gridDetails.Location = new System.Drawing.Point(0, 53); - this.gridDetails.Name = "gridDetails"; - this.gridDetails.ReadOnly = true; - this.gridDetails.RowHeadersVisible = false; - this.gridDetails.Size = new System.Drawing.Size(614, 570); - this.gridDetails.TabIndex = 10; - this.gridDetails.TabStop = false; - this.gridDetails.DataSourceChanged += new System.EventHandler(this.gridDetails_DataSourceChanged); - this.gridDetails.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridDetails_CellClick); - this.gridDetails.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridDetails_CellFormatting); - this.gridDetails.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridDetails_CellMouseEnter); - // - // rdAll - // - this.rdAll.AutoSize = true; - this.rdAll.Checked = true; - this.rdAll.Location = new System.Drawing.Point(12, 9); - this.rdAll.Name = "rdAll"; - this.rdAll.Size = new System.Drawing.Size(63, 17); - this.rdAll.TabIndex = 0; - this.rdAll.TabStop = true; - this.rdAll.Text = "All Stats"; - this.rdAll.UseVisualStyleBackColor = true; - this.rdAll.CheckedChanged += new System.EventHandler(this.rdAll_CheckedChanged); - // - // rdSeason - // - this.rdSeason.AutoSize = true; - this.rdSeason.Location = new System.Drawing.Point(81, 9); - this.rdSeason.Name = "rdSeason"; - this.rdSeason.Size = new System.Drawing.Size(61, 17); - this.rdSeason.TabIndex = 1; - this.rdSeason.Text = "Season"; - this.rdSeason.UseVisualStyleBackColor = true; - this.rdSeason.CheckedChanged += new System.EventHandler(this.rdAll_CheckedChanged); - // - // rdWeek - // - this.rdWeek.AutoSize = true; - this.rdWeek.Location = new System.Drawing.Point(147, 9); - this.rdWeek.Name = "rdWeek"; - this.rdWeek.Size = new System.Drawing.Size(54, 17); - this.rdWeek.TabIndex = 2; - this.rdWeek.Text = "Week"; - this.rdWeek.UseVisualStyleBackColor = true; - this.rdWeek.CheckedChanged += new System.EventHandler(this.rdAll_CheckedChanged); - // - // rdSession - // - this.rdSession.AutoSize = true; - this.rdSession.Location = new System.Drawing.Point(207, 9); - this.rdSession.Name = "rdSession"; - this.rdSession.Size = new System.Drawing.Size(62, 17); - this.rdSession.TabIndex = 3; - this.rdSession.Text = "Session"; - this.rdSession.UseVisualStyleBackColor = true; - this.rdSession.CheckedChanged += new System.EventHandler(this.rdAll_CheckedChanged); - // - // Stats - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(242)))), ((int)(((byte)(251))))); - this.ClientSize = new System.Drawing.Size(614, 623); - this.Controls.Add(this.rdSession); - this.Controls.Add(this.rdWeek); - this.Controls.Add(this.rdSeason); - this.Controls.Add(this.rdAll); - this.Controls.Add(this.lblWinChance); - this.Controls.Add(this.lblTotalTime); - this.Controls.Add(this.lblFinalChance); - this.Controls.Add(this.lblTotalShows); - this.Controls.Add(this.lblTotalWins); - this.Controls.Add(this.lblTotalRounds); - this.Controls.Add(this.gridDetails); - this.DoubleBuffered = true; - this.ForeColor = System.Drawing.Color.Black; - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.Name = "Stats"; - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Fall Guys Stats v1.5"; - this.Shown += new System.EventHandler(this.Stats_Shown); - ((System.ComponentModel.ISupportInitialize)(this.gridDetails)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - private Grid gridDetails; - private System.Windows.Forms.Label lblTotalShows; - private System.Windows.Forms.Label lblTotalTime; - private System.Windows.Forms.Label lblTotalRounds; - private System.Windows.Forms.Label lblTotalWins; - private System.Windows.Forms.Label lblFinalChance; - private System.Windows.Forms.Label lblWinChance; - private System.Windows.Forms.RadioButton rdAll; - private System.Windows.Forms.RadioButton rdSeason; - private System.Windows.Forms.RadioButton rdWeek; - private System.Windows.Forms.RadioButton rdSession; - } -} - diff --git a/Stats.cs b/Stats.cs deleted file mode 100644 index 3cc76e8a2..000000000 --- a/Stats.cs +++ /dev/null @@ -1,263 +0,0 @@ -using LiteDB; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Windows.Forms; -namespace FallGuysStats { - public partial class Stats : Form { - [STAThread] - static void Main() { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Stats()); - } - - private static DateTime SeasonStart = new DateTime(2020, 8, 2, 0, 0, 0, DateTimeKind.Local); - private static DateTime WeekStart = DateTime.SpecifyKind(DateTime.Now.AddDays(-7).ToUniversalTime(), DateTimeKind.Local); - private static DateTime SessionStart = DateTime.SpecifyKind(DateTime.Now.ToUniversalTime(), DateTimeKind.Local); - - private List details = new List(); - private Dictionary lookup = new Dictionary(); - private LogFileWatcher logFile = new LogFileWatcher(); - private int Shows; - private int Rounds; - private TimeSpan Duration; - private int Wins; - private int Finals; - private string logPath; - private int nextShowID; - private bool loadingExisting; - private LiteDatabase statsDB; - private ILiteCollection roundDetails; - public Stats() { - InitializeComponent(); - - logFile.OnParsedLogLines += LogFile_OnParsedLogLines; - - details.Add(new LevelStats("Door Dash", "round_door_dash")); - details.Add(new LevelStats("Dizzy Heights", "round_gauntlet_02")); - details.Add(new LevelStats("Fruit Chute", "round_dodge_fall")); - details.Add(new LevelStats("Gate Crash", "round_chompchomp")); - details.Add(new LevelStats("Hit Parade", "round_gauntlet_01")); - details.Add(new LevelStats("Sea Saw", "round_see_saw")); - details.Add(new LevelStats("Slime Climb", "round_lava")); - details.Add(new LevelStats("Tip Toe", "round_tip_toe")); - details.Add(new LevelStats("Whirlygig", "round_gauntlet_03")); - - details.Add(new LevelStats("Block Party", "round_block_party")); - details.Add(new LevelStats("Jump Club", "round_jump_club")); - details.Add(new LevelStats("Perfect Match", "round_match_fall")); - details.Add(new LevelStats("Roll Out", "round_tunnel")); - details.Add(new LevelStats("Tail Tag", "round_tail_tag")); - - details.Add(new LevelStats("Egg Scramble", "round_egg_grab")); - details.Add(new LevelStats("Fall Ball", "round_fall_ball_60_players")); - details.Add(new LevelStats("Hoarders", "round_ballhogs")); - details.Add(new LevelStats("Hoopsie Daisy", "round_hoops")); - details.Add(new LevelStats("Jinxed", "round_jinxed")); - details.Add(new LevelStats("Rock'N'Roll", "round_rocknroll")); - details.Add(new LevelStats("Team Tail Tag", "round_conveyor_arena")); - - details.Add(new LevelStats("Fall Mountain", "round_fall_mountain_hub_complete")); - details.Add(new LevelStats("Hex-A-Gone", "round_floor_fall")); - details.Add(new LevelStats("Jump Showdown", "round_jump_showdown")); - details.Add(new LevelStats("Royal Fumble", "round_royal_rumble")); - - for (int i = 0; i < details.Count; i++) { - LevelStats calculator = details[i]; - lookup.Add(calculator.LevelName, calculator); - } - - gridDetails.DataSource = details; - - statsDB = new LiteDatabase(@"data.db"); - roundDetails = statsDB.GetCollection("RoundDetails"); - } - private void Stats_Shown(object sender, EventArgs e) { - if (roundDetails.Count() > 0) { - nextShowID = roundDetails.Max(x => x.ShowID); - List rounds = new List(); - rounds.AddRange(roundDetails.FindAll()); - loadingExisting = true; - LogFile_OnParsedLogLines(rounds); - loadingExisting = false; - } - - logPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "Low", "Mediatonic", "FallGuys_client"); - logFile.Start(logPath, "Player.log"); - } - private void LogFile_OnParsedLogLines(List round) { - if (!loadingExisting) { statsDB.BeginTrans(); } - - foreach (RoundInfo stat in round) { - if (!loadingExisting) { - RoundInfo info = roundDetails.FindOne(x => x.Start == stat.Start && x.Name == stat.Name); - if (info == null) { - if (stat.Round == 1) { - nextShowID++; - } - stat.ShowID = nextShowID; - - roundDetails.Insert(stat); - } else { - continue; - } - } - - if (stat.Round == 1) { - Shows++; - } - Rounds++; - Duration += stat.End - stat.Start; - switch (stat.Name) { - case "round_fall_mountain_hub_complete": - case "round_floor_fall": - case "round_jump_showdown": - case "round_royal_rumble": - Finals++; - if (stat.Position == 1) { - Wins++; - } - break; - } - - if (lookup.ContainsKey(stat.Name)) { - stat.ToLocalTime(); - lookup[stat.Name].Add(stat); - } - } - - if (!loadingExisting) { statsDB.Commit(); } - this.Invoke((Action)UpdateTotals); - } - private void ClearTotals() { - Rounds = 0; - Duration = TimeSpan.Zero; - Wins = 0; - Shows = 0; - Finals = 0; - } - private void UpdateTotals() { - lblTotalRounds.Text = $"Rounds: {Rounds}"; - lblTotalShows.Text = $"Shows: {Shows}"; - lblTotalTime.Text = $"Time Played: {Duration:h\\:mm\\:ss}"; - lblTotalWins.Text = $"Wins: {Wins}"; - float finalChance = (float)Finals * 100 / (Shows == 0 ? 1 : Shows); - lblFinalChance.Text = $"Final %: {finalChance:0.0}"; - float winChance = (float)Wins * 100 / (Shows == 0 ? 1 : Shows); - lblWinChance.Text = $"Win %: {winChance:0.0}"; - gridDetails.Refresh(); - } - private void gridDetails_DataSourceChanged(object sender, EventArgs e) { - int pos = 0; - gridDetails.Columns.Add(new DataGridViewImageColumn() { Name = "Info", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "Level Info" }); - gridDetails.Setup("Name", pos++, 0, "Level Name", DataGridViewContentAlignment.MiddleLeft); - gridDetails.Setup("Info", pos++, 20, "", DataGridViewContentAlignment.MiddleCenter); - gridDetails.Setup("Played", pos++, 50, "Played", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("Qualified", pos++, 60, "Qualified", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("Gold", pos++, 50, "Gold", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("Silver", pos++, 50, "Silver", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("Bronze", pos++, 50, "Bronze", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("Kudos", pos++, 60, "Kudos", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("AveKudos", pos++, 70, "Avg Kudos", DataGridViewContentAlignment.MiddleRight); - gridDetails.Setup("AveDuration", pos++, 80, "Avg Duration", DataGridViewContentAlignment.MiddleRight); - } - private void gridDetails_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { - if (gridDetails.Columns[e.ColumnIndex].Name == "Name") { - switch ((string)e.Value) { - case "Door Dash": - case "Dizzy Heights": - case "Fruit Chute": - case "Gate Crash": - case "Hit Parade": - case "Sea Saw": - case "Slime Climb": - case "Tip Toe": - case "Whirlygig": - e.CellStyle.BackColor = Color.LightGoldenrodYellow; - break; - case "Block Party": - case "Jump Club": - case "Perfect Match": - case "Roll Out": - case "Tail Tag": - e.CellStyle.BackColor = Color.LightBlue; - break; - case "Egg Scramble": - case "Fall Ball": - case "Hoarders": - case "Hoopsie Daisy": - case "Jinxed": - case "Rock'N'Roll": - case "Team Tail Tag": - e.CellStyle.BackColor = Color.LightGreen; - break; - case "Fall Mountain": - case "Hex-A-Gone": - case "Jump Showdown": - case "Royal Fumble": - e.CellStyle.BackColor = Color.Pink; - break; - } - } else if (gridDetails.Columns[e.ColumnIndex].Name == "Info" && e.Value == null) { - gridDetails.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = "Click to view level stats"; - e.Value = Properties.Resources.info; - } else if (gridDetails.Columns[e.ColumnIndex].Name == "AveDuration") { - LevelStats info = gridDetails.Rows[e.RowIndex].DataBoundItem as LevelStats; - e.Value = info.AveDuration.ToString("m\\:ss"); - } - } - private void gridDetails_CellMouseEnter(object sender, DataGridViewCellEventArgs e) { - if (gridDetails.Columns[e.ColumnIndex].Name == "Info") { - gridDetails.Cursor = Cursors.Hand; - } else { - gridDetails.Cursor = Cursors.Default; - } - } - private void gridDetails_CellClick(object sender, DataGridViewCellEventArgs e) { - if (gridDetails.Columns[e.ColumnIndex].Name == "Info") { - using (LevelDetails details = new LevelDetails()) { - LevelStats stats = gridDetails.Rows[e.RowIndex].DataBoundItem as LevelStats; - details.LevelName = stats.Name; - List rounds = stats.Stats; - rounds.Sort(delegate (RoundInfo one, RoundInfo two) { - return one.Start.CompareTo(two.Start); - }); - details.RoundDetails = rounds; - details.ShowDialog(this); - } - } - } - private void rdAll_CheckedChanged(object sender, EventArgs e) { - RadioButton button = sender as RadioButton; - if (!button.Checked) { return; } - - for (int i = 0; i < details.Count; i++) { - LevelStats calculator = details[i]; - calculator.Clear(); - } - - ClearTotals(); - - List rounds = new List(); - if (button == rdAll) { - rounds.AddRange(roundDetails.FindAll()); - } else if (button == rdSeason) { - rounds.AddRange(roundDetails.Find(x => x.Start > SeasonStart)); - } else if (button == rdWeek) { - rounds.AddRange(roundDetails.Find(x => x.Start > WeekStart)); - } else { - rounds.AddRange(roundDetails.Find(x => x.Start > SessionStart)); - } - - rounds.Sort(delegate (RoundInfo one, RoundInfo two) { - return one.Start.CompareTo(two.Start); - }); - - loadingExisting = true; - LogFile_OnParsedLogLines(rounds); - loadingExisting = false; - } - } -} \ No newline at end of file diff --git a/Stats.resx b/Stats.resx deleted file mode 100644 index ebf3e6074..000000000 --- a/Stats.resx +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAA - AACWpwD/jJ0A/4GSAP92hwD/d4gA/4CRAP+HmQD/jqAA/5OlAP+YqQD/mawA/52vAP+fsgD/orQA/6O2 - AP+ltwD/p7kA/6i7AP+qvAD/q70A/6y+AP+tvwD/rsAA/67AAP+vwQD/sMIA/7DCAP+wwgD/sMIA/7DC - AP+wwgD/sMIA/7HCAP+xwgD/sMIA/7DCAP+wwgD/sMIA/6/BAP+vwQD/rsAA/67AAP+tvgD/q70A/6q8 - AP+puwD/p7kA/6a4AP+ktgD/orQA/5+yAP+dsAD/mq0A/5ipAP+UpgD/kKIA/4qcAP+FlwD/fY4A/3iJ - AP90hQD/fY8A/4iZAP+TpAD/obIA/5iqAP+PoAD/h5gA/4WWAP+FlgD/iJoA/4+gAP+UpgD/l6oA/5qs - AP+drwD/n7IA/6K0AP+jtgD/pbcA/6a5AP+ougD/qbsA/6q9AP+svgD/rL4A/62/AP+tvwD/rsAA/6/B - AP+vwQD/r8EA/6/CAP+wwgD/sMIA/7DCAP+wwgD/sMIA/6/CAP+wwQD/r8EA/6/BAP+uwAD/rsAA/66/ - AP+tvwD/q70A/6q9AP+pvAD/qLoA/6e5AP+ltwD/o7UA/6GzAP+fsgD/na8A/5mtAP+YqgD/lacA/5Ci - AP+LnQD/hpcA/4CRAP+ElQD/hZYA/4ydAP+VpwD/nq8A/6u8AP+jtAD/m60A/5OlAP+QoQD/ipwA/4qc - AP+QoQD/lacA/5irAP+arQD/na4A/5+xAP+iswD/orUA/6W2AP+nuAD/p7kA/6i7AP+qvAD/q70A/6y+ - AP+tvwD/rsAA/6/BAP+wwgD/scMA/7LEAP+zxgD/tccA/7bJAP+3ygD/uMoA/7fJAP+1yAD/tMYA/7PE - AP+xwwD/sMIA/6/BAP+uwAD/rb8A/6y+AP+qvAD/qbsA/6e5AP+muAD/pLYA/6K0AP+hswD/n7IA/52u - AP+arQD/l6oA/5WnAP+RowD/jJ4A/4eYAP+DlQD/jp8A/5GiAP+YqgD/oLIA/6i5AP+1yAD/rb8A/6W3 - AP+esAD/mqwA/5CiAP+LnQD/kaIA/5aoAP+YqgD/m6wA/52vAP+fsQD/obMA/6K0AP+ktwD/p7kA/6e6 - AP+puwD/qr0A/6y+AP+tvwD/r8EA/7HDAP+yxAD/tcgA/7rNAP/B1AD/yNwB/8/iCf/U5hH/1ucY/9fo - Gv/V5xX/0eQO/8veBf/E1wD/vM8A/7fJAP+zxQD/scMA/6/BAP+tvwD/q70A/6m8AP+ougD/prgA/6S2 - AP+itAD/obIA/56xAP+drwD/ma0A/5irAP+VpwD/kqQA/42fAP+ImgD/iJoA/5epAP+crgD/o7QA/6q8 - AP+zxQD/wdQA/7nLAP+wwgD/qLoA/6O0AP+WqAD/jp8A/5KkAP+WqQD/masA/5usAP+dsAD/n7EA/6Cy - AP+jtQD/pLYA/6a4AP+ougD/qrwA/6u9AP+uwAD/sMIA/7PFAP+4ygD/wNMA/8zfAv/Z6hz/4u9D/+bw - av/m7on/5u2g/+bsrP/m7Kz/5uyh/+bui//n8G3/5PBJ/93tJf/R4wr/w9cA/7nMAP+0xgD/sMIA/62/ - AP+qvQD/qbsA/6e5AP+ltwD/o7UA/6GzAP+fsQD/na8A/5qtAP+YqwD/lqgA/5OkAP+OoAD/ipsA/42f - AP+gsQD/prgA/66/AP+2yAD/v9EA/8reAP/E1wD/u84A/7PFAP+svQD/na4A/5ChAP+TpQD/l6kA/5ms - AP+brQD/nbAA/5+xAP+gsgD/pLUA/6W3AP+nuQD/qbsA/6u9AP+uwAD/scMA/7XIAP++0QD/zN8B/93t - Mv/k7nn/5Oq1/+Hn2P/g5ef/4OXr/+Dl7P/g5ez/4OXs/+Dl7P/f5ev/4OXo/+Hm2P/j6bf/5e5+/+Hv - PP/S5Qr/wdUA/7fJAP+xwwD/rb8A/6q8AP+ouQD/prgA/6O1AP+itAD/nrEA/52uAP+brQD/masA/5ap - AP+TpQD/j6EA/4udAP+SpAD/qLkA/7HCAP+5ywD/wtQA/8jcAP/S5wD/zeEA/8faAP+/0gD/tsgA/6S2 - AP+SpAD/lKYA/5eqAP+arAD/m64A/52wAP+fsgD/obMA/6S2AP+mtwD/qLoA/6q8AP+tvwD/scMA/7fK - AP/D1wD/1+kh/+Lsg//h59L/3+Tq/97k6//f5Oj/4OXm/+Hl5//h5ef/4eXn/+Hl5//g5eb/4OXm/9/l - 5v/f5Oj/3uTr/97j6v/g5dL/4+yJ/93tMP/J3QD/us0A/7HEAP+tvwD/qbsA/6a4AP+ktgD/obMA/5+y - AP+drwD/m60A/5mrAP+WqQD/lKYA/5CiAP+MngD/l6kA/7LEAP+9zwD/xNcA/8vfAP/Q5QD/1+wA/9Tp - AP/P4wD/ydwA/8HTAP+qvQD/lKYA/5WnAP+YqgD/mqwA/5quAP+drwD/n7IA/6G0AP+jtQD/prgA/6m7 - AP+svgD/sMMA/7fKAP/I3AD/3OtM/9/nxf/e4uz/3ePo/97k5f/f5OX/4OXm/+Hm5//h5ef/4eXn/+Hm - 5//h5uf/4ebn/+Hl5//g5ub/4OTm/9/k5f/f4+X/3ePo/9zi6//f5cn/4e1f/9DjBv+6zQD/scMA/6y+ - AP+ougD/pLYA/6KzAP+fsgD/na8A/5utAP+YqwD/lqkA/5SmAP+RogD/jp8A/5yuAP+7zgD/x9oA/83h - AP/S5wD/1usA/9nuAP/X7QD/1eoA/9DlAP/I3AD/sMMA/5aoAP+WqAD/mKsA/5qtAP+brgD/na8A/5+y - AP+itAD/pLYA/6e5AP+rvQD/r8EA/7fKAP/J3QH/3uty/97j4v/c4er/3ePk/97k5P/f5eX/3+Tl/+Dl - 5v/h5uf/4eXn/+Hl5//h5uf/4ebn/+Hm5//h5ef/4Obn/+Dl5v/e5OX/3+Tk/97j4//c4uT/2+Hp/9zh - 5P/g6oz/0uUP/7vOAP+wwgD/qrwA/6a4AP+itAD/oLIA/5ywAP+brQD/l6sA/5aoAP+UpgD/kaMA/46g - AP+hswD/w9YA/87iAP/T6AD/1+wA/9nuAP/Z7wD/2O4A/9ftAP/U6gD/zuIA/7XIAP+XqQD/lqkA/5ir - AP+ZrAD/m64A/52uAP+fsgD/orQA/6S3AP+ougD/rb8A/7XHAP/I2wL/3Opy/93i5//b4eX/3OLj/97j - 5P/f5OX/3+Tl/9/l5f/g5eX/4eXn/+Hl5//h5ef/4ebn/+Hm5//h5ef/4ebn/+Dm5//g5eb/3uXl/9/k - 5f/e4+T/3eLj/9zi4//a4OT/2t/p/97ok//R4xD/uMsA/67AAP+ougD/o7UA/5+xAP+dsAD/m60A/5iq - AP+WpwD/lKYA/5GkAP+PoAD/pLYA/8jcAP/T6AD/1+wA/9nuAP/a7wD/2fAA/9jvAP/X7gD/1ewA/9Dm - AP+3ywD/l6gA/5aoAP+XqgD/mqsA/5uuAP+drgD/n7EA/6G0AP+ltwD/qrwA/7HEAP/C1QD/2ule/9zh - 4//b4OX/3OLi/9zi4//d4+T/3+Tl/9/k5v/f5eX/3+Xm/+Dl5//h5ef/4eXn/+Dl5v/g5eb/4eXn/+Hm - 5//g5eb/4OTm/9/l5f/f5OX/3uPk/93i5P/c4uP/2+Hi/9nf4//Z3uf/3eiE/8veB/+0xgD/qrwA/6S2 - AP+gsgD/nbAA/5qtAP+XqQD/lacA/5OlAP+QowD/jqAA/6a4AP/M4AD/1eoA/9jtAP/Z7wD/2e4A/9To - F//f9wH/1+8A/9TrAP/Q5gD/tsoA/5WnAP+VpwD/l6oA/5mrAP+brQD/na8A/5+wAP+iswD/prgA/6y/ - AP+5zAD/1OUx/9vi0v/Z3+b/2uHi/9zi4//d4eP/3ePk/+Dl5v/h5uf/4OXm/+Dl5v/g5ef/4Obm/+Dl - 5v/h5ef/4ebn/+Hm5v/g5ub/4OXm/+Dl5v/f5OX/3+Tl/+Dl5//e4+X/2+Hj/9vh4v/a4OH/2N3i/9ne - 3//b6VX/wdUA/67AAP+muAD/oLMA/52wAP+ZrQD/l6oA/5SnAP+SpAD/kKEA/46eAP+mtgD/zeEA/9fq - AP/Y7AD/2PAA/9brB/8yMyT/kZwr/9PoFP/a8gD/zuYA/7PIAP+RowD/k6UA/5apAP+YqwD/mq0A/52v - AP+fsQD/orQA/6i6AP+xwwD/yd0K/9vlpv/Y3ej/2eDh/9rg4v/b4eL/3OHj/+Hn6P/a3+H/2d7g/+Tp - 6v/g5ef/4OXm/+Dm5v/g5ub/4ebn/+Hm5//g5ef/4Obm/+Dm5v/f5OX/4ebn/+Ln6P/W29z/3eLk/97k - 5f/a4OH/2t/h/9je3//X3OX/2eG+/9PmIP+1yAD/qLoA/6GzAP+dsAD/mawA/5apAP+TpgD/kaMA/4+g - AP+NmgD/pLIA/83fAP/V6wD/1eoG/9PIMP/OgVz/AAAD/wAABf82OR3/lqMl/87kDv+xxgD/ipwA/5Ci - AP+UpwD/l6oA/5qsAP+crwD/n7EA/6K1AP+qvAD/ucsA/9TkT//Y3uD/2d7h/9nf4f/a4OL/2+Hj/+Dm - 5/+xt7f/WV9e/1hdXP+jqKj/4+jp/+Dm5v/h5ub/4ebn/+Hm6P/h5uj/4ebn/+Hm5//g5eb/4ebn/9vh - 4f+Fior/T1VU/2pwcP/Hzs7/3OPl/9nf4f/Y3uD/2N3f/9bb4//Y5nD/wtUA/6y9AP+itAD/nbAA/5mr - AP+WqAD/k6QA/5GiAP+QnQD/jJUA/6GrAP/K3QL/0Mgo/86JWf/LVmj/ykti/wEBAf8AAAD/AAAA/wAA - B/9CRxz/j54h/4iaB/+MngD/kqUA/5aoAP+ZqwD/nK4A/5+xAP+jtQD/rL4A/8LVA//X4aX/19zm/9je - 4P/Z3+H/2+Hj/97j5f/T2dr/UFdW/y41M/8xODf/Q0lI/8jNzv/k6er/4eXn/+Hm6P/h5uf/4ebo/+Hn - 6P/h5ef/4OXm/+br7P+ip6j/MTg3/zI4N/8rMjH/dXx7/97k5v/a4OH/2N7f/9fc3v/W2+L/1t66/8ve - Ev+xwwD/o7UA/5ywAP+YqwD/lacA/5KjAP+RoAD/kJoA/4uQAP+dnBX/x41K/8tVZv/KSmL/yk9g/8tR - YP8AAAD/AAAA/wAAAP8AAAD/AAAA/yQnHf+DlBv/iJsA/4+iAP+UpwD/mKoA/5utAP+fsQD/o7UA/6/C - AP/I2iT/2N3X/9fd4f/Y3d//2uDh/9vh4//g5eb/xMrL/z1ERP8wNjX/Mzk5/zg+Pv+5vr//5uvt/+Hm - 5//g5+j/4Obn/+Dm5//h5+j/4ebn/+Dm5//n7O3/h42N/y81NP8yODf/LTMz/1lgYP/a4OH/2uDi/9fd - 3//X3N7/1tze/9Tb3f/O3j7/t8kA/6S2AP+drwD/mKoA/5SmAP+RoQD/kZ4A/5CXAP+KjwP/qXBN/8xK - Zv/KTmD/ylBg/8tQYP/LUWH/AAAA/wAAAP8AAAD/AQEB/wAAAP8GBwr/cX8j/4aaAP+NnwD/kqUA/5ep - AP+arQD/nrAA/6S2AP+zxQD/zNlY/9jc6P/Y3d//2N7f/9rg4f/c4eP/4OXm/8XLzP8+RET/LzQ0/zI3 - N/86P0D/ur/A/+br7f/h5uf/4efn/+Hm5//h5uf/4Obn/+Hm5//g5uf/5+zt/4iNjv8vNTX/Mjc3/ywy - Mv9aYWH/2uDh/9rg4v/Y3d//19ze/9bc3f/V2ub/ztpw/7rMAP+mtwD/na8A/5epAP+TpQD/kaAA/5Cb - AP+PlAD/i4oN/7deWv/NUGP/y1Vk/8tUY//KUmH/ylBg/wAAAP8AAAD/AQEB/wYGBv8DAwT/BAQH/2Rw - Kf+EmAD/ip0A/5GjAP+WqAD/mawA/56wAP+ktgD/tMYA/87ZhP/Y3en/193e/9jd3//a4OL/3OHi/+Dm - 5//Gy8z/PkVF/zA1Nf84PT7/QEVG/7m+v//m6+3/4Obn/+Hm5//h5uf/4ubn/+Hm5//h5uf/4ebn/+fs - 7f+IjY7/Nzs8/zg9Pf8tMzP/WmFh/9rg4f/a4eL/2N7g/9fc3f/V293/1dvl/87Ymv+7zQD/p7gA/5yu - AP+WqAD/kqMA/5CfAP+QmQD/jpEA/42EGv+/WGD/zlVm/81baf/NW2r/y1Zl/8tTY/8AAAD/AAAA/wQE - BP8ICAj/AgIC/wICBf9TXSv/g5cE/4eaAP+PoQD/lKYA/5irAP+drwD/pLYA/7TGAP/Q2KX/2N3m/9fd - 3//Y3uD/2+Di/9zh4//g5uf/xsvM/z9FRf8zOTn/R0tM/0tPUf+4vb7/5+zt/+Hm5//h5uj/4ebn/+Hn - 5//i5uj/4ebn/+Hm5//n7O3/h4yN/0lMTv9HS0z/LzU1/1pgYf/a4OH/2+Hj/9je4P/W3N3/1tvd/9bb - 4v/P17j/ucoH/6e5AP+brQD/lacA/5GiAP+PnQD/j5cA/4yPAP+Sfij/xVVk/81YaP/LVGP/y1Nj/8xZ - aP/MWmj/AAAA/wAAAP8AAAD/AQEB/wgICP8CAQT/RUws/4KVDP+FmAD/jaAA/5OlAP+XqgD/nK4A/6S1 - AP+zxAj/0dm7/9jc5f/Y3d7/2d/g/9vh4v/c4uP/3+Xm/83T1P9GTEv/O0A//2dqav9YXFz/vMHC/+br - 7P/h5uf/4ebo/+Hn6P/h6Oj/4ebo/+Hm5//h5eb/5uzt/5CWl/9hZGT/XWBg/zI3N/9la2v/3uPl/9vh - 4//Y3uD/193f/9bc3f/V2uD/z9bG/7fHE/+muAD/mqwA/5SmAP+QoQD/jpsA/46VAP+LjQD/mXg2/8pR - ZP/LUWH/y1Rk/8tVZf/LVmX/y1Vk/wAAAP8AAAD/AAAA/wAAAP8HBwf/AAAA/zI3Jf+BlBn/hJcA/4ye - AP+SpAD/l6kA/5utAP+itAD/sMEN/9LZw//X3eT/2Nzf/9nf4P/b4OL/3OLj/93i5P/h5+f/k5iY/0xR - UP+NkI//lpub/9vg4f/i5+j/4ebn/+Hn6P/h5+f/4ejn/+Hn6P/h5+f/4ebm/+Po6f/Jzs//mJub/3h8 - ev9OVFP/sri4/+Dm5//a4OL/2N7g/9bd3v/W3N3/1dvf/83UzP+zwhz/pLYA/5mrAP+TpQD/kKAA/46a - AP+NkwD/iosA/6FyRf/MT2P/yk9f/8pQYP/KUWD/y1Ji/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8gIxz/f5Ep/4KXAP+KnQD/kaQA/5aoAP+arAD/oLIA/62+Ef/S2cf/193j/9jd3//Z3+D/2uHi/9zi - 4//c4uP/3+Tl/+Dm5v/CyMj/vcPD/9ne3//i5+j/4Obn/+Hm6P/h5+f/4ufn/+Ln6P/i5+f/4ebn/+Hm - 5//g5eb/4ebn/9HW1/+7wMD/ys/Q/9/l5v/b4eP/2uDi/9je4P/X3d7/1tzd/9bb3//Q19H/sMAg/6Gz - AP+XqQD/kqQA/4+eAP+NmAD/jZEA/4qJBf+qbVP/zVFk/8pQYP/KUGD/y1Fh/8pQYP/KUGD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/FhcW/3qMOv+CmAD/iJ0A/4+jAP+VpwD/masA/56wAP+qug3/0djD/9jd - 5P/X3d//2d/h/9rh4v/c4uP/3eLj/97k5P/g5ub/4+np/+Ln6f/g5eb/4OXm/+Hn5//h5+j/4ujo/+Ln - 6P/i5+j/4ujo/+Ln6P/h5+f/4eXn/9/k5f/g5eb/5Onq/+Dl5//d4uP/3OHj/9vh4//Z3+D/19ze/9fb - 3f/V3N//0djS/628IP+fsQD/lqgA/5GjAP+OnQD/jZcA/42QAP+KiBD/s2dd/81SZP/KUGD/ylBg/8tR - Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wsLDf9zhEn/gZkH/4acAP+OogD/lKcA/5iq - AP+drwD/pbYI/87Wu//Z3uX/2N7f/9je4P/a3+H/2+Hi/9zh4//d4+T/4OXl/+Dl5v/f5OX/4OTm/+Dm - 5v/h5+j/4efn/+Ln6P/j5+j/4+jp/+Lo6f/h5+f/4ebn/+Dm5v/g5eb/3+Tl/9/k5f/e5OX/3ePk/9zi - 4//b4eP/2eDh/9jd3//W3N3/1tzg/8/Wy/+ouBf/nK4A/5SnAP+QogD/jp0A/4yWAP+MjwD/jIYd/7xl - Zv/MT2H/ylBg/8pRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAH/ZHNM/4Gb - Gf+EmwD/jaEA/5OmAP+XqgD/nK4A/6CyAP/I0aP/2t7o/9je4P/Z3uD/2d/h/9vg4v/c4eP/3eLk/+Dk - 5v/g5eb/3+Tl/+Dl5v/h5uf/4ebn/+Ln6P/j5+j/4ujo/+Po6P/i6Oj/4ujo/+Hm5//h5uf/4OXm/9/k - 5f/e5OX/3+Tk/97j5f/b4uP/2uDi/9ng4f/Y3uD/193e/9fc4//L07v/orMI/5qsAP+TpgD/kKEA/42c - AP+NlgD/jI4A/5CELP/EYWv/zFNk/8lPX//LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/1RjTf+DnTL/g5wB/4yhAP+TpgD/mKoA/5utAP+erwD/vsl+/9rf6v/Y3uD/2d/h/9rg - 4v/c4eL/3eLj/97j5f/f5Ob/3+Tl/+Dk5v/h5uf/4ebo/+Ln6P/i6Oj/4ujp/+Po6P/i6On/4ujp/+Lo - 6P/i5+j/4efo/+Hm5//g5eb/3+Tl/9/j5f/e4uX/3OLj/9vh4v/a4OL/2N7g/9jc3v/Y3eb/xM2e/52v - AP+ZqwD/k6UA/5GhAP+OnQD/jpcA/4uQAP+Wgjn/yVlp/8xTY//KUGD/y1Fh/8tRYf/LUWH/y1Fh/wAA - AP8CAgL/AgIC/wAAAP8AAAD/AAAA/wAAAP89Ulb/hqBJ/4KbCv+LoQD/k6cA/5mrAP+brQD/nK4A/7C+ - S//a3uj/2d7h/9rg4v/b4OL/3OHj/93i4//e4+T/3+Tm/9/k5v/h5eb/4ebn/+Hn6P/i6Oj/4ujo/+Lo - 6f/j6On/4+jq/+Po6f/i6Oj/4ejo/+Hn6P/h5uf/4OXm/9/k5f/e5OX/3eLk/93h4//b4eP/2d/i/9ne - 4P/X3d//2d7p/7fDbv+arQD/mKoA/5OlAP+RoQD/j50A/4+YAP+LkgD/oH5F/8tQY//KT1//y1Fh/8tR - Yf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/KkZd/4iiXf+CnBr/i6IA/5Oo - AP+ZqwD/nK4A/52vAP+jsxj/1dvW/9rf4//a4OL/2+Hj/9zi4//d4+T/3uPl/9/k5f/g5eb/4ebn/+Hm - 6P/h5+j/4ufo/+Lo6P/j6On/4+np/+Tp6f/k6en/4+jp/+Ln6f/i5+f/4efo/+Hm5//g5eb/3+Tl/97j - 5P/c4uP/2+Hi/9rg4v/Z3uH/2N3g/9fd4/+otzb/mq0A/5epAP+UpgD/kqIA/5CeAP+QmgD/jJcA/6t3 - Tv/MTmP/y1Bg/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/AwIC/xU4 - Xv+GoXP/hZ4x/4ykB/+UqQD/mqwA/52vAP+fsAD/nK4A/8XOn//b4en/2+Di/9zi4//d4uT/3uPl/9/k - 5f/g5eb/4ebn/+Hm6P/i5+f/4ufo/+Lo6P/j6On/4+np/+Pp6v/k6er/4+nq/+Tp6v/j6Oj/4ejo/+Ln - 5//h5uj/4ebn/9/k5v/e4+X/3ePk/9zh4//b4eL/2d/h/9nf5P/N1L//m60G/5uuAP+YqgD/lacA/5Ok - AP+ToQD/kp0A/5CbBP+4bVb/zE1i/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wICAv8AAAD/AAAA/wAA - AP8AAAD/AAAA/wMCAP8ELV3/fJ2J/4qjRP+Mphr/lasA/5uuAP+esAD/oLIA/52vAP+tu0v/2uDn/9vh - 4//d4eP/3ePk/9/k5f/g5eb/4OXn/+Hm5//h5+f/4ejn/+Lo6P/i6On/4+jp/+Po6f/k6er/5Orr/+Tp - 6//k6On/4ujp/+Ln6f/i5+j/4efo/+Hm5//g5eb/3+Tl/97i5P/d4uP/2+Di/9nf4f/b4On/tcF0/5ir - AP+crgD/masA/5epAP+WpgD/lqMA/5WfAP+YoQv/xW1R/8tMYv/LUWH/y1Fh/8tRYf/KUGD/ylBg/8tR - Yf8HBwf/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBQP/ACVa/2aMmP+UrFf/jqgv/5atB/+csAD/oLIA/6Kz - AP+hswD/nK0I/8vTtv/d4+n/3OLj/97j5P/f5OX/3+Xl/+Hm5//h5uj/4ebn/+Lo6P/i6Oj/4+fo/+Po - 6v/j6er/5Orr/+Tq6//l6uv/4+nq/+Pp6f/j6On/4ujo/+Ln6P/h5ub/4OXm/9/k5v/e4+X/3eHj/9vh - 4v/b4eX/0djQ/5yrG/+drwD/na8A/5qtAP+ZqwD/makA/5mmAP+YogD/pagT/9B0TP/LUGb/ylBg/8pQ - YP/KUGD/y1Fh/8tTY//KUGD/BgYG/wAAAP8AAAD/AAAA/wEBAf8AAAD/AAAA/wAfU/9CcZv/n7Rw/5Ks - Qf+Yrxv/nrIA/6K0AP+ktQD/pLUA/52vAP+quE3/3eLp/93i5P/d4+T/3+Tl/+Dk5v/h5uf/4efo/+Ln - 6P/i5+j/4ujp/+Lo6f/k6en/5Orq/+Tq6//k6uv/5err/+Tp6v/j6er/4+jp/+Ho6P/i5uj/4Obn/+Dl - 5//g5eb/3uTl/9zi4//b4eP/3uPt/7C8c/+WqAD/oLEA/56wAP+drwD/nK0A/5yrAP+dqQD/m6YB/7ew - Gv/Udkj/y1Np/8lPX//KUGD/ylBg/8tSYv/LUmL/ylBg/wEBAf8AAAD/AAAA/wEBAf8BAQH/AAAA/wAA - AP8AIlP/F1GW/6G2jf+aslT/m7I2/6G1Df+ltwD/p7kA/6i5AP+mtwD/l6kB/77Hm//g5u7/3uPk/9/k - 5v/g5eb/4eXm/+Hn6P/i6Oj/4+jo/+Pn6f/j6en/4+rq/+Tr6//k6uv/5erq/+Xq6//k6ev/5Ojq/+Po - 6P/i6Oj/4ufo/+Hn6P/h5uf/4OXm/97k5f/c4uP/3+Xr/8fPuv+Rogz/oLIA/6K0AP+hswD/obIA/6Cw - AP+hrwD/oq0A/6OsEv/Mthr/0nFB/8pOZf/KUGD/y1Fh/8tRYf/KUGD/ylBg/8tRYf8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/ACRU/wE9jv+Lp5//qb5q/5+2SP+juCf/qLoF/6u8AP+rvQD/q7wA/6S2 - AP+Wph//zdTK/+Ln7P/f5OX/4Obn/+Dm5//h5uj/4ujo/+Lo6P/j5+j/4+jq/+Tq6v/k6uv/5err/+Xq - 6v/l6ur/5err/+Pp6v/i6On/4+fp/+Lo6P/h5+j/4eXn/+Dl5v/e4+T/4OXp/9Ta2/+ToTf/m60A/6a3 - AP+ltwD/pbYA/6S1AP+lswD/prIA/6awAP+wtC//2LYN/9BtPv/JTGP/y1Fh/8pQYP/KUGD/ylBg/8pQ - YP/LUWH/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AAAA/wAlVP8AN4n/VX6g/7zNiv+lvFn/prw8/6q+ - Gv+uwAD/r8EA/6/BAP+uvwD/oLEA/5SjOf/T2dn/4+fr/+Dl5v/h5+f/4efo/+Lo6P/i6Oj/4+jp/+Tp - 6f/k6ev/5err/+Xq6//l6uv/5err/+Xq6v/k6uv/4+jp/+Po6f/i6Of/4efo/+Dm5v/f5OX/4ebp/9nf - 4/+UoVX/k6UA/6m6AP+quwD/qboA/6m6AP+puQD/qrcA/6u2AP+ttg//xbxB/9y0AP/QcUP/yk1k/8pQ - YP/LU2P/y1Zl/8tVZP/LUmL/yk9g/wAAAP8AAAD/AQEB/wYGBv8EBAT/AwMD/wQDAv8CKFf/ADqK/xRM - kP+4y6n/s8dv/6zBTP+uwjL/scQP/7PFAP+0xQD/s8UA/7LDAP+drwD/j55A/8vSzv/m6/H/4ujq/+Hn - 5//h5+j/4ujp/+Pp6f/k6ur/5err/+Xq6//l6ur/5err/+Tr6//l6uv/5Onr/+Pp6v/j6On/4efo/+Hm - 5//i5+j/5urw/9HY1/+Nm1j/j6AA/6y+AP+vwAD/r8AA/66/AP+uvgD/r70A/7C8AP+xuwD/ucI//9e7 - L//bsgD/0G9C/8pNZP/KUGD/zFdm/81aaf/NW2r/y1Zl/8tUZP8AAAD/AAAA/wQEBP8ICAj/AwMD/wUF - Bf8EAgH/AypZ/wA9iv8ANIP/fZ6v/8zbkv+yx2D/ssdG/7XILP+3ygr/uMoA/7nLAP+4ywD/t8kA/6Kz - AP+HmCL/rria/93i5v/n7PH/5Ors/+Pp6f/i6On/4+rq/+Xq6//l6ur/5Orr/+Xr6//k6+z/5Ovr/+Xq - 6//j6er/4+jp/+Tp6//n7PD/3uTo/7G7pf9/jzH/lKYA/7LDAP+1xwD/tcYA/7TFAP+zxAD/s8MA/7TC - AP+2wQD/usMY/83LY//dtAn/2rIA/89tQf/KTGT/ylFh/8xYZ//LU2P/y1Nj/8xYZ//MWWj/AAAA/wAA - AP8AAAD/AQEB/wgICP8EBAT/CQcE/wEnVv8APov/ADeD/x9UlP/J2rX/wdR5/7jNWP+5zT3/u84f/7zP - Af++0AD/vtAA/77RAP+8zwD/r8EA/4+hBf+LmkT/sbyh/9Xc2v/l6u//6O3y/+ft8P/n7O7/5uzt/+bs - 7f/m7O3/5u3u/+ft7//o7vD/6e7y/+Xr7v/V3Nr/srym/4eWT/+DlQz/pbcA/7jKAP+7zQD/us0A/7rM - AP+5ygD/uMkA/7nIAP+7xwD/vccE/8jRXP/cwzz/268A/9uzAP/QbkL/yUxj/8pQYP/KUWH/y1Rj/8tV - ZP/LVmb/y1Rk/wAAAP8AAAD/AAAA/wAAAP8GBgb/AAAA/wIBAf8AJVT/AD6M/wA7hf8ANIP/cZWx/93r - oP++1G3/vdNR/7/TNv/B1BX/wtYB/8PXAP/E2AD/xdkA/8TYAP/A0gD/rL4A/4+hBP+Gly3/lqNm/624 - mf/Ezb//0dnT/9ng3//c4+P/3OPj/9ng3//R2dT/xM3A/624m/+UoWr/gZE0/4aXCv+itAD/us0A/8LV - AP/D1gD/wtUA/8DTAP+/0QD/v9AA/7/OAP/AzQD/ws0A/8fSO//b13b/3bQH/9uwAP/bswD/0G5C/8pN - ZP/LUGD/ylBg/8pQYP/KUGD/y1Jh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ACVU/wA+ - jP8APIb/ADmE/wxCjP/A07//1uiO/8PZZf/D2Ev/xNkx/8baFP/I3AD/yt4A/8vgAP/N4QD/zuIA/83h - AP/J3AD/u84A/6a5AP+TpgL/iJoQ/4SVIf+FlTD/hpY4/4WVOf+ElDL/gpMk/4OWE/+NoAT/n7IA/7XI - AP/F2AD/zN8A/8zhAP/M4AD/yd4A/8fbAP/F2AD/xNcA/8TVAP/E0wD/xtIA/8nUJv/Z4IL/378s/9qt - AP/arwD/2rIA/89tQf/KTmX/y1Nj/8pQYP/KUGD/y1Fh/8pQYP/KUGD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AgEA/wAmVf8APYv/ADyG/wA8hv8AM4H/M2Oe/+Dtvv/W6IX/yd9l/8rfTP/L4DX/zeIa/8/j - A//R5gD/0ucA/9TqAP/X7AD/2e4A/9rvAP/b7gb/2ewc/9PmIv/N4CL/yNof/8TWHv/E1h//xtkh/8ze - JP/S5ST/2Osi/9ruFP/a7wD/2e4A/9bsAP/U6QD/0eYA/8/kAP/M4QD/yt4B/8ndAv/J2gD/ytkE/83Z - Jv/Z5Hv/489X/9qsAP/arwD/2q8A/9uzAP/QckX/y1Jo/8tTYv/KUGD/ylBg/8tRYf/LUWH/y1Fh/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wIBAP8ELlv/AD+M/wA7hf8APIb/ADuF/wAzgv9cg6z/6/a6/9nt - hf/R5mj/0eZV/9PnQv/U6Sr/1usP/9ftAf/a7wD/3PEA/97xAP/h8QD/5PIN/+fyKv/q9D7/7PVM/+71 - VP/v9lj/7/ZZ/+72Vv/t9VD/6/RF/+fzM//l8xv/4vIB/97xAP/c8AD/2e4A/9brAP/T6QD/0OYO/87k - If/N4ir/zeAs/9DgQP/a6H3/5dpx/9ywBf/argD/2q8A/9qwAP/btAD/0HFE/8tTaf/KUWH/ylBg/8tR - Yf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ACpX/wFEj/8AO4X/ADyG/wA8 - hv8AO4X/ADSD/3SVtv/z/b7/4fOM/9vud//a7mf/2+9W/9zwQv/d8Sr/3/Ib/+HyE//j8hD/5vIV/+jy - I//r8S//7fI8/+/zRf/x9Ez/8/RP//P0T//y9E3/8PRI/+7yP//r8TT/6fIn/+byF//j8gn/4PIE/97x - Bf/b8Az/1+0g/9XrOP/T6kn/0uhW/9PnY//e74//6OKD/9yzDf/argD/2q8A/9uxAP/bsgD/27QA/9F1 - SP/MVmz/y1Rk/8lPX//LUWH/y1Fh/8tRYf/LUWH/AAAA/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAl - VP8APoz/ADuF/wA8hv8APIb/ADyF/wA6hP8AOIT/hI7K//z9z//s/J3/4/WI/+L0eP/i9Gn/4/Ra/+Tz - Tv/l80T/6PM8/+nyOv/s8jr/7vI+//DzQ//y80j/8/NL//TzTv/0807/8/NM//LzSP/w80T/7vI+/+zy - OP/p8jP/5/Mu/+TzLP/h8i//3/I4/93yR//a8Fr/2e9q/9zwfP/s9qb/6+OM/920D//ZrQD/27AA/9mu - AP/arwD/3LMA/9y2AP/RdEb/ylFn/8tTY//KUGD/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8CAgL/AgIC/wAA - AP8AAAD/AAAA/wAAAP8AJVT/AD2L/wA7hf8AO4X/ADuF/wA7hf8APYf/AEGE/zEgvv+xZ///8erh//f/ - t//s+J3/6faN/+n1gP/q9XP/6/Rp/+zzX//u81f/8PNU//H0Uv/z9FP/8/NU//T0VP/09FT/8/NV//T0 - Vf/09FT/8/NS//H0Uf/v80//7fNO/+vzTv/o81D/5vNW/+P0X//h9Gz/4fV8/+v3lv/v+b7/juTA/7i1 - G//drQD/2q8A/9uwAP/arwD/2q8A/9uwAP/bswD/0G9C/8lMY//KUGD/y1Fh/8tRYf/LUWH/y1Fh/8tR - Yf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DAgH/AipY/wFEj/8BQYn/AUKK/wFBif8AO4X/ADuF/wA9 - gP85K73/fw///5I9///avvP//P/S//f+sv/y+KD/8PaS//D2h//x9X7/8vV1//T0b//09Gv/9PRo//T0 - Zv/09GX/9PRk//T0Zv/09Gf/9PRn//T0af/09Wn/8/Rq//H1a//u9G3/7fRw/+v1d//q9YL/7/eW//r7 - t//Y9M7/VNWx/wDAjP+wshf/4K8A/9uwAP/bsAD/27AA/9uwAP/arwD/2rIA/89tQf/KTWT/y1Fh/8tR - Yf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/BQMC/wEoVv8AQI3/AD6H/wA9 - hv8CRIv/ADyG/wA6hP8APID/Oiy+/4QY//96E///fhv//6lm/v/m0u///f7W//3/vv/5+qv/9/ed//f2 - lP/29oz/9vWH//X1g//19X//9fV9//X1fP/19X3/9fWA//b2g//29oX/9vaH//b2iv/19oz/9PaQ//X3 - l//6+af///vA/+P30/9/4MH/F8id/wC/jP8AwIz/s7MZ/+CvAP/bsAD/27AA/9qvAP/arwD/2q8A/9uz - AP/QbkH/yk1k/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wMDA/8AAAD/AAAA/wAAAP8AAAD/AAAA/wUD - Af8CLFn/AUOO/wA/h/8CRYz/AUSL/wA8hv8AO4X/ADyA/zkrvf+EGP//fhr//3wX//97Fv//hSj//6pq - ///Zvfj/9O/o////1f///8T///22//36rP/6+KT/+Pif//f3nP/395v/9/ec//f3n//4+KP/+fim//z4 - q///+bH///u5///8xv/4+9f/zPLY/3LewP8byJ3/AMKR/wDDkf8AwpD/AMGM/7KyGf/frgD/27AA/9uw - AP/arwD/27AA/9uxAP/ctQD/0HFC/8lMY//LUWH/y1Fh/8tRYf/KUGD/ylBg/8tRYf8HBwf/AAAA/wAA - AP8AAAD/AAAA/wAAAP8GBAP/AilY/wFFkP8CRoz/AD+H/wJFjP8APIX/ADqE/wA+gv86LL7/gxf//30Z - //99Gf//gyP//4Ii//99Gf//gxv//2xQ//9Xq///mcn9/8nj9v/p8+3/+Prl///+3v///9n////X///9 - 1v///Nj///zb//v84f/u+uj/1vbw/6nv+P9x5Pj/Ls+v/wLDk/8AwIz/AMOR/wDCj/8AxJP/AMKP/wDA - jf+zsxn/4K8A/9qvAP/arwD/2q8A/9uxAP/bsgD/3LUA/9F0Rv/KUmj/ylBg/8pQYP/KUGD/y1Jh/8tT - Y//KUGD/BQUF/wAAAP8AAAD/AAAA/wEBAf8AAAD/AAAA/wAlVP8AP4z/AD+I/wA7hf8AO4X/ADuG/wA7 - hf8AP4L/PDHA/4QY//99Gf//fRr//4Ii//+BIP//gB///4gi//9WOv//AHj//wB1//8EfP//G4j//zKU - //9Lov//W6j//2a5//9p5f//X+P//1Ph//862///Idb//wrT//8A0P//AM32/wDBk/8AwIv/AMGO/wDD - kP8AwY3/AMGN/wDCjf8AwY3/s7MZ/+CwAP/arwD/2q8A/9qvAP/bsQD/27EA/9u0AP/RdUj/y1Np/8lP - X//KUGD/ylBg/8tSYv/LUmL/ylBg/wAAAP8AAAD/AAAA/wEBAf8BAQH/AAAA/wAAAP8AJlX/AD2L/wA7 - hf8APIb/ADuF/wA8hv8APIb/ADyA/zosvf+EGP//fRn//30Z//99Gf//fhv//38c//+EGv//Vjj//wB9 - //8Aef//AHn//wB3//8Adv//AHX//wBx//8Ahf//AM///wDQ//8Az///AM7//wDP//8A0P//ANH//wDP - 9v8AwpX/AMCL/wDBjf8AwY3/AMKO/wDCjf8Awo3/AMKO/7KyGf/grgD/27AA/9qvAP/arwD/2q8A/9qw - AP/bswD/0HBE/8pOZf/KUGD/y1Fh/8tRYf/KUGD/ylBg/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/ACZV/wA+jP8APIb/ADuF/wA7hf8APIb/ADyG/wA9gf85K77/gxf//34Z//9+Gv//fRn//30Z - //99Gf//gRX//1U3//8Aff//AHn//wB5//8Aef//AHn//wB6//8Ad///AIj//wDQ//8A0P//AND//wDR - //8A0f//AND//wDQ//8AzvX/AMKV/wDAi/8Awo7/AMKO/wDCjf8AwY3/AMKO/wDCjv+zsxn/364A/9uw - AP/bsAD/27AA/9uwAP/bsAD/2rIA/89tQf/JTGP/y1Fh/8pQYP/KUGD/ylBg/8pQYP/LUWH/AAAA/wAA - AP8AAAD/AgIC/wEBAf8AAAD/AAAA/wAlVP8APoz/ADuF/wA8hv8AO4X/ADuF/wA8hv8APID/OSu9/4MX - //99Gf//fRn//30Z//99Gf//fhv//4Qb//9WN///AHz//wB9//8Aff//AH7//wB6//8AeP//AHf//wCI - //8A0P//ANH//wDR//8A0P//AND//wDR//8A0f//AM/2/wDDlv8AwIv/AMKO/wDBjf8Awo7/AMGN/wDB - jf8Awo7/s7MZ/9+uAP/arwD/2q8A/9qvAP/arwD/2q8A/9uzAP/QcUT/yk1k/8pQYP/LVGP/zFdm/8xW - Zv/LUmL/yk9f/wAAAP8AAAD/AQEB/wcHB/8DAwP/AwMD/wQDAv8CKVf/AD6L/wA7hf8APIb/AUGJ/wA+ - h/8AO4X/AD2B/zsuvv+EGP//giP//34a//9+G///fhr//34b//+CF///Vjf//wB9//8Af///AID//wCA - //8Afv//AHz//wB2//8Aif//ANH//wDR//8A0f//AM///wDR//8A0v//ANL//wDQ9v8AxJn/AMKP/wDB - jf8AwY3/AMGN/wDDkP8AwpD/AMGN/7OzGf/grwD/2q8A/9uxAP/bsAD/2q8A/9qvAP/bswD/0G5C/8pN - ZP/KUGD/zFdn/8xZaP/MWmn/y1dm/8tVZf8AAAD/AAAA/wMDA/8HBwf/AwMD/wYGBv8FAgH/AylY/wA+ - iv8AO4X/ADuF/wA9hv8AP4j/ADuE/wA9gf8/N8L/iSL//4Ii//+CI///hCX//4Ae//98GP//gRX//1Y3 - //8Afv//AH///wB7//8Ae///AH///wB+//8Ad///AIz//wDR//8A0f//ANH//wDQ//8A0f//ANL//wDS - //8A0fb/AMSZ/wDDkP8AwIz/AMGN/wDBjf8Awo7/AMOQ/wDBjf+zsxn/4bIA/9uyAP/bsgD/27EA/9uy - AP/bsQD/2rIA/89tQf/KTWT/ylFh/8xYZ//LVGP/y1Nj/8xXZ//MWWj/AAAA/wAAAP8AAAD/AQEB/wgI - CP8EBAT/CQcE/wAmVf8APov/ADyG/wA8hv8AO4X/ADuF/wA6hP8APYH/PTPC/4ce//9+Gv//fx3//4Ad - //+BH///fBj//4IW//9VN///AHz//wB6//8Ae///AH3//wB+//8Ae///AHb//wCI//8A0P//AND//wDR - //8A0P//AM///wDQ//8A0///ANH2/wDGnf8Awo7/AMCM/wDCjv8Awo7/AMGN/wDBjf8AwI7/s7MZ/+Gx - AP/bsQD/2q8A/9qvAP/bsAD/27EA/9uzAP/QbkL/yUxj/8pQYP/KUWD/y1Ni/8tVZP/MV2b/y1Rj/wAA - AP8AAAD/AAAA/wAAAP8FBQX/AAAA/wEBAP8AJVT/AD6M/wA8hv8APIb/ADyG/wA7hf8AO4X/ADyA/z40 - wP+IIP//giL//4Ih//+CIv//gB7//30Z//+BFf//Vjj//wB8//8Aef//AHn//wB5//8Aev//AHn//wB3 - //8Aif//ANH//wDR//8A0P//ANH//wDQ//8A0P//ANL//wDP9f8Aw5f/AMGM/wDBjf8Awo7/AMKO/wDC - jv8AwY3/AMGN/7OyGf/gsQD/27IA/9uxAP/bsQD/27EA/9uxAP/bswD/z21B/8pNZP/KUGD/ylBg/8pQ - YP/KUGD/y1Fh/8tQYP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ACVU/wA+jP8APIb/ADyG/wA7 - hf8AP4f/AD6H/wA8gP86LL3/hBj//34a//9+Gv//fRn//30Z//99Gf//gRX//1Y5//8Af///AHn//wB6 - //8Aef//AHn//wB7//8Aef//AI///wDT//8A0v//AND//wDQ//8A0f//ANH//wDQ//8Azvb/AMKV/wDA - i/8AwY3/AMKO/wDCjv8AwY3/AMKP/wDCkP+zshn/4K8A/9uwAP/bsAD/27AA/9qvAP/arwD/2rIA/85t - Qf/KTmX/y1Rj/8pQYP/KUGD/y1Fh/8pQYP/KUGD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwIA/wAm - Vf8APYv/ADyG/wA8hv8AO4X/AD2H/wA8hv8APID/OSu9/4MX//9+Gf//fRn//30Z//9+G///giL//4Qb - //9VN///AH7//wB5//8Aev//AHn//wB5//8Af///AH7//wCM//8A0f//ANL//wDQ//8Az///ANH//wDR - //8A0f//AM/2/wDClv8Awo7/AMKP/wDBjf8AwY3/AMGN/wDCj/8Awo7/s7IZ/9+uAP/arwD/27AA/9uw - AP/arwD/2q8A/9uzAP/Qc0X/y1Jp/8pSYv/KUGD/ylBg/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wIBAP8ELlv/AECM/wA7hf8APIb/ADyG/wA7hf8AO4X/AD2B/zosvv+EGP//fRn//38c - //+AH///gB///38e//+GH///Vjj//wB8//8Aev//AHr//wB5//8AeP//AH3//wB6//8Ai///ANH//wDR - //8A0P//AND//wDR//8A0f//ANH//wDP9v8Awpb/AMGN/wDDkf8AwY3/AMGN/wDCjv8AwY3/AMGN/7Oz - Gf/grwD/27AA/9qvAP/arwD/2rAA/9qwAP/btAD/0HFE/8tTaf/KUmH/ylBg/8tRYf/LUWH/y1Fh/8tR - Yf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AClX/wFEj/8AO4X/ADyG/wA8hv8APIb/ADyG/wA8 - gP86K73/hBj//30Z//+CIv//gyT//4Ag//+DJP//iSP//1c6//8Aff//AHr//wB6//8Aev//AHn//wB6 - //8AfP//AIv//wDQ//8A0P//ANH//wDR//8A0f//ANH//wDR//8Az/b/AMOW/wDAi/8AwY3/AMKO/wDC - jv8Awo7/AMKO/wDCjv+zsxn/4K4A/9uwAP/arwD/2a4A/9uxAP/bsgD/27UA/9F1SP/MV2z/y1Vk/8lP - X//LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAlVP8APYv/ADyG/wA8 - hv8APIb/ADyG/wA7hf8APID/OSy+/4QY//98GP//fx3//4Yq//+EJv//gSH//4QZ//9XOf//AH3//wB6 - //8Aev//AHr//wB6//8Aef//AHb//wCI//8A0P//ANH//wDQ//8A0f//AND//wDQ//8A0f//AM/2/wDD - lv8AwYz/AMKO/wDCjv8Awo7/AMKO/wDCjv8AwY3/srIY/+CvAP/arwD/27AA/9quAP/arwD/3LMA/9y2 - AP/RdEb/yk9m/8tSYv/KUGD/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8DAwP/AQEB/wAAAP8AAAD/AAAA/wAA - AP8AJlX/AD2L/wA7hf8AO4X/ADuF/wA7hf8APYb/AEKE/zosvv+EF///fRn//30a//9/Hf//fhr//34b - //+BFf//VTf//wB9//8Aev//AHr//wB6//8Aev//AHr//wB2//8Aif//ANH//wDR//8A0P//ANH//wDR - //8A0P//ANH//wDP9v8Aw5b/AMGM/wDCjf8AwY3/AMGN/wDBjf8AwY7/AMGO/7O0Gf/grwD/2q8A/9uw - AP/arwD/2q8A/9uwAP/bswD/0G5C/8lMY//KUGD/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wEB - Af8AAAD/AAAA/wAAAP8AAAD/ACVU/wA+jP8APof/AT+I/wA+h/8AO4X/AD2G/wA+gf86K77/hBf//34a - //99Gf//fRn//30Z//99Gf//ghb//1Y4//8Aff//AHr//wB6//8Aev//AHr//wB6//8Ad///AIn//wDR - //8A0f//AND//wDQ//8A0f//AND//wDR//8Az/b/AMOW/wDBjP8Awo7/AMKP/wDDkP8Awo//AMGO/wDC - jv+zsxn/4K8A/9qvAP/bsAD/27AA/9uwAP/arwD/2rIA/89tQf/KTWT/y1Fh/8tRYf/LUWH/y1Fh/8tR - Yf/LUWH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/UpcomingShowDB.json b/UpcomingShowDB.json new file mode 100644 index 000000000..d8959a6f2 --- /dev/null +++ b/UpcomingShowDB.json @@ -0,0 +1 @@ +{"version":6,"data":{"shows":[{"id":"anniversary_fp12_ltm","levels":[{"id":"pineclimb_anniversary","share_code":"5713-2308-8529","display_name":"Pine Climb","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"trickortrapeze_anniversary","share_code":"0731-1638-9053","display_name":"Trick or Trapeze","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"circleoslime_anniversary","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"goopropegrandslam_anniversary","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"cloudyteacupsgoldrush_anniversary","share_code":"3298-6726-4118","display_name":"Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"castlesiege_anniversary","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"hopadrome_anniversary","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"dodgedivesurvive_anniversary","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"rotateandeliminate_anniversary","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"rollerderby_anniversary","share_code":"5262-9825-8649","display_name":"Roller Derby","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"mellowcakes_anniversary","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"showcase_boats","share_code":"5460-7537-0756","display_name":"Pier Pressure","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true}]},{"id":"event_animals_template","levels":[{"id":"blunderboat_animals","share_code":"8157-2006-4895","display_name":"Blunder Boat","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"clumsycrusade_animals","share_code":"4173-5572-2924","display_name":"Clumsy Crusade","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_closingtime_animals","share_code":"8137-2595-3209","display_name":"In-Egg-Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false}]},{"id":"event_only_finals_v3_ranked","levels":[{"id":"circleoslime_only_finals_final_ranked","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"goopropegrandslam_only_finals_final_ranked","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"cloudyteacupsgoldrush_only_finals_final_ranked","share_code":"3298-6726-4118","display_name":"Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"castlesiege_only_finals_final_ranked","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"hopadrome_only_finals_final_ranked","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"dodgedivesurvive_only_finals_final_ranked","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"pineclimb_only_finals_final_ranked","share_code":"5713-2308-8529","display_name":"Pine Climb","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"rotateandeliminate_only_finals_final_ranked","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"rollerderby_only_finals_final_ranked","share_code":"5262-9825-8649","display_name":"Roller Derby","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"trickortrapeze_only_finals_final_ranked","share_code":"0731-1638-9053","display_name":"Trick or Trapeze","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"mellowcakes_only_finals_final_ranked","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"pier_pressure_only_finals_final_ranked","share_code":"5460-7537-0756","display_name":"Pier Pressure","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"circleoslime_only_finals_normal_ranked","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"goopropegrandslam_only_finals_normal_ranked","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"cloudyteacupsgoldrush_only_finals_normal_ranked","share_code":"3298-6726-4118","display_name":"Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"castlesiege_only_finals_normal_ranked","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"hopadrome_only_finals_normal_ranked","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"dodgedivesurvive_only_finals_normal_ranked","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"rotateandeliminate_only_finals_normal_ranked","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"rollerderby_only_finals_normal_ranked","share_code":"5262-9825-8649","display_name":"Roller Derby","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"mellowcakes_only_finals_normal_ranked","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"pier_pressure_only_finals_normal_ranked","share_code":"5460-7537-0756","display_name":"Pier Pressure","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false}]},{"id":"event_only_finals_v3_template","levels":[{"id":"circleoslime_only_finals_v3_final","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"goopropegrandslam_only_finals_v3_final","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"cloudyteacupsgoldrush_only_finals_v3_final","share_code":"3298-6726-4118","display_name":"Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"castlesiege_only_finals_v3_final","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"hopadrome_only_finals_v3_final","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"dodgedivesurvive_only_finals_v3_final","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"pineclimb_only_finals_v3_final","share_code":"5713-2308-8529","display_name":"Pine Climb","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"rotateandeliminate_only_finals_v3_final","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"rollerderby_only_finals_v3_final","share_code":"5262-9825-8649","display_name":"Roller Derby","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"trickortrapeze_only_finals_v3_final","share_code":"0731-1638-9053","display_name":"Trick or Trapeze","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"mellowcakes_only_finals_v3_final","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"circleoslime_only_finals_v3_normal","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"goopropegrandslam_only_finals_v3_normal","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"cloudyteacupsgoldrush_only_finals_v3_normal","share_code":"3298-6726-4118","display_name":"Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"castlesiege_only_finals_v3_normal","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"hopadrome_only_finals_v3_normal","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"dodgedivesurvive_only_finals_v3_normal","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"rotateandeliminate_only_finals_v3_normal","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"rollerderby_only_finals_v3_normal","share_code":"5262-9825-8649","display_name":"Roller Derby","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"mellowcakes_only_finals_v3_normal","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false}]},{"id":"event_snowday_stumble","levels":[{"id":"round_winter_hohoholeymoley_sds","share_code":"6984-6467-1451","display_name":"Winter Gold Rush","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_crumblecave_sds","share_code":"5611-7419-9285","display_name":"Winter Clumsy Caverns","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_standard_fireworks_sds","share_code":"8464-4988-1539","display_name":"Winter Slime Saloon","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_cloudyteacups_final_sds","share_code":"3454-5325-3185","display_name":"Winter Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"round_goopropegrandslam_final_sds","share_code":"6692-6694-2074","display_name":"Winter Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true}]},{"id":"greatestsquads_ltm","levels":[{"id":"gs_topofthetrash","share_code":"7252-6787-7802","display_name":"Top of the Trash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_sortitout","share_code":"9576-1366-7102","display_name":"Sort It Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_boxparty","share_code":"1007-5495-8724","display_name":"Box Party","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_chickengulch","share_code":"0656-0741-2282","display_name":"Chicken Gulch","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_slidensmash","share_code":"6581-2980-2261","display_name":"Slide N' Smash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_bubblegumbrew","share_code":"8058-6542-4380","display_name":"Bubblegum Brew","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_goldrush","share_code":"2447-8130-0769","display_name":"Gold Rush","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_treasuretrove","share_code":"5241-7978-3592","display_name":"Treasure Trove","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_circleoslime","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_gooproperodeo","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_slimeballshowdown","share_code":"3298-6726-4118","display_name":"Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_castlesiege","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_hopadrome","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_slimecycle","share_code":"9617-0392-6848","display_name":"Slime Cycle","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_rotateandeliminate","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_teatime","share_code":"8565-5169-6669","display_name":"Tea Time","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_spacebounders","share_code":"6543-1817-8151","display_name":"Space Bouncers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_mindthegap","share_code":"1080-0262-1923","display_name":"Mind The Gap","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_clumsycarnival","share_code":"3848-3963-2097","display_name":"Clumsy Carnival","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_spookyslingers","share_code":"7208-8928-9739","display_name":"Spooky Slingers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_clumsycaverns","share_code":"3247-4433-2280","display_name":"Clumsy Caverns","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_slimesaloon","share_code":"0579-5679-4945","display_name":"Slime Saloon","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_dragondashers","share_code":"9953-3402-1607","display_name":"Dragon Dashers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_slippyslopes","share_code":"0275-8967-0239","display_name":"Slippy Slopes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_bouncytravel","share_code":"5399-4202-9792","display_name":"Bouncy Travel","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_theswirlygig","share_code":"3904-1045-4784","display_name":"The Swirlygig","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_zerogzone","share_code":"4622-3864-5825","display_name":"Zero-G Zone","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_reboundrun","share_code":"8622-3499-1900","display_name":"Rebound Run","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_bubblingbrook","share_code":"3969-8192-3044","display_name":"Bubbling Brook","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_dodgedivesurvive","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_pineclimb","share_code":"5713-2308-8529","display_name":"Pine Climb","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_bubblegumroll","share_code":"8105-1835-0724","display_name":"Bubble Gum Roll","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_aerialtableau","share_code":"7341-2633-9896","display_name":"Cylinder Stumble","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_rooftoprangers","share_code":"8193-8086-6716","display_name":"Rooftop Rush","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_mellowcakes","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_seasidesprint","share_code":"4361-2599-8293","display_name":"Seaside Sprint","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_hightide","share_code":"3290-9792-0888","display_name":"High Tide","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_pierpressure","share_code":"5460-7537-0756","display_name":"Pier Pressure","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_ineggout","share_code":"8137-2595-3209","display_name":"In-Egg-Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false}]},{"id":"greatestsquads_ranked","levels":[{"id":"gs_topofthetrash_ranked","share_code":"7252-6787-7802","display_name":"Top of the Trash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_sortitout_ranked","share_code":"9576-1366-7102","display_name":"Sort It Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_boxparty_ranked","share_code":"1007-5495-8724","display_name":"Box Party","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_chickengulch_ranked","share_code":"0656-0741-2282","display_name":"Chicken Gulch","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_slidensmash_ranked","share_code":"6581-2980-2261","display_name":"Slide N' Smash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_bubblegumbrew_ranked","share_code":"8058-6542-4380","display_name":"Bubblegum Brew","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_goldrush_ranked","share_code":"2447-8130-0769","display_name":"Gold Rush","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_treasuretrove_ranked","share_code":"5241-7978-3592","display_name":"Treasure Trove","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_bouncytravel_ranked","share_code":"5399-4202-9792","display_name":"Bouncy Travel","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_theswirlygig_ranked","share_code":"3904-1045-4784","display_name":"The Swirlygig","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_zerogzone_ranked","share_code":"4622-3864-5825","display_name":"Zero-G Zone","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_reboundrun_ranked","share_code":"8622-3499-1900","display_name":"Rebound Run","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_bubblingbrook_ranked","share_code":"3969-8192-3044","display_name":"Bubbling Brook","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_bubblegumroll_ranked","share_code":"8105-1835-0724","display_name":"Bubble Gum Roll","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_circleoslime","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_gooproperodeo","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_slimeballshowdown","share_code":"3298-6726-4118","display_name":"Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_hopadrome","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_slimecycle","share_code":"9617-0392-6848","display_name":"Slime Cycle","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_rotateandeliminate","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_teatime","share_code":"8565-5169-6669","display_name":"Tea Time","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_spacebounders","share_code":"6543-1817-8151","display_name":"Space Bouncers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_mindthegap","share_code":"1080-0262-1923","display_name":"Mind The Gap","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_clumsycarnival","share_code":"3848-3963-2097","display_name":"Clumsy Carnival","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_clumsycaverns","share_code":"3247-4433-2280","display_name":"Clumsy Caverns","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_slimesaloon","share_code":"0579-5679-4945","display_name":"Slime Saloon","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_dragondashers","share_code":"9953-3402-1607","display_name":"Dragon Dashers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_slippyslopes","share_code":"0275-8967-0239","display_name":"Slippy Slopes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_dodgedivesurvive","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_pineclimb","share_code":"5713-2308-8529","display_name":"Pine Climb","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_aerialtableau","share_code":"7341-2633-9896","display_name":"Cylinder Stumble","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_mellowcakes","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_seasidesprint","share_code":"4361-2599-8293","display_name":"Seaside Sprint","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_hightide","share_code":"3290-9792-0888","display_name":"High Tide","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_pierpressure","share_code":"5460-7537-0756","display_name":"Pier Pressure","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_castlesiege","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"gs_spookyslingers","share_code":"7208-8928-9739","display_name":"Spooky Slingers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_rooftoprangers","share_code":"8193-8086-6716","display_name":"Rooftop Rush","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"gs_ineggout_ranked","share_code":"8137-2595-3209","display_name":"In-Egg-Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false}]},{"id":"knockout_mode","levels":[{"id":"knockout_fp10_rotationstation_opener","share_code":"5780-8198-0947","display_name":"ROTATION STATION","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_fp10_rutaenlaselva_bigfiller","share_code":"1899-0629-5726","display_name":"RUTA EN LA SELVA","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_bouncetrounce_opener","share_code":"3505-0169-1808","display_name":"BOUNCE TROUNCE","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_skydive_opener","share_code":"2977-6694-7955","display_name":"SKYDIVE","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_rainbowrumble_opener","share_code":"5721-3665-5415","display_name":"Rainbow rumble","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_iceclimb_opener","share_code":"2985-8206-0605","display_name":"Ice Climb","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_summergames_opener","share_code":"5283-5709-9142","display_name":"Summer Games","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_frogkingdom_opener","share_code":"7367-6478-4169","display_name":"Frog kingdom","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_cavaleirosvelozes_opener","share_code":"9479-7646-4643","display_name":"Cavaleiros Velozes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_celestialtale_opener","share_code":"9831-3388-4115","display_name":"CELESTIAL TALE","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_olimpia_opener","share_code":"5992-4048-2451","display_name":"Olimpia","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_awestruckaqueduct_filler","share_code":"8050-7447-8702","display_name":"Awestruck Aqueduct","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_pacerace_filler","share_code":"3937-3203-0443","display_name":"Pace Race","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_frostywonderland_filler","share_code":"4717-5188-2919","display_name":"Frosty Wonderland","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_digitalrealm_filler","share_code":"4848-1488-5183","display_name":"Digital Realm","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_waterpusher_filler","share_code":"6461-5140-0571","display_name":"WATER PUSHER","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_layonmaquis_filler","share_code":"4477-6528-6319","display_name":"Layon maquis","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_train_filler","share_code":"4992-3855-2638","display_name":"train","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_grossecrevette_filler","share_code":"1876-9072-2793","display_name":"Big Shrimp","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_teatime_opener","share_code":"8565-5169-6669","display_name":"Tea Time","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_spacebounders_opener","share_code":"6543-1817-8151","display_name":"Space Bouncers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_wipeoutwaves_filler","share_code":"3008-5134-7218","display_name":"Wipeout Waves","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_slimecycle_filler","share_code":"9617-0392-6848","display_name":"Slime Cycle","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_blunderboat_filler","share_code":"8157-2006-4895","display_name":"Blunder Boat","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_floatboatheroes_final","share_code":"4959-2887-5234","display_name":"Floatboat Heroes","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_rotateandeliminate_final","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_knightsrun_opener","share_code":"6153-4044-3955","display_name":"KNIGHTS RUN!","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_couronnessurplatformes_filler","share_code":"2180-4425-3833","display_name":"couronnes sur platformes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_jungleandstream_filler","share_code":"1487-3477-6382","display_name":"jungle and stream","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_floatingislandfumble_opener","share_code":"3428-4013-9603","display_name":"floating island fumble","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_junglecruise_filler","share_code":"3850-8723-0291","display_name":"Jungle cruise","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_pixelpath_filler","share_code":"7385-2851-8380","display_name":"PIXEL PATH!","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_woonderfultowers_opener","share_code":"1530-2222-3643","display_name":"Woonderful Towers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_wilddunes_filler","share_code":"2328-6643-0869","display_name":"Wild Dunes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_mindthegap_opener","share_code":"1080-0262-1923","display_name":"Mind The Gap","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_topofthetrash_filler","share_code":"7252-6787-7802","display_name":"Top of the Trash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_chickengulch_filler","share_code":"0656-0741-2282","display_name":"Chicken Gulch","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_sortitout_filler","share_code":"9576-1366-7102","display_name":"Sort It Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_boxparty_filler","share_code":"1007-5495-8724","display_name":"Box Party","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_magnetmayhem_filler","share_code":"9663-8355-9205","display_name":"Magnet Mayhem","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_slidensmash_filler","share_code":"6581-2980-2261","display_name":"Slide N' Smash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_shapeup_filler","share_code":"2875-2675-0032","display_name":"Shape Up","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_invasionofthebeansnatchers_final_survival","share_code":"4250-3289-1615","display_name":"Invasion of the Bean Snatchers","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_cycleoslime_final","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_bubblegumbrew_filler","share_code":"8058-6542-4380","display_name":"Bubblegum Brew","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_clumsycarnival_opener","share_code":"3848-3963-2097","display_name":"Clumsy Carnival","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_treadmilltumble_filler","share_code":"0090-2534-2258","display_name":"Treadmill Tumble","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_rollerderby_final","share_code":"5262-9825-8649","display_name":"Roller Derby","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_trickortrapeze_final","share_code":"0731-1638-9053","display_name":"Trick or Trapeze","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"knockout_crumblecavegoldrush_opener","share_code":"3247-4433-2280","display_name":"Clumsy Caverns","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_standardfireworksgoldrush_opener","share_code":"0579-5679-4945","display_name":"Slime Saloon","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_hohoholeymoleygoldrush_filler","share_code":"2447-8130-0769","display_name":"Gold Rush","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_circleoslime_final_survival","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_trickortrapeze_final_points","share_code":"0731-1638-9053","display_name":"Trick or Trapeze","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"knockout_goopropegrandslamgoldrush_final_survival","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_mode_cloudyteacupsgoldrush_final","share_code":"3298-6726-4118","display_name":"Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"round_fp17_knockout_hallowbean","share_code":"9953-3402-1607","display_name":"Dragon Dashers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_fp17_knockout_blueencounters","share_code":"0275-8967-0239","display_name":"Slippy Slopes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_fp17_knockout_scorewhisk","share_code":"5241-7978-3592","display_name":"Treasure Trove","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_fp17_knockout_castlesiege","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"round_fp17_knockout_gardenpardon","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_dragondashers_opener","share_code":"9953-3402-1607","display_name":"Dragon Dashers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_clumsycarnival_opener","share_code":"3848-3963-2097","display_name":"Clumsy Carnival","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_crumblecave_opener","share_code":"3247-4433-2280","display_name":"Clumsy Caverns","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_reboundrun_opener","share_code":"8622-3499-1900","display_name":"Rebound Run","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_slippyslopes_opener","share_code":"0275-8967-0239","display_name":"Slippy Slopes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_topofthetrash_filler","share_code":"7252-6787-7802","display_name":"Top of the Trash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_bubblingbrook_filler","share_code":"3969-8192-3044","display_name":"Bubbling Brook","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_treasuretrove_filler","share_code":"5241-7978-3592","display_name":"Treasure Trove","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_cycleoslime_final","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_dodgedivesurvive_final","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_pineclimb_final","share_code":"5713-2308-8529","display_name":"Pine Climb","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_clumsycrusade_opener","share_code":"4173-5572-2924","display_name":"Clumsy Crusade","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_slimesaloon_filler","share_code":"0579-5679-4945","display_name":"Slime Saloon","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_trickortrapeze_final","share_code":"0731-1638-9053","display_name":"Trick or Trapeze","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"ranked_mindthegap_opener","share_code":"1080-0262-1923","display_name":"Mind The Gap","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_rooftoprangers_opener","share_code":"8193-8086-6716","display_name":"Rooftop Rush","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_aerialtableau_opener","share_code":"7341-2633-9896","display_name":"Cylinder Stumble","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_mellowcakes_final","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_spacebouncers","share_code":"6543-1817-8151","display_name":"Space Bouncers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_clumsycaverns","share_code":"3247-4433-2280","display_name":"Clumsy Caverns","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_dragondashers","share_code":"9953-3402-1607","display_name":"Dragon Dashers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_slippyslopes","share_code":"0275-8967-0239","display_name":"Slippy Slopes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_reboundrun","share_code":"8622-3499-1900","display_name":"Rebound Run","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_slimesaloon","share_code":"0579-5679-4945","display_name":"Slime Saloon","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_clumsycrusade","share_code":"4173-5572-2924","display_name":"Clumsy Crusade","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_blunderboat","share_code":"8157-2006-4895","display_name":"Blunder Boat","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_boxparty","share_code":"1007-5495-8724","display_name":"Box Party","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_goldrush","share_code":"2447-8130-0769","display_name":"Gold Rush","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_treasuretrove","share_code":"5241-7978-3592","display_name":"Treasure Trove","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_bubblingbrook","share_code":"3969-8192-3044","display_name":"Bubbling Brook","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_shapeup","share_code":"2875-2675-0032","display_name":"Shape Up","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"knockout_rotateandeliminate","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_gooprope_rodeo","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_slimeballshowdown","share_code":"3298-6726-4118","display_name":"Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_hopadrome_final","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_dodgedivesurvive_final","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_pineclimb_final","share_code":"5713-2308-8529","display_name":"Pine Climb","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_cylinder_stumble","share_code":"7341-2633-9896","display_name":"Cylinder Stumble","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_blunderblocks","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_seaside_sprint","share_code":"4361-2599-8293","display_name":"Seaside Sprint","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_high_tide","share_code":"3290-9792-0888","display_name":"High Tide","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_pier_pressure","share_code":"5460-7537-0756","display_name":"Pier Pressure","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_spookyslingers_opener","share_code":"7208-8928-9739","display_name":"Spooky Slingers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_castlesiege_final","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"knockout_rooftop_rush","share_code":"8193-8086-6716","display_name":"Rooftop Rush","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"knockout_ineggout","share_code":"8137-2595-3209","display_name":"In-Egg-Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false}]},{"id":"ranked_show_knockout","levels":[{"id":"ranked_dragondashers_opener","share_code":"9953-3402-1607","display_name":"Dragon Dashers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_clumsycarnival_opener","share_code":"3848-3963-2097","display_name":"Clumsy Carnival","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_crumblecave_opener","share_code":"3247-4433-2280","display_name":"Clumsy Caverns","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_reboundrun_opener","share_code":"8622-3499-1900","display_name":"Rebound Run","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_slippyslopes_opener","share_code":"0275-8967-0239","display_name":"Slippy Slopes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_topofthetrash_filler","share_code":"7252-6787-7802","display_name":"Top of the Trash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_bubblingbrook_filler","share_code":"3969-8192-3044","display_name":"Bubbling Brook","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_treasuretrove_filler","share_code":"5241-7978-3592","display_name":"Treasure Trove","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_cycleoslime_final","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_dodgedivesurvive_final","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_pineclimb_final","share_code":"5713-2308-8529","display_name":"Pine Climb","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_clumsycrusade_opener","share_code":"4173-5572-2924","display_name":"Clumsy Crusade","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_slimesaloon_filler","share_code":"0579-5679-4945","display_name":"Slime Saloon","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_trickortrapeze_final","share_code":"0731-1638-9053","display_name":"Trick or Trapeze","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"ranked_mindthegap_opener","share_code":"1080-0262-1923","display_name":"Mind The Gap","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_rooftoprangers_opener","share_code":"8193-8086-6716","display_name":"Rooftop Rush","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_aerialtableau_opener","share_code":"7341-2633-9896","display_name":"Cylinder Stumble","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_mellowcakes_final","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_spacebounders_opener","share_code":"6543-1817-8151","display_name":"Space Bouncers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_seaside_sprint","share_code":"4361-2599-8293","display_name":"Seaside Sprint","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_spookyslingers_filler","share_code":"7208-8928-9739","display_name":"Spooky Slingers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_high_tide_filler","share_code":"3290-9792-0888","display_name":"High Tide","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_hopadrome_final","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_pier_pressure_final","share_code":"5460-7537-0756","display_name":"Pier Pressure","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_slimecycle_filler","share_code":"9617-0392-6848","display_name":"Slime Cycle","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"ranked_gooproperodeo_final","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_rooftoprangers_filler","share_code":"8193-8086-6716","display_name":"Rooftop Rush","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_castlesiege_final","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_spookyslingers_opener","share_code":"7208-8928-9739","display_name":"Spooky Slingers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_rooftop_rush_filler","share_code":"8193-8086-6716","display_name":"Rooftop Rush","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_gooprope_rodeo_final","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_blunderblocks_final","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_rotateandeliminate_final","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"ranked_clumsycaverns_opener","share_code":"3247-4433-2280","display_name":"Clumsy Caverns","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_dragondashers_filler","share_code":"9953-3402-1607","display_name":"Dragon Dashers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_blunderboat_filler","share_code":"8157-2006-4895","display_name":"Blunder Boat","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"ranked_reboundrun_filler","share_code":"8622-3499-1900","display_name":"Rebound Run","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"ranked_circleoslime_final","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true}]},{"id":"showcase_fp13","levels":[{"id":"showcase_boxparty_opener","share_code":"1007-5495-8724","display_name":"Box Party","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_sortitout_opener","share_code":"9576-1366-7102","display_name":"Sort It Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_mindthegap_opener","share_code":"1080-0262-1923","display_name":"Mind The Gap","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_slidensmash_opener","share_code":"6581-2980-2261","display_name":"Slide N' Smash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_chickengulch_filler","share_code":"0656-0741-2282","display_name":"Chicken Gulch","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_topofthetrash_filler","share_code":"7252-6787-7802","display_name":"Top of the Trash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_magnetmayhem_filler","share_code":"9663-8355-9205","display_name":"Magnet Mayhem","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"showcase_shapeup_filler","share_code":"2875-2675-0032","display_name":"Shape Up","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"showcase_cycleoslime_final","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"showcase_magnetmayhem_filler_fallback","share_code":"9663-8355-9205","display_name":"Magnet Mayhem","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"scrapyard_antibubblefactory","share_code":"6021-1477-7524","display_name":"Anti-Bubble Factory","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"scrapyard_derrameburbujeante","share_code":"6033-5632-2274","display_name":"Derrame burbujeante","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"scrapyard_scraphighway","share_code":"2782-3078-6948","display_name":"Scrap Highway","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false}]},{"id":"showcase_fp16","levels":[{"id":"round_fp16_standardfireworks","share_code":"8464-4988-1539","display_name":"Winter Slime Saloon","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_fp16_crumblecave","share_code":"5611-7419-9285","display_name":"Winter Clumsy Caverns","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_fp16_cloudyteacups","share_code":"3454-5325-3185","display_name":"Winter Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"fp16_hohoholeymoley_3teams","share_code":"6984-6467-1451","display_name":"Winter Gold Rush","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"fp16_hohoholeymoley_4teams","share_code":"6984-6467-1451","display_name":"Winter Gold Rush","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_fp16_goopropegrandslam","share_code":"6692-6694-2074","display_name":"Winter Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"round_fp16_cloudyteacups_final","share_code":"3454-5325-3185","display_name":"Winter Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true}]},{"id":"showcase_fp17","levels":[{"id":"round_fp17_blueencounters","share_code":"0275-8967-0239","display_name":"Slippy Slopes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_fp17_hallowbean","share_code":"2469-9538-4228","display_name":"Valentine's Dragon Dashers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_fp17_scorewhisk_hunt","share_code":"4157-7436-1638","display_name":"Valentine's Treasure Trove","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_fp17_gardenpardon","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"round_fp17_castlesiege","share_code":"6386-6099-5911","display_name":"Valentine's Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true}]},{"id":"showcase_fp18","levels":[{"id":"showcase_toughencounterswoods_filler","share_code":"0172-3609-6082","display_name":"April Fool's Clumsy Crusade","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_massiveoneswoods_filler","share_code":"9778-7469-6956","display_name":"April Fool's Rebound Run","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_treasuredungeonwoods","share_code":"8256-0474-2904","display_name":"April Fool's Bubbling Brook","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_bulletfallwoods","share_code":"0105-8744-9937","display_name":"April Fool's Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"showcase_treeclimberswoods","share_code":"5231-9779-6428","display_name":"April Fool's Pine Climb","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"showcase_toughencounterswoods","share_code":"0172-3609-6082","display_name":"April Fool's Clumsy Crusade","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_massiveoneswoods","share_code":"9778-7469-6956","display_name":"April Fool's Rebound Run","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false}]},{"id":"showcase_fp19","levels":[{"id":"fp19_rooftoprangers","share_code":"8193-8086-6716","display_name":"Rooftop Rush","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"fp19_aerialtableau","share_code":"7341-2633-9896","display_name":"Cylinder Stumble","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"fp19_mellowcakes","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true}]},{"id":"showcase_fp20","levels":[{"id":"showcase_challengingarena","share_code":"3290-9792-0888","display_name":"High Tide","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_magicalstairs","share_code":"4361-2599-8293","display_name":"Seaside Sprint","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_boats","share_code":"5460-7537-0756","display_name":"Pier Pressure","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"showcase_closingtime_3team","share_code":"8137-2595-3209","display_name":"In-Egg-Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_closingtime_4team","share_code":"8137-2595-3209","display_name":"In-Egg-Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false}]},{"id":"sports_show","levels":[{"id":"sports_bowling_opener","share_code":"7186-8389-2492","display_name":"BOWLING","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"sports_hockeyhijinks_opener","share_code":"2355-5415-0371","display_name":"Hockey Hijinks","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"sports_treadmill_opener","share_code":"7848-8925-5193","display_name":"^ r","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"sports_massivegolf_opener","share_code":"3524-6982-7224","display_name":"Massive Golf","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"sports_bouncytravel_opener","share_code":"5399-4202-9792","display_name":"Bouncy Travel","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false}]},{"id":"teams_show_ltm","levels":[{"id":"round_chickengulch_teamgames","share_code":"0656-0741-2282","display_name":"Chicken Gulch","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_slidensmash_teamgames","share_code":"6581-2980-2261","display_name":"Slide N' Smash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_treasuretrovefantasy_teamgames","share_code":"5241-7978-3592","display_name":"Treasure Trove","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_treasuredungeonwoods_teamgames","share_code":"3969-8192-3044","display_name":"Bubbling Brook","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_topofthetrash_teamgames","share_code":"7252-6787-7802","display_name":"Top of the Trash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"round_sortitout_teamgames","share_code":"9576-1366-7102","display_name":"Sort It Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_closingtime_teamgames","share_code":"8137-2595-3209","display_name":"In-Egg-Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false}]},{"id":"wle_mrs_bouncy_bean_time","levels":[{"id":"showcase_speedball","share_code":"0555-9530-2984","display_name":"Speed Ball","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_rainbowpinball","share_code":"7057-5000-1026","display_name":"Rainbow pinball","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_asteroidalley","share_code":"3601-9398-7901","display_name":"ASTEROID ALLEY!","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_rollinruins","share_code":"4131-9512-0855","display_name":"Rollin' Ruins","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"showcase_slidenroll","share_code":"5431-9105-2241","display_name":"SLIDE 'N' ROLL","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false}]},{"id":"wle_nature_ltm","levels":[{"id":"showcase_riverfallwoods","share_code":"8740-8797-1660","display_name":"Riverfall Woods","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_mysteriousforest","share_code":"7332-4076-8315","display_name":"Mysterious Forest","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_thedriftwoods","share_code":"7882-4315-5638","display_name":"The Driftwoods","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"showcase_maraistemptueux","share_code":"2147-0586-1891","display_name":"Marais tempétueux","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_clumsyjungle","share_code":"3405-9504-9384","display_name":"Clumsy Jungle","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"showcase_waterpusher","share_code":"6461-5140-0571","display_name":"WATER PUSHER","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"showcase_frogjet","share_code":"1169-8653-2618","display_name":"FROG JET","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"fantasyforest_nature_ltm","share_code":"0379-5137-5006","display_name":"FANTASY FOREST!","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"junglerun_nature_ltm","share_code":"1673-6930-9032","display_name":"JungleRun","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"bramblerun_nature_ltm","share_code":"1497-4202-2160","display_name":"Bramble Run","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"samama_nature_ltm","share_code":"5155-7747-0925","display_name":"SAMAÚMA","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"tarpitturmoil_nature_ltm","share_code":"6090-1770-1805","display_name":"Tarpit Turmoil","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"logroll_nature_ltm","share_code":"7329-5667-1409","display_name":"LOG ROLL","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true},{"id":"lilypadlimbo_nature_ltm","share_code":"1017-9640-0969","display_name":"Lilypad Limbo","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"junglewall_nature_ltm","share_code":"9664-2138-5675","display_name":"Jungle Wall","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":true}]},{"id":"reversed_knockout_show","levels":[{"id":"reversed_knockout_rotateandeliminate","share_code":"7369-6327-5989","display_name":"Rotate & Eliminate","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_circleoslime_opener_survival","share_code":"8541-5253-0290","display_name":"Circle o' Slime","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_gooprope_rodeo","share_code":"3613-4797-9449","display_name":"Gooprope Rodeo","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_slimeballshowdown","share_code":"3298-6726-4118","display_name":"Slimeball Showdown","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_castlesiege_opener","share_code":"0575-3771-3041","display_name":"Castle Siege","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_hopadrome_opener","share_code":"2426-2077-1977","display_name":"The Hop-a-Drome","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_trickortrapeze_opener_points","share_code":"0731-1638-9053","display_name":"Trick or Trapeze","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_rollerderby_opener","share_code":"5262-9825-8649","display_name":"Roller Derby","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_dodgedivesurvive_opener","share_code":"4130-2056-8814","display_name":"Dodge Dive Survive","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_pineclimb_opener","share_code":"5713-2308-8529","display_name":"Pine Climb","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_blunderblocks","share_code":"5633-3820-9483","display_name":"Blunder Blocks","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_pier_pressure","share_code":"5460-7537-0756","display_name":"Pier Pressure","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_slimesaloon","share_code":"0579-5679-4945","display_name":"Slime Saloon","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_clumsycrusade","share_code":"4173-5572-2924","display_name":"Clumsy Crusade","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_magnetmayhem_filler","share_code":"9663-8355-9205","display_name":"Magnet Mayhem","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_sortitout_filler","share_code":"9576-1366-7102","display_name":"Sort It Out","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_topofthetrash_filler","share_code":"7252-6787-7802","display_name":"Top of the Trash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_slidensmash_filler","share_code":"6581-2980-2261","display_name":"Slide N' Smash","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_blunderboat","share_code":"8157-2006-4895","display_name":"Blunder Boat","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_boxparty","share_code":"1007-5495-8724","display_name":"Box Party","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_chickengulch_filler","share_code":"0656-0741-2282","display_name":"Chicken Gulch","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_bubblegumbrew_filler","share_code":"8058-6542-4380","display_name":"Bubblegum Brew","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_goldrush","share_code":"2447-8130-0769","display_name":"Gold Rush","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_treasuretrove","share_code":"5241-7978-3592","display_name":"Treasure Trove","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_bubblingbrook","share_code":"3969-8192-3044","display_name":"Bubbling Brook","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_slimecycle_filler","share_code":"9617-0392-6848","display_name":"Slime Cycle","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_wipeoutwaves_filler","share_code":"3008-5134-7218","display_name":"Wipeout Waves","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_shapeup","share_code":"2875-2675-0032","display_name":"Shape Up","level_type":"Survival","best_record_type":"Longest","is_creative":true,"is_final":false},{"id":"reversed_knockout_high_tide","share_code":"3290-9792-0888","display_name":"High Tide","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":false},{"id":"reversed_knockout_teatime_final","share_code":"8565-5169-6669","display_name":"Tea Time","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_spacebouncers","share_code":"6543-1817-8151","display_name":"Space Bouncers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_mindthegap_final","share_code":"1080-0262-1923","display_name":"Mind The Gap","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_clumsycarnival_final","share_code":"3848-3963-2097","display_name":"Clumsy Carnival","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_spookyslingers_final","share_code":"7208-8928-9739","display_name":"Spooky Slingers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_clumsycaverns","share_code":"3247-4433-2280","display_name":"Clumsy Caverns","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_dragondashers","share_code":"9953-3402-1607","display_name":"Dragon Dashers","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_slippyslopes","share_code":"0275-8967-0239","display_name":"Slippy Slopes","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_reboundrun","share_code":"8622-3499-1900","display_name":"Rebound Run","level_type":"Hunt","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_rooftop_rush","share_code":"8193-8086-6716","display_name":"Rooftop Rush","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_cylinder_stumble","share_code":"7341-2633-9896","display_name":"Cylinder Stumble","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true},{"id":"reversed_knockout_seaside_sprint","share_code":"4361-2599-8293","display_name":"Seaside Sprint","level_type":"Race","best_record_type":"Fastest","is_creative":true,"is_final":true}]}]}} \ No newline at end of file diff --git a/Views/DownloadProgress.Designer.cs b/Views/DownloadProgress.Designer.cs new file mode 100644 index 000000000..97ea23b9d --- /dev/null +++ b/Views/DownloadProgress.Designer.cs @@ -0,0 +1,83 @@ +namespace FallGuysStats { + partial class DownloadProgress { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DownloadProgress)); + this.lblDownloadDescription = new System.Windows.Forms.Label(); + this.mpbProgressBar = new MetroFramework.Controls.MetroProgressBar(); + this.SuspendLayout(); + // + // lblDownloadDescription + // + this.lblDownloadDescription.AutoSize = true; + this.lblDownloadDescription.Location = new System.Drawing.Point(23, 30); + this.lblDownloadDescription.Name = "lblDownloadDescription"; + this.lblDownloadDescription.Size = new System.Drawing.Size(21, 12); + this.lblDownloadDescription.TabIndex = 1; + this.lblDownloadDescription.Text = "0%"; + this.lblDownloadDescription.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // mpbProgressBar + // + this.mpbProgressBar.FontSize = MetroFramework.MetroProgressBarSize.Tall; + this.mpbProgressBar.FontWeight = MetroFramework.MetroProgressBarWeight.Bold; + this.mpbProgressBar.HideProgressText = false; + this.mpbProgressBar.Location = new System.Drawing.Point(22, 65); + this.mpbProgressBar.Name = "mpbProgressBar"; + this.mpbProgressBar.Size = new System.Drawing.Size(315, 33); + this.mpbProgressBar.Style = MetroFramework.MetroColorStyle.Teal; + this.mpbProgressBar.TabIndex = 2; + this.mpbProgressBar.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.mpbProgressBar.UseCustomBackColor = true; + // + // DownloadProgress + // + this.ClientSize = new System.Drawing.Size(360, 125); + this.ControlBox = false; + this.Controls.Add(this.lblDownloadDescription); + this.Controls.Add(this.mpbProgressBar); + this.DisplayHeader = false; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Movable = false; + this.Name = "DownloadProgress"; + this.Padding = new System.Windows.Forms.Padding(20, 30, 20, 20); + this.Resizable = false; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.ShowIcon = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Load += new System.EventHandler(this.Progress_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } + + private System.Windows.Forms.Label lblDownloadDescription; + private MetroFramework.Controls.MetroProgressBar mpbProgressBar; + + #endregion + + } +} \ No newline at end of file diff --git a/Views/DownloadProgress.cs b/Views/DownloadProgress.cs new file mode 100644 index 000000000..c11816d86 --- /dev/null +++ b/Views/DownloadProgress.cs @@ -0,0 +1,75 @@ +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.IO.Compression; +using System.Net; +using MetroFramework; + +namespace FallGuysStats { + public partial class DownloadProgress : MetroFramework.Forms.MetroForm { + public string CurrentExeName { get; set; } + public ZipWebClient ZipWebClient { get; set; } + public string ZipFileName { get; set; } + public string DownloadUrl { get; set; } + + public DownloadProgress() { + this.InitializeComponent(); + } + + private void Progress_Load(object sender, EventArgs e) { + this.SetTheme(Stats.CurrentTheme); + this.ChangeLanguage(); + this.DownloadNewVersion(); + } + + private void SetTheme(MetroThemeStyle theme) { + this.Theme = theme; + this.lblDownloadDescription.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.mpbProgressBar.Theme = theme; + } + + private void zipWebClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) { + if (this.mpbProgressBar.Value != e.ProgressPercentage) { + this.mpbProgressBar.Value = e.ProgressPercentage; + this.mpbProgressBar.Invalidate(); + } + } + + private void zipWebClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) { + this.lblDownloadDescription.Text = Multilingual.GetWord("main_update_complete"); + this.lblDownloadDescription.Refresh(); + using (ZipArchive zipFile = new ZipArchive(new FileStream(this.ZipFileName, FileMode.Open), ZipArchiveMode.Read)) { + foreach (var entry in zipFile.Entries) { + if (File.Exists($"{Stats.CURRENTDIR}{entry.Name}")) { + File.Move($"{Stats.CURRENTDIR}{entry.Name}", $"{Stats.CURRENTDIR}{entry.Name}.bak"); + } + if (entry.Name.EndsWith(".exe", StringComparison.OrdinalIgnoreCase)) { + if (!File.Exists($"{Stats.CURRENTDIR}{this.CurrentExeName}.bak")) { + File.Move($"{Stats.CURRENTDIR}{this.CurrentExeName}", $"{Stats.CURRENTDIR}{this.CurrentExeName}.bak"); + } + entry.ExtractToFile($"{Stats.CURRENTDIR}{this.CurrentExeName}", true); + } else { + entry.ExtractToFile($"{Stats.CURRENTDIR}{entry.Name}", true); + } + } + } + File.Delete(this.ZipFileName); + Process.Start(new ProcessStartInfo($"{Stats.CURRENTDIR}{this.CurrentExeName}")); + Process.GetCurrentProcess().Kill(); + } + + private void DownloadNewVersion() { + this.lblDownloadDescription.Text = Multilingual.GetWord("main_updating_program"); + this.ZipWebClient.DownloadProgressChanged += this.zipWebClient_DownloadProgressChanged; + this.ZipWebClient.DownloadFileCompleted += this.zipWebClient_DownloadFileCompleted; + this.ZipWebClient.DownloadFileAsync(new Uri(this.DownloadUrl), this.ZipFileName); + } + + private void ChangeLanguage() { + this.lblDownloadDescription.Text = Multilingual.GetWord("main_update_program"); + this.lblDownloadDescription.Font = Overlay.GetDefaultFont(18, Stats.CurrentLanguage); + } + } +} \ No newline at end of file diff --git a/Views/DownloadProgress.resx b/Views/DownloadProgress.resx new file mode 100644 index 000000000..d98d3484a --- /dev/null +++ b/Views/DownloadProgress.resx @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAB7GgAAFgAAAIlQTkcNChoKAAAADUlIRFIAAABAAAAAQAgGAAAAqmlx3gAAGkJJ + REFUeJy1W3mwleV5/33L2c89d+deWS6LIJFguIhUXKIGNDFoXNrGJGpTs9jkj6SSzjSTJtNpO9NpZzJx + grVOm2lTbTpZihq1WdRoopIUFxREBQOiIiAXLhfucvZv7e95v+8792z3QiJ9mY9zzre9z/78nud9r4nW + sYjHHTyu6Eoaw3+2Oo7emI1UrguVcgm6psH3fViVErr9Xnzi5KfRk+/g7T58XYPbmQYMHVrVhZ85Af2S + +6B1jPGy1jiLzyPD+9bzM+sFv5vGpKfj4VISRT0OQ4upeyrOODzPhrxtHGfj36b+HSPOApiaj2xMR9nx + kIubmLIdZKc8bHiigI5J72UXeBpw7rrv4YsO1M9h1v/Qdf3bnudtin5r6pyBWCqGSqmIRDrD3yaZLwc8 + cDKtYtee1zwfms2p+EkqAYvXfK+NjE93+HC9KmVnwPEcmEaCr3VrV12es7zg/ZQ9krqOeMJAgcyb8l33 + I1kPU2/DZHfTbTds33zfw2u/0iIATdN2kvnhxvlJgF2FU9HIk48qhQBNV+dnGnqxGgqDMtCc98C8eouI + AFV7it802A7nR3uBisyLjguXtNnygxxbrqesteGNGjZ95sbtV9z70NrV8jsSwGbeOEwLUA9ED6n/ybBu + GjDNmAgJrutSIGWe5nnDaCW5NqHWcu29DV/9ax60eiVsYdzlnDFaLMmFzd+a1uhaojv5zUvDn7nxxc33 + PnTBJhHAIgQ+j2QyCcuy4DhOOCUl6zqwKxa/lxsZJfNmPKFEOn1SC1ydn5rrt/XrBpY0Q82iNWg1pLLh + YY0mbgQiUAKOzD5gWGQtp0uOV7sm5+Jevch8GKRZlGhb4kb+Hbfd8OxmEUDN58vlcovJRC9rZkYEYzml + BnfwSbuXiMHnIUEQqfi0HVD8viFWxM9YAlp5CkhkeU70lhfygnm0JDVaCiYUJswsGdHo0zG6QIWartRI + Ebcs0exn8cgGJhzba9JXTFnA5TUGmv2Fh2iZ9NYCX8Oou10ygE/b0+RcmRYTj6vfNSeRYBhqT4unqX1O + zQAngdPXMyJRXrfkYdS06IuWKTQat+2UlfYMI64C42zBVehOxRi89VbJNLLoXy4CGG65K3qRrimzcSn5 + Uw3l+8KMOKWEZB6a1RgENdcKLKFSUAxrqCqB+T7J8G3FaLOlCbO6WIUhr3f5mGQdj9komKZBpRFbPCxJ + h0JDW2rlDnVl2Gx7PbqNDFnM/V6iUdpGLB6kI7v+ZqgUKIcnlmDy1XHeE0uhISCK5siEJozEJWboinEV + O4Qjzw/VRJ/Xk3BcZiFKyfMsXnKUUspTCYwd1jFWpVSINRJ9QyISRv9pOh2+QzBBe++YpqetALQQ7AT/ + 2kjY84KILMEnZgbEyuSCA/ic7ohwPHjELvBs1Ek8GGReBUDDJEO8SXdxbBT47VvA0KCNgX7ylXLIEhnW + aP5uKQgPnGffC0k8832eO8R3uIdQzX0d5tW3wtnwh+QmibaRVwsMpV2saCuAzq4uVKsWEoaDWFyicqML + SAD0AweFR5Dk00/VbwlITJO6G6Yfpe3IDUIqRKQEMERRFJJYQlkAA/7jwQQeeBxYOmSipxNYNmRg/uI4 + jvQx3Xa7SGV8HHw9ice+XcXNMQ0fX8bMkEzhkXcP4Z7vfxMTFKZ+1ceVAUUjaepMiRqzG92Oc1fKdqMi + 2gnAjMWUNpPJBHpynURWZN6utBWskqhYi5iu+LucIAyG25jC/JjA47jSPEMxrcRB/QsnCzFsfcnHVz7b + gY9c6uHYmIGjYxrePVHBW7tpB3S5bM7Atp+WcQnf/bX3ecgKyCLkHVroY6xYxneefADGhVfCy/UoOoJA + aCLbwYxDQQtpOoVRByRnEACDnph/qVRGiSnK4YQac61oVl1PJJUirWpFmbuCvqJ5pjyBv5qYv9Y0iwAm + IxYIiNHZp0BVDJBBee3eb+LEuI11q3zM6XMwp9fHecurmGLk96Z8jFs6KlNplE/oWJNj6aC5gYyrZaTJ + 6qqcjvTYUZQKk7A7e9U8hiBB4pkq07FOGg0GZ10s1m3UZIsAJOqbEsAYnGzbglulucemg4tYhwqAfgB0 + 9BKjtC0BygtqAbEETu4lY8rsBMwKs76RDF/AQOlF0dNXJDz1vI/Bfh3zBuhI4j6MDxqDn3wXv4/FKcCO + ChJdBt55m5CcETMe4sKiq+Eos6JjxsV8a4YlQbBKZl2+IyZxShCj1gyw2gigVCqhWCwGykkI9OWT5vRD + rm01PxLcW1cUiXB0CkIFQRmsJ8QMg9w97YPyrVCM4dcverj0fGoxPhHGDIk7wb0+BeZS4MLfORcY+NkO + HxeO6risW1NWsH1Kx0+OU9Nr18Lt6muIdI5kMaK+ctEPXtlmmIL/Reu2bYe0+yoOOPZ7LGT8emn7dcCl + TgM0yTcPmzjwbhlf/WyqznWiezVEuUhed/4GF+/ui+NrT1kYpkExFuL1io+3Fq+DdsPn4MRTbQGS1AAa + /d91puc2Y8FvkxUgMpmMSn1SB8iIxyJTciI6VBnsuU3ARqqOJFXjBDnGZwBUsUBQIV/uM0jNIPjwBRqe + 20WfTut4/1IbDSE8HAZBUJwuaXD+eI+DG75k49XVSex/2UHZ7sThebfAXXcD7P65inmxKoPzO3WWYBhB + BnJD4Utmk3jgMDYoFxDtixAiAYgbKAUxYBkUhknAEk9nVDkcZ+qx+GmLWQsPrtdgdp4IRM1HYgy9LVLT + wv8c18S2nQ7WvF9Hf48TpZWGG8VCdZAGPaEaIfF0ARd82MeaDTrG/R78a/F6TDrzkTZ8xMWSSU+Sn3kG + wAQZ18MawNf8SOaIM6ZUQpc1xdzjxO3VarWNinzVEJH0USkUkMx2BG8ImfIk+te7CifXq3yxnBPI6wdM + aQGK4VcdVc9kAUMQTJR2bNzAq/td3P6nKVQtCpmR2jBD4CTCcIKGCKMAma+EAM1TlzSVCcqqPI/SXkxq + BVplnoE7ZoZxpLkR5Qt5EhgNFV9Ml5LK5/Ntq0Cf0VZKY9f2VRUnmheteq7bcm+kWS0fFk1k1mfKqvgx + vHMygZePmdh1xMXb4xpO0sBK5LPsWBjJe/ju94Gf/MJE/4CO5YsTWH2uifPoEule4dQiwXbIR7M1Tf+W + JkhUGYp5S6co4UXlc6NlWRW3ZphmPeNaeHa6IRI8KExr9EHVECExkgalGaI57UoNTZXFR/w8npx6A4/9 + vII3mMvTtKKzO7NY1RnD/ME4ehImUqoU1ki4jlESdeBwFa/stvCT+wm8sj7OWWWg66IUzlphI5W1Vfnb + mMV8VT4I2SIAUyxA3AZak0JDBFrjb9prG9JgKpVS8SDKCCqwMYc7FbelJpCCKGFmWhoiI1oRD5R248HS + K3AzeXxwTgafX96DFVkPvbAQJ7iBMxkWPV7olDxSJGUgiTLfOep14+VxH7/YncfTvynAXajjgo1prFhH + v04Tc4TBUqdVZhggJ2wNtjRE3LoMID3CJnkZdAslLMut3dQgAIkDbp15h2EDOgGG6zRmALtSgUUfjCKa + pXv4hb0f90xtQzl7Ep9Y04FrBroxDyUYlRF4k5YCNm6kkHajkEecKh3ifAuzGWw8P4c3rU786PWTuH/z + FF5h8br+ljTmnyO1iavkVyRddlP2iDKB1nRWNUT0RgIaBOC28W1ph6czGvInx1quSRCUtttJvYK7C8/i + EXsnrntfCp9Z1Ikhdwp+vkgiXdTeeqo2obJUlr4Ctnjo+UksZ4D+xpCG63Ia/nmvgwf/Frjo1iTWXkUh + GF67zKlGH7ORGWsN7M0wYdZ+gMoAPMr58RY61Sft6QhNfvPEr7EnsR9/T6B+VaYEszAGz5u5Y3Pag9R6 + rDlEaavpbZvPNfDDEQPf/k4V48diWPWJeBh5a2kmeIzHeMXCWaT9VDKfvSFCAoqTJ4l1AvOXgGOrVBYE + FYva/avxJ1FNn8Tdw2ms0sfgFyx4Z7ohjCBkSBH0uQUa5qdj+MaPqzguRvAxi5F8Mqj3Eym4ZlDNVvnA + pGWf8r2zNkSCIBDk8YqnY+9JHftO0FWrQUQtuUUsSVZx98okVvrUut2ad1vefQqCZutvyjU9ncPG3gwB + zCT+/NERTL32dwx2ntS6sAYXwVh3JdzzLiQsTtRN2gSw6kZbAUg2EK6TMZ91eJr1+jiePKCxqPBwZZ+B + lYOGQuvv8PfGQR0r9CkCllObvBQvlhdUcFVpILlBV0kClvRdUoKsdYG/M4vBK+WVW244y8Q/EkfsHNuO + szvIPAPNzt0v4NGXHsPRKz4J/Y9uR3eqm4CopBoiDgOwbbe+t205LEMm6ehIs/QEfvmOhg4itbvOMzCc + sQlMg0rNk3LXt8n8LJ03ZT0aTjAejfFlRU7pJtIw01loTKVKMITgbqkAg1Vohmbexyq0nwpMaG2WQohD + 3Inj6r3Xdmk8JO+7aqLqWTpunCji67+6F3vihM83fhlJ6VgJ7CWtuu6jWU8tAtANPZyH+Z+ReN94DMUC + cOdKHWszVrgCIyPo/7XirDpaeRwrazhcYZrsHkTHmgswuHItkguWQe8eUC0tedorl+GdHEH5nb2YfG07 + 3n59B0Ymj2MBL/cn/JaCKvTMsFZEjR6KFuu7Pfz14hi+8Kv7oa38EOldqnBDFCebR4sAaiCDRUiZkfS1 + Q2Vcztp7ddZRzLcQ0ua7DGInvFnUMNE5F70br0fPZdchvmAp1ZpWy2oCrQWySizx1HLcSqTWrEf3R/8E + 1oE9GHvqYezb+jO633EsygjObwPV2whd6L+ky8Pqg8exY/tWuP2Lg5iG9itVZmTyEQYQwFOKQI9D+Ev0 + tLwPyuyjRSlbOjJaqzAiARfo4/uKfO/w5Vj6yS8hsXyN1KCqzE4kkvRLM4DSmjbdgRbL4rxWJotYZw8S + S1eha92H8e4P78befc9jWcarzRnNFX0KTQ7dLKEHFpGmGy2iCz3/7kHYtFqrorWszsuKmuhT1QIS9KQE + 9v0gusdIaFQai+mUXFWYKXMZs02VkubEW0GTH2p+X5nMXvVJzLtlE/TeQTKdQIbltFSemtZqh9E5UUac + 96o0RprMCz+M5LwlOHjfN/HGs/+DZWlHNUHqRR+59OGqiYGEiw4i0jKFUVS9zNB5tKAB4oRBUNCgVINW + 1Q0aIjKxEFmpVCKK1CFLS51pDS+zmDlm65gT87C7GMP7s9OLp6jTvAhpf9lE/MpPYf5tX4XR2YcsIW2S + vt6O8ZmGEC7PxJnKSvEVWPiFv8E7PH/wuYexOO21LFUKPhG49EZZZ5C28HpRx+tE6cbQ2fBNU5XO0w/4 + fK9ZK4jChoiDdDqtBKB2f4S9gUTMxAVL+vDcnlE8ftJUHdlDlNG6rvYp70jZhz28HkuoebOrH525HC0/ + ftqMNw+JQ9lsFsbCZVj42a/hzbERnHhrG/qTWmP84Y9uk7XIWEyVNz8ecbE/twiD6z4E/VVNwd+oQySK + MKn9atQQSSSTPGGiGHaB6odUTwtSZRydY+KeAxYu7kvg0k5fpafmzFeiURzvWoihT30ZZv/c98x8/UiR + Rm3pSsy9eROO3LkfOXeU1tloUV3ELCMEF9sOgWV4GvYtn0Z57iJorxVbhGVVHQIpQ3WoTdF2tdJ+8VPW + CAymlg/OAx6vGnh0pIKbB4Wp1gB4lC7Ssf7jSC1fjawEsjPEfDREUXPWbcDEJdfh+BPfxdxU4/xJVmX9 + rH/vHEnAu+lLwJV/TKBlqEXUZpexicbsMHo0NESCXSCo9QNKpSq/J9CVBBZ16bDyOuYn3GhJoOb7FQac + qe4hLLjsWma5LMFH8owyj3CuFLPDwEduwuFnf4o59lGYDVbgYyUzRbYji/yay+AkCeImWSoTnkegWAKh + FyHQ6Fz9JIlEvBb9ZThMjXa1DIeR9XjBwLyEjlwb8JyXhd7zLkaKeV7B6DO+PSYYwm/vuefjyPILUNz5 + U3Qm6lIiv8yjBQw4BUwcPYTqwuWouk3lsgQ9urVVV/Y3sBOlwmioVR1ZvGYSnaCXLOMENLDa0l9055SW + QAcLkEQ2p1Lo/+eId/Wic9UlmHrpUXSEDVLVheZH1mSlaFjYPXKwgb5oOJKmnMb03SCA1saopvYCEdeg + bFG6WcHdfsPap6A4K9WFzqHlzOFn1u/bDWE0t/wDGElkOfdkcCZ0yQTjwHwGQ4weQUwC3GkY4qz9gEQy + gUQqQT8q0Wx89CXl9kYJKhPL5BDvmaNiSLvhqfVEL1hzPI0h94oyjDa70GSkB4egpTpYGU6iPgwwuxOg + aTBYLGlElSmiz5iqbdp3sYNnZhkSDC3mN5OSlX5jd0xXGvfqsKjakseAEyNw0bXWdaCjR4/i/vvvx+jo + KNavX4/LL79c5feZxttvH8CDDzyg1ic3XrMRa9eubSU628E5k/CKdSdDNxggRogXJlBhIVe0jRkr1VkF + oCSv6WopzPMNhfAEhnca0xmgYf+dNE51vWURSLS4ZcsWPPLIIwrQpFNpLFy4EEuWLGlLjM0A/L3v/Se2 + bt2Knp4edOQ6MDQ0hIGBgcYbCeQNtWETtXgb0OVjkIE6Vi6gZBHMaSmlMEPWAV3/9HeIJFMBDNWrU8rE + yk5gXl1m654bVWVaZWKK1sVUWV4/cOBACD4s7Ni5E5fRAmYSQIll8aFDh9V3sYAdO3bg6quvbhGAWylB + dypBG6zuvHzvNV0kK1OYtHid1iA7RFIpAxXi/qAdPssOEfHRnp5e5YP5Qh49SfFpi2mO2Jx4Oqm3lpQi + ILM0AWfyRAtDauMYTVCgtnxWKAT/FHuHZW7bdqkxgnl/vO2KlUVIbJTzrdsX+SMj+6aqBej5Cfips9Sy + XrVM2lMm6wsThbzVYAktbfFo1ceQPTe0e9knODbuMP9TknprahFsHS9Pwjr4BnD+pS3XfCUAG1HRNeuQ + +CJbcR0nWIVKtA9e1QN7kKzmWxZeVSYgwzm7iNixQ0jOPU+9R6FB2SHaZlNlSxos0PTi8QDuyhaTw1MG + 9o662NgtVuC0bGKVkXErKOx+Ht61t6pFlHoByN4+cQXZC6iEO0sAlCpQwJdF/432LOhNTHp2FZVX/hdp + j1ZltOY56SkuMat4+ZcPAX3LqYA+ebMyf4HAzcOMmhJRH79CP5RDhkX7fnyfjnUdOq4f0KYzQLPUOenE + K8+gfORtZIbOqV0TULRixQo89dTTyqfPWbYMCxYsmFEAskS/fPk5eOmlHYoeuX9gcLDhnsrBvSxwfqPW + AJu1KT+lXXvr/Bje3b8Vu+46ir2DG7G4dx2ydAeDgE0Ld0zLh7il2vwivQApiiIhiKF2M3Ku7DBx7Rwd + 1/R7al+P47d4nRqipczR/Tjx9CPIfPovG67dfPMtyHXkcGRkBFdu2DCrAETrX/ziFzE4eBaKhQI+uvGj + KhvUGGT8mPrlFiTGDs2ItiVjvS9l4+5zTfz3kX34+ev7sdXYglzvKgz2rUZPbhlymUFihAzfZ8BMyyKi + Y6GPVj+QMLE0rWMlEd/qTg3npDx0G7aaeNQNNhtEfdrmtlTGdzDx2H0ofPAaZBevqBHU2ZnDLbfeMiPT + zaO/vx+33/75ttfKe3fAfvIHah3A0yIZTOdC1SANU/ZQzMJfLDJw01zZRzSCZ08exp59T2CXRwSZHEQ8 + NZdArw/mv3wgxfzuoY/po4fu28FUl0Sw6UD1AH21vVlpP9rcjnDPTs0W5BRNKn14D8Z+8C0kN22GSXR4 + Joc7dQL5H32Lwe3tGg7xwkUbP9yEEdAZkCP06ow/QzEXC/s0XNdnYIIx7UhlAm9VJnGwtAejBbrARzpL + 0zv0w66ni0ZDZ0xG2dWRUouRbdBEKAyJqN4zW3CClVj/TXdAj5+ZstivlpB/4J/g/uaR2v6x2jV/+tNT + dYpsjpDNlR5k/6pCqgKGyEUvH+7LAKsyUlZKgidOkL8xaBNMG4ZsNyvykNUbEU5zMqu3hHilCGfLnZhk + Jun82O3QU9n3xnxpCsWH7kH5gbugE9zMVmmHG9Yx5WgYlNI3QolN90wv/MtawmlUTLIYWnB05BQU1sK1 + thmG7NBgMVL5r38AJsfQcf0XYM5ZgN+5RyBt8pE3UXzwbhR/fh+h4dQpX+EGG+5Rcny1BJc4BezwyIvp + 1wW2GfiBxRvznvzJiqt2YpzKYtRDZL5y/2bgzV1IbbwN8Q9cBr2zD2hTMDVSRTA2fgz2S0+i+LN7UX11 + G03QiqreWYf4vdxToAtY9X/3NMMQXar+sK9NC7f+gXBnDcZpUkVvOsigKRM0f48e9onZy88+CmvfDiRW + XoTkmg0wlg5D718APZ1V2+XVcIkUqWHv2EE4v30RlRefQGXPdvhTJ6YJmZEL1CpBJ4xFkzSDCdLcbbbS + 10CnWhiBtotRdFWzpITZYN+NhqOWhkqIgJwmMNRcjLQSSGx/fAT2Mw+h/MITMHrPQnzOXBhdcwAVH2SS + PJyT1ProYfXpyZ/nRNvrZnxxHWMh47YfKKxElx2l0eQMPdg/qAWNHL/1dbtMMvi0oWurgrSCcHuer5a/ + rPDFstJihW0gOe/VgshpjrBp5xbJKA/r4L5gI7XsKI3ST61vX/fM7Lw3CMGvWWfwJ3NCc4kMiTBEANJG + j4VpU6FfX2GGp81xz9sMR7+jHuPV7wiTak/W3ZyaBQTX9dMirVUQ0/wFIVuruxYx007xft1t7VxPrVmG + +zPkM9oKIGRX5PCCvkXD0L3N5kXP4cC2tbiLir1jJro91RidFoBCW3VYPNJa8+9TjZn+3K3ldN37anm/ + 6X7Hn8YHXlPVHgmtqXS+62LyrqLQxdu9Tc/+gX4Fb1jVjiBd86cl7Qe7PIy6YN5SlPwexjHrOI33WSEG + ECIFDNVbaBvr2XXR9uBvpGvl8EUveMPb1uqb0cYS0oYXrrFPB5szv/Tx3oYdpkBhUvw9HeD21kHNR8zL + aOgHKEtYh82+q28iv8oiRJsZXXZooQZ5rdpkZ1rVv9+IMpb6zs8ca5qk/H1QjUJ/F3z9ac1wNovZ1z/7 + f1mjsGWG6Wp/AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Views/EditProfiles.Designer.cs b/Views/EditProfiles.Designer.cs new file mode 100644 index 000000000..a1ff30b31 --- /dev/null +++ b/Views/EditProfiles.Designer.cs @@ -0,0 +1,490 @@ +namespace FallGuysStats { + partial class EditProfiles { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditProfiles)); + this.dgvProfiles = new MetroFramework.Controls.MetroGrid(); + this.btnProfileUp = new MetroFramework.Controls.MetroButton(); + this.btnProfileDown = new MetroFramework.Controls.MetroButton(); + this.grpProfiles = new System.Windows.Forms.GroupBox(); + this.mtcTabControl = new MetroFramework.Controls.MetroTabControl(); + this.mtpAddTabPage = new MetroFramework.Controls.MetroTabPage(); + this.btnAddProfile = new MetroFramework.Controls.MetroButton(); + this.txtAddProfile = new MetroFramework.Controls.MetroTextBox(); + this.lblAddProfile1 = new MetroFramework.Controls.MetroLabel(); + this.mtpRenameTabPage = new MetroFramework.Controls.MetroTabPage(); + this.btnRenameProfile = new MetroFramework.Controls.MetroButton(); + this.txtRenameProfile = new MetroFramework.Controls.MetroTextBox(); + this.lblRenameProfile2 = new MetroFramework.Controls.MetroLabel(); + this.cboProfileRename = new MetroFramework.Controls.MetroComboBox(); + this.lblRenameProfile1 = new MetroFramework.Controls.MetroLabel(); + this.mtpMoveTabPage = new MetroFramework.Controls.MetroTabPage(); + this.btnMoveProfile = new MetroFramework.Controls.MetroButton(); + this.lblMoveProfile2 = new MetroFramework.Controls.MetroLabel(); + this.cboProfileMoveTo = new MetroFramework.Controls.MetroComboBox(); + this.lblMoveProfile1 = new MetroFramework.Controls.MetroLabel(); + this.cboProfileMoveFrom = new MetroFramework.Controls.MetroComboBox(); + this.mtpRemoveTabPage = new MetroFramework.Controls.MetroTabPage(); + this.btnRemoveProfile = new MetroFramework.Controls.MetroButton(); + this.cboProfileRemove = new MetroFramework.Controls.MetroComboBox(); + this.lblRemoveProfile1 = new MetroFramework.Controls.MetroLabel(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProfiles)).BeginInit(); + this.grpProfiles.SuspendLayout(); + this.mtcTabControl.SuspendLayout(); + this.mtpAddTabPage.SuspendLayout(); + this.mtpRenameTabPage.SuspendLayout(); + this.mtpMoveTabPage.SuspendLayout(); + this.mtpRemoveTabPage.SuspendLayout(); + this.SuspendLayout(); + // + // dgvProfiles + // + this.dgvProfiles.AllowUserToAddRows = false; + this.dgvProfiles.AllowUserToDeleteRows = false; + this.dgvProfiles.AllowUserToResizeRows = false; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(225)))), ((int)(((byte)(235)))), ((int)(((byte)(255))))); + this.dgvProfiles.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvProfiles.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvProfiles.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.dgvProfiles.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dgvProfiles.ColumnHeadersVisible = false; + this.dgvProfiles.Cursor = System.Windows.Forms.Cursors.Hand; + this.dgvProfiles.Location = new System.Drawing.Point(4, 19); + this.dgvProfiles.MultiSelect = false; + this.dgvProfiles.Name = "dgvProfiles"; + this.dgvProfiles.RowHeadersVisible = false; + this.dgvProfiles.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.dgvProfiles.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvProfiles.Size = new System.Drawing.Size(498, 364); + this.dgvProfiles.TabIndex = 0; + this.dgvProfiles.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.ProfileList_CellClick); + this.dgvProfiles.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.ProfileList_CellFormatting); + this.dgvProfiles.EditingControlShowing += new System.Windows.Forms.DataGridViewEditingControlShowingEventHandler(this.ProfileList_EditingControlShowing); + this.dgvProfiles.SelectionChanged += new System.EventHandler(this.ProfileList_SelectionChanged); + // + // btnProfileUp + // + this.btnProfileUp.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnProfileUp.Location = new System.Drawing.Point(506, 19); + this.btnProfileUp.Name = "btnProfileUp"; + this.btnProfileUp.Size = new System.Drawing.Size(20, 180); + this.btnProfileUp.TabIndex = 3; + this.btnProfileUp.Text = "∧"; + this.btnProfileUp.UseSelectable = true; + this.btnProfileUp.Click += new System.EventHandler(this.ProfileListUp_Click); + // + // btnProfileDown + // + this.btnProfileDown.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnProfileDown.Location = new System.Drawing.Point(506, 203); + this.btnProfileDown.Name = "btnProfileDown"; + this.btnProfileDown.Size = new System.Drawing.Size(20, 180); + this.btnProfileDown.TabIndex = 4; + this.btnProfileDown.Text = "∨"; + this.btnProfileDown.UseSelectable = true; + this.btnProfileDown.Click += new System.EventHandler(this.ProfileListDown_Click); + // + // grpProfiles + // + this.grpProfiles.Controls.Add(this.dgvProfiles); + this.grpProfiles.Controls.Add(this.btnProfileUp); + this.grpProfiles.Controls.Add(this.btnProfileDown); + this.grpProfiles.Location = new System.Drawing.Point(9, 238); + this.grpProfiles.Name = "grpProfiles"; + this.grpProfiles.Size = new System.Drawing.Size(531, 390); + this.grpProfiles.TabIndex = 5; + this.grpProfiles.TabStop = false; + this.grpProfiles.Text = "Profile List"; + // + // mtcTabControl + // + this.mtcTabControl.Controls.Add(this.mtpAddTabPage); + this.mtcTabControl.Controls.Add(this.mtpRenameTabPage); + this.mtcTabControl.Controls.Add(this.mtpMoveTabPage); + this.mtcTabControl.Controls.Add(this.mtpRemoveTabPage); + this.mtcTabControl.FontSize = MetroFramework.MetroTabControlSize.Tall; + this.mtcTabControl.FontWeight = MetroFramework.MetroTabControlWeight.Bold; + this.mtcTabControl.Location = new System.Drawing.Point(9, 65); + this.mtcTabControl.Name = "mtcTabControl"; + this.mtcTabControl.SelectedIndex = 0; + this.mtcTabControl.Size = new System.Drawing.Size(531, 165); + this.mtcTabControl.TabIndex = 6; + this.mtcTabControl.UseSelectable = true; + // + // mtpAddTabPage + // + this.mtpAddTabPage.Controls.Add(this.btnAddProfile); + this.mtpAddTabPage.Controls.Add(this.txtAddProfile); + this.mtpAddTabPage.Controls.Add(this.lblAddProfile1); + this.mtpAddTabPage.HorizontalScrollbarBarColor = true; + this.mtpAddTabPage.HorizontalScrollbarHighlightOnWheel = false; + this.mtpAddTabPage.HorizontalScrollbarSize = 10; + this.mtpAddTabPage.Location = new System.Drawing.Point(4, 38); + this.mtpAddTabPage.Name = "mtpAddTabPage"; + this.mtpAddTabPage.Padding = new System.Windows.Forms.Padding(3); + this.mtpAddTabPage.Size = new System.Drawing.Size(523, 123); + this.mtpAddTabPage.TabIndex = 0; + this.mtpAddTabPage.Text = "Add"; + this.mtpAddTabPage.VerticalScrollbarBarColor = true; + this.mtpAddTabPage.VerticalScrollbarHighlightOnWheel = false; + this.mtpAddTabPage.VerticalScrollbarSize = 10; + // + // btnAddProfile + // + this.btnAddProfile.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnAddProfile.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnAddProfile.Location = new System.Drawing.Point(6, 48); + this.btnAddProfile.Name = "btnAddProfile"; + this.btnAddProfile.Size = new System.Drawing.Size(76, 26); + this.btnAddProfile.TabIndex = 2; + this.btnAddProfile.Text = "Add"; + this.btnAddProfile.UseSelectable = true; + this.btnAddProfile.Click += new System.EventHandler(this.AddPageButton_Click); + // + // txtAddProfile + // + this.txtAddProfile.CustomButton.Image = null; + this.txtAddProfile.CustomButton.Location = new System.Drawing.Point(202, 1); + this.txtAddProfile.CustomButton.Name = ""; + this.txtAddProfile.CustomButton.Size = new System.Drawing.Size(27, 27); + this.txtAddProfile.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtAddProfile.CustomButton.TabIndex = 1; + this.txtAddProfile.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtAddProfile.CustomButton.UseSelectable = true; + this.txtAddProfile.CustomButton.Visible = false; + this.txtAddProfile.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtAddProfile.Lines = new string[0]; + this.txtAddProfile.Location = new System.Drawing.Point(107, 7); + this.txtAddProfile.MaxLength = 20; + this.txtAddProfile.Name = "txtAddProfile"; + this.txtAddProfile.PasswordChar = '\0'; + this.txtAddProfile.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtAddProfile.SelectedText = ""; + this.txtAddProfile.SelectionLength = 0; + this.txtAddProfile.SelectionStart = 0; + this.txtAddProfile.ShortcutsEnabled = true; + this.txtAddProfile.Size = new System.Drawing.Size(230, 29); + this.txtAddProfile.TabIndex = 1; + this.txtAddProfile.UseSelectable = true; + this.txtAddProfile.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtAddProfile.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // this.txtAddProfile.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.DeleteAmpersand_KeyPress); + // + // lblAddProfile1 + // + this.lblAddProfile1.AutoSize = true; + this.lblAddProfile1.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblAddProfile1.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblAddProfile1.Location = new System.Drawing.Point(1, 7); + this.lblAddProfile1.Name = "lblAddProfile1"; + this.lblAddProfile1.Size = new System.Drawing.Size(87, 19); + this.lblAddProfile1.TabIndex = 0; + this.lblAddProfile1.Text = "Profile Name"; + // + // mtpRenameTabPage + // + this.mtpRenameTabPage.Controls.Add(this.btnRenameProfile); + this.mtpRenameTabPage.Controls.Add(this.txtRenameProfile); + this.mtpRenameTabPage.Controls.Add(this.lblRenameProfile2); + this.mtpRenameTabPage.Controls.Add(this.cboProfileRename); + this.mtpRenameTabPage.Controls.Add(this.lblRenameProfile1); + this.mtpRenameTabPage.HorizontalScrollbarBarColor = true; + this.mtpRenameTabPage.HorizontalScrollbarHighlightOnWheel = false; + this.mtpRenameTabPage.HorizontalScrollbarSize = 10; + this.mtpRenameTabPage.Location = new System.Drawing.Point(4, 38); + this.mtpRenameTabPage.Name = "mtpRenameTabPage"; + this.mtpRenameTabPage.Padding = new System.Windows.Forms.Padding(3); + this.mtpRenameTabPage.Size = new System.Drawing.Size(523, 123); + this.mtpRenameTabPage.TabIndex = 3; + this.mtpRenameTabPage.Text = "Rename"; + this.mtpRenameTabPage.VerticalScrollbarBarColor = true; + this.mtpRenameTabPage.VerticalScrollbarHighlightOnWheel = false; + this.mtpRenameTabPage.VerticalScrollbarSize = 10; + // + // btnRenameProfile + // + this.btnRenameProfile.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRenameProfile.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnRenameProfile.Location = new System.Drawing.Point(6, 86); + this.btnRenameProfile.Name = "btnRenameProfile"; + this.btnRenameProfile.Size = new System.Drawing.Size(76, 26); + this.btnRenameProfile.TabIndex = 4; + this.btnRenameProfile.Text = "Rename"; + this.btnRenameProfile.UseSelectable = true; + this.btnRenameProfile.Click += new System.EventHandler(this.RenameButton_Click); + // + // txtRenameProfile + // + this.txtRenameProfile.CustomButton.Image = null; + this.txtRenameProfile.CustomButton.Location = new System.Drawing.Point(202, 1); + this.txtRenameProfile.CustomButton.Name = ""; + this.txtRenameProfile.CustomButton.Size = new System.Drawing.Size(27, 27); + this.txtRenameProfile.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtRenameProfile.CustomButton.TabIndex = 1; + this.txtRenameProfile.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtRenameProfile.CustomButton.UseSelectable = true; + this.txtRenameProfile.CustomButton.Visible = false; + this.txtRenameProfile.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtRenameProfile.Lines = new string[0]; + this.txtRenameProfile.Location = new System.Drawing.Point(107, 45); + this.txtRenameProfile.MaxLength = 20; + this.txtRenameProfile.Name = "txtRenameProfile"; + this.txtRenameProfile.PasswordChar = '\0'; + this.txtRenameProfile.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtRenameProfile.SelectedText = ""; + this.txtRenameProfile.SelectionLength = 0; + this.txtRenameProfile.SelectionStart = 0; + this.txtRenameProfile.ShortcutsEnabled = true; + this.txtRenameProfile.Size = new System.Drawing.Size(230, 29); + this.txtRenameProfile.TabIndex = 3; + this.txtRenameProfile.UseSelectable = true; + this.txtRenameProfile.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtRenameProfile.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // this.txtRenameProfile.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.DeleteAmpersand_KeyPress); + // + // lblRenameProfile2 + // + this.lblRenameProfile2.AutoSize = true; + this.lblRenameProfile2.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblRenameProfile2.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblRenameProfile2.Location = new System.Drawing.Point(1, 45); + this.lblRenameProfile2.Name = "lblRenameProfile2"; + this.lblRenameProfile2.Size = new System.Drawing.Size(76, 19); + this.lblRenameProfile2.TabIndex = 2; + this.lblRenameProfile2.Text = "New Name"; + // + // cboProfileRename + // + this.cboProfileRename.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboProfileRename.FormattingEnabled = true; + this.cboProfileRename.ItemHeight = 23; + this.cboProfileRename.Location = new System.Drawing.Point(107, 7); + this.cboProfileRename.Name = "cboProfileRename"; + this.cboProfileRename.Size = new System.Drawing.Size(230, 29); + this.cboProfileRename.TabIndex = 1; + this.cboProfileRename.UseSelectable = true; + this.cboProfileRename.SelectedIndexChanged += new System.EventHandler(this.RenameComboboxChanged); + // + // lblRenameProfile1 + // + this.lblRenameProfile1.AutoSize = true; + this.lblRenameProfile1.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblRenameProfile1.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblRenameProfile1.Location = new System.Drawing.Point(1, 7); + this.lblRenameProfile1.Name = "lblRenameProfile1"; + this.lblRenameProfile1.Size = new System.Drawing.Size(47, 19); + this.lblRenameProfile1.TabIndex = 0; + this.lblRenameProfile1.Text = "Profile"; + // + // mtpMoveTabPage + // + this.mtpMoveTabPage.Controls.Add(this.btnMoveProfile); + this.mtpMoveTabPage.Controls.Add(this.lblMoveProfile2); + this.mtpMoveTabPage.Controls.Add(this.cboProfileMoveTo); + this.mtpMoveTabPage.Controls.Add(this.lblMoveProfile1); + this.mtpMoveTabPage.Controls.Add(this.cboProfileMoveFrom); + this.mtpMoveTabPage.HorizontalScrollbarBarColor = true; + this.mtpMoveTabPage.HorizontalScrollbarHighlightOnWheel = false; + this.mtpMoveTabPage.HorizontalScrollbarSize = 10; + this.mtpMoveTabPage.Location = new System.Drawing.Point(4, 38); + this.mtpMoveTabPage.Name = "mtpMoveTabPage"; + this.mtpMoveTabPage.Padding = new System.Windows.Forms.Padding(3); + this.mtpMoveTabPage.Size = new System.Drawing.Size(523, 123); + this.mtpMoveTabPage.TabIndex = 1; + this.mtpMoveTabPage.Text = "Move"; + this.mtpMoveTabPage.VerticalScrollbarBarColor = true; + this.mtpMoveTabPage.VerticalScrollbarHighlightOnWheel = false; + this.mtpMoveTabPage.VerticalScrollbarSize = 10; + // + // btnMoveProfile + // + this.btnMoveProfile.AutoSize = true; + this.btnMoveProfile.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnMoveProfile.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnMoveProfile.Location = new System.Drawing.Point(6, 86); + this.btnMoveProfile.Name = "btnMoveProfile"; + this.btnMoveProfile.Size = new System.Drawing.Size(76, 26); + this.btnMoveProfile.TabIndex = 4; + this.btnMoveProfile.Text = "Move"; + this.btnMoveProfile.UseSelectable = true; + this.btnMoveProfile.Click += new System.EventHandler(this.MovePageButton_Click); + // + // lblMoveProfile2 + // + this.lblMoveProfile2.AutoSize = true; + this.lblMoveProfile2.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblMoveProfile2.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblMoveProfile2.Location = new System.Drawing.Point(1, 45); + this.lblMoveProfile2.Name = "lblMoveProfile2"; + this.lblMoveProfile2.Size = new System.Drawing.Size(23, 19); + this.lblMoveProfile2.TabIndex = 3; + this.lblMoveProfile2.Text = "To"; + // + // cboProfileMoveTo + // + this.cboProfileMoveTo.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboProfileMoveTo.FormattingEnabled = true; + this.cboProfileMoveTo.ItemHeight = 23; + this.cboProfileMoveTo.Location = new System.Drawing.Point(96, 45); + this.cboProfileMoveTo.Name = "cboProfileMoveTo"; + this.cboProfileMoveTo.Size = new System.Drawing.Size(230, 29); + this.cboProfileMoveTo.TabIndex = 2; + this.cboProfileMoveTo.UseSelectable = true; + // + // lblMoveProfile1 + // + this.lblMoveProfile1.AutoSize = true; + this.lblMoveProfile1.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblMoveProfile1.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblMoveProfile1.Location = new System.Drawing.Point(1, 7); + this.lblMoveProfile1.Name = "lblMoveProfile1"; + this.lblMoveProfile1.Size = new System.Drawing.Size(41, 19); + this.lblMoveProfile1.TabIndex = 1; + this.lblMoveProfile1.Text = "From"; + // + // cboProfileMoveFrom + // + this.cboProfileMoveFrom.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboProfileMoveFrom.FormattingEnabled = true; + this.cboProfileMoveFrom.ItemHeight = 23; + this.cboProfileMoveFrom.Location = new System.Drawing.Point(96, 7); + this.cboProfileMoveFrom.Name = "cboProfileMoveFrom"; + this.cboProfileMoveFrom.Size = new System.Drawing.Size(230, 29); + this.cboProfileMoveFrom.TabIndex = 0; + this.cboProfileMoveFrom.UseSelectable = true; + // + // mtpRemoveTabPage + // + this.mtpRemoveTabPage.Controls.Add(this.btnRemoveProfile); + this.mtpRemoveTabPage.Controls.Add(this.cboProfileRemove); + this.mtpRemoveTabPage.Controls.Add(this.lblRemoveProfile1); + this.mtpRemoveTabPage.HorizontalScrollbarBarColor = true; + this.mtpRemoveTabPage.HorizontalScrollbarHighlightOnWheel = false; + this.mtpRemoveTabPage.HorizontalScrollbarSize = 10; + this.mtpRemoveTabPage.Location = new System.Drawing.Point(4, 38); + this.mtpRemoveTabPage.Name = "mtpRemoveTabPage"; + this.mtpRemoveTabPage.Size = new System.Drawing.Size(523, 123); + this.mtpRemoveTabPage.TabIndex = 2; + this.mtpRemoveTabPage.Text = "Remove"; + this.mtpRemoveTabPage.VerticalScrollbarBarColor = true; + this.mtpRemoveTabPage.VerticalScrollbarHighlightOnWheel = false; + this.mtpRemoveTabPage.VerticalScrollbarSize = 10; + // + // btnRemoveProfile + // + this.btnRemoveProfile.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRemoveProfile.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnRemoveProfile.Location = new System.Drawing.Point(6, 48); + this.btnRemoveProfile.Name = "btnRemoveProfile"; + this.btnRemoveProfile.Size = new System.Drawing.Size(76, 26); + this.btnRemoveProfile.TabIndex = 2; + this.btnRemoveProfile.Text = "Remove"; + this.btnRemoveProfile.UseSelectable = true; + this.btnRemoveProfile.Click += new System.EventHandler(this.RemovePageButton_Click); + // + // cboProfileRemove + // + this.cboProfileRemove.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboProfileRemove.FormattingEnabled = true; + this.cboProfileRemove.ItemHeight = 23; + this.cboProfileRemove.Location = new System.Drawing.Point(96, 7); + this.cboProfileRemove.Name = "cboProfileRemove"; + this.cboProfileRemove.Size = new System.Drawing.Size(230, 29); + this.cboProfileRemove.TabIndex = 1; + this.cboProfileRemove.UseSelectable = true; + // + // lblRemoveProfile1 + // + this.lblRemoveProfile1.AutoSize = true; + this.lblRemoveProfile1.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblRemoveProfile1.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblRemoveProfile1.Location = new System.Drawing.Point(1, 7); + this.lblRemoveProfile1.Name = "lblRemoveProfile1"; + this.lblRemoveProfile1.Size = new System.Drawing.Size(47, 19); + this.lblRemoveProfile1.TabIndex = 0; + this.lblRemoveProfile1.Text = "Profile"; + // + // EditProfiles + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(548, 635); + this.Controls.Add(this.mtcTabControl); + this.Controls.Add(this.grpProfiles); + this.ForeColor = System.Drawing.Color.Black; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "EditProfiles"; + this.Padding = new System.Windows.Forms.Padding(23, 60, 23, 20); + this.Resizable = false; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.Style = MetroFramework.MetroColorStyle.Teal; + this.Text = "Profile Settings"; + this.Load += new System.EventHandler(this.EditProfiles_Load); + this.Shown += new System.EventHandler(this.EditProfiles_Shown); + ((System.ComponentModel.ISupportInitialize)(this.dgvProfiles)).EndInit(); + this.grpProfiles.ResumeLayout(false); + this.mtcTabControl.ResumeLayout(false); + this.mtpAddTabPage.ResumeLayout(false); + this.mtpAddTabPage.PerformLayout(); + this.mtpRenameTabPage.ResumeLayout(false); + this.mtpRenameTabPage.PerformLayout(); + this.mtpMoveTabPage.ResumeLayout(false); + this.mtpMoveTabPage.PerformLayout(); + this.mtpRemoveTabPage.ResumeLayout(false); + this.mtpRemoveTabPage.PerformLayout(); + this.ResumeLayout(false); + } + + #endregion + private MetroFramework.Controls.MetroGrid dgvProfiles; + private MetroFramework.Controls.MetroButton btnProfileUp; + private MetroFramework.Controls.MetroButton btnProfileDown; + private System.Windows.Forms.GroupBox grpProfiles; + private MetroFramework.Controls.MetroTabControl mtcTabControl; + private MetroFramework.Controls.MetroTabPage mtpAddTabPage; + private MetroFramework.Controls.MetroButton btnAddProfile; + private MetroFramework.Controls.MetroTextBox txtAddProfile; + private MetroFramework.Controls.MetroLabel lblAddProfile1; + private MetroFramework.Controls.MetroTabPage mtpMoveTabPage; + private MetroFramework.Controls.MetroButton btnMoveProfile; + private MetroFramework.Controls.MetroLabel lblMoveProfile2; + private MetroFramework.Controls.MetroComboBox cboProfileMoveTo; + private MetroFramework.Controls.MetroLabel lblMoveProfile1; + private MetroFramework.Controls.MetroComboBox cboProfileMoveFrom; + private MetroFramework.Controls.MetroTabPage mtpRemoveTabPage; + private MetroFramework.Controls.MetroButton btnRemoveProfile; + private MetroFramework.Controls.MetroComboBox cboProfileRemove; + private MetroFramework.Controls.MetroLabel lblRemoveProfile1; + private MetroFramework.Controls.MetroTabPage mtpRenameTabPage; + private MetroFramework.Controls.MetroButton btnRenameProfile; + private MetroFramework.Controls.MetroTextBox txtRenameProfile; + private MetroFramework.Controls.MetroLabel lblRenameProfile2; + private MetroFramework.Controls.MetroComboBox cboProfileRename; + private MetroFramework.Controls.MetroLabel lblRenameProfile1; + } +} \ No newline at end of file diff --git a/Views/EditProfiles.cs b/Views/EditProfiles.cs new file mode 100644 index 000000000..b591d8889 --- /dev/null +++ b/Views/EditProfiles.cs @@ -0,0 +1,410 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using MetroFramework; +using MetroFramework.Controls; +namespace FallGuysStats { + public partial class EditProfiles : MetroFramework.Forms.MetroForm { + public List Profiles { get; set; } + public List AllStats { get; set; } + public Stats StatsForm { get; set; } + public bool IsUpdate, IsDelete; + public List DeleteList = new List(); + private DataTable ProfilesData; + private DataGridViewComboBoxColumn cboShowsList; + private int selectedRowIndex; + readonly DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle(); + readonly DataGridViewCellStyle dataGridViewCellStyle2 = new DataGridViewCellStyle(); + + public EditProfiles() { + this.InitializeComponent(); + this.Opacity = 0; + } + + private void EditProfiles_Load(object sender, EventArgs e) { + this.SetTheme(Stats.CurrentTheme); + this.ChangeLanguage(); + this.InitProfileList(); + this.ReloadProfileList(); + this.dgvProfiles.ClearSelection(); + } + + private void EditProfiles_Shown(object sender, EventArgs e) { + this.Opacity = 1; + } + + private void SetTheme(MetroThemeStyle theme) { + this.SuspendLayout(); + this.BackMaxSize = 32; + this.BackImagePadding = new Padding(20, 19, 0, 0); + this.BackImage = theme == MetroThemeStyle.Light ? Properties.Resources.profile_icon : Properties.Resources.profile_gray_icon; + + this.dgvProfiles.Theme = theme; + this.dgvProfiles.BackgroundColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + this.dgvProfiles.ColumnHeadersDefaultCellStyle = this.dataGridViewCellStyle1; + this.dgvProfiles.DefaultCellStyle = this.dataGridViewCellStyle2; + this.dataGridViewCellStyle1.BackColor = theme == MetroThemeStyle.Light ? Color.LightGray : Color.FromArgb(2, 2, 2); + this.dataGridViewCellStyle1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.dataGridViewCellStyle1.SelectionBackColor = theme == MetroThemeStyle.Light ? Color.Cyan : Color.DarkSlateBlue; + //this.dataGridViewCellStyle1.SelectionForeColor = Color.Black; + this.dataGridViewCellStyle2.Font = Overlay.GetMainFont(14); + this.dataGridViewCellStyle2.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(49, 51, 56); + this.dataGridViewCellStyle2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.WhiteSmoke; + this.dataGridViewCellStyle2.SelectionBackColor = theme == MetroThemeStyle.Light ? Color.DeepSkyBlue : Color.PaleGreen; + this.dataGridViewCellStyle2.SelectionForeColor = Color.Black; + this.dgvProfiles.AlternatingRowsDefaultCellStyle.BackColor = theme == MetroThemeStyle.Light ? Color.FromArgb(225, 235, 255) : Color.FromArgb(40, 66, 66); + this.dgvProfiles.AlternatingRowsDefaultCellStyle.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.WhiteSmoke; + + foreach (Control c1 in Controls) { + if (c1 is MetroLabel ml1) { + ml1.Theme = theme; + } else if (c1 is MetroTextBox mtb1) { + mtb1.Theme = theme; + } else if (c1 is MetroButton mb1) { + mb1.Theme = theme; + } else if (c1 is MetroCheckBox mcb1) { + mcb1.Theme = theme; + } else if (c1 is MetroRadioButton mrb1) { + mrb1.Theme = theme; + } else if (c1 is MetroComboBox mcbo1) { + mcbo1.Theme = theme; + } else if (c1 is MetroTabControl mtc1) { + mtc1.Theme = theme; + foreach (Control c2 in mtc1.Controls) { + if (c2 is MetroTabPage mtp2) { + mtp2.Theme = theme; + foreach (Control c3 in mtp2.Controls) { + if (c3 is MetroLabel ml3) { + ml3.Theme = theme; + } else if (c3 is MetroTextBox mtb3) { + mtb3.Theme = theme; + } else if (c3 is MetroButton mb3) { + mb3.Theme = theme; + } else if (c3 is MetroCheckBox mcb3) { + mcb3.Theme = theme; + } else if (c3 is MetroRadioButton mrb3) { + mrb3.Theme = theme; + } else if (c3 is MetroComboBox mcbo3) { + mcbo3.Theme = theme; + } + } + } + } + } else if (c1 is GroupBox gb1) { + gb1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + foreach (Control c2 in gb1.Controls) { + if (c2 is MetroButton ml2) { + ml2.Theme = theme; + } + //else if (c2 is DataGridView dgv2) { + // dgv2.Theme = theme; + //} + } + } + } + this.Theme = theme; + this.ResumeLayout(); + } + + private void InitProfileList() { + this.cboShowsList = new DataGridViewComboBoxColumn { + DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox + }; + DataTable showsData = new DataTable(); + showsData.Columns.Add("showName"); + showsData.Columns.Add("showId"); + showsData.Columns.Add("doNotCombineShows"); + showsData.Rows.Add("", "", "False"); + foreach (string showId in this.StatsForm.PublicShowIdList) { + showsData.Rows.Add(Multilingual.GetShowName(showId), showId, "False"); + } + foreach (string showId in this.StatsForm.PublicShowIdList2) { + showsData.Rows.Add(Multilingual.GetShowName(showId), showId, "True"); + } + + showsData.DefaultView.Sort = "showName ASC"; + + this.cboShowsList.DataSource = showsData; + this.cboShowsList.DisplayMember = "showName"; + this.cboShowsList.ValueMember = "showId"; + + this.dgvProfiles.Columns.Add("profile", "profile"); + this.dgvProfiles.Columns.Add(this.cboShowsList); + this.dgvProfiles.Columns[0].ReadOnly = true; + this.dgvProfiles.Columns[0].DataPropertyName = "profile"; + this.dgvProfiles.Columns[1].Name = "show"; + this.dgvProfiles.Columns[1].DataPropertyName = "show"; + + this.ProfilesData = new DataTable(); + this.ProfilesData.Columns.Add("profile"); + this.ProfilesData.Columns.Add("show"); + + this.dgvProfiles.DataSource = this.ProfilesData; + } + + private void ReloadProfileList() { + this.Profiles = this.Profiles.OrderBy(p => p.ProfileOrder).ToList(); + this.ProfilesData.Clear(); + foreach (Profiles profile in this.Profiles) { + this.ProfilesData.Rows.Add($"{profile.ProfileName} [{this.AllStats.Count(r => r.Profile == profile.ProfileId):N0} {Multilingual.GetWord("profile_rounds_suffix")}]", profile.LinkedShowId); + } + this.Profiles = this.Profiles.OrderByDescending(p => p.ProfileOrder).ToList(); + this.txtAddProfile.Text = ""; + this.txtRenameProfile.Text = ""; + this.cboProfileRename.Items.Clear(); + this.cboProfileMoveFrom.Items.Clear(); + this.cboProfileMoveTo.Items.Clear(); + this.cboProfileRemove.Items.Clear(); + for (int i = 0; i < this.Profiles.Count; i++) { + if (this.Profiles[i].ProfileOrder == 0) { this.Profiles[i].ProfileOrder = this.Profiles.Count - i; } + string profileName = this.Profiles[i].ProfileName.Replace("&", "&&"); + this.cboProfileRename.Items.Insert(0, profileName); + this.cboProfileMoveTo.Items.Insert(0, profileName); + if (this.AllStats.Count(r => r.Profile == this.Profiles[i].ProfileId) != 0) { + this.cboProfileMoveFrom.Items.Insert(0, profileName); + } + if (this.Profiles[i].ProfileId != 0) { + this.cboProfileRemove.Items.Insert(0, profileName); + } + } + // this.RefreshComponent(); + } + + private void RefreshComponent() { + this.txtAddProfile.Invalidate(); + this.txtRenameProfile.Invalidate(); + this.cboProfileRename.Invalidate(); + this.cboProfileMoveFrom.Invalidate(); + this.cboProfileMoveTo.Invalidate(); + this.cboProfileRemove.Invalidate(); + this.dgvProfiles.Invalidate(); + } + + private void ProfileList_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { + DataGridView datagridview = sender as DataGridView; + if (datagridview.CurrentCell.ColumnIndex == 1 & e.Control is ComboBox) { + ComboBox cb = e.Control as ComboBox; + this.selectedRowIndex = cb.SelectedIndex; + cb.SelectionChangeCommitted -= this.SubCombo_SelectionChangeCommitted; + cb.SelectionChangeCommitted += this.SubCombo_SelectionChangeCommitted; + } + } + + private void SubCombo_SelectionChangeCommitted(object sender, EventArgs e) { + DataRowView dataRow = (DataRowView)((ComboBox)sender).SelectedItem; + string linkedShowId = (string)dataRow.Row[1]; + bool doNotCombineShows = bool.Parse((string)dataRow.Row[2]); + + if (this.Profiles.FindIndex(item => item.LinkedShowId == linkedShowId) != -1) { + ((ComboBox)sender).SelectedIndex = this.selectedRowIndex; + } else { + int profileListIndex = this.dgvProfiles.CurrentCell.RowIndex; + int profileIndex = this.Profiles.Count - profileListIndex - 1; + this.Profiles[profileIndex].LinkedShowId = linkedShowId; + this.Profiles[profileIndex].DoNotCombineShows = doNotCombineShows; + this.IsUpdate = true; + this.selectedRowIndex = ((ComboBox)sender).SelectedIndex; + } + this.dgvProfiles.ClearSelection(); + this.dgvProfiles[1, this.dgvProfiles.CurrentCell.RowIndex].Selected = true; + } + + private void ProfileList_CellClick(object sender, DataGridViewCellEventArgs e) { + if (e.RowIndex >= 0 && e.ColumnIndex == 1) { + DataGridView datagridview = sender as DataGridView; + datagridview.BeginEdit(true); + ((ComboBox)datagridview.EditingControl).DroppedDown = true; + } + } + + private void ProfileList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { + DataGridView datagridview = sender as DataGridView; + if (datagridview.Columns[e.ColumnIndex].Name == "profile") { + datagridview.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = (string)e.Value; + } else if (datagridview.Columns[e.ColumnIndex].Name == "profile") { + datagridview.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = (string)e.Value; + } + } + + // private void DeleteAmpersand_KeyPress(object sender, KeyPressEventArgs e) { + // if (e.KeyChar == 0x26) e.KeyChar = Convert.ToChar(0); + // } + + private void AddPageButton_Click(object sender, EventArgs e) { + if (this.txtAddProfile.Text.Length == 0) return; + if (this.Profiles.Find(p => string.Equals(p.ProfileName, this.txtAddProfile.Text)) != null) { + MetroMessageBox.Show(this, Multilingual.GetWord("message_same_profile_name_exists"), $"{Multilingual.GetWord("message_create_profile_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (MetroMessageBox.Show(this, + $"{Multilingual.GetWord("message_create_profile_prefix")} ({this.txtAddProfile.Text}) {Multilingual.GetWord("message_create_profile_suffix")}", + Multilingual.GetWord("message_create_profile_caption"), MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + int maxId = this.Profiles.Max(p => p.ProfileId); + int maxOrder = this.Profiles.Max(p => p.ProfileOrder); + this.Profiles.Insert(0, new Profiles { ProfileId = maxId + 1, ProfileName = string.IsNullOrEmpty(this.txtAddProfile.Text) ? Utils.ComputeHash(BitConverter.GetBytes(DateTime.Now.Ticks), HashTypes.MD5).Substring(0, 20) : this.txtAddProfile.Text, ProfileOrder = maxOrder + 1, LinkedShowId = string.Empty, DoNotCombineShows = false }); + this.IsUpdate = true; + this.ReloadProfileList(); + this.dgvProfiles[0, this.dgvProfiles.RowCount - 1].Selected = true; + } + } + + private void RemovePageButton_Click(object sender, EventArgs e) { + if (this.cboProfileRemove.SelectedIndex < 0) return; + if (MetroMessageBox.Show(this, + $"{Multilingual.GetWord("message_delete_profile_prefix")} ({this.cboProfileRemove.SelectedItem}) {Multilingual.GetWord("message_delete_profile_infix")} {Multilingual.GetWord("message_delete_profile_suffix")}", + Multilingual.GetWord("message_delete_profile_caption"), MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + string prevProfileName = string.Empty; + for (int i = 0; i < this.cboProfileRemove.Items.Count; i++) { + if (this.cboProfileRemove.Items[i].ToString() == this.cboProfileRemove.SelectedItem.ToString()) { + if (i > 0) { + prevProfileName = this.cboProfileRemove.Items[i - 1].ToString(); + } + } + } + + int prevProfileId = string.IsNullOrEmpty(prevProfileName) ? 0 : this.Profiles.Find(p => p.ProfileName == prevProfileName.Replace("&&", "&")).ProfileId; + int profileId = this.Profiles.Find(p => p.ProfileName == this.cboProfileRemove.SelectedItem.ToString().Replace("&&", "&")).ProfileId; + this.Profiles.Remove(this.Profiles.Find(p => p.ProfileName == this.cboProfileRemove.SelectedItem.ToString().Replace("&&", "&"))); + this.AllStats.RemoveAll(r => r.Profile == profileId); + this.DeleteList.Add(profileId); + this.IsDelete = true; + if (this.StatsForm.CurrentSettings.SelectedProfile == profileId) { + this.StatsForm.CurrentSettings.SelectedProfile = prevProfileId; + } + this.StatsForm.ReloadProfileMenuItems(); + this.ReloadProfileList(); + } + } + + private void MovePageButton_Click(object sender, EventArgs e) { + if (this.cboProfileMoveTo.SelectedIndex < 0) return; + if (this.cboProfileMoveFrom.SelectedIndex < 0) return; + if (this.cboProfileMoveFrom.SelectedItem.ToString() == this.cboProfileMoveTo.SelectedItem.ToString()) return; + if (MetroMessageBox.Show(this, + $"{Multilingual.GetWord("message_move_profile_prefix")} ({this.cboProfileMoveFrom.SelectedItem}) {Multilingual.GetWord("message_move_profile_infix")} ({this.cboProfileMoveTo.SelectedItem}) {Multilingual.GetWord("message_move_profile_suffix")}", + Multilingual.GetWord("message_move_profile_caption"), MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + int fromId = this.Profiles.Find(p => p.ProfileName == this.cboProfileMoveFrom.SelectedItem.ToString().Replace("&&", "&")).ProfileId; + int toId = this.Profiles.Find(p => p.ProfileName == this.cboProfileMoveTo.SelectedItem.ToString().Replace("&&", "&")).ProfileId; + List targetList = this.AllStats.FindAll(r => r.Profile == fromId); + if (targetList.Count > 0) { + foreach (RoundInfo target in targetList) { + target.Profile = toId; + } + this.IsUpdate = true; + this.ReloadProfileList(); + } + } + } + + private void RenameButton_Click(object sender, EventArgs e) { + if (this.cboProfileRename.SelectedIndex < 0) return; + if (this.txtRenameProfile.Text.Length == 0) return; + if (this.cboProfileRename.SelectedItem.ToString().Replace("&&", "&") == this.txtRenameProfile.Text) return; + if (this.Profiles.Find(p => string.Equals(p.ProfileName, this.txtRenameProfile.Text)) != null) { + MetroMessageBox.Show(this, Multilingual.GetWord("message_same_profile_name_exists"), $"{Multilingual.GetWord("message_create_profile_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (MetroMessageBox.Show(this, + $"{Multilingual.GetWord("message_rename_profile_prefix")} ({this.cboProfileRename.SelectedItem}) {Multilingual.GetWord("message_rename_profile_infix")} ({this.txtRenameProfile.Text.Replace("&", "&&")}) {Multilingual.GetWord("message_rename_profile_suffix")}", + Multilingual.GetWord("message_rename_profile_caption"), MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + Profiles profileToUpdate = this.Profiles.Find(p => string.Equals(p.ProfileName, this.cboProfileRename.SelectedItem.ToString().Replace("&&", "&"))); + if (profileToUpdate != null) { + profileToUpdate.ProfileName = string.IsNullOrEmpty(this.txtRenameProfile.Text) ? Utils.ComputeHash(BitConverter.GetBytes(DateTime.Now.Ticks), HashTypes.MD5).Substring(0, 20) : this.txtRenameProfile.Text; + this.IsUpdate = true; + this.ReloadProfileList(); + } + } + } + + private void ProfileListUp_Click(object sender, EventArgs e) { + if (this.dgvProfiles.SelectedRows.Count <= 0) return; + if (this.dgvProfiles.CurrentCell.RowIndex <= 0) return; + + int profileListIndex = this.dgvProfiles.CurrentCell.RowIndex; + int profileIndex = this.Profiles.Count - profileListIndex - 1; + (this.Profiles[profileIndex].ProfileOrder, this.Profiles[profileIndex + 1].ProfileOrder) = (this.Profiles[profileIndex + 1].ProfileOrder, this.Profiles[profileIndex].ProfileOrder); + this.IsUpdate = true; + this.ReloadProfileList(); + this.Invoke((MethodInvoker)delegate { + this.dgvProfiles[0, profileListIndex - 1].Selected = true; + int displayedRowCount = this.dgvProfiles.DisplayedRowCount(false); + int firstDisplayedScrollingRowIndex = (profileListIndex - 1) - (displayedRowCount / 2); + this.dgvProfiles.FirstDisplayedScrollingRowIndex = firstDisplayedScrollingRowIndex < 0 ? 0 : firstDisplayedScrollingRowIndex; + }); + } + + private void ProfileListDown_Click(object sender, EventArgs e) { + if (this.dgvProfiles.SelectedRows.Count <= 0) return; + if (this.dgvProfiles.CurrentCell.RowIndex >= this.dgvProfiles.RowCount - 1) return; + + int profileListIndex = this.dgvProfiles.CurrentCell.RowIndex; + int profileIndex = this.Profiles.Count - profileListIndex - 1; + (this.Profiles[profileIndex].ProfileOrder, this.Profiles[profileIndex - 1].ProfileOrder) = (this.Profiles[profileIndex - 1].ProfileOrder, this.Profiles[profileIndex].ProfileOrder); + this.IsUpdate = true; + this.ReloadProfileList(); + this.Invoke((MethodInvoker)delegate { + this.dgvProfiles[0, profileListIndex + 1].Selected = true; + int displayedRowCount = this.dgvProfiles.DisplayedRowCount(false); + int firstDisplayedScrollingRowIndex = (profileListIndex + 1) - (displayedRowCount / 2); + this.dgvProfiles.FirstDisplayedScrollingRowIndex = firstDisplayedScrollingRowIndex < 0 ? 0 : firstDisplayedScrollingRowIndex; + }); + } + + private void RenameComboboxChanged(object sender, EventArgs e) { + this.txtRenameProfile.Text = this.cboProfileRename.SelectedItem.ToString().Replace("&&", "&"); + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { + if(keyData == Keys.Escape) { + this.Close(); + return true; + } + return base.ProcessCmdKey(ref msg, keyData); + } + + private void ProfileList_SelectionChanged(object sender, EventArgs e) { + if (((DataGridView)sender).SelectedRows.Count <= 0) { + this.btnProfileUp.Enabled = false; + this.btnProfileDown.Enabled = false; + } else { + this.btnProfileUp.Enabled = true; + this.btnProfileDown.Enabled = true; + } + } + + private void ChangeLanguage() { + this.Font = Overlay.GetMainFont(12); + this.Text = $" {Multilingual.GetWord("profile_title")}"; + this.grpProfiles.Text = Multilingual.GetWord("profile_list"); + this.mtpAddTabPage.Text = Multilingual.GetWord("profile_add_tab"); + this.btnAddProfile.Text = Multilingual.GetWord("profile_add_tab_button"); + this.btnAddProfile.Width = TextRenderer.MeasureText(this.btnAddProfile.Text, this.btnAddProfile.Font).Width + 45; + this.lblAddProfile1.Text = Multilingual.GetWord("profile_add_tab_label1"); + this.mtpMoveTabPage.Text = Multilingual.GetWord("profile_move_tab"); + this.btnMoveProfile.Text = Multilingual.GetWord("profile_move_tab_button"); + this.btnMoveProfile.Width = TextRenderer.MeasureText(this.btnMoveProfile.Text, this.btnMoveProfile.Font).Width + 45; + this.lblMoveProfile2.Text = Multilingual.GetWord("profile_move_tab_label2"); + this.lblMoveProfile1.Text = Multilingual.GetWord("profile_move_tab_label1"); + this.mtpRemoveTabPage.Text = Multilingual.GetWord("profile_remove_tab"); + this.btnRemoveProfile.Text = Multilingual.GetWord("profile_remove_tab_button"); + this.btnRemoveProfile.Width = TextRenderer.MeasureText(this.btnRemoveProfile.Text, this.btnRemoveProfile.Font).Width + 45; + this.lblRemoveProfile1.Text = Multilingual.GetWord("profile_remove_tab_label1"); + this.mtpRenameTabPage.Text = Multilingual.GetWord("profile_rename_tab"); + this.lblRenameProfile1.Text = Multilingual.GetWord("profile_rename_tab_label1"); + this.lblRenameProfile2.Text = Multilingual.GetWord("profile_rename_tab_label2"); + this.btnRenameProfile.Text = Multilingual.GetWord("profile_rename_tab_button"); + this.btnRenameProfile.Width = TextRenderer.MeasureText(this.btnRenameProfile.Text, this.btnRenameProfile.Font).Width + 45; + + this.txtAddProfile.Location = new Point(this.lblAddProfile1.Right + 25, this.txtAddProfile.Top); + this.cboProfileRename.Location = new Point((this.lblRenameProfile1.Width > this.lblRenameProfile2.Width ? this.lblRenameProfile1.Right : this.lblRenameProfile2.Right) + 25, this.cboProfileRename.Top); + this.txtRenameProfile.Location = new Point((this.lblRenameProfile1.Width > this.lblRenameProfile2.Width ? this.lblRenameProfile1.Right : this.lblRenameProfile2.Right) + 25, this.txtRenameProfile.Top); + this.cboProfileMoveFrom.Location = new Point((this.lblMoveProfile1.Width > this.lblMoveProfile2.Width ? this.lblMoveProfile1.Right : this.lblMoveProfile2.Right) + 25, this.cboProfileMoveFrom.Top); + this.cboProfileMoveTo.Location = new Point((this.lblMoveProfile1.Width > this.lblMoveProfile2.Width ? this.lblMoveProfile1.Right : this.lblMoveProfile2.Right) + 25, this.cboProfileMoveTo.Top); + this.cboProfileRemove.Location = new Point(this.lblRemoveProfile1.Right + 25, this.cboProfileRemove.Top); + } + } +} \ No newline at end of file diff --git a/Views/EditProfiles.resx b/Views/EditProfiles.resx new file mode 100644 index 000000000..f53159b63 --- /dev/null +++ b/Views/EditProfiles.resx @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA + AAADNsT/AjbF/wI2xv8DNsX/AjbG/wI2xv8CNsb/AjbG/wI2x/8FMbH/BiaP/wM2x/8CNsX/AjjN/wE8 + 3/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ATze/wI4zP8CNsb/AzbF/wgpj/8GM7P/AzbG/wM2xf8DNsX/AzbF/wM2 + xf8DNsX/AjbF/wI2xv8DNsX/AjbF/wI2xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2xv8CN8j/BS+m/wYl + g/8DN8f/AjbG/wE50/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8COdH/AjbG/wM3x/8IJIH/BTCr/wI2 + yP8CNsb/AjbG/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI1xP8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8CNsb/AjfI/wcsnP8GJIL/AzfI/wI2x/8BOtj/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ATrW/wI2 + x/8DN8f/ByJ8/wUtof8CN8j/AjbG/wI2xv8CNsb/AjbH/wI2xv8CNsb/AjbG/wM2xf8CNMP/AjbG/wI2 + xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI3yP8IK5r/BiSD/wM3x/8CN8n/ATze/wA94v8APOH/ADzh/wA9 + 4v8APeL/ADzh/wA84f8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA94f8APeH/AD3h/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wE73P8CN8n/AzfH/wYjf/8FLZ//AjfI/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8DNcP/AjXF/wI2x/8CNsj/AjbH/wI2x/8CNsb/AjbG/wI2xv8CN8j/Byuc/wYlhv8DN8f/AjjN/wE9 + 4f8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA9 + 4v8APeP/AD3i/wA94/8APeP/AD3i/wA94/8BPeD/AjfL/wM3x/8GJIH/BS2g/wI3yP8CNsb/AjbG/wI2 + xv8CNsf/AjbH/wI2x/8CNsf/AjXF/wI72P8CPNv/Ajvb/wI72f8COtj/ATnU/wI4z/8CN8n/AjfI/wYt + oP8GJ4r/AzfH/wI50f8APeL/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA84/8APOL/ADzj/wE94v8CP+P/Aj7i/wE94v8APOL/ADzi/wA94/8APeP/AD3j/wA9 + 5P8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AT3i/wI50P8DN8b/BiaG/wUu + pf8CN8j/AjfI/wI4zv8COtP/ATrY/wE72f8CPNr/Ajvb/wI72P8BPeH/AD3k/wA95P8APeT/AD3k/wA9 + 5P8BPeL/ATzd/wI50/8FL6n/ByqQ/wM3x/8BOtb/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA9 + 5P8APeT/AD3k/wA95P8APeT/ADzj/wE+4/8NR+b/Jlrp/0Bw7/9WgPL/Yony/2GJ8v9Uf/L/PW3u/yFX + 6f8KReX/AT3j/wA84/8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeP/AD3k/wA9 + 5P8COtT/AzfG/wcni/8EMK7/AjnS/wE83P8BPeL/AD3k/wA95P8APeT/AD3k/wA95P8BPeH/AD3j/wA+ + 5f8APub/AD7m/wA+5f8APuX/AD7l/wA+5v8BPub/BDXB/wgsmP8DN8f/Ajva/wA+5v8APub/AD7l/wA+ + 5v8APub/AD7l/wA+5v8APub/AD7m/wA+5v8APeX/Aj7l/xlR6P9Sfe//lbD3/8XU+v/i6fz/7vP+//L2 + /v/y9v7/7fP+/9/o/P/B0fr/jan2/0h17v8TS+b/AD3l/wA95f8APuX/AD7l/wA+5f8APuX/AD7l/wA+ + 5f8APuX/AD3l/wA+5f8APub/AjvZ/wI3x/8GKZX/BDbE/wA+5f8APub/AD7m/wA+5f8APub/AD7l/wA+ + 5v8APub/AT3i/wE+4/8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7n/wM50v8ILqP/AjfJ/wE8 + 3v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APeb/CkXm/0t37v+rwff/6e/9//3+ + //////////////////////////////////////////////z9///l7P3/obn4/0Bu7f8GQeb/AD3m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wI83f8CN8j/Biyk/wM61P8APuf/AD7m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wE+4v8APuT/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8COtj/BTCw/wI3yv8BPeP/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APeb/FEzm/3qa + 7v/h6fv//v////////////////////////////////////////////////////////////////////7+ + ///b5fz/bpLx/w5I5v8APeb/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeH/AjfJ/wQu + sP8CO9r/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeP/AD3k/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/ATzf/wM0vP8COM3/AD7k/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APef/FU3k/46p7v/z9v3///////////////////////////////////////////////////////// + //////////////////////////////H1/v+GpPP/D0nm/wA95/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD3k/wI3zP8FMrr/Aj3g/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7l/wA/ + 6P8AP+r/AD/p/wA+6P8APuj/AD7o/wA+5/8APuf/AD7n/wI+4/8ENsf/AjnQ/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7o/wA+5/8APef/C0Xh/4ij6P/3+f3///////////////////////////////////////// + ////////////////////////////////////////////////////////9fj+/36d7/8IQ+X/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5f8COM7/BDbI/wI+4/8APuj/AD7n/wA+6P8APuj/AD7o/wA/ + 6f8BP+r/AT/q/wI/5P8KMKH/CDOw/wU3xP8FPNb/BEDj/wFA6/8AP+v/AD/q/wA/6f8BP+f/AjnQ/wI5 + 0/8BP+n/AD/p/wA+6P8APuj/AD7o/wA/6f8AP+n/AD3j/2GE3//x9Pv///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///s8fz/V3/o/wA+5/8APun/AD7p/wA+6P8AP+n/AD7o/wA/6f8BP+f/AjnR/wI50v8BPuf/AD7p/wA/ + 6v8BQOv/BEDl/wU81f8FNLv/BiyZ/wMie/8CG2X/AQIK/wMFEv8CCBz/BA8z/wYZV/8GJYP/BzS0/wU9 + 2v8CQOv/AD/q/wE61P8COtb/AD/q/wA/6v8AP+n/AD/q/wA/6f8AP+r/AD3p/ypZ2f/V3vP///////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////8vX9f8hVeL/AD7q/wA/6f8BP+r/AD/q/wE/6v8BP+r/AT/p/wI6 + 1f8COtb/AD/r/wNA6P8FOsz/BiyX/wMaXv8JEDT/FQ4f/y0WHf9HHyP/Wycq/wEBAP8JCQj/AgIC/wAA + AP8AAAD/AAAD/wEFFP8FEkD/ByiM/wU91/8CO9j/AjvZ/wE/6/8BP+v/AT/r/wE/6/8BP+v/AT/s/wQ+ + 3v+KoeH///////////////////////Hw8P+ko6T/i4qK/87Nzv////////////////////////////// + /////////////+rq6v+bmpr/j46P/9jY2P/////////////////9/v7/e5nn/wI/5v8AP+v/AT/r/wE/ + 6/8BP+v/AT/r/wE/6/8CO9j/AjzZ/wY6zf8FIHb/Bwws/x8PFv9OIiT/fzY8/6RETv+8T1z/x1dl/8pT + Yv8BAQH/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQIE/wMIF/8FFU//Bze+/wE83f8BP+v/AT/r/wE/ + 6/8BP+v/AT/r/wA+6v8oVtP/2eH0//////////////////////+Wlpb/LCsr/ygnJ/9NTE3/4uLi//// + //////////////////////////////z8/P+CgoL/Kigo/ygmJv9cW1z/7e3t/////////////////9Hc + 9f8fU9//AD7r/wE/6/8BP+v/AT/r/wE/6/8BP+v/Ajzc/wczsf8FETr/Kx0L/3U1M/+tSFT/xlFg/81S + Y//NUmL/zFJi/8xUY//LUmH/AAAA/wAAAP8AAAD/AAAA/wkJCP8PDw7/CwsK/wcNFf8KLl7/BA8l/wYg + b/8CPd//AUDt/wFA7P8BQOz/AUDs/wFA7f8APOP/Z4TX//r7/f/////////////////6+vr/bGxs/zMy + Mv83Njb/OTg4/8XFxf/////////////////////////////////x8fH/XFtb/zQzM/83Njb/QkFB/9XV + 1v/////////////////4+v3/W3/e/wA96P8BQOz/AUDs/wFA7P8BQOz/AUDt/wQ82f8EF1X/QzUD/7uM + GP/PYlr/z1lp/89bav/NVWX/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wEBAf8UFBT/FxcW/wwL + Cv8LERv/Czx6/wclTP8EET//BDzX/wFA7v8BQO3/AUDt/wFA7f8BQO7/CD/Y/56v4v////////////// + ////////+fn5/29tbv85Nzf/PDo6/z89Pf/Dw8P/////////////////////////////////7+/w/19e + X/87OTn/PDo6/0dGRv/U1NT//////////////////////5at5v8EP+H/AUDu/wFA7f8BQO3/AUDt/wFA + 7v8EOtH/CxMz/5R4Cv/eqRj/z2Rb/85Zaf/SYW//z1xq/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAA + AP8EBAT/FxYW/xUUFP8ICAf/ChAZ/wQ2dv8GLWD/Aw0x/wQ6zv8BQO//AUDt/wFA7f8BQO3/AD/t/xdI + 0v/Dzej///////////////////////j4+P9wb2//Pjw8/0E/P/9CQED/w8PD//////////////////// + //////////////Dw8P9iYWH/Pz09/0A/P/9KSEn/1NTU///////////////////////Aze3/EUbZ/wA/ + 7v8BQO3/AUDt/wFA7f8BQO//AzfK/xYYJf+xjwX/2qUQ/85jWv/NV2f/0WBu/9Ffbv/LUmL/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8MDAv/ExIR/wULE/8FNnb/BDJt/wMMKf8FOMb/AUHv/wFA + 7f8BQO3/AUDt/wA+6/8nUs7/1tzs///////////////////////4+fn/cXFx/0JBQf9IR0j/VVRU/8XE + xP/////////////////////////////////w8PD/ZGNj/0JCQv9JSUn/W1tb/9XV1f////////////// + ////////2eHz/x5P1v8AP+3/AUDt/wFA7f8BQO3/AUHv/wM0v/8iHxr/wZwD/9qkEf/NYFj/0F5u/81X + Zv/KUWH/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwMD/wUEA/8BBxD/BDV0/wM1 + dv8DDCX/BzS2/wFB8P8BQO3/AUDt/wFA7f8APur/MFjN/9rf7f///////////////////////v7+/5GR + kf9CQkL/Tk5O/4aFhv/d3d3/////////////////////////////////+fn6/4CAgP9CQkL/VFRU/42N + jf/o6Oj//////////////////////+Pp9v8mU9T/AD7s/wFA7v8BQO7/AUDt/wFB8P8GMKz/MCcS/8mi + A//ZoxD/zF1U/8xVZf/LUmL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/BAoS/wU2dv8DN3r/Aw0k/woxp/8BQvH/AUDu/wFB7v8BQO7/AD7q/y9YzP/Y3ev///7+//// + ///////////////////n5+f/kpKS/3x8fP++vr7//f39//////////////////////////////////// + ///f3t7/i4qL/4B/gP/Kysr////////////////////////////g5/b/JFLR/wA/7P8BQO7/AUDu/wFB + 7v8CQvH/BCmU/zwwDf/QqAX/2aMQ/81eVv/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkPF/8QQHz/Bjt+/wQPJ/8ILJb/AkPz/wFB8P8BQfD/AUHw/wA/ + 7P8lUMv/z9Xm//39/P////////////////////////////39/f/7+/v///////////////////////// + //////////////////////////////39/f/8/Pz/////////////////////////////////09vy/xxK + 0P8AQO7/AUHw/wFB8P8BQfD/AkLy/wMhff9MPAf/1q0I/9yoG//OYFn/y1Bi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CBxD/Bjd1/wY9g/8FEi3/BSSC/wJD + 8/8BQfD/AUHw/wFB8P8AQO7/F0XL/7nD4P/4+fj///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////7XD6P8PQc//AEHw/wFB8P8BQfD/AUHw/wNC7v8CG2f/YUwE/9qxBf/YoxL/zF1U/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8BAQH/AAAA/wAAAP8AAAD/AQcQ/wM0 + dP8CPIb/BBg2/wUea/8DQ/H/AULy/wFC8v8BQvL/AULy/wc80f+Spdj/8vLy//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v+HnNr/AzrX/wFC8v8BQfH/AULx/wFC8v8FQuf/BhZL/3ti + BP/dsgD/2KIO/8xdVP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/CwsL/wUF + Bf8AAAD/AAAA/wIHD/8DNHP/AT2J/wQgRv8GFlD/BkPq/wFD9f8BQ/P/AUP0/wFD9P8AO9//W3jL/+Tm + 6//6+vr///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////s7/j/TG3L/wA85f8BQ/T/AUPz/wFD + 9P8BQ/X/BD7b/wwTL/+Zewj/3bIA/9iiD//MXVT/y1Bi/8tRYf/MVWX/zlhn/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wUEBP8FBQX/AAAA/wAAAP8FChP/DDt4/wlDjf8ILFv/BA81/wU/3P8BQ/X/AUPz/wFD + 9P8BQ/T/AEDs/yFLxf/AyeL/8fHx//7///////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v3/usbl/xhG + yf8AQfD/AUP0/wFD9P8BQ/T/AUT2/wU2wP8YFxj/tpML/960B//apRb/zF5W/8tQYv/LUWH/zFZl/8xU + Y//LUWH/y1Fh/8tRYf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DBQd/w9Aff8JPoL/Bhw7/wIH + Hf8IOMD/AUT2/wFD9P8BQ/T/AUP0/wFD9P8DOtP/dIvQ/+Xn6v/29vf///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7/7e/0/2R/zv8BOtr/AUP0/wFD9P8BQ/T/AUP0/wJE9v8HK5T/DAoM/3hgCv/UrAr/3Kkd/85j + W//LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/CAgH/w4ODf8ICAf/AAAA/wAAAP8AAAD/AAAA/wkR + Gf8SQHr/CSNF/wMMLP8KIGb/CS+i/wJE9v8BQ/T/AUP0/wFD9P8BQ/X/AT/r/x9Jw/+0wOH/6uvr//n5 + +v////////////////////////////////////////////////////////////////////////////// + ////////////////////////9/f3/6q33v8WRMf/AEHv/wFD9P8BQ/T/AUP0/wFD9f8EQ+7/CCN//wUb + Xv8MDRr/gGgL/9mnH//OYVn/y1Bh/8tRYf/LUWH/y1Fh/81XZv/PWmn/zFVl/wAAAP8KCQn/EhIS/wAA + AP8AAAD/AAAA/wAAAP8HDRb/Gzdd/wUNJf8HLJf/BzrK/wkrmv8DQ+//AUP2/wFD9f8BQ/X/AUP2/wFD + 9v8AOdj/R2fF/9DW5//r6+v/+fn6//////////////////////////////////////////////////// + ////////////////////////////////////////9/f2/8vT5/86XcT/ADvh/wFD9v8BQ/X/AUP1/wFD + 9f8BQ/b/BT7e/woqmP8FOMj/Ah1x/yIdEP+5jSj/z2BY/8tQYv/LUWH/y1Fh/8tSYv/RXmz/zFZl/8tR + Yf8AAAD/Dg4O/wgICP8AAAD/AQEB/wcHBv8BAQD/AwgP/wcVKf8FF1P/Az7e/wFD9P8JM7f/BT/i/wFD + 9v8BQ/X/AUP1/wFD9v8BQ/b/AULy/wU3yv9ge8v/1tvn/+rq6v/19vb//v7+//////////////////// + ///////////////////////////////////////////////////9/f3/8/Pz/9LY5/9Tccj/AznT/wFD + 9P8BQ/X/AUP1/wFD9f8BQ/X/AUT3/wc6zf8HOMf/AUP3/wQ2w/8EDzT/eFUV/85fVv/LUmP/zFVl/8tR + Yf/KUWH/zllo/85YZ//LUWH/AgIC/wsLC/8BAQH/AAAA/wEBAf8GBgb/AAAA/wQGCv8GCxr/BSWD/wFD + 9f8AQ/n/BD7i/wQ94P8BQ/b/AUP2/wFD9v8BQ/b/AUP2/wFD9v8BQO7/BzfF/196y//P1eb/5+jo/+7v + 7//5+fr//v7+//////////////////////////////////////////////////39/v/29/f/7e3t/8nR + 5v9Tccj/BTjM/wFC8f8BQ/b/AUP1/wFD9v8BQ/b/AUP1/wFD9f8FOtX/AkHs/wBD+f8CQez/ARhd/1U3 + Ev/KW1f/y1Fi/8xWZf/LUWH/y1Fh/8tTYv/OWWj/y1Ji/wMDA/8DAwP/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBgr/BgoZ/wUojf8BRPn/AEP4/wBD9v8BQvH/AEP3/wBD9/8AQ/f/AEP3/wBD9v8AQ/f/AEP3/wFA + 6/8ENcX/Q2XF/6+94f/i5Oj/6Ono/+3u7v/19fX/+fn6//z8/P/9/f3//v7+//39/f/8/Pz/+Pj5//Pz + 8//t7u3/4OPp/6e23v86XcP/AzfM/wFC8f8AQ/f/AEP3/wBD9v8AQ/f/AEP2/wBD9/8AQ/X/AUHx/wBD + +P8AQ/j/AUP1/wEbaP9TNRH/yltX/8tQYv/LUWH/y1Fh/8tRYf/LUWH/y1Rj/8tTYv8AAAD/AAAA/wAA + AP8AAAD/BAQD/woKCv8LCgr/DBAY/wkUJ/8FHWb/A0T0/wBD+P8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEDw/wE1zf8bRL3/aoXQ/7jD4v/c4Oj/5ufo/+jp6f/q6ur/6+zs/+zt + 7f/r7Ov/6uvq/+fo6f/b3+j/sb/i/2F+zv8WQLz/ATfT/wFC8/8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEP5/wRC6/8EFEj/cVAW/9BlXP/OWGj/zVhn/8tTY//LUWH/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wUGBf8KCgr/CQgI/xIYIf8XMVP/BAwr/wc4w/8BRPv/AEP4/wBD + +P8AQ/j/AEP5/wBD+f8AQ/j/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/b/ATvf/wIzw/8aRL3/Tm7K/4Oa + 2P+ot+D/v8ji/8jQ5P/H0OT/vsfi/6W14P9+ltf/SWrI/xdBvf8CM8X/ATzi/wBD9/8AQ/n/AEP5/wBD + +f8AQ/n/AEP4/wBD+P8AQ/n/AEP4/wBD+P8AQ/j/AEP4/wFF+/8GMrD/GRcX/6+FJ//TaV//zVdn/81Y + Z//LVGP/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8DAwP/CgoK/w4NDP8YHSX/GEJ5/wQY + Nv8FEUL/BznG/wJE9v8ARPv/AUT7/wJF+f8BRPr/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/n/AEP6/wBE + +v8BQvL/ATvf/wA0y/8ENMD/Dju9/xpFwf8gSsL/IErC/xpEv/8OOrz/AzO//wA0yv8BO97/AULz/wBD + +v8AQ/n/AEP5/wBD+f8AQ/n/AEP5/wBD+f8ARPn/AUT5/wFE+f8ARPv/AUT7/wNE9P8GNLn/CBEz/25Z + Cf/bqib/02pi/85Zaf/NV2b/y1Nj/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/woK + Cv8LCwr/ChAY/xRDgP8DN3n/BBc1/wMMLP8GIHD/CC6c/wgumv8GI3v/CjvF/wJF/P8ARPv/AET7/wBE + +/8ARPv/AET7/wBE+/8ARPv/AET7/wBE+/8AQ/j/AEHy/wE+5/8BPOD/ADne/wA63v8BPOH/AT7n/wFB + 8P8BQ/j/AET7/wBE+/8ARPv/AET7/wBE+/8ARPv/AET7/wVH+v8VU/z/ElH7/ww0rf8DIHz/Bi2f/wYr + mf8DG2j/ERMf/2lTB//Opgb/36wi/85hWv/OWWr/zFZm/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8BAQH/AAAA/wIHEP8ENXT/ATyI/wM6f/8FKVj/BRYy/wQPJv8EECf/BA0d/wgV + P/8QQ9L/Akb+/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/f8ARP3/AET9/wBE + /f8ARP3/AET9/wBE/f8ARP3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8SUf3/HVr+/w44 + uP8MECb/OC0I/zYsDP85Lgz/WUYG/51+B//UqwT/27EA/9ijEf/MXVX/ylFi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CCBD/BTV0/wE7h/8BO4b/ATyI/wM7 + g/8EOXz/Azl8/w81gP8eEE7/DBdH/xZHzv8GSf3/AEP8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARP3/BEf7/wk0tP8CDy//JVkz/7emFv/OpQT/zqYF/9etBP/csQH/2q8A/9qwAP/YoxH/zF1V/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BAkR/xdE + f/8GQIr/ATuG/wE7hv8BO4b/ATuH/wA7hv8SN5b/YiHV/zANZf8MFDv/GkS1/xBP+v8CRv7/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARf7/A0Px/wYqmP8EESf/CGFI/yW4d/+9shP/3bAA/9uwAP/arwD/2q8A/9qv + AP/bsgf/3akg/8xdVf/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wEHD/8UQn3/FU2T/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETaV/20g7/93He3/PhGA/w0M + Mf8WMn//HFLg/w5P/v8DRv3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AkX8/whL/v8JSvr/BjrN/wUaYf8FHCD/C3hZ/wO9jv8fwHz/vbET/9yv + AP/arwD/2q8A/9qvAP/arwH/4boY/9qnHP/MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wMDA/8AAAD/AAAA/wAAAP8BBw//BDR0/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xQ6 + l/9tIu7/fxv//3wd+f9ZGLP/HwpI/w0WP/8aPJb/HlPh/xRT/P8IS///Akb9/wBD/P8AQ/z/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AEP8/wFF/P8GSf7/EVL//x9b+v8lVdf/Eyx//wURKv8JQTH/C5xz/wPC + j/8Awo//Ib98/72yFf/crwD/2q8A/9qvAP/arwD/2q8B/9uyBP/YohD/zF1U/8tQYv/LUWH/y1Fh/8tT + Yv/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8KCgr/BQUF/wAAAP8AAAD/AQcQ/wM0dP8AO4f/ATuG/wE7 + hv8BO4b/ATuG/whDiv8dQp3/bSHu/34b//99G///fhz//3Md5v9IE5L/Ggk//w0UPP8YMHn/IUm8/x9V + 5v8ZVfn/EFH//wpN//8JS///B0r//whL//8JTP//DU///xVV//8eWfb/JFfg/yNGsP8WKWr/Chgu/wg3 + K/8LgV//B7mJ/wHDkP8AwY7/AMGP/yHAff/BtiD/3bEF/9qvAP/arwD/2q8A/9qvAP/asAD/2KIP/8xd + VP/LUGL/ylFh/81WZf/NV2b/ylFh/8pRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wEBAf8AAAD/AAAA/wII + EP8IN3X/CUOL/w1FjP8ORo3/CUKK/wI8hv8DPof/EjeW/2wg7v9+G///fRv//30b//9+G///fh3+/3Ic + 5P9IGqD/DyJY/wYUM/8MFz3/FCZg/xk1hv8fQKL/I0e0/yBKvf8hSr7/I0a0/yA+nv8ZMX7/EyJX/wsZ + OP8IJTj/C1Re/wuNbv8Gt4f/AcOQ/wDCjv8AwY7/AMGO/wDBj/8fv3v/vbIV/9ywAf/arwH/3LIK/9yz + Df/dswz/27IH/9ijEv/MXVX/y1Bi/8pRYf/LUmL/y1Ji/8tRYf/LUWH/y1Fh/wEBAf8BAQH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8DCBH/Bzd1/wZAiv8IQYr/CkKL/wxFjP8FPoj/ADuF/xE2lf9sIO7/fhv//30b + //99G///fRv//30b//9/Gv//bSj+/xds9v8Hatf/C1On/wg5eP8JKFf/CR5F/wYZO/8FFTL/AwgY/wgh + M/8MNkn/Ck1e/wpuhf8Ol7b/Cbvj/wjO7f8CxZ7/AMGN/wDBjv8BwY7/AMGO/wDBjv8AwY//IL97/72x + E//crwD/27EG/9yzC//csgr/3LII/9uyBf/YoxL/zF1V/8pQYv/LUWH/y1Fh/8tRYf/LUWH/y1Ji/8tS + Yv8FBQT/Dg4O/woKCv8AAAD/AAAA/wAAAP8AAAD/AgkS/ws7ef8MRY3/CECJ/xVMkf8WTZH/CEGK/wA7 + hf8RNpX/bCDu/34b//99G///fRv+/4Yo/f+CI/3/hCT9/20p/P8Sbf3/AHz//wF8//8De/7/B3n3/wh1 + 7f8Gceb/C2nP/wgdMf8RfJb/C8v2/wjQ/P8D1P//AtT//wHT//8Cz/D/BcSe/wnEkv8LxJP/DMWU/wDB + jv8AwY7/AMGP/x+/e/+9sRP/3K8A/9yzC//ftxX/37cT/9uwBv/dtAv/2aUW/81eVv/LUGL/y1Fh/8tR + Yf/LUWH/zlln/85aaf/LVGP/AAAA/wgICP8RERH/AAAA/wAAAP8AAAD/AAAA/wMJEv8IOXf/CUKL/xRM + kf8JQor/EkqQ/wdAiv8AO4X/FDqX/3Al7/9+G///fRv//38e/v+LL/v/izD7/4kq/P9xMPz/E279/wB7 + /v8Bev7/AXr+/wF6/v8Bev//AXr//wiE+/8LQV7/ClNm/wbR/f8A0f//AdH//wHR//8B0f//A9Dw/wzG + of8TxpX/Gsma/xXHmP8Cwo//AcOQ/wPAj/8ov37/wLQW/92wAP/cswr/3rYQ/9yzC//fthP/27IG/9ml + Fv/NXVb/y1Bi/8tRYf/LUWH/y1Ji/9BdbP/LVWT/y1Fh/wAAAP8NDQ3/BgYG/wAAAP8AAAD/CgoK/wUE + BP8BBxD/AzR0/wE8h/8FPoj/ATuG/wE7hv8BO4b/ADuF/xQ6lv9yKO7/fxz//30b//9/Hv7/hSf9/4Yp + /f+FJfz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Eh///D3KY/wgoM/8Kv+j/AdL//wHR + //8B0f//AdH//wPP8P8KxJ//DsWT/xLHlv8Ox5X/CbiJ/wt9XP8HTTj/Fkgv/3FjD//Bmwb/27AB/9qv + AP/arwH/27EE/9qwAP/Yog//zF1U/8xVZv/NVmb/y1Fh/8tRYf/NV2b/zllo/8tRYf8CAgL/BQUF/wAA + AP8AAAD/AAAA/wUFBP8BAAD/AQcQ/wM0dP8BO4f/ATuG/wE7hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b + //99G///fRv//30b//99G///fhv//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4b//w+h + 0P8GHif/D5u9/wLU//8B0f//AdH//wHR//8Dz/D/AsOc/wHBjf8Bwo//B7WG/wlMOf8DCx//AxNP/wMU + VP8EDCv/OS0J/7eTCP/csAD/2q8A/9qvAP/asAD/2KIP/8xdVP/LUmP/zFVk/8tRYf/LUWH/y1Fh/8xW + Zf/LUmL/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AAAA/wEHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wE7 + hv8AO4X/ETaV/2wg7v9+G///fRv//30b//99G///fRv//38c//9sJ/3/Em39/wF7/v8De/7/AXr+/wJ6 + /v8Bev7/AXn+/wKE//8LvfP/CjlH/wxrg/8F0///AdH//wPR//8B0f//As/w/wLDnf8CwY7/AsOQ/wpy + VP8DDCX/BC6n/wM/5f8DPuL/BTCt/wEOOf9UQwf/06oE/9uvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tS + Yv/LUmL/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8LCwv/EhIS/xAPDv8KEBn/Bjd3/wI8 + h/8BO4b/ATuG/wdAif8EPoj/ADuF/xE2lf9sIO7/fhv//4Ij/f+BIf7/fRv//34c//+DIv3/bCj8/xJt + /f8IgP7/FYb9/w+C/f8LgP3/AXr+/wF5/v8ChP7/Bsj//wxthP8KPUz/Fc31/w/U/v8U1f7/BtL//wLP + 8P8FxJ7/CMSR/we9jP8KPi7/BB1w/wJE+P8ARP7/AET9/wJB7/8DI4b/HxoO/7+aCP/csAD/2q8A/9qw + AP/ZpBP/z2Na/9Bba//QXWv/zVdm/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/CAgI/w4O + Dv8JCAf/DxUe/w4+ev8EPoj/ATuG/wE7hv8JQor/CUOL/wE8hf8RN5X/cyrs/4Qk/f+IK/z/hin8/4Ml + /f9+Hf//fhr//2sn/f8Tbf3/DYP9/xWG/f8Pgv3/DoH9/wZ8/f8Bef7/A4T+/wPI//8NpMX/CCg0/xa2 + 2v8R1///FNb//w3W//8E0vH/A8Sd/wW+jP8PsIT/Cy4n/wUnj/8BRf//AET8/wBE/P8BRPr/Ayqe/xkW + Ev+6lgj/3LEA/9qvAP/bsQT/2qca/9FmXf/MVmb/zltp/8xWZf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wUFBP8PDw//EhIR/xogKP8SQX7/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/EjiU/3Yv + 6/+HKP3/giL9/4Eh/f+BIv3/fhz//34a//9rJ/3/E239/wqA/f8Qg/3/C4D9/wZ8/f8Cev7/AXn+/wOE + /v8Dxv//Ccfw/wo5R/8Xh6L/FcPp/xiv0v8Zm7r/EYif/wt6Yv8Pf17/Eo1q/wlBMP8FGVz/BETz/wBF + //8JS///B0bw/wIcb/8xJwj/yaIF/9uwAP/arwD/2rAB/96rIP/UbWT/z1tr/89aaf/LVGP/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/EREQ/wsKCf8HDRb/CTp4/wE7h/8BO4b/ATuG/wE7 + hv8BO4b/ADuF/xI5lf91Luv/hib+/4Um/f+CIv3/fx/9/30c//9+Gv//ayf9/xJt/f8Ae/7/Anr+/wN7 + /v8Ce/7/AXr+/wF5/v8DhP7/A8b//wTT//8LbIX/CyUx/w1DVf8NUmf/DHCM/xKRqP8JpYT/BraG/wXB + j/8NmHH/Bhwh/wche/8FOtD/DkLS/wgng/8LDRj/hWsI/9qwAv/arwD/2q8A/9qwAP/aphf/zWBY/85Z + av/PWmn/ylFh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AQcP/wM0 + c/8BO4f/ATuG/wE7hv8BO4b/BT6I/wM+hv8RN5X/cCXt/4Eg//9/Hv7/fhz+/30b//99G///fhr//20o + /f8WcP3/AHv+/wF6/v8Bev7/AXr+/wV8/f8Iff3/DIn9/xHJ/v8O1f//Dr/n/w6dv/8Jtd3/Ccr0/wXT + //8H0/H/AcSe/wDBjf8AwY7/A8GP/wuNaf8IMir/BBUl/wUSJP8lIAz/gWgL/9OrB//brwD/2q8A/9qv + AP/asAD/2KIP/8xdVP/LUWL/y1Ji/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wIHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wdAif8EPof/ETaV/2wg7v9+G///fRv//30b + //99G///gB/9/4Qj/f9tKf3/G3L9/wF7/v8Bev7/AXr+/wF6/v8Kf/3/BXz+/waG/v8Ix/7/BtP//wTS + /v8C1P//AdL//wDR//8D0f//C9Hv/wTDnf8KxJL/BMKQ/wDBjv8Bw4//B7WG/wmZcv8ikl7/q50T/9yx + B//csQX/2q8A/9qvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DCRH/DT16/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xE2 + lf9sIO7/fhv//30c//+AIP7/hSf9/4Yp/P+JK/v/cC37/xJt/f8Ae/7/AXr+/wF6/v8De/7/D4L9/wyA + /f8Fhf7/Bcb//wnT/v8E0f7/AdH//wHR//8B0f//AdH//wPP8P8LxqH/E8aW/w/Glf8MxZP/BMKQ/wDC + j/8Aw5H/H8J9/76yE//crwD/2q8A/9qvAP/arwD/2q8A/9uxBP/aphj/zF1V/8tQYv/LUWH/y1Fh/8tR + Yf/KUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgcQ/wo6d/8KQ4z/ATuG/wE7 + hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b//9+Hf7/gSL9/4Mk/f+CI/z/iCn7/3Qz+v8Sbf3/AHv+/wF6 + /v8Hff3/CH7+/xuK/v8Vhf3/Dor9/w3H/v8N1P7/CtL+/wTR/v8E0v7/AdH//wHR//8Dz/D/Esik/w/F + lP8Kw5L/C8ST/wnEkv8Cwo//AMGP/x+/e/+9sRP/3K8A/9qvAP/arwD/2q8A/9qvAf/dtQr/2aQU/8xd + VP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AAAA/wIH + D/8DNHP/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETeV/2wg7v9+G///fRv//34e/v+DJfz/iCz7/4Ul + /P9xL/z/Em39/wB7/v8De/7/CH79/wp//v8RhP3/A3v+/xKM/f8Pyf3/AtL//wXR/v8F0v7/DdP+/wPR + //8B0f//A9Dw/w3Hov8OxZP/E8eX/wvDkv8DwY//AMGO/wDBj/8fv3v/vbET/9yvAP/arwD/2q8A/9qv + AP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Ji/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/woK + Cv8EBAT/AAAA/wAAAP8CBw//AzRz/wE7h/8BO4b/ATuG/wE7hv8BO4b/BD6H/xs/m/9tIe7/fhv//30b + //9+HP//fh3+/38e/v9+G///ayb9/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Ghf3/Bcb+/wHS + //8B0f//AdH//wPR//8C0f//AdH//wPP8P8Bw5z/AcGN/wTCkP8Dwo//AsGO/wDBjv8AwY//IMB9/8C1 + Hf/csAH/2q8A/9qvAP/arwD/2q8A/9qwAP/Yog//zF1U/8tQYv/KUWH/zVZl/85XZv/LUWH/y1Fh/8tR + Yf8AAAD/AAAA/wAAAP8CAgL/AQEB/wAAAP8AAAD/AgcQ/wc3df8KQ4z/D0eO/xBIj/8NRYz/BD2I/wI9 + hv8UOZf/bCDu/34b//99G///fRv//30b//99G///fhr//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6 + /v8Bef7/A4T+/wPG//8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/AcOc/wDBjf8AwY7/AMGO/wDB + jv8AwY7/AMGP/x+/e/+9sxj/3K8B/9qvAf/cswr/3rQP/961Dv/dtAn/2aQU/8xdVf/LUGL/y1Fh/8tT + Yv/LUmL/y1Fh/8tRYf/LUWH/AgIC/wMDA/8BAQH/AAAA/wAAAP8AAAD/AAAA/wIHEf8FNnX/Bj+K/wU+ + iP8JQor/C0OK/wpCiv8AO4X/ETaV/2wg7v9+G///fRv//30b//9+HP7/fhz+/34a//9rJ/3/Em39/wB7 + /v8Bev7/AXr+/wF6/v8Bev7/AXn+/wOE/v8Dxv//AdL//wHR//8B0f//AdH//wHR//8B0f//A8/w/wHD + nP8AwY3/AcGO/wLBj/8AwY7/AMGO/wDBj/8fv3v/vbET/9yvAP/bsAT/3LMN/9uyCv/asAX/27EF/9ij + E//MXlX/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LU2P/y1Nj/wICAv8LCwv/ERER/wICAv8AAAD/AAAA/wAA + AP8DCBH/DDt4/w5Hjv8JQor/FEyR/xhOk/8PRo3/ADuF/xE2lf9sIO7/fhv//30b//99G///hSf8/4cq + /P+FJvz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8DhP7/A8b//wHS//8B0f//AdH//wHR + //8B0f//AdH//wLP8P8Ew53/DsaU/w3FlP8UyJj/AsGO/wDBjv8AwY//H797/72xE//crwD/27EG/9+3 + GP/guBb/3LMK/920C//aphn/zV9W/8tQYv/LUWH/y1Fh/8tRYf/OWWj/z1xq/8tVZP8AAAD/AwMD/xMT + E/8CAgL/AAAA/wAAAP8AAAD/AwgQ/wk5dv8EPon/FEyS/wpDiv8LRIz/CkOL/wA7hf8TOpb/cSjt/34b + //99G///fh3+/4gs+/+KL/v/hyj8/3Qz+/8Ubv3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4T+/wPG + //8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/C8Wg/xHHlf8WyJj/FseY/wXDkP8AwY7/AMGP/yPB + fv+/sxn/3K8A/9uwBP/dtRD/27EH/9+3Ff/bsgf/2aQT/81fVv/LUGL/y1Fh/8tRYf/LUWH/z1tq/81X + Zv/LUWH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/Views/EditShows.Designer.cs b/Views/EditShows.Designer.cs new file mode 100644 index 000000000..42b0183a8 --- /dev/null +++ b/Views/EditShows.Designer.cs @@ -0,0 +1,192 @@ +namespace FallGuysStats { + partial class EditShows { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditShows)); + this.picEditShowsIcon = new System.Windows.Forms.PictureBox(); + this.lblEditShowsQuestion = new MetroFramework.Controls.MetroLabel(); + this.lblEditShowslabel = new MetroFramework.Controls.MetroLabel(); + this.cboEditShows = new MetroFramework.Controls.MetroComboBox(); + this.lblEditShowsBackColor = new System.Windows.Forms.Label(); + this.mlOnlineServiceInfo = new MetroFramework.Controls.MetroLink(); + this.chkUseLinkedProfiles = new MetroFramework.Controls.MetroCheckBox(); + this.btnEditShowsSave = new MetroFramework.Controls.MetroButton(); + this.btnEditShowsCancel = new MetroFramework.Controls.MetroButton(); + ((System.ComponentModel.ISupportInitialize)(this.picEditShowsIcon)).BeginInit(); + this.SuspendLayout(); + // + // picEditShowsIcon + // + this.picEditShowsIcon.Image = global::FallGuysStats.Properties.Resources.fallguys_icon; + this.picEditShowsIcon.Location = new System.Drawing.Point(38, 78); + this.picEditShowsIcon.Name = "picEditShowsIcon"; + this.picEditShowsIcon.Size = new System.Drawing.Size(50, 43); + this.picEditShowsIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picEditShowsIcon.TabIndex = 0; + this.picEditShowsIcon.TabStop = false; + // + // lblEditShowsQuestion + // + this.lblEditShowsQuestion.AutoSize = true; + this.lblEditShowsQuestion.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblEditShowsQuestion.Location = new System.Drawing.Point(100, 80); + this.lblEditShowsQuestion.Name = "lblEditShowsQuestion"; + this.lblEditShowsQuestion.Size = new System.Drawing.Size(74, 19); + this.lblEditShowsQuestion.TabIndex = 1; + this.lblEditShowsQuestion.Text = "Description"; + // + // lblEditShowslabel + // + this.lblEditShowslabel.AutoSize = true; + this.lblEditShowslabel.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblEditShowslabel.Location = new System.Drawing.Point(86, 137); + this.lblEditShowslabel.Name = "lblEditShowslabel"; + this.lblEditShowslabel.Size = new System.Drawing.Size(69, 19); + this.lblEditShowslabel.TabIndex = 2; + this.lblEditShowslabel.Text = "Profile List"; + // + // cboEditShows + // + this.cboEditShows.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboEditShows.FormattingEnabled = true; + this.cboEditShows.ItemHeight = 23; + this.cboEditShows.Location = new System.Drawing.Point(185, 132); + this.cboEditShows.Name = "cboEditShows"; + this.cboEditShows.Size = new System.Drawing.Size(198, 29); + this.cboEditShows.TabIndex = 0; + this.cboEditShows.UseSelectable = true; + this.cboEditShows.SelectedIndexChanged += new System.EventHandler(this.cboEditShows_Changed); + // + // mlOnlineServiceInfo + // + this.mlOnlineServiceInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)); + this.mlOnlineServiceInfo.AutoSize = true; + this.mlOnlineServiceInfo.Enabled = false; + this.mlOnlineServiceInfo.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlOnlineServiceInfo.FontWeight = MetroFramework.MetroLinkWeight.Bold; + this.mlOnlineServiceInfo.Image = global::FallGuysStats.Properties.Resources.epic_main_icon; + this.mlOnlineServiceInfo.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.mlOnlineServiceInfo.ImageSize = 16; + this.mlOnlineServiceInfo.Location = new System.Drawing.Point(340, 174); + this.mlOnlineServiceInfo.Name = "mlOnlineServiceInfo"; + this.mlOnlineServiceInfo.Size = new System.Drawing.Size(100, 21); + this.mlOnlineServiceInfo.TabIndex = 7; + this.mlOnlineServiceInfo.Text = ""; + this.mlOnlineServiceInfo.TextAlign = System.Drawing.ContentAlignment.BottomRight; + this.mlOnlineServiceInfo.UseSelectable = true; + this.mlOnlineServiceInfo.UseStyleColors = true; + this.mlOnlineServiceInfo.Visible = false; + // + // lblEditShowsBackColor + // + this.lblEditShowsBackColor.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(0)))), ((int)(((byte)(182)))), ((int)(((byte)(254))))); + this.lblEditShowsBackColor.Location = new System.Drawing.Point(0, 200); + this.lblEditShowsBackColor.Name = "lblEditShowsBackColor"; + this.lblEditShowsBackColor.Size = new System.Drawing.Size(445, 64); + this.lblEditShowsBackColor.TabIndex = 3; + // + // chkUseLinkedProfiles + // + this.chkUseLinkedProfiles.AutoSize = true; + this.chkUseLinkedProfiles.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(0)))), ((int)(((byte)(182)))), ((int)(((byte)(254))))); + this.chkUseLinkedProfiles.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkUseLinkedProfiles.ForeColor = System.Drawing.Color.Teal; + this.chkUseLinkedProfiles.Location = new System.Drawing.Point(18, 224); + this.chkUseLinkedProfiles.Name = "chkUseLinkedProfiles"; + this.chkUseLinkedProfiles.Size = new System.Drawing.Size(119, 15); + this.chkUseLinkedProfiles.TabIndex = 1; + this.chkUseLinkedProfiles.Text = "Use linked profiles"; + this.chkUseLinkedProfiles.UseCustomBackColor = true; + this.chkUseLinkedProfiles.UseCustomForeColor = true; + this.chkUseLinkedProfiles.UseSelectable = true; + this.chkUseLinkedProfiles.CheckedChanged += new System.EventHandler(this.chkUseLinkedProfiles_CheckedChanged); + // + // btnEditShowsSave + // + this.btnEditShowsSave.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnEditShowsSave.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnEditShowsSave.Location = new System.Drawing.Point(238, 219); + this.btnEditShowsSave.Name = "btnEditShowsSave"; + this.btnEditShowsSave.Size = new System.Drawing.Size(87, 26); + this.btnEditShowsSave.TabIndex = 1; + this.btnEditShowsSave.Text = "Save"; + this.btnEditShowsSave.UseSelectable = true; + this.btnEditShowsSave.Click += new System.EventHandler(this.btnEditShowsSave_Click); + // + // btnEditShowsCancel + // + this.btnEditShowsCancel.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnEditShowsCancel.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnEditShowsCancel.Location = new System.Drawing.Point(337, 219); + this.btnEditShowsCancel.Name = "btnEditShowsCancel"; + this.btnEditShowsCancel.Size = new System.Drawing.Size(87, 26); + this.btnEditShowsCancel.TabIndex = 2; + this.btnEditShowsCancel.Text = "Cancel"; + this.btnEditShowsCancel.UseSelectable = true; + this.btnEditShowsCancel.Click += new System.EventHandler(this.btnEditShowsCancel_Click); + // + // EditShows + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(445, 263); + this.Controls.Add(this.picEditShowsIcon); + this.Controls.Add(this.lblEditShowsQuestion); + this.Controls.Add(this.lblEditShowslabel); + this.Controls.Add(this.cboEditShows); + this.Controls.Add(this.btnEditShowsSave); + this.Controls.Add(this.btnEditShowsCancel); + this.Controls.Add(this.chkUseLinkedProfiles); + this.Controls.Add(this.mlOnlineServiceInfo); + this.Controls.Add(this.lblEditShowsBackColor); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "EditShows"; + this.Padding = new System.Windows.Forms.Padding(23, 60, 23, 20); + this.Resizable = false; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.ShowInTaskbar = true; + this.Style = MetroFramework.MetroColorStyle.Teal; + this.Text = "Edit Shows"; + this.TopMost = true; + this.Load += new System.EventHandler(this.EditShows_Load); + this.Shown += new System.EventHandler(this.EditShows_Shown); + ((System.ComponentModel.ISupportInitialize)(this.picEditShowsIcon)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + private System.Windows.Forms.PictureBox picEditShowsIcon; + private MetroFramework.Controls.MetroLabel lblEditShowsQuestion; + private MetroFramework.Controls.MetroLabel lblEditShowslabel; + private MetroFramework.Controls.MetroComboBox cboEditShows; + private System.Windows.Forms.Label lblEditShowsBackColor; + private MetroFramework.Controls.MetroLink mlOnlineServiceInfo; + private MetroFramework.Controls.MetroCheckBox chkUseLinkedProfiles; + private MetroFramework.Controls.MetroButton btnEditShowsSave; + private MetroFramework.Controls.MetroButton btnEditShowsCancel; + } +} \ No newline at end of file diff --git a/Views/EditShows.cs b/Views/EditShows.cs new file mode 100644 index 000000000..fa5e42acb --- /dev/null +++ b/Views/EditShows.cs @@ -0,0 +1,249 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using MetroFramework; +using MetroFramework.Controls; +namespace FallGuysStats { + public partial class EditShows : MetroFramework.Forms.MetroForm { + public Stats StatsForm { get; set; } + public List Profiles { get; set; } + public int SelectedProfileId = 0; + public string FunctionFlag = string.Empty; + public int SelectedCount = 0; + public bool UseLinkedProfiles; + public EditShows() { + this.InitializeComponent(); + this.Opacity = 0; + } + + private void EditShows_Load(object sender, EventArgs e) { + this.SetTheme(Stats.CurrentTheme); + this.ChangeLanguage(); + this.Profiles = this.Profiles.OrderBy(p => p.ProfileOrder).ToList(); + this.cboEditShows.Items.Clear(); + + if (this.Profiles.Count == 1) { + this.cboEditShows.Items.Insert(0, this.Profiles[0].ProfileName); + this.cboEditShows.SelectedIndex = 0; + this.chkUseLinkedProfiles.Visible = false; + } else { + for (int i = this.Profiles.Count - 1; i >= 0; i--) { + if (this.FunctionFlag == "move" && this.Profiles[i].ProfileId == StatsForm.GetCurrentProfileId()) continue; + + this.cboEditShows.Items.Insert(0, this.Profiles[i].ProfileName); + } + this.cboEditShows.SelectedIndex = 0; + + switch (this.FunctionFlag) { + case "add" when this.StatsForm.CurrentSettings.AutoChangeProfile: + this.chkUseLinkedProfiles.Visible = false; + this.chkUseLinkedProfiles.Checked = true; + break; + case "move": + this.chkUseLinkedProfiles.Visible = false; + break; + } + } + } + + private void EditShows_Shown(object sender, EventArgs e) { + this.Opacity = 1; + if (this.FunctionFlag == "add") { + if (Stats.OnlineServiceType != OnlineServiceTypes.None && !string.IsNullOrEmpty(Stats.OnlineServiceId) && !string.IsNullOrEmpty(Stats.OnlineServiceNickname)) { + this.mlOnlineServiceInfo.Visible = true; + this.mlOnlineServiceInfo.Image = Stats.OnlineServiceType == OnlineServiceTypes.EpicGames ? Properties.Resources.epic_main_icon : Properties.Resources.steam_main_icon; + this.mlOnlineServiceInfo.Text = Stats.OnlineServiceNickname; + this.mlOnlineServiceInfo.Location = new Point(this.Width - this.mlOnlineServiceInfo.Width - 15, this.mlOnlineServiceInfo.Location.Y); + } + } + } + + private void SetTheme(MetroThemeStyle theme) { + this.SuspendLayout(); + foreach (Control c1 in Controls) { + if (c1 is MetroLabel mlb1) { + mlb1.Theme = theme; + } else if (c1 is MetroTextBox mtb1) { + mtb1.Theme = theme; + } else if (c1 is MetroButton mb1) { + mb1.Theme = theme; + } else if (c1 is MetroCheckBox mcb1) { + mcb1.Theme = theme; + } else if (c1 is MetroRadioButton mrb1) { + mrb1.Theme = theme; + } else if (c1 is MetroComboBox mcbo1) { + mcbo1.Theme = theme; + } else if (c1 is MetroLink ml1) { + ml1.Theme = theme; + } else if (c1 is MetroTabControl mtc1) { + mtc1.Theme = theme; + foreach (Control c2 in mtc1.Controls) { + if (c2 is MetroTabPage mtp2) { + mtp2.Theme = theme; + foreach (Control c3 in mtp2.Controls) { + if (c3 is MetroLabel mlb3) { + mlb3.Theme = theme; + } else if (c3 is MetroTextBox mtb3) { + mtb3.Theme = theme; + } else if (c3 is MetroButton mb3) { + mb3.Theme = theme; + } else if (c3 is MetroCheckBox mcb3) { + mcb3.Theme = theme; + } else if (c3 is MetroRadioButton mrb3) { + mrb3.Theme = theme; + } else if (c3 is MetroComboBox mcbo3) { + mcbo3.Theme = theme; + } + } + } + } + } else if (c1 is GroupBox gb1) { + gb1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + foreach (Control c2 in gb1.Controls) { + if (c2 is MetroLabel mlb2) { + mlb2.Theme = theme; + } else if (c2 is MetroTextBox mtb2) { + mtb2.Theme = theme; + } else if (c2 is MetroButton mb2) { + mb2.Theme = theme; + } else if (c2 is MetroCheckBox mcb2) { + mcb2.Theme = theme; + } else if (c2 is MetroRadioButton mrb2) { + mrb2.Theme = theme; + } else if (c2 is MetroComboBox mcbo2) { + mcbo2.Theme = theme; + } else if (c2 is GroupBox gb2) { + gb2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + foreach (Control c3 in gb2.Controls) { + if (c3 is MetroRadioButton mrb3) { + mrb3.Theme = theme; + } + } + } + } + } + } + this.Theme = theme; + this.ResumeLayout(); + } + + private void cboEditShows_Changed(object sender, EventArgs e) { + this.SelectedProfileId = this.Profiles.Find(p => p.ProfileName == (string)this.cboEditShows.SelectedItem).ProfileId; + } + + private void chkUseLinkedProfiles_CheckedChanged(object sender, EventArgs e) { + this.UseLinkedProfiles = ((CheckBox)sender).Checked; + this.lblEditShowsQuestion.Text = $"{Multilingual.GetWord("profile_add_select_question_prefix")}{Environment.NewLine}{(this.UseLinkedProfiles ? Multilingual.GetWord("profile_add_select_question_suffix_linked_profiles") : Multilingual.GetWord("profile_add_select_question_suffix"))}"; + if (this.UseLinkedProfiles) { + this.lblEditShowslabel.Visible = false; + this.cboEditShows.Visible = false; + this.cboEditShows.SelectedIndex = 0; + } else { + this.lblEditShowslabel.Visible = true; + this.cboEditShows.SelectedIndex = 0; + this.cboEditShows.Visible = true; + } + } + + private void btnEditShowsSave_Click(object sender, EventArgs e) { + switch (this.FunctionFlag) { + case "add": + if (this.UseLinkedProfiles) { + if (MetroMessageBox.Show(this, + $"{Multilingual.GetWord("message_save_data_linked_profiles")}{Environment.NewLine}{Multilingual.GetWord("message_save_data_linked_profiles_info_prefix")} ({this.cboEditShows.SelectedItem}) {Multilingual.GetWord("message_save_data_linked_profiles_info_suffix")}", + $"{Multilingual.GetWord("message_save_data_caption")}", + MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + this.DialogResult = DialogResult.OK; + this.Close(); + } + } else { + if (MetroMessageBox.Show(this, + $"{Multilingual.GetWord("message_save_profile_prefix")} ({this.cboEditShows.SelectedItem}) {Multilingual.GetWord("message_save_profile_suffix")}", + $"{Multilingual.GetWord("message_save_profile_caption")}", + MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + this.DialogResult = DialogResult.OK; + this.Close(); + } + } + break; + case "move": + if (MetroMessageBox.Show(this, + $"{Multilingual.GetWord("profile_move_select_question_prefix")} ({this.SelectedCount:N0}) {Multilingual.GetWord("profile_move_select_question_infix")} ({this.cboEditShows.SelectedItem}) {Multilingual.GetWord("profile_move_select_question_suffix")}", + $"{Multilingual.GetWord("profile_move_select_title")}", + MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + this.DialogResult = DialogResult.OK; + this.Close(); + } + break; + } + } + + private void btnEditShowsCancel_Click(object sender, EventArgs e) { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { + if(keyData == Keys.Escape) { + this.Close(); + return true; + } + return base.ProcessCmdKey(ref msg, keyData); + } + + private void ChangeLanguage() { + this.Font = Overlay.GetMainFont(9); + switch (this.FunctionFlag) { + case "add": + this.Text = Multilingual.GetWord("profile_add_select_title"); + this.lblEditShowsQuestion.Text = $"{Multilingual.GetWord("profile_add_select_question_prefix")}{Environment.NewLine}{Multilingual.GetWord("profile_add_select_question_suffix")}"; + this.chkUseLinkedProfiles.Text = Multilingual.GetWord("profile_add_select_use_linked_profiles"); + break; + case "move": + this.Text = Multilingual.GetWord("profile_move_select_title"); + this.lblEditShowsQuestion.Text = $"{Multilingual.GetWord("profile_move_select_description_prefix")}{Environment.NewLine}{Multilingual.GetWord("profile_move_select_description_suffix")} : {this.SelectedCount:N0}{Multilingual.GetWord("numeric_suffix")}"; + break; + } + this.lblEditShowslabel.Text = Multilingual.GetWord("profile_list"); + if (Stats.CurrentLanguage == Language.English) { + this.Width = 445; + this.cboEditShows.Left = 185; + //this.cboEditShows.Size = new Size(198, 29); + this.lblEditShowsBackColor.Width = 445; + } else if (Stats.CurrentLanguage == Language.French) { + this.Width = 525; + this.cboEditShows.Left = 185; + //this.cboEditShows.Size = new Size(198, 29); + this.lblEditShowsBackColor.Width = 525; + } else if (Stats.CurrentLanguage == Language.Spanish) { + this.Width = 525; + this.cboEditShows.Left = 185; + //this.cboEditShows.Size = new Size(198, 29); + this.lblEditShowsBackColor.Width = 525; + } else if (Stats.CurrentLanguage == Language.Korean) { + this.Width = 445; + this.cboEditShows.Left = 185; + //this.cboEditShows.Size = new Size(198, 29); + this.lblEditShowsBackColor.Width = 445; + } else if (Stats.CurrentLanguage == Language.Japanese) { + this.Width = 540; + this.cboEditShows.Left = 230; + //this.cboEditShows.Size = new Size(198, 29); + this.lblEditShowsBackColor.Width = 540; + } else if (Stats.CurrentLanguage == Language.SimplifiedChinese || Stats.CurrentLanguage == Language.TraditionalChinese) { + this.Width = 445; + this.cboEditShows.Left = 185; + //this.cboEditShows.Size = new Size(198, 29); + this.lblEditShowsBackColor.Width = 445; + } + this.btnEditShowsCancel.Text = Multilingual.GetWord("profile_undo_change_button"); + this.btnEditShowsCancel.Width = TextRenderer.MeasureText(this.btnEditShowsCancel.Text, this.btnEditShowsCancel.Font).Width + 45; + this.btnEditShowsCancel.Left = this.Width - this.btnEditShowsCancel.Width - 20; + this.btnEditShowsSave.Text = Multilingual.GetWord("profile_apply_change_button"); + this.btnEditShowsSave.Width = TextRenderer.MeasureText(this.btnEditShowsSave.Text, this.btnEditShowsSave.Font).Width + 45; + this.btnEditShowsSave.Left = this.btnEditShowsCancel.Left - this.btnEditShowsSave.Width - 15; + } + } +} \ No newline at end of file diff --git a/Views/EditShows.resx b/Views/EditShows.resx new file mode 100644 index 000000000..f53159b63 --- /dev/null +++ b/Views/EditShows.resx @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA + AAADNsT/AjbF/wI2xv8DNsX/AjbG/wI2xv8CNsb/AjbG/wI2x/8FMbH/BiaP/wM2x/8CNsX/AjjN/wE8 + 3/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ATze/wI4zP8CNsb/AzbF/wgpj/8GM7P/AzbG/wM2xf8DNsX/AzbF/wM2 + xf8DNsX/AjbF/wI2xv8DNsX/AjbF/wI2xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2xv8CN8j/BS+m/wYl + g/8DN8f/AjbG/wE50/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8COdH/AjbG/wM3x/8IJIH/BTCr/wI2 + yP8CNsb/AjbG/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI1xP8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8CNsb/AjfI/wcsnP8GJIL/AzfI/wI2x/8BOtj/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ATrW/wI2 + x/8DN8f/ByJ8/wUtof8CN8j/AjbG/wI2xv8CNsb/AjbH/wI2xv8CNsb/AjbG/wM2xf8CNMP/AjbG/wI2 + xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI3yP8IK5r/BiSD/wM3x/8CN8n/ATze/wA94v8APOH/ADzh/wA9 + 4v8APeL/ADzh/wA84f8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA94f8APeH/AD3h/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wE73P8CN8n/AzfH/wYjf/8FLZ//AjfI/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8DNcP/AjXF/wI2x/8CNsj/AjbH/wI2x/8CNsb/AjbG/wI2xv8CN8j/Byuc/wYlhv8DN8f/AjjN/wE9 + 4f8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA9 + 4v8APeP/AD3i/wA94/8APeP/AD3i/wA94/8BPeD/AjfL/wM3x/8GJIH/BS2g/wI3yP8CNsb/AjbG/wI2 + xv8CNsf/AjbH/wI2x/8CNsf/AjXF/wI72P8CPNv/Ajvb/wI72f8COtj/ATnU/wI4z/8CN8n/AjfI/wYt + oP8GJ4r/AzfH/wI50f8APeL/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA84/8APOL/ADzj/wE94v8CP+P/Aj7i/wE94v8APOL/ADzi/wA94/8APeP/AD3j/wA9 + 5P8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AT3i/wI50P8DN8b/BiaG/wUu + pf8CN8j/AjfI/wI4zv8COtP/ATrY/wE72f8CPNr/Ajvb/wI72P8BPeH/AD3k/wA95P8APeT/AD3k/wA9 + 5P8BPeL/ATzd/wI50/8FL6n/ByqQ/wM3x/8BOtb/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA9 + 5P8APeT/AD3k/wA95P8APeT/ADzj/wE+4/8NR+b/Jlrp/0Bw7/9WgPL/Yony/2GJ8v9Uf/L/PW3u/yFX + 6f8KReX/AT3j/wA84/8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeP/AD3k/wA9 + 5P8COtT/AzfG/wcni/8EMK7/AjnS/wE83P8BPeL/AD3k/wA95P8APeT/AD3k/wA95P8BPeH/AD3j/wA+ + 5f8APub/AD7m/wA+5f8APuX/AD7l/wA+5v8BPub/BDXB/wgsmP8DN8f/Ajva/wA+5v8APub/AD7l/wA+ + 5v8APub/AD7l/wA+5v8APub/AD7m/wA+5v8APeX/Aj7l/xlR6P9Sfe//lbD3/8XU+v/i6fz/7vP+//L2 + /v/y9v7/7fP+/9/o/P/B0fr/jan2/0h17v8TS+b/AD3l/wA95f8APuX/AD7l/wA+5f8APuX/AD7l/wA+ + 5f8APuX/AD3l/wA+5f8APub/AjvZ/wI3x/8GKZX/BDbE/wA+5f8APub/AD7m/wA+5f8APub/AD7l/wA+ + 5v8APub/AT3i/wE+4/8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7n/wM50v8ILqP/AjfJ/wE8 + 3v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APeb/CkXm/0t37v+rwff/6e/9//3+ + //////////////////////////////////////////////z9///l7P3/obn4/0Bu7f8GQeb/AD3m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wI83f8CN8j/Biyk/wM61P8APuf/AD7m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wE+4v8APuT/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8COtj/BTCw/wI3yv8BPeP/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APeb/FEzm/3qa + 7v/h6fv//v////////////////////////////////////////////////////////////////////7+ + ///b5fz/bpLx/w5I5v8APeb/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeH/AjfJ/wQu + sP8CO9r/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeP/AD3k/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/ATzf/wM0vP8COM3/AD7k/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APef/FU3k/46p7v/z9v3///////////////////////////////////////////////////////// + //////////////////////////////H1/v+GpPP/D0nm/wA95/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD3k/wI3zP8FMrr/Aj3g/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7l/wA/ + 6P8AP+r/AD/p/wA+6P8APuj/AD7o/wA+5/8APuf/AD7n/wI+4/8ENsf/AjnQ/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7o/wA+5/8APef/C0Xh/4ij6P/3+f3///////////////////////////////////////// + ////////////////////////////////////////////////////////9fj+/36d7/8IQ+X/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5f8COM7/BDbI/wI+4/8APuj/AD7n/wA+6P8APuj/AD7o/wA/ + 6f8BP+r/AT/q/wI/5P8KMKH/CDOw/wU3xP8FPNb/BEDj/wFA6/8AP+v/AD/q/wA/6f8BP+f/AjnQ/wI5 + 0/8BP+n/AD/p/wA+6P8APuj/AD7o/wA/6f8AP+n/AD3j/2GE3//x9Pv///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///s8fz/V3/o/wA+5/8APun/AD7p/wA+6P8AP+n/AD7o/wA/6f8BP+f/AjnR/wI50v8BPuf/AD7p/wA/ + 6v8BQOv/BEDl/wU81f8FNLv/BiyZ/wMie/8CG2X/AQIK/wMFEv8CCBz/BA8z/wYZV/8GJYP/BzS0/wU9 + 2v8CQOv/AD/q/wE61P8COtb/AD/q/wA/6v8AP+n/AD/q/wA/6f8AP+r/AD3p/ypZ2f/V3vP///////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////8vX9f8hVeL/AD7q/wA/6f8BP+r/AD/q/wE/6v8BP+r/AT/p/wI6 + 1f8COtb/AD/r/wNA6P8FOsz/BiyX/wMaXv8JEDT/FQ4f/y0WHf9HHyP/Wycq/wEBAP8JCQj/AgIC/wAA + AP8AAAD/AAAD/wEFFP8FEkD/ByiM/wU91/8CO9j/AjvZ/wE/6/8BP+v/AT/r/wE/6/8BP+v/AT/s/wQ+ + 3v+KoeH///////////////////////Hw8P+ko6T/i4qK/87Nzv////////////////////////////// + /////////////+rq6v+bmpr/j46P/9jY2P/////////////////9/v7/e5nn/wI/5v8AP+v/AT/r/wE/ + 6/8BP+v/AT/r/wE/6/8CO9j/AjzZ/wY6zf8FIHb/Bwws/x8PFv9OIiT/fzY8/6RETv+8T1z/x1dl/8pT + Yv8BAQH/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQIE/wMIF/8FFU//Bze+/wE83f8BP+v/AT/r/wE/ + 6/8BP+v/AT/r/wA+6v8oVtP/2eH0//////////////////////+Wlpb/LCsr/ygnJ/9NTE3/4uLi//// + //////////////////////////////z8/P+CgoL/Kigo/ygmJv9cW1z/7e3t/////////////////9Hc + 9f8fU9//AD7r/wE/6/8BP+v/AT/r/wE/6/8BP+v/Ajzc/wczsf8FETr/Kx0L/3U1M/+tSFT/xlFg/81S + Y//NUmL/zFJi/8xUY//LUmH/AAAA/wAAAP8AAAD/AAAA/wkJCP8PDw7/CwsK/wcNFf8KLl7/BA8l/wYg + b/8CPd//AUDt/wFA7P8BQOz/AUDs/wFA7f8APOP/Z4TX//r7/f/////////////////6+vr/bGxs/zMy + Mv83Njb/OTg4/8XFxf/////////////////////////////////x8fH/XFtb/zQzM/83Njb/QkFB/9XV + 1v/////////////////4+v3/W3/e/wA96P8BQOz/AUDs/wFA7P8BQOz/AUDt/wQ82f8EF1X/QzUD/7uM + GP/PYlr/z1lp/89bav/NVWX/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wEBAf8UFBT/FxcW/wwL + Cv8LERv/Czx6/wclTP8EET//BDzX/wFA7v8BQO3/AUDt/wFA7f8BQO7/CD/Y/56v4v////////////// + ////////+fn5/29tbv85Nzf/PDo6/z89Pf/Dw8P/////////////////////////////////7+/w/19e + X/87OTn/PDo6/0dGRv/U1NT//////////////////////5at5v8EP+H/AUDu/wFA7f8BQO3/AUDt/wFA + 7v8EOtH/CxMz/5R4Cv/eqRj/z2Rb/85Zaf/SYW//z1xq/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAA + AP8EBAT/FxYW/xUUFP8ICAf/ChAZ/wQ2dv8GLWD/Aw0x/wQ6zv8BQO//AUDt/wFA7f8BQO3/AD/t/xdI + 0v/Dzej///////////////////////j4+P9wb2//Pjw8/0E/P/9CQED/w8PD//////////////////// + //////////////Dw8P9iYWH/Pz09/0A/P/9KSEn/1NTU///////////////////////Aze3/EUbZ/wA/ + 7v8BQO3/AUDt/wFA7f8BQO//AzfK/xYYJf+xjwX/2qUQ/85jWv/NV2f/0WBu/9Ffbv/LUmL/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8MDAv/ExIR/wULE/8FNnb/BDJt/wMMKf8FOMb/AUHv/wFA + 7f8BQO3/AUDt/wA+6/8nUs7/1tzs///////////////////////4+fn/cXFx/0JBQf9IR0j/VVRU/8XE + xP/////////////////////////////////w8PD/ZGNj/0JCQv9JSUn/W1tb/9XV1f////////////// + ////////2eHz/x5P1v8AP+3/AUDt/wFA7f8BQO3/AUHv/wM0v/8iHxr/wZwD/9qkEf/NYFj/0F5u/81X + Zv/KUWH/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwMD/wUEA/8BBxD/BDV0/wM1 + dv8DDCX/BzS2/wFB8P8BQO3/AUDt/wFA7f8APur/MFjN/9rf7f///////////////////////v7+/5GR + kf9CQkL/Tk5O/4aFhv/d3d3/////////////////////////////////+fn6/4CAgP9CQkL/VFRU/42N + jf/o6Oj//////////////////////+Pp9v8mU9T/AD7s/wFA7v8BQO7/AUDt/wFB8P8GMKz/MCcS/8mi + A//ZoxD/zF1U/8xVZf/LUmL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/BAoS/wU2dv8DN3r/Aw0k/woxp/8BQvH/AUDu/wFB7v8BQO7/AD7q/y9YzP/Y3ev///7+//// + ///////////////////n5+f/kpKS/3x8fP++vr7//f39//////////////////////////////////// + ///f3t7/i4qL/4B/gP/Kysr////////////////////////////g5/b/JFLR/wA/7P8BQO7/AUDu/wFB + 7v8CQvH/BCmU/zwwDf/QqAX/2aMQ/81eVv/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkPF/8QQHz/Bjt+/wQPJ/8ILJb/AkPz/wFB8P8BQfD/AUHw/wA/ + 7P8lUMv/z9Xm//39/P////////////////////////////39/f/7+/v///////////////////////// + //////////////////////////////39/f/8/Pz/////////////////////////////////09vy/xxK + 0P8AQO7/AUHw/wFB8P8BQfD/AkLy/wMhff9MPAf/1q0I/9yoG//OYFn/y1Bi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CBxD/Bjd1/wY9g/8FEi3/BSSC/wJD + 8/8BQfD/AUHw/wFB8P8AQO7/F0XL/7nD4P/4+fj///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////7XD6P8PQc//AEHw/wFB8P8BQfD/AUHw/wNC7v8CG2f/YUwE/9qxBf/YoxL/zF1U/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8BAQH/AAAA/wAAAP8AAAD/AQcQ/wM0 + dP8CPIb/BBg2/wUea/8DQ/H/AULy/wFC8v8BQvL/AULy/wc80f+Spdj/8vLy//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v+HnNr/AzrX/wFC8v8BQfH/AULx/wFC8v8FQuf/BhZL/3ti + BP/dsgD/2KIO/8xdVP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/CwsL/wUF + Bf8AAAD/AAAA/wIHD/8DNHP/AT2J/wQgRv8GFlD/BkPq/wFD9f8BQ/P/AUP0/wFD9P8AO9//W3jL/+Tm + 6//6+vr///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////s7/j/TG3L/wA85f8BQ/T/AUPz/wFD + 9P8BQ/X/BD7b/wwTL/+Zewj/3bIA/9iiD//MXVT/y1Bi/8tRYf/MVWX/zlhn/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wUEBP8FBQX/AAAA/wAAAP8FChP/DDt4/wlDjf8ILFv/BA81/wU/3P8BQ/X/AUPz/wFD + 9P8BQ/T/AEDs/yFLxf/AyeL/8fHx//7///////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v3/usbl/xhG + yf8AQfD/AUP0/wFD9P8BQ/T/AUT2/wU2wP8YFxj/tpML/960B//apRb/zF5W/8tQYv/LUWH/zFZl/8xU + Y//LUWH/y1Fh/8tRYf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DBQd/w9Aff8JPoL/Bhw7/wIH + Hf8IOMD/AUT2/wFD9P8BQ/T/AUP0/wFD9P8DOtP/dIvQ/+Xn6v/29vf///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7/7e/0/2R/zv8BOtr/AUP0/wFD9P8BQ/T/AUP0/wJE9v8HK5T/DAoM/3hgCv/UrAr/3Kkd/85j + W//LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/CAgH/w4ODf8ICAf/AAAA/wAAAP8AAAD/AAAA/wkR + Gf8SQHr/CSNF/wMMLP8KIGb/CS+i/wJE9v8BQ/T/AUP0/wFD9P8BQ/X/AT/r/x9Jw/+0wOH/6uvr//n5 + +v////////////////////////////////////////////////////////////////////////////// + ////////////////////////9/f3/6q33v8WRMf/AEHv/wFD9P8BQ/T/AUP0/wFD9f8EQ+7/CCN//wUb + Xv8MDRr/gGgL/9mnH//OYVn/y1Bh/8tRYf/LUWH/y1Fh/81XZv/PWmn/zFVl/wAAAP8KCQn/EhIS/wAA + AP8AAAD/AAAA/wAAAP8HDRb/Gzdd/wUNJf8HLJf/BzrK/wkrmv8DQ+//AUP2/wFD9f8BQ/X/AUP2/wFD + 9v8AOdj/R2fF/9DW5//r6+v/+fn6//////////////////////////////////////////////////// + ////////////////////////////////////////9/f2/8vT5/86XcT/ADvh/wFD9v8BQ/X/AUP1/wFD + 9f8BQ/b/BT7e/woqmP8FOMj/Ah1x/yIdEP+5jSj/z2BY/8tQYv/LUWH/y1Fh/8tSYv/RXmz/zFZl/8tR + Yf8AAAD/Dg4O/wgICP8AAAD/AQEB/wcHBv8BAQD/AwgP/wcVKf8FF1P/Az7e/wFD9P8JM7f/BT/i/wFD + 9v8BQ/X/AUP1/wFD9v8BQ/b/AULy/wU3yv9ge8v/1tvn/+rq6v/19vb//v7+//////////////////// + ///////////////////////////////////////////////////9/f3/8/Pz/9LY5/9Tccj/AznT/wFD + 9P8BQ/X/AUP1/wFD9f8BQ/X/AUT3/wc6zf8HOMf/AUP3/wQ2w/8EDzT/eFUV/85fVv/LUmP/zFVl/8tR + Yf/KUWH/zllo/85YZ//LUWH/AgIC/wsLC/8BAQH/AAAA/wEBAf8GBgb/AAAA/wQGCv8GCxr/BSWD/wFD + 9f8AQ/n/BD7i/wQ94P8BQ/b/AUP2/wFD9v8BQ/b/AUP2/wFD9v8BQO7/BzfF/196y//P1eb/5+jo/+7v + 7//5+fr//v7+//////////////////////////////////////////////////39/v/29/f/7e3t/8nR + 5v9Tccj/BTjM/wFC8f8BQ/b/AUP1/wFD9v8BQ/b/AUP1/wFD9f8FOtX/AkHs/wBD+f8CQez/ARhd/1U3 + Ev/KW1f/y1Fi/8xWZf/LUWH/y1Fh/8tTYv/OWWj/y1Ji/wMDA/8DAwP/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBgr/BgoZ/wUojf8BRPn/AEP4/wBD9v8BQvH/AEP3/wBD9/8AQ/f/AEP3/wBD9v8AQ/f/AEP3/wFA + 6/8ENcX/Q2XF/6+94f/i5Oj/6Ono/+3u7v/19fX/+fn6//z8/P/9/f3//v7+//39/f/8/Pz/+Pj5//Pz + 8//t7u3/4OPp/6e23v86XcP/AzfM/wFC8f8AQ/f/AEP3/wBD9v8AQ/f/AEP2/wBD9/8AQ/X/AUHx/wBD + +P8AQ/j/AUP1/wEbaP9TNRH/yltX/8tQYv/LUWH/y1Fh/8tRYf/LUWH/y1Rj/8tTYv8AAAD/AAAA/wAA + AP8AAAD/BAQD/woKCv8LCgr/DBAY/wkUJ/8FHWb/A0T0/wBD+P8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEDw/wE1zf8bRL3/aoXQ/7jD4v/c4Oj/5ufo/+jp6f/q6ur/6+zs/+zt + 7f/r7Ov/6uvq/+fo6f/b3+j/sb/i/2F+zv8WQLz/ATfT/wFC8/8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEP5/wRC6/8EFEj/cVAW/9BlXP/OWGj/zVhn/8tTY//LUWH/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wUGBf8KCgr/CQgI/xIYIf8XMVP/BAwr/wc4w/8BRPv/AEP4/wBD + +P8AQ/j/AEP5/wBD+f8AQ/j/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/b/ATvf/wIzw/8aRL3/Tm7K/4Oa + 2P+ot+D/v8ji/8jQ5P/H0OT/vsfi/6W14P9+ltf/SWrI/xdBvf8CM8X/ATzi/wBD9/8AQ/n/AEP5/wBD + +f8AQ/n/AEP4/wBD+P8AQ/n/AEP4/wBD+P8AQ/j/AEP4/wFF+/8GMrD/GRcX/6+FJ//TaV//zVdn/81Y + Z//LVGP/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8DAwP/CgoK/w4NDP8YHSX/GEJ5/wQY + Nv8FEUL/BznG/wJE9v8ARPv/AUT7/wJF+f8BRPr/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/n/AEP6/wBE + +v8BQvL/ATvf/wA0y/8ENMD/Dju9/xpFwf8gSsL/IErC/xpEv/8OOrz/AzO//wA0yv8BO97/AULz/wBD + +v8AQ/n/AEP5/wBD+f8AQ/n/AEP5/wBD+f8ARPn/AUT5/wFE+f8ARPv/AUT7/wNE9P8GNLn/CBEz/25Z + Cf/bqib/02pi/85Zaf/NV2b/y1Nj/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/woK + Cv8LCwr/ChAY/xRDgP8DN3n/BBc1/wMMLP8GIHD/CC6c/wgumv8GI3v/CjvF/wJF/P8ARPv/AET7/wBE + +/8ARPv/AET7/wBE+/8ARPv/AET7/wBE+/8AQ/j/AEHy/wE+5/8BPOD/ADne/wA63v8BPOH/AT7n/wFB + 8P8BQ/j/AET7/wBE+/8ARPv/AET7/wBE+/8ARPv/AET7/wVH+v8VU/z/ElH7/ww0rf8DIHz/Bi2f/wYr + mf8DG2j/ERMf/2lTB//Opgb/36wi/85hWv/OWWr/zFZm/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8BAQH/AAAA/wIHEP8ENXT/ATyI/wM6f/8FKVj/BRYy/wQPJv8EECf/BA0d/wgV + P/8QQ9L/Akb+/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/f8ARP3/AET9/wBE + /f8ARP3/AET9/wBE/f8ARP3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8SUf3/HVr+/w44 + uP8MECb/OC0I/zYsDP85Lgz/WUYG/51+B//UqwT/27EA/9ijEf/MXVX/ylFi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CCBD/BTV0/wE7h/8BO4b/ATyI/wM7 + g/8EOXz/Azl8/w81gP8eEE7/DBdH/xZHzv8GSf3/AEP8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARP3/BEf7/wk0tP8CDy//JVkz/7emFv/OpQT/zqYF/9etBP/csQH/2q8A/9qwAP/YoxH/zF1V/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BAkR/xdE + f/8GQIr/ATuG/wE7hv8BO4b/ATuH/wA7hv8SN5b/YiHV/zANZf8MFDv/GkS1/xBP+v8CRv7/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARf7/A0Px/wYqmP8EESf/CGFI/yW4d/+9shP/3bAA/9uwAP/arwD/2q8A/9qv + AP/bsgf/3akg/8xdVf/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wEHD/8UQn3/FU2T/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETaV/20g7/93He3/PhGA/w0M + Mf8WMn//HFLg/w5P/v8DRv3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AkX8/whL/v8JSvr/BjrN/wUaYf8FHCD/C3hZ/wO9jv8fwHz/vbET/9yv + AP/arwD/2q8A/9qvAP/arwH/4boY/9qnHP/MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wMDA/8AAAD/AAAA/wAAAP8BBw//BDR0/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xQ6 + l/9tIu7/fxv//3wd+f9ZGLP/HwpI/w0WP/8aPJb/HlPh/xRT/P8IS///Akb9/wBD/P8AQ/z/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AEP8/wFF/P8GSf7/EVL//x9b+v8lVdf/Eyx//wURKv8JQTH/C5xz/wPC + j/8Awo//Ib98/72yFf/crwD/2q8A/9qvAP/arwD/2q8B/9uyBP/YohD/zF1U/8tQYv/LUWH/y1Fh/8tT + Yv/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8KCgr/BQUF/wAAAP8AAAD/AQcQ/wM0dP8AO4f/ATuG/wE7 + hv8BO4b/ATuG/whDiv8dQp3/bSHu/34b//99G///fhz//3Md5v9IE5L/Ggk//w0UPP8YMHn/IUm8/x9V + 5v8ZVfn/EFH//wpN//8JS///B0r//whL//8JTP//DU///xVV//8eWfb/JFfg/yNGsP8WKWr/Chgu/wg3 + K/8LgV//B7mJ/wHDkP8AwY7/AMGP/yHAff/BtiD/3bEF/9qvAP/arwD/2q8A/9qvAP/asAD/2KIP/8xd + VP/LUGL/ylFh/81WZf/NV2b/ylFh/8pRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wEBAf8AAAD/AAAA/wII + EP8IN3X/CUOL/w1FjP8ORo3/CUKK/wI8hv8DPof/EjeW/2wg7v9+G///fRv//30b//9+G///fh3+/3Ic + 5P9IGqD/DyJY/wYUM/8MFz3/FCZg/xk1hv8fQKL/I0e0/yBKvf8hSr7/I0a0/yA+nv8ZMX7/EyJX/wsZ + OP8IJTj/C1Re/wuNbv8Gt4f/AcOQ/wDCjv8AwY7/AMGO/wDBj/8fv3v/vbIV/9ywAf/arwH/3LIK/9yz + Df/dswz/27IH/9ijEv/MXVX/y1Bi/8pRYf/LUmL/y1Ji/8tRYf/LUWH/y1Fh/wEBAf8BAQH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8DCBH/Bzd1/wZAiv8IQYr/CkKL/wxFjP8FPoj/ADuF/xE2lf9sIO7/fhv//30b + //99G///fRv//30b//9/Gv//bSj+/xds9v8Hatf/C1On/wg5eP8JKFf/CR5F/wYZO/8FFTL/AwgY/wgh + M/8MNkn/Ck1e/wpuhf8Ol7b/Cbvj/wjO7f8CxZ7/AMGN/wDBjv8BwY7/AMGO/wDBjv8AwY//IL97/72x + E//crwD/27EG/9yzC//csgr/3LII/9uyBf/YoxL/zF1V/8pQYv/LUWH/y1Fh/8tRYf/LUWH/y1Ji/8tS + Yv8FBQT/Dg4O/woKCv8AAAD/AAAA/wAAAP8AAAD/AgkS/ws7ef8MRY3/CECJ/xVMkf8WTZH/CEGK/wA7 + hf8RNpX/bCDu/34b//99G///fRv+/4Yo/f+CI/3/hCT9/20p/P8Sbf3/AHz//wF8//8De/7/B3n3/wh1 + 7f8Gceb/C2nP/wgdMf8RfJb/C8v2/wjQ/P8D1P//AtT//wHT//8Cz/D/BcSe/wnEkv8LxJP/DMWU/wDB + jv8AwY7/AMGP/x+/e/+9sRP/3K8A/9yzC//ftxX/37cT/9uwBv/dtAv/2aUW/81eVv/LUGL/y1Fh/8tR + Yf/LUWH/zlln/85aaf/LVGP/AAAA/wgICP8RERH/AAAA/wAAAP8AAAD/AAAA/wMJEv8IOXf/CUKL/xRM + kf8JQor/EkqQ/wdAiv8AO4X/FDqX/3Al7/9+G///fRv//38e/v+LL/v/izD7/4kq/P9xMPz/E279/wB7 + /v8Bev7/AXr+/wF6/v8Bev//AXr//wiE+/8LQV7/ClNm/wbR/f8A0f//AdH//wHR//8B0f//A9Dw/wzG + of8TxpX/Gsma/xXHmP8Cwo//AcOQ/wPAj/8ov37/wLQW/92wAP/cswr/3rYQ/9yzC//fthP/27IG/9ml + Fv/NXVb/y1Bi/8tRYf/LUWH/y1Ji/9BdbP/LVWT/y1Fh/wAAAP8NDQ3/BgYG/wAAAP8AAAD/CgoK/wUE + BP8BBxD/AzR0/wE8h/8FPoj/ATuG/wE7hv8BO4b/ADuF/xQ6lv9yKO7/fxz//30b//9/Hv7/hSf9/4Yp + /f+FJfz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Eh///D3KY/wgoM/8Kv+j/AdL//wHR + //8B0f//AdH//wPP8P8KxJ//DsWT/xLHlv8Ox5X/CbiJ/wt9XP8HTTj/Fkgv/3FjD//Bmwb/27AB/9qv + AP/arwH/27EE/9qwAP/Yog//zF1U/8xVZv/NVmb/y1Fh/8tRYf/NV2b/zllo/8tRYf8CAgL/BQUF/wAA + AP8AAAD/AAAA/wUFBP8BAAD/AQcQ/wM0dP8BO4f/ATuG/wE7hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b + //99G///fRv//30b//99G///fhv//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4b//w+h + 0P8GHif/D5u9/wLU//8B0f//AdH//wHR//8Dz/D/AsOc/wHBjf8Bwo//B7WG/wlMOf8DCx//AxNP/wMU + VP8EDCv/OS0J/7eTCP/csAD/2q8A/9qvAP/asAD/2KIP/8xdVP/LUmP/zFVk/8tRYf/LUWH/y1Fh/8xW + Zf/LUmL/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AAAA/wEHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wE7 + hv8AO4X/ETaV/2wg7v9+G///fRv//30b//99G///fRv//38c//9sJ/3/Em39/wF7/v8De/7/AXr+/wJ6 + /v8Bev7/AXn+/wKE//8LvfP/CjlH/wxrg/8F0///AdH//wPR//8B0f//As/w/wLDnf8CwY7/AsOQ/wpy + VP8DDCX/BC6n/wM/5f8DPuL/BTCt/wEOOf9UQwf/06oE/9uvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tS + Yv/LUmL/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8LCwv/EhIS/xAPDv8KEBn/Bjd3/wI8 + h/8BO4b/ATuG/wdAif8EPoj/ADuF/xE2lf9sIO7/fhv//4Ij/f+BIf7/fRv//34c//+DIv3/bCj8/xJt + /f8IgP7/FYb9/w+C/f8LgP3/AXr+/wF5/v8ChP7/Bsj//wxthP8KPUz/Fc31/w/U/v8U1f7/BtL//wLP + 8P8FxJ7/CMSR/we9jP8KPi7/BB1w/wJE+P8ARP7/AET9/wJB7/8DI4b/HxoO/7+aCP/csAD/2q8A/9qw + AP/ZpBP/z2Na/9Bba//QXWv/zVdm/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/CAgI/w4O + Dv8JCAf/DxUe/w4+ev8EPoj/ATuG/wE7hv8JQor/CUOL/wE8hf8RN5X/cyrs/4Qk/f+IK/z/hin8/4Ml + /f9+Hf//fhr//2sn/f8Tbf3/DYP9/xWG/f8Pgv3/DoH9/wZ8/f8Bef7/A4T+/wPI//8NpMX/CCg0/xa2 + 2v8R1///FNb//w3W//8E0vH/A8Sd/wW+jP8PsIT/Cy4n/wUnj/8BRf//AET8/wBE/P8BRPr/Ayqe/xkW + Ev+6lgj/3LEA/9qvAP/bsQT/2qca/9FmXf/MVmb/zltp/8xWZf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wUFBP8PDw//EhIR/xogKP8SQX7/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/EjiU/3Yv + 6/+HKP3/giL9/4Eh/f+BIv3/fhz//34a//9rJ/3/E239/wqA/f8Qg/3/C4D9/wZ8/f8Cev7/AXn+/wOE + /v8Dxv//Ccfw/wo5R/8Xh6L/FcPp/xiv0v8Zm7r/EYif/wt6Yv8Pf17/Eo1q/wlBMP8FGVz/BETz/wBF + //8JS///B0bw/wIcb/8xJwj/yaIF/9uwAP/arwD/2rAB/96rIP/UbWT/z1tr/89aaf/LVGP/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/EREQ/wsKCf8HDRb/CTp4/wE7h/8BO4b/ATuG/wE7 + hv8BO4b/ADuF/xI5lf91Luv/hib+/4Um/f+CIv3/fx/9/30c//9+Gv//ayf9/xJt/f8Ae/7/Anr+/wN7 + /v8Ce/7/AXr+/wF5/v8DhP7/A8b//wTT//8LbIX/CyUx/w1DVf8NUmf/DHCM/xKRqP8JpYT/BraG/wXB + j/8NmHH/Bhwh/wche/8FOtD/DkLS/wgng/8LDRj/hWsI/9qwAv/arwD/2q8A/9qwAP/aphf/zWBY/85Z + av/PWmn/ylFh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AQcP/wM0 + c/8BO4f/ATuG/wE7hv8BO4b/BT6I/wM+hv8RN5X/cCXt/4Eg//9/Hv7/fhz+/30b//99G///fhr//20o + /f8WcP3/AHv+/wF6/v8Bev7/AXr+/wV8/f8Iff3/DIn9/xHJ/v8O1f//Dr/n/w6dv/8Jtd3/Ccr0/wXT + //8H0/H/AcSe/wDBjf8AwY7/A8GP/wuNaf8IMir/BBUl/wUSJP8lIAz/gWgL/9OrB//brwD/2q8A/9qv + AP/asAD/2KIP/8xdVP/LUWL/y1Ji/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wIHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wdAif8EPof/ETaV/2wg7v9+G///fRv//30b + //99G///gB/9/4Qj/f9tKf3/G3L9/wF7/v8Bev7/AXr+/wF6/v8Kf/3/BXz+/waG/v8Ix/7/BtP//wTS + /v8C1P//AdL//wDR//8D0f//C9Hv/wTDnf8KxJL/BMKQ/wDBjv8Bw4//B7WG/wmZcv8ikl7/q50T/9yx + B//csQX/2q8A/9qvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DCRH/DT16/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xE2 + lf9sIO7/fhv//30c//+AIP7/hSf9/4Yp/P+JK/v/cC37/xJt/f8Ae/7/AXr+/wF6/v8De/7/D4L9/wyA + /f8Fhf7/Bcb//wnT/v8E0f7/AdH//wHR//8B0f//AdH//wPP8P8LxqH/E8aW/w/Glf8MxZP/BMKQ/wDC + j/8Aw5H/H8J9/76yE//crwD/2q8A/9qvAP/arwD/2q8A/9uxBP/aphj/zF1V/8tQYv/LUWH/y1Fh/8tR + Yf/KUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgcQ/wo6d/8KQ4z/ATuG/wE7 + hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b//9+Hf7/gSL9/4Mk/f+CI/z/iCn7/3Qz+v8Sbf3/AHv+/wF6 + /v8Hff3/CH7+/xuK/v8Vhf3/Dor9/w3H/v8N1P7/CtL+/wTR/v8E0v7/AdH//wHR//8Dz/D/Esik/w/F + lP8Kw5L/C8ST/wnEkv8Cwo//AMGP/x+/e/+9sRP/3K8A/9qvAP/arwD/2q8A/9qvAf/dtQr/2aQU/8xd + VP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AAAA/wIH + D/8DNHP/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETeV/2wg7v9+G///fRv//34e/v+DJfz/iCz7/4Ul + /P9xL/z/Em39/wB7/v8De/7/CH79/wp//v8RhP3/A3v+/xKM/f8Pyf3/AtL//wXR/v8F0v7/DdP+/wPR + //8B0f//A9Dw/w3Hov8OxZP/E8eX/wvDkv8DwY//AMGO/wDBj/8fv3v/vbET/9yvAP/arwD/2q8A/9qv + AP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Ji/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/woK + Cv8EBAT/AAAA/wAAAP8CBw//AzRz/wE7h/8BO4b/ATuG/wE7hv8BO4b/BD6H/xs/m/9tIe7/fhv//30b + //9+HP//fh3+/38e/v9+G///ayb9/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Ghf3/Bcb+/wHS + //8B0f//AdH//wPR//8C0f//AdH//wPP8P8Bw5z/AcGN/wTCkP8Dwo//AsGO/wDBjv8AwY//IMB9/8C1 + Hf/csAH/2q8A/9qvAP/arwD/2q8A/9qwAP/Yog//zF1U/8tQYv/KUWH/zVZl/85XZv/LUWH/y1Fh/8tR + Yf8AAAD/AAAA/wAAAP8CAgL/AQEB/wAAAP8AAAD/AgcQ/wc3df8KQ4z/D0eO/xBIj/8NRYz/BD2I/wI9 + hv8UOZf/bCDu/34b//99G///fRv//30b//99G///fhr//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6 + /v8Bef7/A4T+/wPG//8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/AcOc/wDBjf8AwY7/AMGO/wDB + jv8AwY7/AMGP/x+/e/+9sxj/3K8B/9qvAf/cswr/3rQP/961Dv/dtAn/2aQU/8xdVf/LUGL/y1Fh/8tT + Yv/LUmL/y1Fh/8tRYf/LUWH/AgIC/wMDA/8BAQH/AAAA/wAAAP8AAAD/AAAA/wIHEf8FNnX/Bj+K/wU+ + iP8JQor/C0OK/wpCiv8AO4X/ETaV/2wg7v9+G///fRv//30b//9+HP7/fhz+/34a//9rJ/3/Em39/wB7 + /v8Bev7/AXr+/wF6/v8Bev7/AXn+/wOE/v8Dxv//AdL//wHR//8B0f//AdH//wHR//8B0f//A8/w/wHD + nP8AwY3/AcGO/wLBj/8AwY7/AMGO/wDBj/8fv3v/vbET/9yvAP/bsAT/3LMN/9uyCv/asAX/27EF/9ij + E//MXlX/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LU2P/y1Nj/wICAv8LCwv/ERER/wICAv8AAAD/AAAA/wAA + AP8DCBH/DDt4/w5Hjv8JQor/FEyR/xhOk/8PRo3/ADuF/xE2lf9sIO7/fhv//30b//99G///hSf8/4cq + /P+FJvz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8DhP7/A8b//wHS//8B0f//AdH//wHR + //8B0f//AdH//wLP8P8Ew53/DsaU/w3FlP8UyJj/AsGO/wDBjv8AwY//H797/72xE//crwD/27EG/9+3 + GP/guBb/3LMK/920C//aphn/zV9W/8tQYv/LUWH/y1Fh/8tRYf/OWWj/z1xq/8tVZP8AAAD/AwMD/xMT + E/8CAgL/AAAA/wAAAP8AAAD/AwgQ/wk5dv8EPon/FEyS/wpDiv8LRIz/CkOL/wA7hf8TOpb/cSjt/34b + //99G///fh3+/4gs+/+KL/v/hyj8/3Qz+/8Ubv3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4T+/wPG + //8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/C8Wg/xHHlf8WyJj/FseY/wXDkP8AwY7/AMGP/yPB + fv+/sxn/3K8A/9uwBP/dtRD/27EH/9+3Ff/bsgf/2aQT/81fVv/LUGL/y1Fh/8tRYf/LUWH/z1tq/81X + Zv/LUWH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/Views/EunmaToast.Designer.cs b/Views/EunmaToast.Designer.cs new file mode 100644 index 000000000..aaeb1e3fb --- /dev/null +++ b/Views/EunmaToast.Designer.cs @@ -0,0 +1,255 @@ +namespace FallGuysStats { + partial class EunmaToast { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblProgress = new System.Windows.Forms.Label(); + this.mainContainer = new System.Windows.Forms.SplitContainer(); + this.picImage = new System.Windows.Forms.PictureBox(); + this.textContainer = new System.Windows.Forms.SplitContainer(); + this.btnClose = new System.Windows.Forms.Button(); + this.lblCaption = new System.Windows.Forms.Label(); + this.picAppOwnerIcon = new System.Windows.Forms.PictureBox(); + this.lblDescription = new System.Windows.Forms.Label(); + this.tmrClose = new System.Windows.Forms.Timer(this.components); + ((System.ComponentModel.ISupportInitialize)(this.mainContainer)).BeginInit(); + this.mainContainer.Panel1.SuspendLayout(); + this.mainContainer.Panel2.SuspendLayout(); + this.mainContainer.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picImage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.textContainer)).BeginInit(); + this.textContainer.Panel1.SuspendLayout(); + this.textContainer.Panel2.SuspendLayout(); + this.textContainer.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picAppOwnerIcon)).BeginInit(); + this.SuspendLayout(); + // + // mainContainer + // + this.mainContainer.BackColor = System.Drawing.Color.Transparent; + this.mainContainer.Cursor = System.Windows.Forms.Cursors.Hand; + this.mainContainer.Dock = System.Windows.Forms.DockStyle.Fill; + this.mainContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.mainContainer.ForeColor = System.Drawing.Color.White; + this.mainContainer.IsSplitterFixed = true; + this.mainContainer.Location = new System.Drawing.Point(0, 0); + this.mainContainer.Name = "mainContainer"; + this.mainContainer.Panel1MinSize = 110; + this.mainContainer.Size = new System.Drawing.Size(474, 102); + this.mainContainer.SplitterDistance = 110; + this.mainContainer.SplitterWidth = 1; + this.mainContainer.TabIndex = 0; + // + // mainContainer.Panel1 + // + this.mainContainer.Panel1.Controls.Add(this.picImage); + this.mainContainer.Panel1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ToastContentClick); + this.mainContainer.Panel1.MouseEnter += new System.EventHandler(this.FrmToast_FormEnter); + this.mainContainer.Panel1.MouseLeave += new System.EventHandler(this.FrmToast_FormLeave); + // + // mainContainer.Panel2 + // + this.mainContainer.Panel2.BackColor = System.Drawing.Color.Transparent; + this.mainContainer.Panel2.Controls.Add(this.textContainer); + this.mainContainer.Panel2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ToastContentClick); + this.mainContainer.Panel2.MouseEnter += new System.EventHandler(this.FrmToast_FormEnter); + this.mainContainer.Panel2.MouseLeave += new System.EventHandler(this.FrmToast_FormLeave); + // + // picImage + // + this.picImage.BackColor = System.Drawing.Color.DimGray; + this.picImage.Dock = System.Windows.Forms.DockStyle.Fill; + this.picImage.Location = new System.Drawing.Point(0, 0); + this.picImage.Name = "picImage"; + this.picImage.Size = new System.Drawing.Size(110, 102); + this.picImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Normal; + this.picImage.TabIndex = 0; + this.picImage.TabStop = false; + this.picImage.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ToastContentClick); + this.picImage.MouseEnter += new System.EventHandler(this.FrmToast_FormEnter); + this.picImage.MouseLeave += new System.EventHandler(this.FrmToast_FormLeave); + // + // textContainer + // + this.textContainer.Dock = System.Windows.Forms.DockStyle.Fill; + this.textContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.textContainer.IsSplitterFixed = true; + this.textContainer.Location = new System.Drawing.Point(0, 0); + this.textContainer.Name = "textContainer"; + this.textContainer.Orientation = System.Windows.Forms.Orientation.Horizontal; + this.textContainer.Size = new System.Drawing.Size(363, 102); + this.textContainer.SplitterDistance = 30; + this.textContainer.SplitterWidth = 1; + this.textContainer.TabIndex = 1; + this.textContainer.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ToastContentClick); + this.textContainer.MouseEnter += new System.EventHandler(this.FrmToast_FormEnter); + this.textContainer.MouseLeave += new System.EventHandler(this.FrmToast_FormLeave); + // + // textContainer.Panel1 + // + this.textContainer.Panel1.BackColor = System.Drawing.Color.Transparent; + this.textContainer.Panel1.Controls.Add(this.lblProgress); + this.textContainer.Panel1.Controls.Add(this.btnClose); + this.textContainer.Panel1.Controls.Add(this.lblCaption); + this.textContainer.Panel1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ToastContentClick); + this.textContainer.Panel1.MouseEnter += new System.EventHandler(this.FrmToast_FormEnter); + this.textContainer.Panel1.MouseLeave += new System.EventHandler(this.FrmToast_FormLeave); + // + // textContainer.Panel2 + // + this.textContainer.Panel2.BackColor = System.Drawing.Color.Transparent; + this.textContainer.Panel2.Controls.Add(this.picAppOwnerIcon); + this.textContainer.Panel2.Controls.Add(this.lblDescription); + this.textContainer.Panel2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ToastContentClick); + // + // lblProgress + // + this.lblProgress.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.lblProgress.BackColor = System.Drawing.Color.Teal; + this.lblProgress.Location = new System.Drawing.Point(0, 0); + this.lblProgress.Name = "lblProgress"; + this.lblProgress.Size = new System.Drawing.Size(0, 3); + this.lblProgress.TabIndex = 1; + // + // btnClose + // + this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnClose.FlatAppearance.BorderSize = 0; + this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnClose.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btnClose.Location = new System.Drawing.Point(329, 0); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(33, 24); + this.btnClose.TabIndex = 1; + this.btnClose.Text = "❌"; + this.btnClose.UseVisualStyleBackColor = true; + this.btnClose.Click += new System.EventHandler(this.BtnClose_Click); + this.btnClose.MouseEnter += new System.EventHandler(this.FrmToast_FormEnter); + this.btnClose.MouseLeave += new System.EventHandler(this.FrmToast_FormLeave); + // + // lblCaption + // + this.lblCaption.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.lblCaption.AutoEllipsis = true; + this.lblCaption.BackColor = System.Drawing.Color.Transparent; + this.lblCaption.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lblCaption.ForeColor = System.Drawing.Color.Gainsboro; + this.lblCaption.Location = new System.Drawing.Point(3, 0); + this.lblCaption.Name = "lblCaption"; + this.lblCaption.Padding = new System.Windows.Forms.Padding(0, 3, 0, 0); + this.lblCaption.Size = new System.Drawing.Size(323, 25); + this.lblCaption.TabIndex = 0; + this.lblCaption.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lblCaption.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ToastContentClick); + this.lblCaption.MouseEnter += new System.EventHandler(this.FrmToast_FormEnter); + this.lblCaption.MouseLeave += new System.EventHandler(this.FrmToast_FormLeave); + // + // picAppOwnerIcon + // + this.picAppOwnerIcon.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.picAppOwnerIcon.BackColor = System.Drawing.Color.Transparent; + this.picAppOwnerIcon.Image = global::FallGuysStats.Properties.Resources.country_unknown_icon; + this.picAppOwnerIcon.Location = new System.Drawing.Point(331, 46); + this.picAppOwnerIcon.Name = "picAppOwnerIcon"; + this.picAppOwnerIcon.Size = new System.Drawing.Size(24, 24); + this.picAppOwnerIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picAppOwnerIcon.TabIndex = 2; + this.picAppOwnerIcon.TabStop = false; + this.picAppOwnerIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ToastContentClick); + this.picAppOwnerIcon.MouseEnter += new System.EventHandler(this.FrmToast_FormEnter); + this.picAppOwnerIcon.MouseLeave += new System.EventHandler(this.FrmToast_FormLeave); + // + // lblDescription + // + this.lblDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.lblDescription.AutoEllipsis = true; + this.lblDescription.BackColor = System.Drawing.Color.Transparent; + this.lblDescription.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lblDescription.ForeColor = System.Drawing.Color.DarkGray; + this.lblDescription.Location = new System.Drawing.Point(0, 0); + this.lblDescription.Name = "lblDescription"; + this.lblDescription.Padding = new System.Windows.Forms.Padding(2); + this.lblDescription.Size = new System.Drawing.Size(360, 76); + this.lblDescription.TabIndex = 1; + this.lblDescription.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ToastContentClick); + this.lblDescription.MouseEnter += new System.EventHandler(this.FrmToast_FormEnter); + this.lblDescription.MouseLeave += new System.EventHandler(this.FrmToast_FormLeave); + // + // tmrClose + // + this.tmrClose.Interval = 10; + this.tmrClose.Tick += new System.EventHandler(this.TmrClose_Tick); + // + // EunmaToast + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(33)))), ((int)(((byte)(33))))); + this.ClientSize = new System.Drawing.Size(474, 102); + this.ControlBox = false; + this.Controls.Add(this.mainContainer); + this.DoubleBuffered = true; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Location = new System.Drawing.Point(15, 15); + this.Name = "EunmaToast"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.TopMost = true; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmToast_FormClosing); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FrmToast_FormClosed); + // this.MouseHover += new System.EventHandler(this.FrmToast_FormHover); + this.MouseEnter += new System.EventHandler(this.FrmToast_FormEnter); + this.MouseLeave += new System.EventHandler(this.FrmToast_FormLeave); + this.Load += new System.EventHandler(this.FrmToast_Load); + this.Shown += new System.EventHandler(this.FrmToast_Shown); + this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ToastContentClick); + this.mainContainer.Panel1.ResumeLayout(false); + this.mainContainer.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.mainContainer)).EndInit(); + this.mainContainer.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.picImage)).EndInit(); + this.textContainer.Panel1.ResumeLayout(false); + this.textContainer.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.textContainer)).EndInit(); + this.textContainer.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.picAppOwnerIcon)).EndInit(); + this.ResumeLayout(false); + } + + #endregion + + private System.Windows.Forms.Label lblProgress; + private System.Windows.Forms.SplitContainer mainContainer; + private System.Windows.Forms.PictureBox picImage; + private System.Windows.Forms.Label lblCaption; + private System.Windows.Forms.Label lblDescription; + private System.Windows.Forms.Timer tmrClose; + private System.Windows.Forms.SplitContainer textContainer; + private System.Windows.Forms.Button btnClose; + private System.Windows.Forms.PictureBox picAppOwnerIcon; + } +} \ No newline at end of file diff --git a/Views/EunmaToast.cs b/Views/EunmaToast.cs new file mode 100644 index 000000000..a54b188d9 --- /dev/null +++ b/Views/EunmaToast.cs @@ -0,0 +1,449 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Media; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Threading; + +namespace FallGuysStats { + public partial class EunmaToast : Form { + private readonly int _horizontalMargin; + + private readonly int _verticalMargin; + + private bool _shown; + + private bool _isMuted = false; + + private ToastAnimation _toastAnimation; + + private const int AW_SLIDE = 0X40000; + + private const int AW_HOR_POSITIVE = 0X1; + + private const int AW_HOR_NEGATIVE = 0X2; + + private const int AW_HIDE = 0x00010000; + + private const int AW_ACTIVATE = 0x00020000; + + private const int AW_BLEND = 0X80000; + + private const int AW_CENTER = 0x00000010; + + private byte _counter = 2; + + private byte _transitionCounter; + + private int _maxTransition; + + private int maxTransition { + get => _maxTransition; + set { + if (_maxTransition != value) { + _maxTransition = value; + lblProgress.Width = (int)(_deltaTransition * _maxTransition); + } + } + } + + private double _deltaTransition; + + private ToastDuration _toastDuration; + + private ToastSound _toastSound; + + private Font _toastFont; + + private Toast _toast; + + internal CancellationToken CancellationToken { get; set; } + + public bool IsAsync = false; + + public ToastTheme ToastTheme; + + public ToastCloseStyle ToastCloseStyle; + + private DWM_WINDOW_CORNER_PREFERENCE windowConerPreference_default = DWM_WINDOW_CORNER_PREFERENCE.DWMWCP_DEFAULT; + private DWM_WINDOW_CORNER_PREFERENCE windowConerPreference_roundsmall = DWM_WINDOW_CORNER_PREFERENCE.DWMWCP_ROUNDSMALL; + + internal EunmaToast() { + InitializeComponent(); + + _horizontalMargin = 10; + _verticalMargin = 10; + + var workingArea = Screen.GetWorkingArea(this); + + Location = new Point(workingArea.Right - Size.Width - _horizontalMargin, + workingArea.Bottom - Size.Height - _verticalMargin); + } + + internal Toast Toast { + get => _toast; + set => _toast = value; + } + + internal bool IsShown => _shown; + + [DefaultValue(ToastDuration.VERY_SHORT)] + internal ToastDuration ToastDuration { + get => _toastDuration; + set => _toastDuration = value; + } + + [DefaultValue(ToastAnimation.FADE)] + internal ToastAnimation ToastAnimation { + get => _toastAnimation; + set => _toastAnimation = value; + } + + [DefaultValue("")] + internal string Caption { + get => lblCaption.Text; + set => lblCaption.Text = value?.Trim() ?? string.Empty; + } + + [DefaultValue("")] + internal string Description { + get => lblDescription.Text; + set => lblDescription.Text = value?.Trim() ?? string.Empty; + + } + + [DefaultValue(null)] + internal Font ToastFont { + get => _toastFont; + set { + _toastFont = value; + if (value != null) { + lblCaption.Font = value; + lblDescription.Font = new Font(value.FontFamily, value.Size * 0.81f, FontStyle.Regular, value.Unit); + } + } + } + + [DefaultValue(ToastSound.Generic01)] + internal ToastSound ToastSound { + get => _toastSound; + set => _toastSound = value; + } + + internal Image Thumbnails { + get => picImage.Image; + set { + picImage.Image = value; + // Invalidate(); + // if (value != null) { + // picImage.Visible = true; + // HasImage = true; + // } else { + // picImage.Visible = false; + // } + } + } + + internal Image AppOwnerIcon { + get => picAppOwnerIcon.Image; + set { + picAppOwnerIcon.Image = value; + picAppOwnerIcon.Visible = value != null; + Invalidate(); + } + } + + public bool HasImage { get; private set; } + + [DefaultValue(false)] + internal bool IsMuted { + get => _isMuted; + set => _isMuted = value; + } + + internal int HorizontalMargin => _horizontalMargin; + internal int VerticalMargin => _verticalMargin; + + private async void FrmToast_Load(object sender, EventArgs e) { + if (IsAsync) { + await Task.Yield(); + } + + Utils.DwmSetWindowAttribute(Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference_roundsmall, sizeof(uint)); + + switch (ToastCloseStyle) { + case ToastCloseStyle.ClickEntire: + textContainer.Panel1Collapsed = true; + break; + case ToastCloseStyle.Button: + textContainer.Panel1Collapsed = false; + break; + case ToastCloseStyle.ButtonAndClickEntire: + textContainer.Panel1Collapsed = false; + break; + } + + // switch (_toastDuration) { + // case ToastDuration.LENGTH_SHORT: + // _counter = 2; + // break; + // case ToastDuration.LENGTH_MEDIUM: + // _counter = 3; + // break; + // case ToastDuration.LENGTH_LONG: + // _counter = 4; + // break; + // } + + _counter = (byte)_toastDuration; + _deltaTransition = (double)lblDescription.Width / ((byte)_toastDuration * 100); + + if (!_isMuted) { + PlaySound(); + } + + SetTheme(); + + switch (_toastAnimation) { + case ToastAnimation.FADE: + FadeIn(); + break; + case ToastAnimation.SLIDE: + // Utils.AnimateWindow(Handle, 100, AW_SLIDE | AW_HOR_NEGATIVE | AW_ACTIVATE); + FadeIn(); + break; + } + } + + private async void PlaySound() { + Stream sound; + switch (_toastSound) { + case ToastSound.Generic02: + sound = Properties.Resources.notify_sound_02; + break; + case ToastSound.Generic03: + sound = Properties.Resources.notify_sound_03; + break; + case ToastSound.Generic04: + sound = Properties.Resources.notify_sound_04; + break; + default: + sound = Properties.Resources.notify_sound_01; + break; + } + sound.Position = 0; + + await Task.Run(() => { + var player = new SoundPlayer(sound); + player.Play(); + }, CancellationToken); + } + + private void SetTheme() { + switch (ToastTheme) { + case ToastTheme.Light: + picImage.BackColor = ToastThemeBuilder.BuiltinScheme.LightScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.Red; + lblCaption.ForeColor = ToastThemeBuilder.BuiltinScheme.LightScheme.GetForegroundColor(); + lblDescription.ForeColor = Color.Black; + btnClose.ForeColor = ToastThemeBuilder.BuiltinScheme.LightScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.BuiltinScheme.LightScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.BuiltinScheme.LightScheme.GetBackgroundColor(); + break; + case ToastTheme.PrimaryLight: + picImage.BackColor = ToastThemeBuilder.BuiltinScheme.PrimaryLightScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.Red; + lblCaption.ForeColor = ToastThemeBuilder.BuiltinScheme.PrimaryLightScheme.GetForegroundColor(); + lblDescription.ForeColor = Color.White; + btnClose.ForeColor = ToastThemeBuilder.BuiltinScheme.PrimaryLightScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.BuiltinScheme.PrimaryLightScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.BuiltinScheme.PrimaryLightScheme.GetBackgroundColor(); + break; + case ToastTheme.SuccessLight: + picImage.BackColor = ToastThemeBuilder.BuiltinScheme.SuccessLightScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.Red; + lblCaption.ForeColor = ToastThemeBuilder.BuiltinScheme.SuccessLightScheme.GetForegroundColor(); + lblDescription.ForeColor = Color.White; + btnClose.ForeColor = ToastThemeBuilder.BuiltinScheme.SuccessLightScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.BuiltinScheme.SuccessLightScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.BuiltinScheme.SuccessLightScheme.GetBackgroundColor(); + break; + case ToastTheme.WarningLight: + picImage.BackColor = ToastThemeBuilder.BuiltinScheme.WarningLightScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.Red; + lblCaption.ForeColor = ToastThemeBuilder.BuiltinScheme.WarningLightScheme.GetForegroundColor(); + lblDescription.ForeColor = Color.White; + btnClose.ForeColor = ToastThemeBuilder.BuiltinScheme.WarningLightScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.BuiltinScheme.WarningLightScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.BuiltinScheme.WarningLightScheme.GetBackgroundColor(); + break; + case ToastTheme.ErrorLight: + picImage.BackColor = ToastThemeBuilder.BuiltinScheme.ErrorLightScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.Red; + lblCaption.ForeColor = ToastThemeBuilder.BuiltinScheme.ErrorLightScheme.GetForegroundColor(); + lblDescription.ForeColor = Color.White; + btnClose.ForeColor = ToastThemeBuilder.BuiltinScheme.ErrorLightScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.BuiltinScheme.ErrorLightScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.BuiltinScheme.ErrorLightScheme.GetBackgroundColor(); + break; + case ToastTheme.Dark: + picImage.BackColor = ToastThemeBuilder.BuiltinScheme.DarkScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.FromArgb(99, 230, 190); + lblCaption.ForeColor = ToastThemeBuilder.BuiltinScheme.DarkScheme.GetForegroundColor(); + lblDescription.ForeColor = Color.White; + btnClose.ForeColor = ToastThemeBuilder.BuiltinScheme.DarkScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.BuiltinScheme.DarkScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.BuiltinScheme.DarkScheme.GetBackgroundColor(); + break; + case ToastTheme.PrimaryDark: + picImage.BackColor = ToastThemeBuilder.BuiltinScheme.PrimaryDarkScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.FromArgb(99, 230, 190); + lblCaption.ForeColor = ToastThemeBuilder.BuiltinScheme.PrimaryDarkScheme.GetForegroundColor(); + lblDescription.ForeColor = Color.White; + btnClose.ForeColor = ToastThemeBuilder.BuiltinScheme.PrimaryDarkScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.BuiltinScheme.PrimaryDarkScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.BuiltinScheme.PrimaryDarkScheme.GetBackgroundColor(); + break; + case ToastTheme.SuccessDark: + picImage.BackColor = ToastThemeBuilder.BuiltinScheme.SuccessDarkScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.FromArgb(99, 230, 190); + lblCaption.ForeColor = ToastThemeBuilder.BuiltinScheme.SuccessDarkScheme.GetForegroundColor(); + lblDescription.ForeColor = Color.White; + btnClose.ForeColor = ToastThemeBuilder.BuiltinScheme.SuccessDarkScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.BuiltinScheme.SuccessDarkScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.BuiltinScheme.SuccessDarkScheme.GetBackgroundColor(); + break; + case ToastTheme.WarningDark: + picImage.BackColor = ToastThemeBuilder.BuiltinScheme.WarningDarkScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.FromArgb(99, 230, 190); + lblCaption.ForeColor = ToastThemeBuilder.BuiltinScheme.WarningDarkScheme.GetForegroundColor(); + lblDescription.ForeColor = Color.White; + btnClose.ForeColor = ToastThemeBuilder.BuiltinScheme.WarningDarkScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.BuiltinScheme.WarningDarkScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.BuiltinScheme.WarningDarkScheme.GetBackgroundColor(); + break; + case ToastTheme.ErrorDark: + picImage.BackColor = ToastThemeBuilder.BuiltinScheme.ErrorDarkScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.FromArgb(99, 230, 190); + lblCaption.ForeColor = ToastThemeBuilder.BuiltinScheme.ErrorDarkScheme.GetForegroundColor(); + lblDescription.ForeColor = Color.White; + btnClose.ForeColor = ToastThemeBuilder.BuiltinScheme.ErrorDarkScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.BuiltinScheme.ErrorDarkScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.BuiltinScheme.ErrorDarkScheme.GetBackgroundColor(); + break; + case ToastTheme.Custom: + if (ToastThemeBuilder.CustomScheme == null) { + throw new NullReferenceException($"You must create your scheme before set custom theme. Use ${nameof(ToastThemeBuilder.CreateCustomScheme)}() to create a custom scheme"); + } + picImage.BackColor = ToastThemeBuilder.CustomScheme.GetBackgroundColor(); + lblProgress.BackColor = Color.FromArgb(99, 230, 190); + lblCaption.ForeColor = ToastThemeBuilder.CustomScheme.GetForegroundColor(); + btnClose.ForeColor = ToastThemeBuilder.CustomScheme.GetForegroundColor(); + BackColor = ToastThemeBuilder.CustomScheme.GetBackgroundColor(); + btnClose.FlatAppearance.BorderColor = ToastThemeBuilder.CustomScheme.GetBackgroundColor(); + break; + } + } + + private void FrmToast_Shown(object sender, EventArgs e) { + _shown = true; + tmrClose.Start(); + } + + private void FrmToast_FormClosing(object sender, FormClosingEventArgs e) { + switch (_toastAnimation) { + case ToastAnimation.FADE: + Utils.AnimateWindow(Handle, 150, AW_BLEND | AW_HIDE); + break; + case ToastAnimation.SLIDE: + Utils.DwmSetWindowAttribute(Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference_default, sizeof(uint)); + Utils.AnimateWindow(Handle, 150, AW_SLIDE | AW_HOR_POSITIVE | AW_HIDE); + break; + } + } + + private void ToastContentClick(object sender, MouseEventArgs e) { + switch (ToastCloseStyle) { + case ToastCloseStyle.ClickEntire: + case ToastCloseStyle.ButtonAndClickEntire: + if (e.Button == MouseButtons.Left) { + tmrClose?.Stop(); + this?.Close(); + } + break; + case ToastCloseStyle.Button: + return; + } + } + + private void TmrClose_Tick(object sender, EventArgs e) { + _transitionCounter++; + maxTransition++; + + if (_transitionCounter % 5 == 0) { + int sequence = ((_transitionCounter / 5) - 1) % 10 + 1; + Padding paddingAdj = default; + switch (sequence) { + case 1: paddingAdj = new Padding(5, 10, 0, 0); break; + case 2: paddingAdj = new Padding(6, 5, 0, 0); break; + case 3: paddingAdj = new Padding(11, 3, 0, 0); break; + case 4: paddingAdj = new Padding(15, 3, 0, 0); break; + case 5: paddingAdj = new Padding(19, 5, 0, 0); break; + case 6: paddingAdj = new Padding(21, 10, 0, 0); break; + case 7: paddingAdj = new Padding(19, 5, 0, 0); break; + case 8: paddingAdj = new Padding(15, 3, 0, 0); break; + case 9: paddingAdj = new Padding(11, 3, 0, 0); break; + case 10: paddingAdj = new Padding(6, 5, 0, 0); break; + } + picImage.Padding = paddingAdj; + this.Thumbnails = (Image)Properties.Resources.ResourceManager.GetObject($"loading_{sequence}{(ToastTheme == ToastTheme.Light ? "_dark" : "")}"); + } + + if (_transitionCounter >= 100) { + _transitionCounter = 0; + _counter--; + } + + if (_counter == 0) { + tmrClose?.Stop(); + this?.Close(); + } + } + + private async void FadeIn() { + Opacity = 0; + while (Opacity < 1.0) { + await Task.Delay(3, CancellationToken); + Opacity += 0.1; + } + Opacity = 1; + } + + private SizeF CalculateString() { + if (string.IsNullOrEmpty(lblCaption.Text)) return SizeF.Empty; + using (var g = CreateGraphics()) { + var size = g.MeasureString(lblCaption.Text, lblCaption.Font); + return size; + } + } + + private void FrmToast_FormEnter(object sender, EventArgs e) { + tmrClose?.Stop(); + } + + private void FrmToast_FormLeave(object sender, EventArgs e) { + tmrClose?.Start(); + } + + private void FrmToast_FormClosed(object sender, FormClosedEventArgs e) { + ToastManager.ToastCollection.Remove(_toast); + } + + private void BtnClose_Click(object sender, EventArgs e) { + tmrClose?.Stop(); + this?.Close(); + } + } +} diff --git a/Views/EunmaToast.resx b/Views/EunmaToast.resx new file mode 100644 index 000000000..10ab2e354 --- /dev/null +++ b/Views/EunmaToast.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Views/FilterCustomRange.Designer.cs b/Views/FilterCustomRange.Designer.cs new file mode 100644 index 000000000..c8d10d8ec --- /dev/null +++ b/Views/FilterCustomRange.Designer.cs @@ -0,0 +1,228 @@ +namespace FallGuysStats { + partial class FilterCustomRange { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FilterCustomRange)); + this.mdtpStart = new MetroFramework.Controls.MetroDateTime(); + this.lblTilde = new MetroFramework.Controls.MetroLabel(); + this.mdtpEnd = new MetroFramework.Controls.MetroDateTime(); + this.grpTemplates = new System.Windows.Forms.GroupBox(); + this.lbTemplatesList = new System.Windows.Forms.ListBox(); + this.btnFilter = new MetroFramework.Controls.MetroButton(); + this.btnSaveTemplate = new MetroFramework.Controls.MetroButton(); + this.txtTemplateName = new MetroFramework.Controls.MetroTextBox(); + this.lblTemplateName = new MetroFramework.Controls.MetroLabel(); + this.picStartDate = new System.Windows.Forms.PictureBox(); + this.picEndDate = new System.Windows.Forms.PictureBox(); + this.grpTemplates.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picStartDate)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picEndDate)).BeginInit(); + this.SuspendLayout(); + // + // mdtpStart + // + this.mdtpStart.Cursor = System.Windows.Forms.Cursors.Hand; + this.mdtpStart.Location = new System.Drawing.Point(64, 78); + this.mdtpStart.MinimumSize = new System.Drawing.Size(0, 29); + this.mdtpStart.Name = "mdtpStart"; + this.mdtpStart.Size = new System.Drawing.Size(200, 29); + this.mdtpStart.TabIndex = 0; + this.mdtpStart.CloseUp += new System.EventHandler(this.dtStart_CloseUp); + // + // lblTilde + // + this.lblTilde.AutoSize = true; + this.lblTilde.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblTilde.FontWeight = MetroFramework.MetroLabelWeight.Bold; + this.lblTilde.Location = new System.Drawing.Point(268, 80); + this.lblTilde.Name = "lblTilde"; + this.lblTilde.Size = new System.Drawing.Size(25, 25); + this.lblTilde.Style = MetroFramework.MetroColorStyle.Teal; + this.lblTilde.TabIndex = 1; + this.lblTilde.Text = "~"; + // + // mdtpEnd + // + this.mdtpEnd.Cursor = System.Windows.Forms.Cursors.Hand; + this.mdtpEnd.Location = new System.Drawing.Point(339, 78); + this.mdtpEnd.MinimumSize = new System.Drawing.Size(0, 29); + this.mdtpEnd.Name = "mdtpEnd"; + this.mdtpEnd.Size = new System.Drawing.Size(200, 29); + this.mdtpEnd.TabIndex = 2; + this.mdtpEnd.CloseUp += new System.EventHandler(this.dtEnd_CloseUp); + // + // grpTemplates + // + this.grpTemplates.Controls.Add(this.lbTemplatesList); + this.grpTemplates.Location = new System.Drawing.Point(25, 130); + this.grpTemplates.Name = "grpTemplates"; + this.grpTemplates.Size = new System.Drawing.Size(514, 222); + this.grpTemplates.TabIndex = 5; + this.grpTemplates.TabStop = false; + this.grpTemplates.Text = "Templates List"; + // + // lbTemplatesList + // + this.lbTemplatesList.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbTemplatesList.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbTemplatesList.ItemHeight = 12; + this.lbTemplatesList.Location = new System.Drawing.Point(3, 16); + this.lbTemplatesList.Name = "lbTemplatesList"; + this.lbTemplatesList.Size = new System.Drawing.Size(508, 209); + this.lbTemplatesList.TabIndex = 3; + this.lbTemplatesList.SelectedValueChanged += new System.EventHandler(this.lbTemplatesList_SelectedValueChanged); + // + // btnFilter + // + this.btnFilter.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFilter.FontSize = MetroFramework.MetroButtonSize.Tall; + this.btnFilter.Location = new System.Drawing.Point(464, 360); + this.btnFilter.Name = "btnFilter"; + this.btnFilter.Size = new System.Drawing.Size(75, 28); + this.btnFilter.TabIndex = 6; + this.btnFilter.Text = "Filter"; + this.btnFilter.UseSelectable = true; + this.btnFilter.Click += new System.EventHandler(this.btnFilter_Click); + // + // btnSaveTemplate + // + this.btnSaveTemplate.Location = new System.Drawing.Point(321, 61); + this.btnSaveTemplate.Name = "btnSaveTemplate"; + this.btnSaveTemplate.Size = new System.Drawing.Size(102, 23); + this.btnSaveTemplate.TabIndex = 7; + this.btnSaveTemplate.Text = "Save as template"; + this.btnSaveTemplate.UseSelectable = true; + this.btnSaveTemplate.Visible = false; + // + // txtTemplateName + // + this.txtTemplateName.CustomButton.Image = null; + this.txtTemplateName.CustomButton.Location = new System.Drawing.Point(138, 1); + this.txtTemplateName.CustomButton.Name = ""; + this.txtTemplateName.CustomButton.Size = new System.Drawing.Size(21, 21); + this.txtTemplateName.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtTemplateName.CustomButton.TabIndex = 1; + this.txtTemplateName.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtTemplateName.CustomButton.UseSelectable = true; + this.txtTemplateName.CustomButton.Visible = false; + this.txtTemplateName.Lines = new string[0]; + this.txtTemplateName.Location = new System.Drawing.Point(321, 29); + this.txtTemplateName.MaxLength = 32767; + this.txtTemplateName.Name = "txtTemplateName"; + this.txtTemplateName.PasswordChar = '\0'; + this.txtTemplateName.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtTemplateName.SelectedText = ""; + this.txtTemplateName.SelectionLength = 0; + this.txtTemplateName.SelectionStart = 0; + this.txtTemplateName.ShortcutsEnabled = true; + this.txtTemplateName.Size = new System.Drawing.Size(160, 23); + this.txtTemplateName.TabIndex = 8; + this.txtTemplateName.UseSelectable = true; + this.txtTemplateName.Visible = false; + this.txtTemplateName.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtTemplateName.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // lblTemplateName + // + this.lblTemplateName.AutoSize = true; + this.lblTemplateName.Location = new System.Drawing.Point(210, 31); + this.lblTemplateName.Name = "lblTemplateName"; + this.lblTemplateName.Size = new System.Drawing.Size(105, 19); + this.lblTemplateName.TabIndex = 9; + this.lblTemplateName.Text = "Template Name:"; + this.lblTemplateName.Visible = false; + // + // picStartDate + // + this.picStartDate.Cursor = System.Windows.Forms.Cursors.Hand; + this.picStartDate.Image = global::FallGuysStats.Properties.Resources.calendar_on_icon; + this.picStartDate.Location = new System.Drawing.Point(25, 78); + this.picStartDate.Name = "picStartDate"; + this.picStartDate.Size = new System.Drawing.Size(29, 29); + this.picStartDate.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picStartDate.TabIndex = 13; + this.picStartDate.TabStop = false; + this.picStartDate.MouseClick += new System.Windows.Forms.MouseEventHandler(this.picStartDate_MouseClick); + // + // picEndDate + // + this.picEndDate.Cursor = System.Windows.Forms.Cursors.Hand; + this.picEndDate.Image = global::FallGuysStats.Properties.Resources.calendar_on_icon; + this.picEndDate.Location = new System.Drawing.Point(299, 78); + this.picEndDate.Name = "picEndDate"; + this.picEndDate.Size = new System.Drawing.Size(29, 29); + this.picEndDate.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picEndDate.TabIndex = 14; + this.picEndDate.TabStop = false; + this.picEndDate.MouseClick += new System.Windows.Forms.MouseEventHandler(this.picEndDate_MouseClick); + // + // FilterCustomRange + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(565, 397); + this.Controls.Add(this.picStartDate); + this.Controls.Add(this.picEndDate); + this.Controls.Add(this.lblTemplateName); + this.Controls.Add(this.txtTemplateName); + this.Controls.Add(this.btnSaveTemplate); + this.Controls.Add(this.btnFilter); + this.Controls.Add(this.grpTemplates); + this.Controls.Add(this.mdtpEnd); + this.Controls.Add(this.lblTilde); + this.Controls.Add(this.mdtpStart); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FilterCustomRange"; + this.Padding = new System.Windows.Forms.Padding(23, 60, 23, 20); + this.Resizable = false; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.Style = MetroFramework.MetroColorStyle.Teal; + this.Text = "Custom Range"; + this.Load += new System.EventHandler(this.FilterCustomRange_Load); + this.Shown += new System.EventHandler(this.FilterCustomRange_Shown); + this.grpTemplates.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.picStartDate)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picEndDate)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + + private MetroFramework.Controls.MetroDateTime mdtpStart; + private MetroFramework.Controls.MetroLabel lblTilde; + private MetroFramework.Controls.MetroDateTime mdtpEnd; + private System.Windows.Forms.GroupBox grpTemplates; + private System.Windows.Forms.ListBox lbTemplatesList; + private MetroFramework.Controls.MetroButton btnFilter; + private MetroFramework.Controls.MetroButton btnSaveTemplate; + private MetroFramework.Controls.MetroTextBox txtTemplateName; + private MetroFramework.Controls.MetroLabel lblTemplateName; + private System.Windows.Forms.PictureBox picStartDate; + private System.Windows.Forms.PictureBox picEndDate; + } +} \ No newline at end of file diff --git a/Views/FilterCustomRange.cs b/Views/FilterCustomRange.cs new file mode 100644 index 000000000..94b76786f --- /dev/null +++ b/Views/FilterCustomRange.cs @@ -0,0 +1,238 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using MetroFramework; +using MetroFramework.Controls; + +namespace FallGuysStats { + public partial class FilterCustomRange : MetroFramework.Forms.MetroForm { + public Stats StatsForm { get; set; } + public DateTime startDate, endDate; + public bool isStartNotSet, isEndNotSet; + public int selectedCustomTemplateSeason = -1; + private readonly List periodDateTemplates = new List(); + public FilterCustomRange() { + InitializeComponent(); + this.Opacity = 0; + } + + private void FilterCustomRange_Load(object sender, EventArgs e) { + this.lbTemplatesList.Items.Clear(); + for (int i = 0; i < Stats.Seasons.Count(); i++) { + string seasonType = ""; + if (i < 6) { + seasonType = $"{Multilingual.GetWord("custom_range_legacy_season")} {(i + 1)} "; + } else if (i < 10) { + seasonType = $"{Multilingual.GetWord("custom_range_ffa_season")} {(i - 5)} "; + } + + string seasonName = Stats.Seasons[i].Name; + string startDateStr = Stats.Seasons[i].StartDate.ToString(Multilingual.GetWord("level_date_format"), Utils.GetCultureInfo()); + + if (Stats.Seasons.Length - 1 == i) { + this.lbTemplatesList.Items.Add($"[{seasonName}] ({startDateStr} - ???)"); + this.periodDateTemplates.Add(new[] { Stats.Seasons[i].StartDate, DateTime.MaxValue }); + } else { + string endDateStr = Stats.Seasons[i + 1].StartDate.ToString(Multilingual.GetWord("level_date_format"), Utils.GetCultureInfo()); + this.lbTemplatesList.Items.Add($"{seasonType}[{seasonName}] ({startDateStr} - {endDateStr})"); + this.periodDateTemplates.Add(new[] { Stats.Seasons[i].StartDate, Stats.Seasons[i + 1].StartDate }); + } + } + + if (this.startDate == DateTime.MinValue && this.endDate == DateTime.MaxValue) { + this.mdtpStart.Value = DateTime.Now; + this.mdtpEnd.Value = DateTime.Now; + } else if (this.selectedCustomTemplateSeason > -1) { + this.lbTemplatesList.SetSelected(this.selectedCustomTemplateSeason, true); + } else { + try { + if (this.startDate != DateTime.MinValue) { + this.mdtpStart.Value = this.startDate.ToLocalTime(); + } else { + this.picStartDate_MouseClick(this.picStartDate, new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0)); + } + if (this.endDate != DateTime.MaxValue) { + this.mdtpEnd.Value = this.endDate.ToLocalTime(); + } else { + this.picEndDate_MouseClick(this.picEndDate, new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0)); + } + } catch { + this.mdtpStart.Value = DateTime.Now; + this.mdtpEnd.Value = DateTime.Now; + } + } + + this.SetTheme(Stats.CurrentTheme); + this.ChangeLanguage(); + } + + private void FilterCustomRange_Shown(object sender, EventArgs e) { + this.Opacity = 1; + } + + private void SetTheme(MetroThemeStyle theme) { + this.SuspendLayout(); + this.Theme = theme; + this.BackMaxSize = 32; + this.BackImagePadding = new Padding(20, 17, 0, 0); + this.BackImage = theme == MetroThemeStyle.Light ? Properties.Resources.calendar_icon : Properties.Resources.calendar_gray_icon; + foreach (Control c1 in Controls) { + if (c1 is MetroLabel ml1) { + ml1.Theme = theme; + } else if (c1 is MetroTextBox mtb1) { + mtb1.Theme = theme; + } else if (c1 is MetroButton mb1) { + mb1.Theme = theme; + } else if (c1 is MetroCheckBox mcb1) { + mcb1.Theme = theme; + } else if (c1 is MetroRadioButton mrb1) { + mrb1.Theme = theme; + } else if (c1 is MetroComboBox mcbo1) { + mcbo1.Theme = theme; + } else if (c1 is MetroDateTime mdt1) { + mdt1.Theme = theme; + } else if (c1 is GroupBox gb1) { + gb1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + foreach (Control c2 in gb1.Controls) { + if (c2 is ListBox lb1) { + if (theme == MetroThemeStyle.Dark) { + lb1.BackColor = Color.FromArgb(21, 21, 21); + lb1.ForeColor = Color.WhiteSmoke; + } + } + } + } + } + this.ResumeLayout(); + } + + private void FixDates() { + if (this.startDate != DateTime.MinValue) { + this.startDate = new DateTime(this.startDate.Year, this.startDate.Month, this.startDate.Day, 0, 0, 0, this.selectedCustomTemplateSeason > -1 ? DateTimeKind.Utc : DateTimeKind.Local); + } + if (this.endDate != DateTime.MaxValue) { + if (this.selectedCustomTemplateSeason > -1) { + this.endDate = new DateTime(this.endDate.Year, this.endDate.Month, this.endDate.Day, 23, 59, 59, DateTimeKind.Utc).AddDays(-1); + } else { + this.endDate = new DateTime(this.endDate.Year, this.endDate.Month, this.endDate.Day, 23, 59, 59, DateTimeKind.Local); + } + } + } + + private void picStartDate_MouseClick(object sender, MouseEventArgs e) { + this.isStartNotSet = !this.isStartNotSet; + ((PictureBox)sender).Image = this.isStartNotSet ? Properties.Resources.calendar_off_icon : Properties.Resources.calendar_on_icon; + this.mdtpStart.Visible = !this.isStartNotSet; + this.lbTemplatesList.ClearSelected(); + if (this.isStartNotSet && this.isEndNotSet) { + this.isEndNotSet = false; + this.mdtpEnd.Visible = true; + this.picEndDate.Image = Properties.Resources.calendar_on_icon; + } + + if (this.mdtpStart.Visible) { + if (this.mdtpStart.Value > this.mdtpEnd.Value) { + this.startDate = this.mdtpEnd.Value; + this.mdtpStart.Value = this.mdtpEnd.Value; + } + } + } + + private void picEndDate_MouseClick(object sender, MouseEventArgs e) { + this.isEndNotSet = !this.isEndNotSet; + ((PictureBox)sender).Image = this.isEndNotSet ? Properties.Resources.calendar_off_icon : Properties.Resources.calendar_on_icon; + this.mdtpEnd.Visible = !this.isEndNotSet; + this.lbTemplatesList.ClearSelected(); + if (this.isStartNotSet && this.isEndNotSet) { + this.isStartNotSet = false; + this.mdtpStart.Visible = true; + this.picStartDate.Image = Properties.Resources.calendar_on_icon; + } + + if (this.mdtpEnd.Visible) { + if (this.mdtpEnd.Value < this.mdtpStart.Value) { + this.endDate = this.mdtpStart.Value; + this.mdtpEnd.Value = this.mdtpStart.Value; + } + } + } + + private void dtStart_CloseUp(object sender, EventArgs e) { + if (((MetroDateTime)sender).Value != this.startDate) { + this.lbTemplatesList.ClearSelected(); + if (((MetroDateTime)sender).Value > this.mdtpEnd.Value) { + this.endDate = ((MetroDateTime)sender).Value; + this.mdtpEnd.Value = ((MetroDateTime)sender).Value; + } + } + } + + private void dtEnd_CloseUp(object sender, EventArgs e) { + if (((MetroDateTime)sender).Value != this.endDate) { + this.lbTemplatesList.ClearSelected(); + if (((MetroDateTime)sender).Value < this.mdtpStart.Value) { + this.startDate = ((MetroDateTime)sender).Value; + this.mdtpStart.Value = ((MetroDateTime)sender).Value; + } + } + } + + private void lbTemplatesList_SelectedValueChanged(object sender, EventArgs e) { + this.selectedCustomTemplateSeason = ((ListBox)sender).SelectedIndex; + if (((ListBox)sender).SelectedIndex < 0) return; + if (this.periodDateTemplates[this.lbTemplatesList.SelectedIndex][0] == DateTime.MinValue) { + this.isStartNotSet = true; + this.picStartDate.Image = Properties.Resources.calendar_off_icon; + this.startDate = DateTime.MinValue; + this.mdtpStart.Visible = false; + } else { + this.isStartNotSet = false; + this.picStartDate.Image = Properties.Resources.calendar_on_icon; + this.mdtpStart.Value = this.periodDateTemplates[this.lbTemplatesList.SelectedIndex][0]; + this.startDate = this.periodDateTemplates[this.lbTemplatesList.SelectedIndex][0]; + this.mdtpStart.Visible = true; + } + if (this.periodDateTemplates[this.lbTemplatesList.SelectedIndex][1] == DateTime.MaxValue) { + this.isEndNotSet = true; + this.picEndDate.Image = Properties.Resources.calendar_off_icon; + this.endDate = DateTime.MaxValue; + this.mdtpEnd.Visible = false; + } else { + this.isEndNotSet = false; + this.picEndDate.Image = Properties.Resources.calendar_on_icon; + this.mdtpEnd.Value = this.periodDateTemplates[this.lbTemplatesList.SelectedIndex][1]; + this.endDate = this.periodDateTemplates[this.lbTemplatesList.SelectedIndex][1]; + this.mdtpEnd.Visible = true; + } + } + + private void btnFilter_Click(object sender, EventArgs e) { + this.startDate = this.isStartNotSet ? DateTime.MinValue : this.mdtpStart.Value; + this.endDate = this.isEndNotSet ? DateTime.MaxValue : this.mdtpEnd.Value; + this.FixDates(); + this.DialogResult = DialogResult.OK; + this.Close(); + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { + if(keyData == Keys.Escape) { + this.Close(); + return true; + } + return base.ProcessCmdKey(ref msg, keyData); + } + + private void ChangeLanguage() { + this.Text = $" {Multilingual.GetWord("custom_range_range")}"; + this.mdtpStart.CalendarFont = Overlay.GetMainFont(14); + this.mdtpEnd.CalendarFont = Overlay.GetMainFont(14); + this.lbTemplatesList.Font = Overlay.GetMainFont(14); + this.btnFilter.Text = Multilingual.GetWord("custom_range_filter"); + this.btnFilter.Width = TextRenderer.MeasureText(this.btnFilter.Text, this.btnFilter.Font).Width + 45; + this.btnFilter.Left = this.grpTemplates.Right - this.btnFilter.Width; + this.grpTemplates.Text = Multilingual.GetWord("custom_range_templates"); + } + } +} diff --git a/Views/FilterCustomRange.resx b/Views/FilterCustomRange.resx new file mode 100644 index 000000000..d98d3484a --- /dev/null +++ b/Views/FilterCustomRange.resx @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAB7GgAAFgAAAIlQTkcNChoKAAAADUlIRFIAAABAAAAAQAgGAAAAqmlx3gAAGkJJ + REFUeJy1W3mwleV5/33L2c89d+deWS6LIJFguIhUXKIGNDFoXNrGJGpTs9jkj6SSzjSTJtNpO9NpZzJx + grVOm2lTbTpZihq1WdRoopIUFxREBQOiIiAXLhfucvZv7e95v+8792z3QiJ9mY9zzre9z/78nud9r4nW + sYjHHTyu6Eoaw3+2Oo7emI1UrguVcgm6psH3fViVErr9Xnzi5KfRk+/g7T58XYPbmQYMHVrVhZ85Af2S + +6B1jPGy1jiLzyPD+9bzM+sFv5vGpKfj4VISRT0OQ4upeyrOODzPhrxtHGfj36b+HSPOApiaj2xMR9nx + kIubmLIdZKc8bHiigI5J72UXeBpw7rrv4YsO1M9h1v/Qdf3bnudtin5r6pyBWCqGSqmIRDrD3yaZLwc8 + cDKtYtee1zwfms2p+EkqAYvXfK+NjE93+HC9KmVnwPEcmEaCr3VrV12es7zg/ZQ9krqOeMJAgcyb8l33 + I1kPU2/DZHfTbTds33zfw2u/0iIATdN2kvnhxvlJgF2FU9HIk48qhQBNV+dnGnqxGgqDMtCc98C8eouI + AFV7it802A7nR3uBisyLjguXtNnygxxbrqesteGNGjZ95sbtV9z70NrV8jsSwGbeOEwLUA9ED6n/ybBu + GjDNmAgJrutSIGWe5nnDaCW5NqHWcu29DV/9ax60eiVsYdzlnDFaLMmFzd+a1uhaojv5zUvDn7nxxc33 + PnTBJhHAIgQ+j2QyCcuy4DhOOCUl6zqwKxa/lxsZJfNmPKFEOn1SC1ydn5rrt/XrBpY0Q82iNWg1pLLh + YY0mbgQiUAKOzD5gWGQtp0uOV7sm5+Jevch8GKRZlGhb4kb+Hbfd8OxmEUDN58vlcovJRC9rZkYEYzml + BnfwSbuXiMHnIUEQqfi0HVD8viFWxM9YAlp5CkhkeU70lhfygnm0JDVaCiYUJswsGdHo0zG6QIWartRI + Ebcs0exn8cgGJhzba9JXTFnA5TUGmv2Fh2iZ9NYCX8Oou10ygE/b0+RcmRYTj6vfNSeRYBhqT4unqX1O + zQAngdPXMyJRXrfkYdS06IuWKTQat+2UlfYMI64C42zBVehOxRi89VbJNLLoXy4CGG65K3qRrimzcSn5 + Uw3l+8KMOKWEZB6a1RgENdcKLKFSUAxrqCqB+T7J8G3FaLOlCbO6WIUhr3f5mGQdj9komKZBpRFbPCxJ + h0JDW2rlDnVl2Gx7PbqNDFnM/V6iUdpGLB6kI7v+ZqgUKIcnlmDy1XHeE0uhISCK5siEJozEJWboinEV + O4Qjzw/VRJ/Xk3BcZiFKyfMsXnKUUspTCYwd1jFWpVSINRJ9QyISRv9pOh2+QzBBe++YpqetALQQ7AT/ + 2kjY84KILMEnZgbEyuSCA/ic7ohwPHjELvBs1Ek8GGReBUDDJEO8SXdxbBT47VvA0KCNgX7ylXLIEhnW + aP5uKQgPnGffC0k8832eO8R3uIdQzX0d5tW3wtnwh+QmibaRVwsMpV2saCuAzq4uVKsWEoaDWFyicqML + SAD0AweFR5Dk00/VbwlITJO6G6Yfpe3IDUIqRKQEMERRFJJYQlkAA/7jwQQeeBxYOmSipxNYNmRg/uI4 + jvQx3Xa7SGV8HHw9ice+XcXNMQ0fX8bMkEzhkXcP4Z7vfxMTFKZ+1ceVAUUjaepMiRqzG92Oc1fKdqMi + 2gnAjMWUNpPJBHpynURWZN6utBWskqhYi5iu+LucIAyG25jC/JjA47jSPEMxrcRB/QsnCzFsfcnHVz7b + gY9c6uHYmIGjYxrePVHBW7tpB3S5bM7Atp+WcQnf/bX3ecgKyCLkHVroY6xYxneefADGhVfCy/UoOoJA + aCLbwYxDQQtpOoVRByRnEACDnph/qVRGiSnK4YQac61oVl1PJJUirWpFmbuCvqJ5pjyBv5qYv9Y0iwAm + IxYIiNHZp0BVDJBBee3eb+LEuI11q3zM6XMwp9fHecurmGLk96Z8jFs6KlNplE/oWJNj6aC5gYyrZaTJ + 6qqcjvTYUZQKk7A7e9U8hiBB4pkq07FOGg0GZ10s1m3UZIsAJOqbEsAYnGzbglulucemg4tYhwqAfgB0 + 9BKjtC0BygtqAbEETu4lY8rsBMwKs76RDF/AQOlF0dNXJDz1vI/Bfh3zBuhI4j6MDxqDn3wXv4/FKcCO + ChJdBt55m5CcETMe4sKiq+Eos6JjxsV8a4YlQbBKZl2+IyZxShCj1gyw2gigVCqhWCwGykkI9OWT5vRD + rm01PxLcW1cUiXB0CkIFQRmsJ8QMg9w97YPyrVCM4dcverj0fGoxPhHGDIk7wb0+BeZS4MLfORcY+NkO + HxeO6risW1NWsH1Kx0+OU9Nr18Lt6muIdI5kMaK+ctEPXtlmmIL/Reu2bYe0+yoOOPZ7LGT8emn7dcCl + TgM0yTcPmzjwbhlf/WyqznWiezVEuUhed/4GF+/ui+NrT1kYpkExFuL1io+3Fq+DdsPn4MRTbQGS1AAa + /d91puc2Y8FvkxUgMpmMSn1SB8iIxyJTciI6VBnsuU3ARqqOJFXjBDnGZwBUsUBQIV/uM0jNIPjwBRqe + 20WfTut4/1IbDSE8HAZBUJwuaXD+eI+DG75k49XVSex/2UHZ7sThebfAXXcD7P65inmxKoPzO3WWYBhB + BnJD4Utmk3jgMDYoFxDtixAiAYgbKAUxYBkUhknAEk9nVDkcZ+qx+GmLWQsPrtdgdp4IRM1HYgy9LVLT + wv8c18S2nQ7WvF9Hf48TpZWGG8VCdZAGPaEaIfF0ARd82MeaDTrG/R78a/F6TDrzkTZ8xMWSSU+Sn3kG + wAQZ18MawNf8SOaIM6ZUQpc1xdzjxO3VarWNinzVEJH0USkUkMx2BG8ImfIk+te7CifXq3yxnBPI6wdM + aQGK4VcdVc9kAUMQTJR2bNzAq/td3P6nKVQtCpmR2jBD4CTCcIKGCKMAma+EAM1TlzSVCcqqPI/SXkxq + BVplnoE7ZoZxpLkR5Qt5EhgNFV9Ml5LK5/Ntq0Cf0VZKY9f2VRUnmheteq7bcm+kWS0fFk1k1mfKqvgx + vHMygZePmdh1xMXb4xpO0sBK5LPsWBjJe/ju94Gf/MJE/4CO5YsTWH2uifPoEule4dQiwXbIR7M1Tf+W + JkhUGYp5S6co4UXlc6NlWRW3ZphmPeNaeHa6IRI8KExr9EHVECExkgalGaI57UoNTZXFR/w8npx6A4/9 + vII3mMvTtKKzO7NY1RnD/ME4ehImUqoU1ki4jlESdeBwFa/stvCT+wm8sj7OWWWg66IUzlphI5W1Vfnb + mMV8VT4I2SIAUyxA3AZak0JDBFrjb9prG9JgKpVS8SDKCCqwMYc7FbelJpCCKGFmWhoiI1oRD5R248HS + K3AzeXxwTgafX96DFVkPvbAQJ7iBMxkWPV7olDxSJGUgiTLfOep14+VxH7/YncfTvynAXajjgo1prFhH + v04Tc4TBUqdVZhggJ2wNtjRE3LoMID3CJnkZdAslLMut3dQgAIkDbp15h2EDOgGG6zRmALtSgUUfjCKa + pXv4hb0f90xtQzl7Ep9Y04FrBroxDyUYlRF4k5YCNm6kkHajkEecKh3ifAuzGWw8P4c3rU786PWTuH/z + FF5h8br+ljTmnyO1iavkVyRddlP2iDKB1nRWNUT0RgIaBOC28W1ph6czGvInx1quSRCUtttJvYK7C8/i + EXsnrntfCp9Z1Ikhdwp+vkgiXdTeeqo2obJUlr4Ctnjo+UksZ4D+xpCG63Ia/nmvgwf/Frjo1iTWXkUh + GF67zKlGH7ORGWsN7M0wYdZ+gMoAPMr58RY61Sft6QhNfvPEr7EnsR9/T6B+VaYEszAGz5u5Y3Pag9R6 + rDlEaavpbZvPNfDDEQPf/k4V48diWPWJeBh5a2kmeIzHeMXCWaT9VDKfvSFCAoqTJ4l1AvOXgGOrVBYE + FYva/avxJ1FNn8Tdw2ms0sfgFyx4Z7ohjCBkSBH0uQUa5qdj+MaPqzguRvAxi5F8Mqj3Eym4ZlDNVvnA + pGWf8r2zNkSCIBDk8YqnY+9JHftO0FWrQUQtuUUsSVZx98okVvrUut2ad1vefQqCZutvyjU9ncPG3gwB + zCT+/NERTL32dwx2ntS6sAYXwVh3JdzzLiQsTtRN2gSw6kZbAUg2EK6TMZ91eJr1+jiePKCxqPBwZZ+B + lYOGQuvv8PfGQR0r9CkCllObvBQvlhdUcFVpILlBV0kClvRdUoKsdYG/M4vBK+WVW244y8Q/EkfsHNuO + szvIPAPNzt0v4NGXHsPRKz4J/Y9uR3eqm4CopBoiDgOwbbe+t205LEMm6ehIs/QEfvmOhg4itbvOMzCc + sQlMg0rNk3LXt8n8LJ03ZT0aTjAejfFlRU7pJtIw01loTKVKMITgbqkAg1Vohmbexyq0nwpMaG2WQohD + 3Inj6r3Xdmk8JO+7aqLqWTpunCji67+6F3vihM83fhlJ6VgJ7CWtuu6jWU8tAtANPZyH+Z+ReN94DMUC + cOdKHWszVrgCIyPo/7XirDpaeRwrazhcYZrsHkTHmgswuHItkguWQe8eUC0tedorl+GdHEH5nb2YfG07 + 3n59B0Ymj2MBL/cn/JaCKvTMsFZEjR6KFuu7Pfz14hi+8Kv7oa38EOldqnBDFCebR4sAaiCDRUiZkfS1 + Q2Vcztp7ddZRzLcQ0ua7DGInvFnUMNE5F70br0fPZdchvmAp1ZpWy2oCrQWySizx1HLcSqTWrEf3R/8E + 1oE9GHvqYezb+jO633EsygjObwPV2whd6L+ky8Pqg8exY/tWuP2Lg5iG9itVZmTyEQYQwFOKQI9D+Ev0 + tLwPyuyjRSlbOjJaqzAiARfo4/uKfO/w5Vj6yS8hsXyN1KCqzE4kkvRLM4DSmjbdgRbL4rxWJotYZw8S + S1eha92H8e4P78befc9jWcarzRnNFX0KTQ7dLKEHFpGmGy2iCz3/7kHYtFqrorWszsuKmuhT1QIS9KQE + 9v0gusdIaFQai+mUXFWYKXMZs02VkubEW0GTH2p+X5nMXvVJzLtlE/TeQTKdQIbltFSemtZqh9E5UUac + 96o0RprMCz+M5LwlOHjfN/HGs/+DZWlHNUHqRR+59OGqiYGEiw4i0jKFUVS9zNB5tKAB4oRBUNCgVINW + 1Q0aIjKxEFmpVCKK1CFLS51pDS+zmDlm65gT87C7GMP7s9OLp6jTvAhpf9lE/MpPYf5tX4XR2YcsIW2S + vt6O8ZmGEC7PxJnKSvEVWPiFv8E7PH/wuYexOO21LFUKPhG49EZZZ5C28HpRx+tE6cbQ2fBNU5XO0w/4 + fK9ZK4jChoiDdDqtBKB2f4S9gUTMxAVL+vDcnlE8ftJUHdlDlNG6rvYp70jZhz28HkuoebOrH525HC0/ + ftqMNw+JQ9lsFsbCZVj42a/hzbERnHhrG/qTWmP84Y9uk7XIWEyVNz8ecbE/twiD6z4E/VVNwd+oQySK + MKn9atQQSSSTPGGiGHaB6odUTwtSZRydY+KeAxYu7kvg0k5fpafmzFeiURzvWoihT30ZZv/c98x8/UiR + Rm3pSsy9eROO3LkfOXeU1tloUV3ELCMEF9sOgWV4GvYtn0Z57iJorxVbhGVVHQIpQ3WoTdF2tdJ+8VPW + CAymlg/OAx6vGnh0pIKbB4Wp1gB4lC7Ssf7jSC1fjawEsjPEfDREUXPWbcDEJdfh+BPfxdxU4/xJVmX9 + rH/vHEnAu+lLwJV/TKBlqEXUZpexicbsMHo0NESCXSCo9QNKpSq/J9CVBBZ16bDyOuYn3GhJoOb7FQac + qe4hLLjsWma5LMFH8owyj3CuFLPDwEduwuFnf4o59lGYDVbgYyUzRbYji/yay+AkCeImWSoTnkegWAKh + FyHQ6Fz9JIlEvBb9ZThMjXa1DIeR9XjBwLyEjlwb8JyXhd7zLkaKeV7B6DO+PSYYwm/vuefjyPILUNz5 + U3Qm6lIiv8yjBQw4BUwcPYTqwuWouk3lsgQ9urVVV/Y3sBOlwmioVR1ZvGYSnaCXLOMENLDa0l9055SW + QAcLkEQ2p1Lo/+eId/Wic9UlmHrpUXSEDVLVheZH1mSlaFjYPXKwgb5oOJKmnMb03SCA1saopvYCEdeg + bFG6WcHdfsPap6A4K9WFzqHlzOFn1u/bDWE0t/wDGElkOfdkcCZ0yQTjwHwGQ4weQUwC3GkY4qz9gEQy + gUQqQT8q0Wx89CXl9kYJKhPL5BDvmaNiSLvhqfVEL1hzPI0h94oyjDa70GSkB4egpTpYGU6iPgwwuxOg + aTBYLGlElSmiz5iqbdp3sYNnZhkSDC3mN5OSlX5jd0xXGvfqsKjakseAEyNw0bXWdaCjR4/i/vvvx+jo + KNavX4/LL79c5feZxttvH8CDDzyg1ic3XrMRa9eubSU628E5k/CKdSdDNxggRogXJlBhIVe0jRkr1VkF + oCSv6WopzPMNhfAEhnca0xmgYf+dNE51vWURSLS4ZcsWPPLIIwrQpFNpLFy4EEuWLGlLjM0A/L3v/Se2 + bt2Knp4edOQ6MDQ0hIGBgcYbCeQNtWETtXgb0OVjkIE6Vi6gZBHMaSmlMEPWAV3/9HeIJFMBDNWrU8rE + yk5gXl1m654bVWVaZWKK1sVUWV4/cOBACD4s7Ni5E5fRAmYSQIll8aFDh9V3sYAdO3bg6quvbhGAWylB + dypBG6zuvHzvNV0kK1OYtHid1iA7RFIpAxXi/qAdPssOEfHRnp5e5YP5Qh49SfFpi2mO2Jx4Oqm3lpQi + ILM0AWfyRAtDauMYTVCgtnxWKAT/FHuHZW7bdqkxgnl/vO2KlUVIbJTzrdsX+SMj+6aqBej5Cfips9Sy + XrVM2lMm6wsThbzVYAktbfFo1ceQPTe0e9knODbuMP9TknprahFsHS9Pwjr4BnD+pS3XfCUAG1HRNeuQ + +CJbcR0nWIVKtA9e1QN7kKzmWxZeVSYgwzm7iNixQ0jOPU+9R6FB2SHaZlNlSxos0PTi8QDuyhaTw1MG + 9o662NgtVuC0bGKVkXErKOx+Ht61t6pFlHoByN4+cQXZC6iEO0sAlCpQwJdF/432LOhNTHp2FZVX/hdp + j1ZltOY56SkuMat4+ZcPAX3LqYA+ebMyf4HAzcOMmhJRH79CP5RDhkX7fnyfjnUdOq4f0KYzQLPUOenE + K8+gfORtZIbOqV0TULRixQo89dTTyqfPWbYMCxYsmFEAskS/fPk5eOmlHYoeuX9gcLDhnsrBvSxwfqPW + AJu1KT+lXXvr/Bje3b8Vu+46ir2DG7G4dx2ydAeDgE0Ld0zLh7il2vwivQApiiIhiKF2M3Ku7DBx7Rwd + 1/R7al+P47d4nRqipczR/Tjx9CPIfPovG67dfPMtyHXkcGRkBFdu2DCrAETrX/ziFzE4eBaKhQI+uvGj + KhvUGGT8mPrlFiTGDs2ItiVjvS9l4+5zTfz3kX34+ev7sdXYglzvKgz2rUZPbhlymUFihAzfZ8BMyyKi + Y6GPVj+QMLE0rWMlEd/qTg3npDx0G7aaeNQNNhtEfdrmtlTGdzDx2H0ofPAaZBevqBHU2ZnDLbfeMiPT + zaO/vx+33/75ttfKe3fAfvIHah3A0yIZTOdC1SANU/ZQzMJfLDJw01zZRzSCZ08exp59T2CXRwSZHEQ8 + NZdArw/mv3wgxfzuoY/po4fu28FUl0Sw6UD1AH21vVlpP9rcjnDPTs0W5BRNKn14D8Z+8C0kN22GSXR4 + Joc7dQL5H32Lwe3tGg7xwkUbP9yEEdAZkCP06ow/QzEXC/s0XNdnYIIx7UhlAm9VJnGwtAejBbrARzpL + 0zv0w66ni0ZDZ0xG2dWRUouRbdBEKAyJqN4zW3CClVj/TXdAj5+ZstivlpB/4J/g/uaR2v6x2jV/+tNT + dYpsjpDNlR5k/6pCqgKGyEUvH+7LAKsyUlZKgidOkL8xaBNMG4ZsNyvykNUbEU5zMqu3hHilCGfLnZhk + Jun82O3QU9n3xnxpCsWH7kH5gbugE9zMVmmHG9Yx5WgYlNI3QolN90wv/MtawmlUTLIYWnB05BQU1sK1 + thmG7NBgMVL5r38AJsfQcf0XYM5ZgN+5RyBt8pE3UXzwbhR/fh+h4dQpX+EGG+5Rcny1BJc4BezwyIvp + 1wW2GfiBxRvznvzJiqt2YpzKYtRDZL5y/2bgzV1IbbwN8Q9cBr2zD2hTMDVSRTA2fgz2S0+i+LN7UX11 + G03QiqreWYf4vdxToAtY9X/3NMMQXar+sK9NC7f+gXBnDcZpUkVvOsigKRM0f48e9onZy88+CmvfDiRW + XoTkmg0wlg5D718APZ1V2+XVcIkUqWHv2EE4v30RlRefQGXPdvhTJ6YJmZEL1CpBJ4xFkzSDCdLcbbbS + 10CnWhiBtotRdFWzpITZYN+NhqOWhkqIgJwmMNRcjLQSSGx/fAT2Mw+h/MITMHrPQnzOXBhdcwAVH2SS + PJyT1ProYfXpyZ/nRNvrZnxxHWMh47YfKKxElx2l0eQMPdg/qAWNHL/1dbtMMvi0oWurgrSCcHuer5a/ + rPDFstJihW0gOe/VgshpjrBp5xbJKA/r4L5gI7XsKI3ST61vX/fM7Lw3CMGvWWfwJ3NCc4kMiTBEANJG + j4VpU6FfX2GGp81xz9sMR7+jHuPV7wiTak/W3ZyaBQTX9dMirVUQ0/wFIVuruxYx007xft1t7VxPrVmG + +zPkM9oKIGRX5PCCvkXD0L3N5kXP4cC2tbiLir1jJro91RidFoBCW3VYPNJa8+9TjZn+3K3ldN37anm/ + 6X7Hn8YHXlPVHgmtqXS+62LyrqLQxdu9Tc/+gX4Fb1jVjiBd86cl7Qe7PIy6YN5SlPwexjHrOI33WSEG + ECIFDNVbaBvr2XXR9uBvpGvl8EUveMPb1uqb0cYS0oYXrrFPB5szv/Tx3oYdpkBhUvw9HeD21kHNR8zL + aOgHKEtYh82+q28iv8oiRJsZXXZooQZ5rdpkZ1rVv9+IMpb6zs8ca5qk/H1QjUJ/F3z9ac1wNovZ1z/7 + f1mjsGWG6Wp/AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Views/InitLanguage.Designer.cs b/Views/InitLanguage.Designer.cs new file mode 100644 index 000000000..220a9052f --- /dev/null +++ b/Views/InitLanguage.Designer.cs @@ -0,0 +1,125 @@ +namespace FallGuysStats { + partial class InitLanguage { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InitLanguage)); + this.picLanguageSelection = new System.Windows.Forms.PictureBox(); + this.cboLanguage = new MetroFramework.Controls.MetroComboBox(); + this.chkAutoGenerateProfile = new MetroFramework.Controls.MetroCheckBox(); + this.lblBackColor = new System.Windows.Forms.Label(); + this.btnLanguageSave = new MetroFramework.Controls.MetroButton(); + ((System.ComponentModel.ISupportInitialize)(this.picLanguageSelection)).BeginInit(); + this.SuspendLayout(); + // + // picLanguageSelection + // + this.picLanguageSelection.Image = global::FallGuysStats.Properties.Resources.language_icon; + this.picLanguageSelection.Location = new System.Drawing.Point(75, 75); + this.picLanguageSelection.Name = "picLanguageSelection"; + this.picLanguageSelection.Size = new System.Drawing.Size(32, 32); + this.picLanguageSelection.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picLanguageSelection.TabIndex = 0; + this.picLanguageSelection.TabStop = false; + // + // cboLanguage + // + this.cboLanguage.FormattingEnabled = true; + this.cboLanguage.ItemHeight = 23; + this.cboLanguage.Items.AddRange(new object[] { "🇺🇸 English", "🇫🇷 Français", "🇪🇸 Español", "🇰🇷 한국어", "🇯🇵 日本語", "🇨🇳 简体中文", "🇨🇳 繁體中文" }); + this.cboLanguage.Location = new System.Drawing.Point(120, 76); + this.cboLanguage.Name = "cboLanguage"; + this.cboLanguage.Size = new System.Drawing.Size(120, 29); + this.cboLanguage.TabIndex = 0; + this.cboLanguage.UseSelectable = true; + this.cboLanguage.SelectedIndexChanged += new System.EventHandler(this.cboLanguage_SelectedIndexChanged); + // + // chkAutoGenerateProfile + // + this.chkAutoGenerateProfile.AutoSize = true; + this.chkAutoGenerateProfile.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(0)))), ((int)(((byte)(182)))), ((int)(((byte)(254))))); + this.chkAutoGenerateProfile.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkAutoGenerateProfile.ForeColor = System.Drawing.Color.Teal; + this.chkAutoGenerateProfile.Location = new System.Drawing.Point(15, 153); + this.chkAutoGenerateProfile.Name = "chkAutoGenerateProfile"; + this.chkAutoGenerateProfile.Size = new System.Drawing.Size(142, 15); + this.chkAutoGenerateProfile.TabIndex = 2; + this.chkAutoGenerateProfile.Text = "Auto-generate profiles"; + this.chkAutoGenerateProfile.UseCustomBackColor = true; + this.chkAutoGenerateProfile.UseCustomForeColor = true; + this.chkAutoGenerateProfile.UseSelectable = true; + this.chkAutoGenerateProfile.CheckedChanged += new System.EventHandler(this.chkAutoGenerateProfile_CheckedChanged); + // + // lblBackColor + // + this.lblBackColor.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(0)))), ((int)(((byte)(182)))), ((int)(((byte)(254))))); + this.lblBackColor.Location = new System.Drawing.Point(0, 130); + this.lblBackColor.Name = "lblBackColor"; + this.lblBackColor.Size = new System.Drawing.Size(330, 55); + this.lblBackColor.TabIndex = 1; + // + // btnLanguageSave + // + this.btnLanguageSave.Location = new System.Drawing.Point(240, 146); + this.btnLanguageSave.Name = "btnLanguageSave"; + this.btnLanguageSave.Size = new System.Drawing.Size(75, 25); + this.btnLanguageSave.TabIndex = 2; + this.btnLanguageSave.Text = "Confirm"; + this.btnLanguageSave.UseSelectable = true; + this.btnLanguageSave.Click += new System.EventHandler(this.btnLanguageSave_Click); + // + // SelectLanguage + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(330, 185); + this.Controls.Add(this.picLanguageSelection); + this.Controls.Add(this.cboLanguage); + this.Controls.Add(this.chkAutoGenerateProfile); + this.Controls.Add(this.btnLanguageSave); + this.Controls.Add(this.lblBackColor); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "InitLanguage"; + this.Resizable = false; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.ShowInTaskbar = false; + this.Style = MetroFramework.MetroColorStyle.Teal; + this.Text = "Title"; + this.TopMost = true; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SelectLanguage_FormClosing); + this.Load += new System.EventHandler(this.SelectLanguage_Load); + ((System.ComponentModel.ISupportInitialize)(this.picLanguageSelection)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + private System.Windows.Forms.PictureBox picLanguageSelection; + private MetroFramework.Controls.MetroComboBox cboLanguage; + private MetroFramework.Controls.MetroCheckBox chkAutoGenerateProfile; + private System.Windows.Forms.Label lblBackColor; + private MetroFramework.Controls.MetroButton btnLanguageSave; + } +} \ No newline at end of file diff --git a/Views/InitLanguage.cs b/Views/InitLanguage.cs new file mode 100644 index 000000000..911ed4248 --- /dev/null +++ b/Views/InitLanguage.cs @@ -0,0 +1,51 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +namespace FallGuysStats { + public partial class InitLanguage : MetroFramework.Forms.MetroForm { + private readonly Language defaultLanguage; + public Language selectedLanguage; + public bool autoGenerateProfiles; + + public InitLanguage(string sysLang) { + this.defaultLanguage = string.Equals(sysLang, "fr", StringComparison.OrdinalIgnoreCase) ? Language.French : + string.Equals(sysLang, "es", StringComparison.OrdinalIgnoreCase) ? Language.Spanish : + string.Equals(sysLang, "ko", StringComparison.OrdinalIgnoreCase) ? Language.Korean : + string.Equals(sysLang, "ja", StringComparison.OrdinalIgnoreCase) ? Language.Japanese : + string.Equals(sysLang, "zh-chs", StringComparison.OrdinalIgnoreCase) ? Language.SimplifiedChinese : + string.Equals(sysLang, "zh-cht", StringComparison.OrdinalIgnoreCase) ? Language.TraditionalChinese : Language.English; + this.InitializeComponent(); + } + + private void SelectLanguage_Load(object sender, EventArgs e) { + this.cboLanguage.SelectedIndex = (int)this.defaultLanguage; + this.ChangeLanguage(this.defaultLanguage); + } + + private void cboLanguage_SelectedIndexChanged(object sender, EventArgs e) { + this.selectedLanguage = (Language)((ComboBox)sender).SelectedIndex; + this.ChangeLanguage(this.selectedLanguage); + } + + private void chkAutoGenerateProfile_CheckedChanged(object sender, EventArgs e) { + this.autoGenerateProfiles = ((CheckBox)sender).Checked; + } + + private void btnLanguageSave_Click(object sender, EventArgs e) { + this.DialogResult = DialogResult.OK; + this.Close(); + } + + private void SelectLanguage_FormClosing(object sender, EventArgs e) { + this.DialogResult = DialogResult.OK; + } + + private void ChangeLanguage(Language lang) { + this.Font = Overlay.GetMainFont(9, FontStyle.Regular, lang); + this.Text = Multilingual.GetWord("settings_select_language_title", lang); + this.chkAutoGenerateProfile.Text = Multilingual.GetWord("settings_auto_generate_profiles", lang); + this.btnLanguageSave.Text = Multilingual.GetWord("settings_select_language_button", lang); + this.Refresh(); + } + } +} \ No newline at end of file diff --git a/Views/InitLanguage.resx b/Views/InitLanguage.resx new file mode 100644 index 000000000..d98d3484a --- /dev/null +++ b/Views/InitLanguage.resx @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAB7GgAAFgAAAIlQTkcNChoKAAAADUlIRFIAAABAAAAAQAgGAAAAqmlx3gAAGkJJ + REFUeJy1W3mwleV5/33L2c89d+deWS6LIJFguIhUXKIGNDFoXNrGJGpTs9jkj6SSzjSTJtNpO9NpZzJx + grVOm2lTbTpZihq1WdRoopIUFxREBQOiIiAXLhfucvZv7e95v+8792z3QiJ9mY9zzre9z/78nud9r4nW + sYjHHTyu6Eoaw3+2Oo7emI1UrguVcgm6psH3fViVErr9Xnzi5KfRk+/g7T58XYPbmQYMHVrVhZ85Af2S + +6B1jPGy1jiLzyPD+9bzM+sFv5vGpKfj4VISRT0OQ4upeyrOODzPhrxtHGfj36b+HSPOApiaj2xMR9nx + kIubmLIdZKc8bHiigI5J72UXeBpw7rrv4YsO1M9h1v/Qdf3bnudtin5r6pyBWCqGSqmIRDrD3yaZLwc8 + cDKtYtee1zwfms2p+EkqAYvXfK+NjE93+HC9KmVnwPEcmEaCr3VrV12es7zg/ZQ9krqOeMJAgcyb8l33 + I1kPU2/DZHfTbTds33zfw2u/0iIATdN2kvnhxvlJgF2FU9HIk48qhQBNV+dnGnqxGgqDMtCc98C8eouI + AFV7it802A7nR3uBisyLjguXtNnygxxbrqesteGNGjZ95sbtV9z70NrV8jsSwGbeOEwLUA9ED6n/ybBu + GjDNmAgJrutSIGWe5nnDaCW5NqHWcu29DV/9ax60eiVsYdzlnDFaLMmFzd+a1uhaojv5zUvDn7nxxc33 + PnTBJhHAIgQ+j2QyCcuy4DhOOCUl6zqwKxa/lxsZJfNmPKFEOn1SC1ydn5rrt/XrBpY0Q82iNWg1pLLh + YY0mbgQiUAKOzD5gWGQtp0uOV7sm5+Jevch8GKRZlGhb4kb+Hbfd8OxmEUDN58vlcovJRC9rZkYEYzml + BnfwSbuXiMHnIUEQqfi0HVD8viFWxM9YAlp5CkhkeU70lhfygnm0JDVaCiYUJswsGdHo0zG6QIWartRI + Ebcs0exn8cgGJhzba9JXTFnA5TUGmv2Fh2iZ9NYCX8Oou10ygE/b0+RcmRYTj6vfNSeRYBhqT4unqX1O + zQAngdPXMyJRXrfkYdS06IuWKTQat+2UlfYMI64C42zBVehOxRi89VbJNLLoXy4CGG65K3qRrimzcSn5 + Uw3l+8KMOKWEZB6a1RgENdcKLKFSUAxrqCqB+T7J8G3FaLOlCbO6WIUhr3f5mGQdj9komKZBpRFbPCxJ + h0JDW2rlDnVl2Gx7PbqNDFnM/V6iUdpGLB6kI7v+ZqgUKIcnlmDy1XHeE0uhISCK5siEJozEJWboinEV + O4Qjzw/VRJ/Xk3BcZiFKyfMsXnKUUspTCYwd1jFWpVSINRJ9QyISRv9pOh2+QzBBe++YpqetALQQ7AT/ + 2kjY84KILMEnZgbEyuSCA/ic7ohwPHjELvBs1Ek8GGReBUDDJEO8SXdxbBT47VvA0KCNgX7ylXLIEhnW + aP5uKQgPnGffC0k8832eO8R3uIdQzX0d5tW3wtnwh+QmibaRVwsMpV2saCuAzq4uVKsWEoaDWFyicqML + SAD0AweFR5Dk00/VbwlITJO6G6Yfpe3IDUIqRKQEMERRFJJYQlkAA/7jwQQeeBxYOmSipxNYNmRg/uI4 + jvQx3Xa7SGV8HHw9ice+XcXNMQ0fX8bMkEzhkXcP4Z7vfxMTFKZ+1ceVAUUjaepMiRqzG92Oc1fKdqMi + 2gnAjMWUNpPJBHpynURWZN6utBWskqhYi5iu+LucIAyG25jC/JjA47jSPEMxrcRB/QsnCzFsfcnHVz7b + gY9c6uHYmIGjYxrePVHBW7tpB3S5bM7Atp+WcQnf/bX3ecgKyCLkHVroY6xYxneefADGhVfCy/UoOoJA + aCLbwYxDQQtpOoVRByRnEACDnph/qVRGiSnK4YQac61oVl1PJJUirWpFmbuCvqJ5pjyBv5qYv9Y0iwAm + IxYIiNHZp0BVDJBBee3eb+LEuI11q3zM6XMwp9fHecurmGLk96Z8jFs6KlNplE/oWJNj6aC5gYyrZaTJ + 6qqcjvTYUZQKk7A7e9U8hiBB4pkq07FOGg0GZ10s1m3UZIsAJOqbEsAYnGzbglulucemg4tYhwqAfgB0 + 9BKjtC0BygtqAbEETu4lY8rsBMwKs76RDF/AQOlF0dNXJDz1vI/Bfh3zBuhI4j6MDxqDn3wXv4/FKcCO + ChJdBt55m5CcETMe4sKiq+Eos6JjxsV8a4YlQbBKZl2+IyZxShCj1gyw2gigVCqhWCwGykkI9OWT5vRD + rm01PxLcW1cUiXB0CkIFQRmsJ8QMg9w97YPyrVCM4dcverj0fGoxPhHGDIk7wb0+BeZS4MLfORcY+NkO + HxeO6risW1NWsH1Kx0+OU9Nr18Lt6muIdI5kMaK+ctEPXtlmmIL/Reu2bYe0+yoOOPZ7LGT8emn7dcCl + TgM0yTcPmzjwbhlf/WyqznWiezVEuUhed/4GF+/ui+NrT1kYpkExFuL1io+3Fq+DdsPn4MRTbQGS1AAa + /d91puc2Y8FvkxUgMpmMSn1SB8iIxyJTciI6VBnsuU3ARqqOJFXjBDnGZwBUsUBQIV/uM0jNIPjwBRqe + 20WfTut4/1IbDSE8HAZBUJwuaXD+eI+DG75k49XVSex/2UHZ7sThebfAXXcD7P65inmxKoPzO3WWYBhB + BnJD4Utmk3jgMDYoFxDtixAiAYgbKAUxYBkUhknAEk9nVDkcZ+qx+GmLWQsPrtdgdp4IRM1HYgy9LVLT + wv8c18S2nQ7WvF9Hf48TpZWGG8VCdZAGPaEaIfF0ARd82MeaDTrG/R78a/F6TDrzkTZ8xMWSSU+Sn3kG + wAQZ18MawNf8SOaIM6ZUQpc1xdzjxO3VarWNinzVEJH0USkUkMx2BG8ImfIk+te7CifXq3yxnBPI6wdM + aQGK4VcdVc9kAUMQTJR2bNzAq/td3P6nKVQtCpmR2jBD4CTCcIKGCKMAma+EAM1TlzSVCcqqPI/SXkxq + BVplnoE7ZoZxpLkR5Qt5EhgNFV9Ml5LK5/Ntq0Cf0VZKY9f2VRUnmheteq7bcm+kWS0fFk1k1mfKqvgx + vHMygZePmdh1xMXb4xpO0sBK5LPsWBjJe/ju94Gf/MJE/4CO5YsTWH2uifPoEule4dQiwXbIR7M1Tf+W + JkhUGYp5S6co4UXlc6NlWRW3ZphmPeNaeHa6IRI8KExr9EHVECExkgalGaI57UoNTZXFR/w8npx6A4/9 + vII3mMvTtKKzO7NY1RnD/ME4ehImUqoU1ki4jlESdeBwFa/stvCT+wm8sj7OWWWg66IUzlphI5W1Vfnb + mMV8VT4I2SIAUyxA3AZak0JDBFrjb9prG9JgKpVS8SDKCCqwMYc7FbelJpCCKGFmWhoiI1oRD5R248HS + K3AzeXxwTgafX96DFVkPvbAQJ7iBMxkWPV7olDxSJGUgiTLfOep14+VxH7/YncfTvynAXajjgo1prFhH + v04Tc4TBUqdVZhggJ2wNtjRE3LoMID3CJnkZdAslLMut3dQgAIkDbp15h2EDOgGG6zRmALtSgUUfjCKa + pXv4hb0f90xtQzl7Ep9Y04FrBroxDyUYlRF4k5YCNm6kkHajkEecKh3ifAuzGWw8P4c3rU786PWTuH/z + FF5h8br+ljTmnyO1iavkVyRddlP2iDKB1nRWNUT0RgIaBOC28W1ph6czGvInx1quSRCUtttJvYK7C8/i + EXsnrntfCp9Z1Ikhdwp+vkgiXdTeeqo2obJUlr4Ctnjo+UksZ4D+xpCG63Ia/nmvgwf/Frjo1iTWXkUh + GF67zKlGH7ORGWsN7M0wYdZ+gMoAPMr58RY61Sft6QhNfvPEr7EnsR9/T6B+VaYEszAGz5u5Y3Pag9R6 + rDlEaavpbZvPNfDDEQPf/k4V48diWPWJeBh5a2kmeIzHeMXCWaT9VDKfvSFCAoqTJ4l1AvOXgGOrVBYE + FYva/avxJ1FNn8Tdw2ms0sfgFyx4Z7ohjCBkSBH0uQUa5qdj+MaPqzguRvAxi5F8Mqj3Eym4ZlDNVvnA + pGWf8r2zNkSCIBDk8YqnY+9JHftO0FWrQUQtuUUsSVZx98okVvrUut2ad1vefQqCZutvyjU9ncPG3gwB + zCT+/NERTL32dwx2ntS6sAYXwVh3JdzzLiQsTtRN2gSw6kZbAUg2EK6TMZ91eJr1+jiePKCxqPBwZZ+B + lYOGQuvv8PfGQR0r9CkCllObvBQvlhdUcFVpILlBV0kClvRdUoKsdYG/M4vBK+WVW244y8Q/EkfsHNuO + szvIPAPNzt0v4NGXHsPRKz4J/Y9uR3eqm4CopBoiDgOwbbe+t205LEMm6ehIs/QEfvmOhg4itbvOMzCc + sQlMg0rNk3LXt8n8LJ03ZT0aTjAejfFlRU7pJtIw01loTKVKMITgbqkAg1Vohmbexyq0nwpMaG2WQohD + 3Inj6r3Xdmk8JO+7aqLqWTpunCji67+6F3vihM83fhlJ6VgJ7CWtuu6jWU8tAtANPZyH+Z+ReN94DMUC + cOdKHWszVrgCIyPo/7XirDpaeRwrazhcYZrsHkTHmgswuHItkguWQe8eUC0tedorl+GdHEH5nb2YfG07 + 3n59B0Ymj2MBL/cn/JaCKvTMsFZEjR6KFuu7Pfz14hi+8Kv7oa38EOldqnBDFCebR4sAaiCDRUiZkfS1 + Q2Vcztp7ddZRzLcQ0ua7DGInvFnUMNE5F70br0fPZdchvmAp1ZpWy2oCrQWySizx1HLcSqTWrEf3R/8E + 1oE9GHvqYezb+jO633EsygjObwPV2whd6L+ky8Pqg8exY/tWuP2Lg5iG9itVZmTyEQYQwFOKQI9D+Ev0 + tLwPyuyjRSlbOjJaqzAiARfo4/uKfO/w5Vj6yS8hsXyN1KCqzE4kkvRLM4DSmjbdgRbL4rxWJotYZw8S + S1eha92H8e4P78befc9jWcarzRnNFX0KTQ7dLKEHFpGmGy2iCz3/7kHYtFqrorWszsuKmuhT1QIS9KQE + 9v0gusdIaFQai+mUXFWYKXMZs02VkubEW0GTH2p+X5nMXvVJzLtlE/TeQTKdQIbltFSemtZqh9E5UUac + 96o0RprMCz+M5LwlOHjfN/HGs/+DZWlHNUHqRR+59OGqiYGEiw4i0jKFUVS9zNB5tKAB4oRBUNCgVINW + 1Q0aIjKxEFmpVCKK1CFLS51pDS+zmDlm65gT87C7GMP7s9OLp6jTvAhpf9lE/MpPYf5tX4XR2YcsIW2S + vt6O8ZmGEC7PxJnKSvEVWPiFv8E7PH/wuYexOO21LFUKPhG49EZZZ5C28HpRx+tE6cbQ2fBNU5XO0w/4 + fK9ZK4jChoiDdDqtBKB2f4S9gUTMxAVL+vDcnlE8ftJUHdlDlNG6rvYp70jZhz28HkuoebOrH525HC0/ + ftqMNw+JQ9lsFsbCZVj42a/hzbERnHhrG/qTWmP84Y9uk7XIWEyVNz8ecbE/twiD6z4E/VVNwd+oQySK + MKn9atQQSSSTPGGiGHaB6odUTwtSZRydY+KeAxYu7kvg0k5fpafmzFeiURzvWoihT30ZZv/c98x8/UiR + Rm3pSsy9eROO3LkfOXeU1tloUV3ELCMEF9sOgWV4GvYtn0Z57iJorxVbhGVVHQIpQ3WoTdF2tdJ+8VPW + CAymlg/OAx6vGnh0pIKbB4Wp1gB4lC7Ssf7jSC1fjawEsjPEfDREUXPWbcDEJdfh+BPfxdxU4/xJVmX9 + rH/vHEnAu+lLwJV/TKBlqEXUZpexicbsMHo0NESCXSCo9QNKpSq/J9CVBBZ16bDyOuYn3GhJoOb7FQac + qe4hLLjsWma5LMFH8owyj3CuFLPDwEduwuFnf4o59lGYDVbgYyUzRbYji/yay+AkCeImWSoTnkegWAKh + FyHQ6Fz9JIlEvBb9ZThMjXa1DIeR9XjBwLyEjlwb8JyXhd7zLkaKeV7B6DO+PSYYwm/vuefjyPILUNz5 + U3Qm6lIiv8yjBQw4BUwcPYTqwuWouk3lsgQ9urVVV/Y3sBOlwmioVR1ZvGYSnaCXLOMENLDa0l9055SW + QAcLkEQ2p1Lo/+eId/Wic9UlmHrpUXSEDVLVheZH1mSlaFjYPXKwgb5oOJKmnMb03SCA1saopvYCEdeg + bFG6WcHdfsPap6A4K9WFzqHlzOFn1u/bDWE0t/wDGElkOfdkcCZ0yQTjwHwGQ4weQUwC3GkY4qz9gEQy + gUQqQT8q0Wx89CXl9kYJKhPL5BDvmaNiSLvhqfVEL1hzPI0h94oyjDa70GSkB4egpTpYGU6iPgwwuxOg + aTBYLGlElSmiz5iqbdp3sYNnZhkSDC3mN5OSlX5jd0xXGvfqsKjakseAEyNw0bXWdaCjR4/i/vvvx+jo + KNavX4/LL79c5feZxttvH8CDDzyg1ic3XrMRa9eubSU628E5k/CKdSdDNxggRogXJlBhIVe0jRkr1VkF + oCSv6WopzPMNhfAEhnca0xmgYf+dNE51vWURSLS4ZcsWPPLIIwrQpFNpLFy4EEuWLGlLjM0A/L3v/Se2 + bt2Knp4edOQ6MDQ0hIGBgcYbCeQNtWETtXgb0OVjkIE6Vi6gZBHMaSmlMEPWAV3/9HeIJFMBDNWrU8rE + yk5gXl1m654bVWVaZWKK1sVUWV4/cOBACD4s7Ni5E5fRAmYSQIll8aFDh9V3sYAdO3bg6quvbhGAWylB + dypBG6zuvHzvNV0kK1OYtHid1iA7RFIpAxXi/qAdPssOEfHRnp5e5YP5Qh49SfFpi2mO2Jx4Oqm3lpQi + ILM0AWfyRAtDauMYTVCgtnxWKAT/FHuHZW7bdqkxgnl/vO2KlUVIbJTzrdsX+SMj+6aqBej5Cfips9Sy + XrVM2lMm6wsThbzVYAktbfFo1ceQPTe0e9knODbuMP9TknprahFsHS9Pwjr4BnD+pS3XfCUAG1HRNeuQ + +CJbcR0nWIVKtA9e1QN7kKzmWxZeVSYgwzm7iNixQ0jOPU+9R6FB2SHaZlNlSxos0PTi8QDuyhaTw1MG + 9o662NgtVuC0bGKVkXErKOx+Ht61t6pFlHoByN4+cQXZC6iEO0sAlCpQwJdF/432LOhNTHp2FZVX/hdp + j1ZltOY56SkuMat4+ZcPAX3LqYA+ebMyf4HAzcOMmhJRH79CP5RDhkX7fnyfjnUdOq4f0KYzQLPUOenE + K8+gfORtZIbOqV0TULRixQo89dTTyqfPWbYMCxYsmFEAskS/fPk5eOmlHYoeuX9gcLDhnsrBvSxwfqPW + AJu1KT+lXXvr/Bje3b8Vu+46ir2DG7G4dx2ydAeDgE0Ld0zLh7il2vwivQApiiIhiKF2M3Ku7DBx7Rwd + 1/R7al+P47d4nRqipczR/Tjx9CPIfPovG67dfPMtyHXkcGRkBFdu2DCrAETrX/ziFzE4eBaKhQI+uvGj + KhvUGGT8mPrlFiTGDs2ItiVjvS9l4+5zTfz3kX34+ev7sdXYglzvKgz2rUZPbhlymUFihAzfZ8BMyyKi + Y6GPVj+QMLE0rWMlEd/qTg3npDx0G7aaeNQNNhtEfdrmtlTGdzDx2H0ofPAaZBevqBHU2ZnDLbfeMiPT + zaO/vx+33/75ttfKe3fAfvIHah3A0yIZTOdC1SANU/ZQzMJfLDJw01zZRzSCZ08exp59T2CXRwSZHEQ8 + NZdArw/mv3wgxfzuoY/po4fu28FUl0Sw6UD1AH21vVlpP9rcjnDPTs0W5BRNKn14D8Z+8C0kN22GSXR4 + Joc7dQL5H32Lwe3tGg7xwkUbP9yEEdAZkCP06ow/QzEXC/s0XNdnYIIx7UhlAm9VJnGwtAejBbrARzpL + 0zv0w66ni0ZDZ0xG2dWRUouRbdBEKAyJqN4zW3CClVj/TXdAj5+ZstivlpB/4J/g/uaR2v6x2jV/+tNT + dYpsjpDNlR5k/6pCqgKGyEUvH+7LAKsyUlZKgidOkL8xaBNMG4ZsNyvykNUbEU5zMqu3hHilCGfLnZhk + Jun82O3QU9n3xnxpCsWH7kH5gbugE9zMVmmHG9Yx5WgYlNI3QolN90wv/MtawmlUTLIYWnB05BQU1sK1 + thmG7NBgMVL5r38AJsfQcf0XYM5ZgN+5RyBt8pE3UXzwbhR/fh+h4dQpX+EGG+5Rcny1BJc4BezwyIvp + 1wW2GfiBxRvznvzJiqt2YpzKYtRDZL5y/2bgzV1IbbwN8Q9cBr2zD2hTMDVSRTA2fgz2S0+i+LN7UX11 + G03QiqreWYf4vdxToAtY9X/3NMMQXar+sK9NC7f+gXBnDcZpUkVvOsigKRM0f48e9onZy88+CmvfDiRW + XoTkmg0wlg5D718APZ1V2+XVcIkUqWHv2EE4v30RlRefQGXPdvhTJ6YJmZEL1CpBJ4xFkzSDCdLcbbbS + 10CnWhiBtotRdFWzpITZYN+NhqOWhkqIgJwmMNRcjLQSSGx/fAT2Mw+h/MITMHrPQnzOXBhdcwAVH2SS + PJyT1ProYfXpyZ/nRNvrZnxxHWMh47YfKKxElx2l0eQMPdg/qAWNHL/1dbtMMvi0oWurgrSCcHuer5a/ + rPDFstJihW0gOe/VgshpjrBp5xbJKA/r4L5gI7XsKI3ST61vX/fM7Lw3CMGvWWfwJ3NCc4kMiTBEANJG + j4VpU6FfX2GGp81xz9sMR7+jHuPV7wiTak/W3ZyaBQTX9dMirVUQ0/wFIVuruxYx007xft1t7VxPrVmG + +zPkM9oKIGRX5PCCvkXD0L3N5kXP4cC2tbiLir1jJro91RidFoBCW3VYPNJa8+9TjZn+3K3ldN37anm/ + 6X7Hn8YHXlPVHgmtqXS+62LyrqLQxdu9Tc/+gX4Fb1jVjiBd86cl7Qe7PIy6YN5SlPwexjHrOI33WSEG + ECIFDNVbaBvr2XXR9uBvpGvl8EUveMPb1uqb0cYS0oYXrrFPB5szv/Tx3oYdpkBhUvw9HeD21kHNR8zL + aOgHKEtYh82+q28iv8oiRJsZXXZooQZ5rdpkZ1rVv9+IMpb6zs8ca5qk/H1QjUJ/F3z9ac1wNovZ1z/7 + f1mjsGWG6Wp/AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Views/LeaderboardDisplay.Designer.cs b/Views/LeaderboardDisplay.Designer.cs new file mode 100644 index 000000000..916f00c95 --- /dev/null +++ b/Views/LeaderboardDisplay.Designer.cs @@ -0,0 +1,946 @@ +namespace FallGuysStats { + partial class LeaderboardDisplay { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LeaderboardDisplay)); + this.mtcTabControl = new MetroFramework.Controls.MetroTabControl(); + this.mtpLevelRankPage = new MetroFramework.Controls.MetroTabPage(); + this.mtpOverallRankPage = new MetroFramework.Controls.MetroTabPage(); + this.mtpSearchPlayersPage = new MetroFramework.Controls.MetroTabPage(); + this.mtpWeeklyCrownPage = new MetroFramework.Controls.MetroTabPage(); + this.mtbSearchPlayersText = new MetroFramework.Controls.MetroTextBox(); + this.mpsSpinner01 = new MetroFramework.Controls.MetroProgressSpinner(); + this.mpsSpinner02 = new MetroFramework.Controls.MetroProgressSpinner(); + this.mpsSpinner03 = new MetroFramework.Controls.MetroProgressSpinner(); + this.mpsSpinner04 = new MetroFramework.Controls.MetroProgressSpinner(); + this.mpsSpinner05 = new MetroFramework.Controls.MetroProgressSpinner(); + this.lblSearchDescription = new MetroFramework.Controls.MetroLabel(); + this.gridOverallRank = new FallGuysStats.Grid(); + this.gridOverallSummary = new FallGuysStats.Grid(); + this.gridLevelRank = new FallGuysStats.Grid(); + this.gridPlayerList = new FallGuysStats.Grid(); + this.gridPlayerDetails = new FallGuysStats.Grid(); + this.gridWeeklyCrown = new FallGuysStats.Grid(); + this.mlMyRank = new MetroFramework.Controls.MetroLink(); + this.mlVisitFallalytics = new MetroFramework.Controls.MetroLink(); + this.mlRefreshList = new MetroFramework.Controls.MetroLink(); + this.cboLevelList = new FallGuysStats.ImageComboBox(); + this.lblPagingInfo = new System.Windows.Forms.Label(); + this.mlLeftPagingButton = new MetroFramework.Controls.MetroLink(); + this.mlRightPagingButton = new MetroFramework.Controls.MetroLink(); + this.picPlayerInfo01 = new System.Windows.Forms.PictureBox(); + this.picPlayerInfo02 = new System.Windows.Forms.PictureBox(); + this.picPlayerInfo03 = new System.Windows.Forms.PictureBox(); + this.picPlayerInfo04 = new System.Windows.Forms.PictureBox(); + this.picPlayerInfo05 = new System.Windows.Forms.PictureBox(); + this.picPlayerInfo06 = new System.Windows.Forms.PictureBox(); + this.lblPlayerInfo01 = new MetroFramework.Controls.MetroLabel(); + this.lblPlayerInfo02 = new MetroFramework.Controls.MetroLabel(); + this.lblPlayerInfo03 = new MetroFramework.Controls.MetroLabel(); + this.lblPlayerInfo04 = new MetroFramework.Controls.MetroLabel(); + this.lblPlayerInfo05 = new MetroFramework.Controls.MetroLabel(); + this.lblPlayerInfo06 = new MetroFramework.Controls.MetroLabel(); + this.lblPlayerInfo07 = new MetroFramework.Controls.MetroLabel(); + this.lblPlayerInfo08 = new MetroFramework.Controls.MetroLabel(); + this.lblPlayerInfo09 = new MetroFramework.Controls.MetroLabel(); + this.lblPlayerInfo10 = new MetroFramework.Controls.MetroLabel(); + this.mtcTabControl.SuspendLayout(); + this.mtpLevelRankPage.SuspendLayout(); + this.mtpOverallRankPage.SuspendLayout(); + this.mtpSearchPlayersPage.SuspendLayout(); + this.mtpWeeklyCrownPage.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo01)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo02)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo03)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo04)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo05)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo06)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridOverallRank)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridOverallSummary)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridLevelRank)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridPlayerList)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridPlayerDetails)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridWeeklyCrown)).BeginInit(); + this.SuspendLayout(); + // + // mtcTabControl + // + this.mtcTabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.mtcTabControl.Controls.Add(this.mtpOverallRankPage); + this.mtcTabControl.Controls.Add(this.mtpLevelRankPage); + this.mtcTabControl.Controls.Add(this.mtpSearchPlayersPage); + this.mtcTabControl.Controls.Add(this.mtpWeeklyCrownPage); + this.mtcTabControl.FontSize = MetroFramework.MetroTabControlSize.Tall; + this.mtcTabControl.FontWeight = MetroFramework.MetroTabControlWeight.Regular; + this.mtcTabControl.Location = new System.Drawing.Point(6, 96); + this.mtcTabControl.Name = "mtcTabControl"; + this.mtcTabControl.SelectedIndex = 0; + this.mtcTabControl.Size = new System.Drawing.Size(1339, 809); + this.mtcTabControl.TabIndex = 6; + this.mtcTabControl.UseSelectable = true; + this.mtcTabControl.SelectedIndexChanged += new System.EventHandler(this.mtcTabControl_SelectedIndexChanged); + // + // mtpOverallRankPage + // + this.mtpOverallRankPage.Controls.Add(this.gridOverallRank); + this.mtpOverallRankPage.Controls.Add(this.gridOverallSummary); + this.mtpOverallRankPage.Controls.Add(this.mpsSpinner01); + this.mtpOverallRankPage.HorizontalScrollbarBarColor = true; + this.mtpOverallRankPage.HorizontalScrollbarHighlightOnWheel = false; + this.mtpOverallRankPage.HorizontalScrollbarSize = 9; + this.mtpOverallRankPage.Location = new System.Drawing.Point(4, 44); + this.mtpOverallRankPage.Name = "mtpOverallRankPage"; + this.mtpOverallRankPage.Size = new System.Drawing.Size(1331, 761); + this.mtpOverallRankPage.TabIndex = 0; + this.mtpOverallRankPage.Text = "Overall Rank"; + this.mtpOverallRankPage.VerticalScrollbarBarColor = true; + this.mtpOverallRankPage.VerticalScrollbarHighlightOnWheel = false; + this.mtpOverallRankPage.VerticalScrollbarSize = 12; + // + // mtpSearchPlayersPage + // + this.mtpSearchPlayersPage.Controls.Add(this.mtbSearchPlayersText); + this.mtpSearchPlayersPage.Controls.Add(this.picPlayerInfo01); + this.mtpSearchPlayersPage.Controls.Add(this.picPlayerInfo02); + this.mtpSearchPlayersPage.Controls.Add(this.picPlayerInfo03); + this.mtpSearchPlayersPage.Controls.Add(this.picPlayerInfo04); + this.mtpSearchPlayersPage.Controls.Add(this.picPlayerInfo05); + this.mtpSearchPlayersPage.Controls.Add(this.picPlayerInfo06); + this.mtpSearchPlayersPage.Controls.Add(this.lblPlayerInfo01); + this.mtpSearchPlayersPage.Controls.Add(this.lblPlayerInfo02); + this.mtpSearchPlayersPage.Controls.Add(this.lblPlayerInfo03); + this.mtpSearchPlayersPage.Controls.Add(this.lblPlayerInfo04); + this.mtpSearchPlayersPage.Controls.Add(this.lblPlayerInfo05); + this.mtpSearchPlayersPage.Controls.Add(this.lblPlayerInfo06); + this.mtpSearchPlayersPage.Controls.Add(this.lblPlayerInfo07); + this.mtpSearchPlayersPage.Controls.Add(this.lblPlayerInfo08); + this.mtpSearchPlayersPage.Controls.Add(this.lblPlayerInfo09); + this.mtpSearchPlayersPage.Controls.Add(this.lblPlayerInfo10); + this.mtpSearchPlayersPage.Controls.Add(this.mpsSpinner03); + this.mtpSearchPlayersPage.Controls.Add(this.mpsSpinner04); + this.mtpSearchPlayersPage.Controls.Add(this.gridPlayerList); + this.mtpSearchPlayersPage.Controls.Add(this.gridPlayerDetails); + this.mtpSearchPlayersPage.HorizontalScrollbarBarColor = true; + this.mtpSearchPlayersPage.HorizontalScrollbarHighlightOnWheel = false; + this.mtpSearchPlayersPage.HorizontalScrollbarSize = 9; + this.mtpSearchPlayersPage.Location = new System.Drawing.Point(4, 44); + this.mtpSearchPlayersPage.Name = "mtpSearchPlayersPage"; + this.mtpSearchPlayersPage.Size = new System.Drawing.Size(1331, 761); + this.mtpSearchPlayersPage.TabIndex = 0; + this.mtpSearchPlayersPage.Text = "Search for players"; + this.mtpSearchPlayersPage.VerticalScrollbarBarColor = true; + this.mtpSearchPlayersPage.VerticalScrollbarHighlightOnWheel = false; + this.mtpSearchPlayersPage.VerticalScrollbarSize = 12; + // + // mtbSearchPlayersText + // + this.mtbSearchPlayersText.FontSize = MetroFramework.MetroTextBoxSize.Tall; + this.mtbSearchPlayersText.Lines = new string[0]; + this.mtbSearchPlayersText.Location = new System.Drawing.Point(0, 0); + this.mtbSearchPlayersText.MaxLength = 30; + this.mtbSearchPlayersText.Name = "mtbSearchPlayersText"; + this.mtbSearchPlayersText.PasswordChar = '\0'; + this.mtbSearchPlayersText.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.mtbSearchPlayersText.SelectedText = ""; + this.mtbSearchPlayersText.SelectionLength = 0; + this.mtbSearchPlayersText.SelectionStart = 0; + this.mtbSearchPlayersText.ShortcutsEnabled = true; + this.mtbSearchPlayersText.Size = new System.Drawing.Size(1332, 32); + this.mtbSearchPlayersText.TabIndex = 1; + this.mtbSearchPlayersText.UseSelectable = true; + this.mtbSearchPlayersText.WaterMark = "🔎 My awesome nickname"; + this.mtbSearchPlayersText.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.mtbSearchPlayersText.WaterMarkFont = new System.Drawing.Font("Segoe UI", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.mtbSearchPlayersText.KeyDown += new System.Windows.Forms.KeyEventHandler(this.mtbSearchPlayersText_KeyDown); + // + // picPlayerInfo01 + // + this.picPlayerInfo01.BackColor = System.Drawing.Color.Transparent; + this.picPlayerInfo01.Image = Properties.Resources.steam_main_icon; + this.picPlayerInfo01.Location = new System.Drawing.Point(361, 5); + this.picPlayerInfo01.Name = "picPlayerInfo01"; + this.picPlayerInfo01.Size = new System.Drawing.Size(22, 22); + this.picPlayerInfo01.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPlayerInfo01.TabStop = false; + // + // picPlayerInfo02 + // + this.picPlayerInfo02.BackColor = System.Drawing.Color.Transparent; + this.picPlayerInfo02.Image = Properties.Resources.country_unknown_icon; + this.picPlayerInfo02.Location = new System.Drawing.Point(392, 2); + this.picPlayerInfo02.Name = "picPlayerInfo02"; + this.picPlayerInfo02.Size = new System.Drawing.Size(28, 28); + this.picPlayerInfo02.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPlayerInfo02.TabStop = false; + // + // picPlayerInfo03 + // + this.picPlayerInfo03.BackColor = System.Drawing.Color.Transparent; + this.picPlayerInfo03.Image = Properties.Resources.country_unknown_icon; + this.picPlayerInfo03.Location = new System.Drawing.Point(392, 5); + this.picPlayerInfo03.Name = "picPlayerInfo03"; + this.picPlayerInfo03.Size = new System.Drawing.Size(26, 22); + this.picPlayerInfo03.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPlayerInfo03.TabStop = false; + // + // picPlayerInfo04 + // + this.picPlayerInfo04.BackColor = System.Drawing.Color.Transparent; + this.picPlayerInfo04.Image = Properties.Resources.country_unknown_icon; + this.picPlayerInfo04.Location = new System.Drawing.Point(392, 31); + this.picPlayerInfo04.Name = "picPlayerInfo04"; + this.picPlayerInfo04.Size = new System.Drawing.Size(26, 22); + this.picPlayerInfo04.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPlayerInfo04.TabStop = false; + this.picPlayerInfo04.Visible = false; + // + // picPlayerInfo05 + // + this.picPlayerInfo05.BackColor = System.Drawing.Color.Transparent; + this.picPlayerInfo05.Image = Properties.Resources.crown_icon; + this.picPlayerInfo05.Location = new System.Drawing.Point(392, 31); + this.picPlayerInfo05.Name = "picPlayerInfo05"; + this.picPlayerInfo05.Size = new System.Drawing.Size(26, 22); + this.picPlayerInfo05.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPlayerInfo05.TabStop = false; + this.picPlayerInfo05.Visible = false; + // + // picPlayerInfo06 + // + this.picPlayerInfo06.BackColor = System.Drawing.Color.Transparent; + this.picPlayerInfo06.Image = Properties.Resources.shards_icon; + this.picPlayerInfo06.Location = new System.Drawing.Point(392, 31); + this.picPlayerInfo06.Name = "picPlayerInfo06"; + this.picPlayerInfo06.Size = new System.Drawing.Size(26, 22); + this.picPlayerInfo06.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPlayerInfo06.TabStop = false; + this.picPlayerInfo06.Visible = false; + // + // lblPlayerInfo01 + // + this.lblPlayerInfo01.AutoSize = true; + this.lblPlayerInfo01.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblPlayerInfo01.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPlayerInfo01.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblPlayerInfo01.Location = new System.Drawing.Point(425, 3); + this.lblPlayerInfo01.Name = "lblPlayerInfo01"; + this.lblPlayerInfo01.Size = new System.Drawing.Size(10, 32); + this.lblPlayerInfo01.TabIndex = 3; + this.lblPlayerInfo01.Text = "Nickname"; + this.lblPlayerInfo01.UseCustomForeColor = true; + // + // lblPlayerInfo02 + // + this.lblPlayerInfo02.AutoSize = true; + this.lblPlayerInfo02.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblPlayerInfo02.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPlayerInfo02.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblPlayerInfo02.Location = new System.Drawing.Point(425, 3); + this.lblPlayerInfo02.Name = "lblPlayerInfo02"; + this.lblPlayerInfo02.Size = new System.Drawing.Size(10, 32); + this.lblPlayerInfo02.TabIndex = 3; + this.lblPlayerInfo02.Text = "Overall Rank :"; + this.lblPlayerInfo02.UseCustomForeColor = true; + // + // lblPlayerInfo03 + // + this.lblPlayerInfo03.AutoSize = true; + this.lblPlayerInfo03.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblPlayerInfo03.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPlayerInfo03.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblPlayerInfo03.Location = new System.Drawing.Point(425, 3); + this.lblPlayerInfo03.Name = "lblPlayerInfo03"; + this.lblPlayerInfo03.Size = new System.Drawing.Size(10, 32); + this.lblPlayerInfo03.TabIndex = 3; + this.lblPlayerInfo03.Text = "1 (1000)"; + this.lblPlayerInfo03.UseCustomForeColor = true; + // + // lblPlayerInfo04 + // + this.lblPlayerInfo04.AutoSize = true; + this.lblPlayerInfo04.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblPlayerInfo04.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPlayerInfo04.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblPlayerInfo04.Location = new System.Drawing.Point(425, 3); + this.lblPlayerInfo04.Name = "lblPlayerInfo04"; + this.lblPlayerInfo04.Size = new System.Drawing.Size(10, 32); + this.lblPlayerInfo04.TabIndex = 3; + this.lblPlayerInfo04.Text = "Score : 1000"; + this.lblPlayerInfo04.UseCustomForeColor = true; + // + // lblPlayerInfo05 + // + this.lblPlayerInfo05.AutoSize = true; + this.lblPlayerInfo05.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblPlayerInfo05.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPlayerInfo05.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblPlayerInfo05.Location = new System.Drawing.Point(425, 3); + this.lblPlayerInfo05.Name = "lblPlayerInfo05"; + this.lblPlayerInfo05.Size = new System.Drawing.Size(10, 32); + this.lblPlayerInfo05.TabIndex = 3; + this.lblPlayerInfo05.Text = "WRs(*) : 1"; + this.lblPlayerInfo05.UseCustomForeColor = true; + // + // lblPlayerInfo06 + // + this.lblPlayerInfo06.AutoSize = true; + this.lblPlayerInfo06.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblPlayerInfo06.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPlayerInfo06.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblPlayerInfo06.Location = new System.Drawing.Point(425, 29); + this.lblPlayerInfo06.Name = "lblPlayerInfo06"; + this.lblPlayerInfo06.Size = new System.Drawing.Size(10, 32); + this.lblPlayerInfo06.TabIndex = 3; + this.lblPlayerInfo06.Text = "Crown League Rank :"; + this.lblPlayerInfo06.UseCustomForeColor = true; + this.lblPlayerInfo06.Visible = false; + // + // lblPlayerInfo07 + // + this.lblPlayerInfo07.AutoSize = true; + this.lblPlayerInfo07.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblPlayerInfo07.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPlayerInfo07.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblPlayerInfo07.Location = new System.Drawing.Point(425, 29); + this.lblPlayerInfo07.Name = "lblPlayerInfo07"; + this.lblPlayerInfo07.Size = new System.Drawing.Size(10, 32); + this.lblPlayerInfo07.TabIndex = 3; + this.lblPlayerInfo07.Text = "1 (1000)"; + this.lblPlayerInfo07.UseCustomForeColor = true; + this.lblPlayerInfo07.Visible = false; + // + // lblPlayerInfo08 + // + this.lblPlayerInfo08.AutoSize = true; + this.lblPlayerInfo08.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblPlayerInfo08.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPlayerInfo08.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblPlayerInfo08.Location = new System.Drawing.Point(425, 29); + this.lblPlayerInfo08.Name = "lblPlayerInfo08"; + this.lblPlayerInfo08.Size = new System.Drawing.Size(10, 32); + this.lblPlayerInfo08.TabIndex = 3; + this.lblPlayerInfo08.Text = "10,000"; + this.lblPlayerInfo08.UseCustomForeColor = true; + this.lblPlayerInfo08.Visible = false; + // + // lblPlayerInfo09 + // + this.lblPlayerInfo09.AutoSize = true; + this.lblPlayerInfo09.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblPlayerInfo09.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPlayerInfo09.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblPlayerInfo09.Location = new System.Drawing.Point(425, 29); + this.lblPlayerInfo09.Name = "lblPlayerInfo09"; + this.lblPlayerInfo09.Size = new System.Drawing.Size(10, 32); + this.lblPlayerInfo09.TabIndex = 3; + this.lblPlayerInfo09.Text = "100"; + this.lblPlayerInfo09.UseCustomForeColor = true; + this.lblPlayerInfo09.Visible = false; + // + // lblPlayerInfo10 + // + this.lblPlayerInfo10.AutoSize = true; + this.lblPlayerInfo10.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblPlayerInfo10.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPlayerInfo10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblPlayerInfo10.Location = new System.Drawing.Point(425, 29); + this.lblPlayerInfo10.Name = "lblPlayerInfo10"; + this.lblPlayerInfo10.Size = new System.Drawing.Size(10, 32); + this.lblPlayerInfo10.TabIndex = 3; + this.lblPlayerInfo10.Text = "1,000"; + this.lblPlayerInfo10.UseCustomForeColor = true; + this.lblPlayerInfo10.Visible = false; + // + // gridPlayerList + // + this.gridPlayerList.AllowUserToDeleteRows = false; + this.gridPlayerList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.gridPlayerList.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.gridPlayerList.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.LightGray; + dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.Cyan; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.gridPlayerList.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.gridPlayerList.ColumnHeadersHeight = 24; + this.gridPlayerList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.gridPlayerList.EnableHeadersVisualStyles = false; + this.gridPlayerList.Location = new System.Drawing.Point(0, 32); + this.gridPlayerList.MultiSelect = false; + this.gridPlayerList.Name = "gridPlayerList"; + this.gridPlayerList.ReadOnly = true; + this.gridPlayerList.RowHeadersVisible = false; + this.gridPlayerList.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.gridPlayerList.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.gridPlayerList.Size = new System.Drawing.Size(350, 746); + this.gridPlayerList.TabIndex = 2; + this.gridPlayerList.DataSourceChanged += new System.EventHandler(this.gridPlayerList_DataSourceChanged); + this.gridPlayerList.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridPlayerList_CellDoubleClick); + this.gridPlayerList.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridPlayerList_CellFormatting); + this.gridPlayerList.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.grid_CellMouseDown); + this.gridPlayerList.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.grid_CellMouseEnter); + this.gridPlayerList.CellMouseLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.grid_CellMouseLeave); + this.gridPlayerList.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridPlayerList_ColumnHeaderMouseClick); + this.gridPlayerList.SelectionChanged += new System.EventHandler(this.grid_SelectionChanged); + // + // gridPlayerDetails + // + this.gridPlayerDetails.AllowUserToDeleteRows = false; + this.gridPlayerDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.gridPlayerDetails.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.gridPlayerDetails.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.LightGray; + dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.Cyan; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.gridPlayerDetails.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.gridPlayerDetails.ColumnHeadersHeight = 24; + this.gridPlayerDetails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.gridPlayerDetails.EnableHeadersVisualStyles = false; + this.gridPlayerDetails.Location = new System.Drawing.Point(351, 32); + this.gridPlayerDetails.MultiSelect = false; + this.gridPlayerDetails.Name = "gridPlayerDetails"; + this.gridPlayerDetails.ReadOnly = true; + this.gridPlayerDetails.RowHeadersVisible = false; + this.gridPlayerDetails.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.gridPlayerDetails.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.gridPlayerDetails.Size = new System.Drawing.Size(980, 746); + this.gridPlayerDetails.TabIndex = 2; + this.gridPlayerDetails.DataSourceChanged += new System.EventHandler(this.gridPlayerDetails_DataSourceChanged); + this.gridPlayerDetails.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridPlayerDetails_CellDoubleClick); + this.gridPlayerDetails.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridPlayerDetails_CellFormatting); + this.gridPlayerDetails.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.grid_CellMouseDown); + this.gridPlayerDetails.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.grid_CellMouseEnter); + this.gridPlayerDetails.CellMouseLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.grid_CellMouseLeave); + this.gridPlayerDetails.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridPlayerDetails_ColumnHeaderMouseClick); + this.gridPlayerDetails.SelectionChanged += new System.EventHandler(this.grid_SelectionChanged); + // + // gridOverallRank + // + this.gridOverallRank.AllowUserToDeleteRows = false; + this.gridOverallRank.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.gridOverallRank.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.gridOverallRank.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.LightGray; + dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.Cyan; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.gridOverallRank.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.gridOverallRank.ColumnHeadersHeight = 24; + this.gridOverallRank.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.gridOverallRank.EnableHeadersVisualStyles = false; + this.gridOverallRank.Location = new System.Drawing.Point(0, 0); + this.gridOverallRank.MultiSelect = false; + this.gridOverallRank.Name = "gridOverallRank"; + this.gridOverallRank.ReadOnly = true; + this.gridOverallRank.RowHeadersVisible = false; + this.gridOverallRank.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.gridOverallRank.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + // this.gridOverallRank.Size = new System.Drawing.Size(1332, 768); + this.gridOverallRank.Size = new System.Drawing.Size(750, 768); + this.gridOverallRank.TabIndex = 2; + this.gridOverallRank.DataSourceChanged += new System.EventHandler(this.gridOverallRank_DataSourceChanged); + this.gridOverallRank.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridOverallRank_CellDoubleClick); + this.gridOverallRank.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridOverallRank_CellFormatting); + this.gridOverallRank.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.grid_CellMouseDown); + this.gridOverallRank.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.grid_CellMouseEnter); + this.gridOverallRank.CellMouseLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.grid_CellMouseLeave); + this.gridOverallRank.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridOverallRank_ColumnHeaderMouseClick); + this.gridOverallRank.SelectionChanged += new System.EventHandler(this.grid_SelectionChanged); + // + // gridOverallSummary + // + this.gridOverallSummary.AllowUserToDeleteRows = false; + this.gridOverallSummary.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.gridOverallSummary.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.gridOverallSummary.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.LightGray; + dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.Cyan; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.gridOverallSummary.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.gridOverallSummary.ColumnHeadersHeight = 24; + this.gridOverallSummary.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.gridOverallSummary.EnableHeadersVisualStyles = false; + this.gridOverallSummary.Location = new System.Drawing.Point(751, 0); + this.gridOverallSummary.MultiSelect = false; + this.gridOverallSummary.Name = "gridOverallSummary"; + this.gridOverallSummary.ReadOnly = true; + this.gridOverallSummary.RowHeadersVisible = false; + this.gridOverallSummary.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.gridOverallSummary.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.gridOverallSummary.Size = new System.Drawing.Size(580, 768); + this.gridOverallSummary.TabIndex = 2; + this.gridOverallSummary.DataSourceChanged += new System.EventHandler(this.gridOverallSummary_DataSourceChanged); + this.gridOverallSummary.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridOverallSummary_CellFormatting); + this.gridOverallSummary.SelectionChanged += new System.EventHandler(this.gridOverallSummary_SelectionChanged); + // + // mtpLevelRankPage + // + this.mtpLevelRankPage.Controls.Add(this.mpsSpinner02); + this.mtpLevelRankPage.Controls.Add(this.lblSearchDescription); + this.mtpLevelRankPage.Controls.Add(this.gridLevelRank); + this.mtpLevelRankPage.HorizontalScrollbarBarColor = true; + this.mtpLevelRankPage.HorizontalScrollbarHighlightOnWheel = false; + this.mtpLevelRankPage.HorizontalScrollbarSize = 9; + this.mtpLevelRankPage.Location = new System.Drawing.Point(4, 44); + this.mtpLevelRankPage.Name = "mtpLevelRankPage"; + this.mtpLevelRankPage.Size = new System.Drawing.Size(1331, 761); + this.mtpLevelRankPage.TabIndex = 0; + this.mtpLevelRankPage.Text = "Level Rank"; + this.mtpLevelRankPage.VerticalScrollbarBarColor = true; + this.mtpLevelRankPage.VerticalScrollbarHighlightOnWheel = false; + this.mtpLevelRankPage.VerticalScrollbarSize = 12; + // + // mpsSpinner01 + // + this.mpsSpinner01.BackColor = System.Drawing.Color.White; + this.mpsSpinner01.Location = new System.Drawing.Point(509, 344); + this.mpsSpinner01.Margin = new System.Windows.Forms.Padding(0); + this.mpsSpinner01.Maximum = 100; + this.mpsSpinner01.MaximumSize = new System.Drawing.Size(28, 28); + this.mpsSpinner01.MinimumSize = new System.Drawing.Size(28, 28); + this.mpsSpinner01.Name = "mpsSpinner01"; + this.mpsSpinner01.Size = new System.Drawing.Size(28, 28); + this.mpsSpinner01.Speed = 3F; + this.mpsSpinner01.Style = MetroFramework.MetroColorStyle.Teal; + this.mpsSpinner01.TabIndex = 4; + this.mpsSpinner01.UseCustomBackColor = true; + this.mpsSpinner01.UseSelectable = true; + this.mpsSpinner01.Value = 10; + this.mpsSpinner01.Visible = false; + // + // mpsSpinner02 + // + this.mpsSpinner02.BackColor = System.Drawing.Color.White; + this.mpsSpinner02.Location = new System.Drawing.Point(509, 344); + this.mpsSpinner02.Margin = new System.Windows.Forms.Padding(0); + this.mpsSpinner02.Maximum = 100; + this.mpsSpinner02.MaximumSize = new System.Drawing.Size(28, 28); + this.mpsSpinner02.MinimumSize = new System.Drawing.Size(28, 28); + this.mpsSpinner02.Name = "mpsSpinner02"; + this.mpsSpinner02.Size = new System.Drawing.Size(28, 28); + this.mpsSpinner02.Speed = 3F; + this.mpsSpinner02.Style = MetroFramework.MetroColorStyle.Teal; + this.mpsSpinner02.TabIndex = 4; + this.mpsSpinner02.UseCustomBackColor = true; + this.mpsSpinner02.UseSelectable = true; + this.mpsSpinner02.Value = 10; + this.mpsSpinner02.Visible = false; + // + // mpsSpinner03 + // + this.mpsSpinner03.BackColor = System.Drawing.Color.White; + this.mpsSpinner03.Location = new System.Drawing.Point(509, 344); + this.mpsSpinner03.Margin = new System.Windows.Forms.Padding(0); + this.mpsSpinner03.Maximum = 100; + this.mpsSpinner03.MaximumSize = new System.Drawing.Size(28, 28); + this.mpsSpinner03.MinimumSize = new System.Drawing.Size(28, 28); + this.mpsSpinner03.Name = "mpsSpinner03"; + this.mpsSpinner03.Size = new System.Drawing.Size(28, 28); + this.mpsSpinner03.Speed = 3F; + this.mpsSpinner03.Style = MetroFramework.MetroColorStyle.Teal; + this.mpsSpinner03.TabIndex = 4; + this.mpsSpinner03.UseCustomBackColor = true; + this.mpsSpinner03.UseSelectable = true; + this.mpsSpinner03.Value = 10; + this.mpsSpinner03.Visible = false; + // + // mpsSpinner04 + // + this.mpsSpinner04.BackColor = System.Drawing.Color.White; + this.mpsSpinner04.Location = new System.Drawing.Point(509, 344); + this.mpsSpinner04.Margin = new System.Windows.Forms.Padding(0); + this.mpsSpinner04.Maximum = 100; + this.mpsSpinner04.MaximumSize = new System.Drawing.Size(28, 28); + this.mpsSpinner04.MinimumSize = new System.Drawing.Size(28, 28); + this.mpsSpinner04.Name = "mpsSpinner04"; + this.mpsSpinner04.Size = new System.Drawing.Size(28, 28); + this.mpsSpinner04.Speed = 3F; + this.mpsSpinner04.Style = MetroFramework.MetroColorStyle.Teal; + this.mpsSpinner04.TabIndex = 4; + this.mpsSpinner04.UseCustomBackColor = true; + this.mpsSpinner04.UseSelectable = true; + this.mpsSpinner04.Value = 10; + this.mpsSpinner04.Visible = false; + // + // lblSearchDescription + // + this.lblSearchDescription.AutoSize = true; + this.lblSearchDescription.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblSearchDescription.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblSearchDescription.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(219))))); + this.lblSearchDescription.Location = new System.Drawing.Point(540, 344); + this.lblSearchDescription.Name = "lblSearchDescription"; + this.lblSearchDescription.Size = new System.Drawing.Size(139, 25); + this.lblSearchDescription.TabIndex = 3; + this.lblSearchDescription.Text = "Choose a round"; + this.lblSearchDescription.UseCustomForeColor = true; + this.lblSearchDescription.Visible = false; + // + // gridLevelRank + // + this.gridLevelRank.AllowUserToDeleteRows = false; + this.gridLevelRank.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.gridLevelRank.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.gridLevelRank.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.LightGray; + dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.Cyan; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.gridLevelRank.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.gridLevelRank.ColumnHeadersHeight = 24; + this.gridLevelRank.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.gridLevelRank.EnableHeadersVisualStyles = false; + this.gridLevelRank.Location = new System.Drawing.Point(0, 0); + this.gridLevelRank.MultiSelect = false; + this.gridLevelRank.Name = "gridLevelRank"; + this.gridLevelRank.ReadOnly = true; + this.gridLevelRank.RowHeadersVisible = false; + this.gridLevelRank.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.gridLevelRank.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.gridLevelRank.Size = new System.Drawing.Size(1332, 768); + this.gridLevelRank.TabIndex = 2; + this.gridLevelRank.DataSourceChanged += new System.EventHandler(this.gridLevelRank_DataSourceChanged); + this.gridLevelRank.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridLevelRank_CellDoubleClick); + this.gridLevelRank.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridLevelRank_CellFormatting); + this.gridLevelRank.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.grid_CellMouseDown); + this.gridLevelRank.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.grid_CellMouseEnter); + this.gridLevelRank.CellMouseLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.grid_CellMouseLeave); + this.gridLevelRank.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridLevelRank_ColumnHeaderMouseClick); + this.gridLevelRank.SelectionChanged += new System.EventHandler(this.grid_SelectionChanged); + // + // mtpWeeklyCrownPage + // + this.mtpWeeklyCrownPage.Controls.Add(this.mpsSpinner05); + this.mtpWeeklyCrownPage.Controls.Add(this.gridWeeklyCrown); + this.mtpWeeklyCrownPage.HorizontalScrollbarBarColor = true; + this.mtpWeeklyCrownPage.HorizontalScrollbarHighlightOnWheel = false; + this.mtpWeeklyCrownPage.HorizontalScrollbarSize = 9; + this.mtpWeeklyCrownPage.Location = new System.Drawing.Point(4, 44); + this.mtpWeeklyCrownPage.Name = "mtpWeeklyCrownPage"; + this.mtpWeeklyCrownPage.Size = new System.Drawing.Size(1331, 761); + this.mtpWeeklyCrownPage.TabIndex = 0; + this.mtpWeeklyCrownPage.Text = "Weekly Crown League"; + this.mtpWeeklyCrownPage.VerticalScrollbarBarColor = true; + this.mtpWeeklyCrownPage.VerticalScrollbarHighlightOnWheel = false; + this.mtpWeeklyCrownPage.VerticalScrollbarSize = 12; + // + // lblPagingInfo + // + this.lblPagingInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.lblPagingInfo.AutoSize = true; + this.lblPagingInfo.Location = new System.Drawing.Point(675, 63); + this.lblPagingInfo.Name = "lblPagingInfo"; + this.lblPagingInfo.Size = new System.Drawing.Size(31, 22); + this.lblPagingInfo.TabIndex = 3; + this.lblPagingInfo.Text = "Week 4, 2024"; + this.lblPagingInfo.Visible = false; + // + // mlLeftPagingButton + // + this.mlLeftPagingButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mlLeftPagingButton.AutoSize = true; + this.mlLeftPagingButton.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlLeftPagingButton.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlLeftPagingButton.Image = global::FallGuysStats.Properties.Resources.left_button_icon; + this.mlLeftPagingButton.ImageSize = 27; + this.mlLeftPagingButton.Location = new System.Drawing.Point(675, 67); + this.mlLeftPagingButton.Name = "mlLeftPagingButton"; + this.mlLeftPagingButton.Size = new System.Drawing.Size(29, 28); + this.mlLeftPagingButton.TabIndex = 7; + this.mlLeftPagingButton.UseSelectable = true; + this.mlLeftPagingButton.UseStyleColors = true; + this.mlLeftPagingButton.Visible = false; + this.mlLeftPagingButton.Click += new System.EventHandler(this.pagingButton_Click); + // + // mlRightPagingButton + // + this.mlRightPagingButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mlRightPagingButton.AutoSize = true; + this.mlRightPagingButton.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlRightPagingButton.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlRightPagingButton.Image = global::FallGuysStats.Properties.Resources.right_button_icon; + this.mlRightPagingButton.ImageSize = 27; + this.mlRightPagingButton.Location = new System.Drawing.Point(675, 67); + this.mlRightPagingButton.Name = "mlRightPagingButton"; + this.mlRightPagingButton.Size = new System.Drawing.Size(29, 28); + this.mlRightPagingButton.TabIndex = 7; + this.mlRightPagingButton.UseSelectable = true; + this.mlRightPagingButton.UseStyleColors = true; + this.mlRightPagingButton.Visible = false; + this.mlRightPagingButton.Click += new System.EventHandler(this.pagingButton_Click); + // + // mpsSpinner05 + // + this.mpsSpinner05.BackColor = System.Drawing.Color.White; + this.mpsSpinner05.Location = new System.Drawing.Point(509, 344); + this.mpsSpinner05.Margin = new System.Windows.Forms.Padding(0); + this.mpsSpinner05.Maximum = 100; + this.mpsSpinner05.MaximumSize = new System.Drawing.Size(28, 28); + this.mpsSpinner05.MinimumSize = new System.Drawing.Size(28, 28); + this.mpsSpinner05.Name = "mpsSpinner05"; + this.mpsSpinner05.Size = new System.Drawing.Size(28, 28); + this.mpsSpinner05.Speed = 3F; + this.mpsSpinner05.Style = MetroFramework.MetroColorStyle.Teal; + this.mpsSpinner05.TabIndex = 4; + this.mpsSpinner05.UseCustomBackColor = true; + this.mpsSpinner05.UseSelectable = true; + this.mpsSpinner05.Value = 10; + this.mpsSpinner05.Visible = false; + // + // gridWeeklyCrown + // + this.gridWeeklyCrown.AllowUserToDeleteRows = false; + this.gridWeeklyCrown.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.gridWeeklyCrown.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.gridWeeklyCrown.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.LightGray; + dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.Cyan; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.gridWeeklyCrown.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.gridWeeklyCrown.ColumnHeadersHeight = 24; + this.gridWeeklyCrown.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.gridWeeklyCrown.EnableHeadersVisualStyles = false; + this.gridWeeklyCrown.Location = new System.Drawing.Point(0, 0); + this.gridWeeklyCrown.MultiSelect = false; + this.gridWeeklyCrown.Name = "gridWeeklyCrown"; + this.gridWeeklyCrown.ReadOnly = true; + this.gridWeeklyCrown.RowHeadersVisible = false; + this.gridWeeklyCrown.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.gridWeeklyCrown.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.gridWeeklyCrown.Size = new System.Drawing.Size(1332, 768); + this.gridWeeklyCrown.TabIndex = 2; + this.gridWeeklyCrown.DataSourceChanged += new System.EventHandler(this.gridWeeklyCrown_DataSourceChanged); + this.gridWeeklyCrown.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridWeeklyCrown_CellDoubleClick); + this.gridWeeklyCrown.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridWeeklyCrown_CellFormatting); + this.gridWeeklyCrown.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.grid_CellMouseDown); + this.gridWeeklyCrown.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridWeeklyCrown_ColumnHeaderMouseClick); + this.gridWeeklyCrown.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.grid_CellMouseEnter); + this.gridWeeklyCrown.CellMouseLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.grid_CellMouseLeave); + this.gridWeeklyCrown.SelectionChanged += new System.EventHandler(this.grid_SelectionChanged); + // + // mlMyRank + // + this.mlMyRank.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mlMyRank.AutoSize = true; + this.mlMyRank.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlMyRank.FontSize = MetroFramework.MetroLinkSize.Tall; + this.mlMyRank.Image = global::FallGuysStats.Properties.Resources.medal_gold_grid_icon; + this.mlMyRank.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.mlMyRank.ImageSize = 29; + this.mlMyRank.Location = new System.Drawing.Point(902, 63); + this.mlMyRank.Name = "mlMyRank"; + this.mlMyRank.Size = new System.Drawing.Size(286, 28); + this.mlMyRank.TabIndex = 7; + this.mlMyRank.Text = "My Online Service Nickname"; + this.mlMyRank.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.mlMyRank.UseCustomBackColor = true; + this.mlMyRank.UseCustomForeColor = true; + this.mlMyRank.UseSelectable = true; + this.mlMyRank.UseStyleColors = true; + this.mlMyRank.Visible = false; + this.mlMyRank.Click += new System.EventHandler(this.link_Click); + this.mlMyRank.MouseEnter += new System.EventHandler(this.metroLink_MouseEnter); + this.mlMyRank.MouseLeave += new System.EventHandler(this.metroLink_MouseLeave); + // + // mlVisitFallalytics + // + this.mlVisitFallalytics.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mlVisitFallalytics.AutoSize = true; + this.mlVisitFallalytics.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlVisitFallalytics.FontSize = MetroFramework.MetroLinkSize.Tall; + this.mlVisitFallalytics.Image = global::FallGuysStats.Properties.Resources.fallalytics_icon; + this.mlVisitFallalytics.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.mlVisitFallalytics.ImageSize = 20; + this.mlVisitFallalytics.Location = new System.Drawing.Point(878, 34); + this.mlVisitFallalytics.Name = "mlVisitFallalytics"; + this.mlVisitFallalytics.Size = new System.Drawing.Size(310, 29); + this.mlVisitFallalytics.TabIndex = 7; + this.mlVisitFallalytics.Text = "See full rankings in FALLALYTICS"; + this.mlVisitFallalytics.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.mlVisitFallalytics.UseCustomBackColor = true; + this.mlVisitFallalytics.UseCustomForeColor = true; + this.mlVisitFallalytics.UseSelectable = true; + this.mlVisitFallalytics.UseStyleColors = true; + this.mlVisitFallalytics.Visible = false; + this.mlVisitFallalytics.Click += new System.EventHandler(this.link_Click); + this.mlVisitFallalytics.MouseEnter += new System.EventHandler(this.metroLink_MouseEnter); + this.mlVisitFallalytics.MouseLeave += new System.EventHandler(this.metroLink_MouseLeave); + // + // mlRefreshList + // + this.mlRefreshList.AutoSize = true; + this.mlRefreshList.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlRefreshList.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlRefreshList.Image = global::FallGuysStats.Properties.Resources.refresh_icon; + this.mlRefreshList.ImageSize = 27; + this.mlRefreshList.Location = new System.Drawing.Point(386, 63); + this.mlRefreshList.Name = "mlRefreshList"; + this.mlRefreshList.Size = new System.Drawing.Size(29, 28); + this.mlRefreshList.TabIndex = 7; + this.mlRefreshList.UseSelectable = true; + this.mlRefreshList.UseStyleColors = true; + this.mlRefreshList.Visible = false; + this.mlRefreshList.Click += new System.EventHandler(this.link_Click); + // + // cboRoundList + // + this.cboLevelList.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboLevelList.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; + this.cboLevelList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cboLevelList.FormattingEnabled = true; + this.cboLevelList.ItemHeight = 23; + this.cboLevelList.Location = new System.Drawing.Point(10, 67); + this.cboLevelList.MaxDropDownItems = 20; + this.cboLevelList.Name = "cboLevelList"; + this.cboLevelList.SelectedImage = null; + this.cboLevelList.SelectedName = ""; + this.cboLevelList.Size = new System.Drawing.Size(370, 29); + this.cboLevelList.TabIndex = 1; + this.cboLevelList.Theme = MetroFramework.MetroThemeStyle.Light; + this.cboLevelList.SelectedIndexChanged += new System.EventHandler(this.cboLevelList_SelectedIndexChanged); + // + // LeaderboardDisplay + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1350, 920); + this.Controls.Add(this.mtcTabControl); + this.Controls.Add(this.mlMyRank); + this.Controls.Add(this.mlVisitFallalytics); + this.Controls.Add(this.mlRefreshList); + this.Controls.Add(this.cboLevelList); + this.Controls.Add(this.lblPagingInfo); + this.Controls.Add(this.mlLeftPagingButton); + this.Controls.Add(this.mlRightPagingButton); + this.ForeColor = System.Drawing.Color.Black; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(1350, 1176); + this.MinimizeBox = true; + this.MinimumSize = new System.Drawing.Size(1350, 440); + this.Name = "LeaderboardDisplay"; + this.Padding = new System.Windows.Forms.Padding(23, 60, 23, 18); + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.Style = MetroFramework.MetroColorStyle.Teal; + this.Text = "Level Stats"; + this.Load += new System.EventHandler(this.LeaderboardDisplay_Load); + this.Shown += new System.EventHandler(this.LeaderboardDisplay_Shown); + this.Resize += new System.EventHandler(this.LeaderboardDisplay_Resize); + this.mtcTabControl.ResumeLayout(false); + this.mtpLevelRankPage.ResumeLayout(false); + this.mtpLevelRankPage.PerformLayout(); + this.mtpOverallRankPage.ResumeLayout(false); + this.mtpOverallRankPage.PerformLayout(); + this.mtpSearchPlayersPage.ResumeLayout(false); + this.mtpSearchPlayersPage.PerformLayout(); + this.mtpWeeklyCrownPage.ResumeLayout(false); + this.mtpWeeklyCrownPage.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo01)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo02)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo03)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo04)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo05)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPlayerInfo06)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridOverallRank)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridOverallSummary)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridLevelRank)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridPlayerList)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridPlayerDetails)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridWeeklyCrown)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + + private MetroFramework.Controls.MetroTabControl mtcTabControl; + private MetroFramework.Controls.MetroTabPage mtpLevelRankPage; + private MetroFramework.Controls.MetroTabPage mtpOverallRankPage; + private MetroFramework.Controls.MetroTabPage mtpSearchPlayersPage; + private MetroFramework.Controls.MetroTabPage mtpWeeklyCrownPage; + private MetroFramework.Controls.MetroTextBox mtbSearchPlayersText; + private MetroFramework.Controls.MetroProgressSpinner mpsSpinner01; + private MetroFramework.Controls.MetroProgressSpinner mpsSpinner02; + private MetroFramework.Controls.MetroProgressSpinner mpsSpinner03; + private MetroFramework.Controls.MetroProgressSpinner mpsSpinner04; + private MetroFramework.Controls.MetroProgressSpinner mpsSpinner05; + private MetroFramework.Controls.MetroLabel lblSearchDescription; + private MetroFramework.Controls.MetroLink mlMyRank; + private MetroFramework.Controls.MetroLink mlVisitFallalytics; + private MetroFramework.Controls.MetroLink mlRefreshList; + private FallGuysStats.ImageComboBox cboLevelList; + private System.Windows.Forms.Label lblPagingInfo; + private MetroFramework.Controls.MetroLink mlLeftPagingButton; + private MetroFramework.Controls.MetroLink mlRightPagingButton; + private System.Windows.Forms.PictureBox picPlayerInfo01; + private System.Windows.Forms.PictureBox picPlayerInfo02; + private System.Windows.Forms.PictureBox picPlayerInfo03; + private System.Windows.Forms.PictureBox picPlayerInfo04; + private System.Windows.Forms.PictureBox picPlayerInfo05; + private System.Windows.Forms.PictureBox picPlayerInfo06; + private MetroFramework.Controls.MetroLabel lblPlayerInfo01; + private MetroFramework.Controls.MetroLabel lblPlayerInfo02; + private MetroFramework.Controls.MetroLabel lblPlayerInfo03; + private MetroFramework.Controls.MetroLabel lblPlayerInfo04; + private MetroFramework.Controls.MetroLabel lblPlayerInfo05; + private MetroFramework.Controls.MetroLabel lblPlayerInfo06; + private MetroFramework.Controls.MetroLabel lblPlayerInfo07; + private MetroFramework.Controls.MetroLabel lblPlayerInfo08; + private MetroFramework.Controls.MetroLabel lblPlayerInfo09; + private MetroFramework.Controls.MetroLabel lblPlayerInfo10; + private FallGuysStats.Grid gridOverallRank; + private FallGuysStats.Grid gridOverallSummary; + private FallGuysStats.Grid gridLevelRank; + private FallGuysStats.Grid gridPlayerList; + private FallGuysStats.Grid gridPlayerDetails; + private FallGuysStats.Grid gridWeeklyCrown; + } +} \ No newline at end of file diff --git a/Views/LeaderboardDisplay.cs b/Views/LeaderboardDisplay.cs new file mode 100644 index 000000000..9724b34da --- /dev/null +++ b/Views/LeaderboardDisplay.cs @@ -0,0 +1,2075 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.Linq; +using System.Net.Http; +using System.Text.Json; +using System.Threading.Tasks; +using System.Windows.Forms; +using MetroFramework; +using MetroFramework.Controls; + +namespace FallGuysStats { + public partial class LeaderboardDisplay : MetroFramework.Forms.MetroForm { + public Stats StatsForm { get; set; } + readonly DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle(); + readonly DataGridViewCellStyle dataGridViewCellStyle2 = new DataGridViewCellStyle(); + private readonly string AVAILABLE_LEVEL_API_URL = "https://data.fallalytics.com/api/leaderboards"; + private readonly string LEADERBOARD_API_URL = "https://data.fallalytics.com/api/leaderboard"; + private readonly string PLAYER_LIST_API_URL = "https://data.fallalytics.com/api/user-search?q="; + private readonly string PLAYER_DETAILS_API_URL = "https://data.fallalytics.com/api/user-stats?user="; + private string levelKey = String.Empty; + private int totalPages; //, currentPage, totalHeight; + private int totalLevelPlayers, myLevelRank = -1, myOverallRank = -1, myWeeklyCrownRank = -1; + private DateTime refreshTime; + private List availableLevelList; + private List levelRankList; + private readonly List levelRankNodata = new List(); + private List overallRankList; + private readonly List overallRankNodata = new List(); + private List overallSummary; + private readonly List overallSummaryNodata = new List(); + private List searchResult; + private readonly List searchResultNodata = new List(); + private List playerDetails; + private readonly List playerDetailsNodata = new List(); + private PlayerStats.SpeedrunRank? speedrunRank; + private PlayerStats.CrownLeagueRank? crownLeagueRank; + private List weeklyCrownList; + private readonly List weeklyCrownNodata = new List(); + private bool isSearchCompleted; + private readonly Timer spinnerTransition = new Timer { Interval = 1 }; + private bool isIncreasing; + private MetroProgressSpinner targetSpinner; + private string currentUserId; + private bool isHeaderClicked; + + public LeaderboardDisplay() { + this.InitializeComponent(); + this.Opacity = 0; + this.cboLevelList.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + } + + private void spinnerTransition_Tick(object sender, EventArgs e) { + if (this.targetSpinner == null) return; + if (this.isIncreasing) { + this.targetSpinner.Speed = 3.2F; + if (this.targetSpinner.Value < 90) { + this.targetSpinner.Value++; + } else { + this.isIncreasing = false; + } + } else { + this.targetSpinner.Speed = 2.7F; + if (this.targetSpinner.Value > 10) { + this.targetSpinner.Value--; + } else { + this.isIncreasing = true; + } + } + } + + private void LeaderboardDisplay_Load(object sender, EventArgs e) { + this.spinnerTransition.Tick += this.spinnerTransition_Tick; + this.SetTheme(Stats.CurrentTheme); + this.SetLevelList(); + + this.mlVisitFallalytics.Text = Multilingual.GetWord("leaderboard_see_full_rankings_in_fallalytics"); + this.mtpOverallRankPage.Text = Multilingual.GetWord("leaderboard_overall_rank"); + this.mtpLevelRankPage.Text = $@"🕹️ {Multilingual.GetWord("leaderboard_choose_a_round")}"; + this.mtpSearchPlayersPage.Text = Multilingual.GetWord("leaderboard_search_players"); + this.mtpWeeklyCrownPage.Text = Multilingual.GetWord("leaderboard_weekly_crown_league"); + this.mtbSearchPlayersText.WaterMark = Multilingual.GetWord("leaderboard_search_players_WaterMark"); + this.lblSearchDescription.Text = Multilingual.GetWord("leaderboard_choose_a_round"); + + this.gridLevelRank.DataSource = this.levelRankNodata; + this.gridOverallRank.DataSource = this.overallRankNodata; + this.gridOverallSummary.DataSource = this.overallSummaryNodata; + this.gridPlayerList.DataSource = this.searchResultNodata; + this.gridPlayerDetails.DataSource = this.playerDetailsNodata; + this.gridWeeklyCrown.DataSource = this.weeklyCrownNodata; + this.overallRankList = this.StatsForm.leaderboardOverallRankList; + if (this.overallRankList == null && (DateTime.UtcNow - this.StatsForm.overallRankLoadTime).TotalHours >= 12) { + this.mpsSpinner01.Visible = true; + this.mpsSpinner01.BringToFront(); + this.spinnerTransition.Start(); + this.targetSpinner = this.mpsSpinner01; + this.cboLevelList.Enabled = false; + this.mtcTabControl.Enabled = false; + Task.Run(() => this.StatsForm.InitializeOverallRankList()).ContinueWith(prevTask => { + this.overallRankList = this.StatsForm.leaderboardOverallRankList; + this.Invoke((MethodInvoker)delegate { + this.mtpOverallRankPage.Text = $@"{Multilingual.GetWord("leaderboard_overall_rank")} ({this.StatsForm.totalOverallRankPlayers:N0}{Multilingual.GetWord("level_detail_creative_player_suffix")})"; + int index = this.overallRankList?.FindIndex(r => string.Equals(Stats.OnlineServiceNickname, r.onlineServiceNickname) && int.TryParse(r.onlineServiceType, out int type) && type == (int)Stats.OnlineServiceType) ?? -1; + this.myOverallRank = index + 1; + if (this.mtcTabControl.SelectedIndex == 0 && index != -1) { + this.mlMyRank.Visible = true; + this.mlMyRank.Text = $@"{Utils.AppendOrdinal(this.myOverallRank)} {Stats.OnlineServiceNickname}"; + this.mlMyRank.Location = new Point(this.Width - this.mlMyRank.Width - 5, this.mtcTabControl.Top + (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? -20 : 5)); + this.mlVisitFallalytics.Location = new Point(this.Width - this.mlVisitFallalytics.Width - 5, this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3); + + if (this.myOverallRank == 1) { + this.mlMyRank.Image = Properties.Resources.medal_gold_1st_grid_icon; + } else { + double percentage = ((double)(this.myOverallRank - 1) / (Math.Min(1000, this.StatsForm.totalOverallRankPlayers) - 1)) * 100; + if (percentage <= 20) { + if (this.myOverallRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_silver_2nd_grid_icon; + } else if (this.myOverallRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_silver_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_silver_grid_icon; + } + } else if (percentage <= 50) { + if (this.myOverallRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_2nd_grid_icon; + } else if (this.myOverallRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_bronze_grid_icon; + } + } else if (percentage <= 100) { + this.mlMyRank.Image = Properties.Resources.medal_pink_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_eliminated_grid_icon; + } + } + } + this.mpsSpinner01.Visible = false; + this.spinnerTransition.Stop(); + // this.targetSpinner = null; + this.gridOverallRank.DataSource = prevTask.Result ? this.overallRankList : this.overallRankNodata; + this.gridOverallRank.ClearSelection(); + if (!prevTask.Result) this.overallRankList = null; + this.overallSummary = this.overallRankList?.Where(o => !o.isAnonymous && !string.IsNullOrEmpty(o.country)) + .GroupBy(o => o.country) + .Select(g => new OverallSummary { + country = g.Key, players = g.Count() + , gold = g.Count(o => o.rank == 1) + , silver = g.Count(o => (((double)(o.rank - 1) / (Math.Min(1000, this.StatsForm.totalOverallRankPlayers) - 1)) * 100) < 20) + , bronze = g.Count(o => (((double)(o.rank - 1) / (Math.Min(1000, this.StatsForm.totalOverallRankPlayers) - 1)) * 100) < 50) + , pink = g.Count(o => (((double)(o.rank - 1) / (Math.Min(1000, this.StatsForm.totalOverallRankPlayers) - 1)) * 100) >= 50) + }) + .OrderByDescending(s => s.gold) + .ThenByDescending(s => s.silver) + .ThenByDescending(s => s.bronze) + .ThenByDescending(s => s.pink) + .ThenByDescending(s => s.players) + .ThenBy(s => s.country).ToList(); + int weight = 0; + if (this.overallSummary.Any()) { + for (int i = 0; i < this.overallSummary.Count; i++) { + OverallSummary current = this.overallSummary[i]; + if (current.gold == 0 && current.silver == 0 && current.bronze == 0) { + break; + } + + if (i > 0) { + OverallSummary previous = this.overallSummary[i - 1]; + if (previous.gold == current.gold && previous.silver == current.silver && previous.bronze == current.bronze) { + current.rank = previous.rank; + weight++; + } else { + current.rank = previous.rank + 1 + weight; + weight = 0; + } + } else { + current.rank = 1; + } + this.overallSummary[i] = current; + } + } + this.gridOverallSummary.DataSource = prevTask.Result ? this.overallSummary : this.overallSummaryNodata; + + if (index != -1) { + int displayedRowCount = this.gridOverallRank.DisplayedRowCount(false); + int firstDisplayedScrollingRowIndex = index - (displayedRowCount / 2); + this.gridOverallRank.FirstDisplayedScrollingRowIndex = firstDisplayedScrollingRowIndex < 0 ? 0 : firstDisplayedScrollingRowIndex; + } + this.mtcTabControl.Enabled = true; + this.cboLevelList.Enabled = true; + }); + }); + } else { + this.mpsSpinner01.Visible = false; + this.spinnerTransition.Stop(); + // this.targetSpinner = null; + this.mtpOverallRankPage.Text = $@"{Multilingual.GetWord("leaderboard_overall_rank")} ({this.StatsForm.totalOverallRankPlayers:N0}{Multilingual.GetWord("level_detail_creative_player_suffix")})"; + this.gridOverallRank.DataSource = this.overallRankList; + this.gridOverallRank.ClearSelection(); + this.overallSummary = this.overallRankList? + .Where(o => !o.isAnonymous && !string.IsNullOrEmpty(o.country)) + .GroupBy(o => o.country) + .Select(g => new OverallSummary { + country = g.Key, players = g.Count() + , gold = g.Count(o => o.rank == 1) + , silver = g.Count(o => (((double)(o.rank - 1) / (Math.Min(1000, this.StatsForm.totalOverallRankPlayers) - 1)) * 100) < 20) + , bronze = g.Count(o => (((double)(o.rank - 1) / (Math.Min(1000, this.StatsForm.totalOverallRankPlayers) - 1)) * 100) < 50) + , pink = g.Count(o => (((double)(o.rank - 1) / (Math.Min(1000, this.StatsForm.totalOverallRankPlayers) - 1)) * 100) >= 50) + }) + .OrderByDescending(s => s.gold) + .ThenByDescending(s => s.silver) + .ThenByDescending(s => s.bronze) + .ThenByDescending(s => s.pink) + .ThenByDescending(s => s.players) + .ThenBy(s => s.country).ToList(); + int weight = 0; + for (int i = 0; i < this.overallSummary.Count; i++) { + OverallSummary current = this.overallSummary[i]; + if (current.gold == 0 && current.silver == 0 &¤t.bronze == 0) { + break; + } + + if (i > 0) { + OverallSummary previous = this.overallSummary[i - 1]; + if (previous.gold == current.gold && previous.silver == current.silver && previous.bronze == current.bronze) { + current.rank = previous.rank; + weight++; + } else { + current.rank = previous.rank + 1 + weight; + weight = 0; + } + } else { + current.rank = 1; + } + this.overallSummary[i] = current; + } + this.gridOverallSummary.DataSource = this.overallSummary; + } + } + + private void LeaderboardDisplay_Shown(object sender, EventArgs e) { + this.Opacity = 1; + int index = this.overallRankList?.FindIndex(r => string.Equals(Stats.OnlineServiceNickname, r.onlineServiceNickname) && int.TryParse(r.onlineServiceType, out int type) && type == (int)Stats.OnlineServiceType) ?? -1; + if (index != -1) { + this.mlMyRank.Text = $@"{Utils.AppendOrdinal(index + 1)} {Stats.OnlineServiceNickname}"; + this.mlMyRank.Location = new Point(this.Width - this.mlMyRank.Width - 5, this.mtcTabControl.Top + (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? -20 : 5)); + this.mlMyRank.Visible = true; + int displayedRowCount = this.gridOverallRank.DisplayedRowCount(false); + int firstDisplayedScrollingRowIndex = index - (displayedRowCount / 2); + this.gridOverallRank.FirstDisplayedScrollingRowIndex = firstDisplayedScrollingRowIndex < 0 ? 0 : firstDisplayedScrollingRowIndex; + this.myOverallRank = index + 1; + + if (this.myOverallRank == 1) { + this.mlMyRank.Image = Properties.Resources.medal_gold_1st_grid_icon; + } else { + double percentage = ((double)(this.myOverallRank - 1) / (Math.Min(1000, this.StatsForm.totalOverallRankPlayers) - 1)) * 100; + if (percentage <= 20) { + if (this.myOverallRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_silver_2nd_grid_icon; + } else if (this.myOverallRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_silver_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_silver_grid_icon; + } + } else if (percentage <= 50) { + if (this.myOverallRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_2nd_grid_icon; + } else if (this.myOverallRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_bronze_grid_icon; + } + } else if (percentage <= 100) { + this.mlMyRank.Image = Properties.Resources.medal_pink_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_eliminated_grid_icon; + } + } + } + + this.mlVisitFallalytics.Location = new Point(this.Width - this.mlVisitFallalytics.Width - 5, index != -1 ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : this.mtcTabControl.Top + 5)); + this.mlVisitFallalytics.Visible = true; + } + + private void LeaderboardDisplay_Resize(object sender, EventArgs e) { + this.mpsSpinner01.Location = new Point((this.gridOverallRank.Width - this.mpsSpinner01.Width) / 2, (this.gridOverallRank.Height - this.mpsSpinner01.Height) / 2); + this.mpsSpinner02.Location = new Point((this.gridLevelRank.Width - this.mpsSpinner02.Width) / 2, (this.gridLevelRank.Height - this.mpsSpinner02.Height) / 2); + this.mpsSpinner03.Location = new Point((this.gridPlayerList.Width - this.mpsSpinner03.Width) / 2, (this.gridPlayerList.Height - this.mpsSpinner03.Height) / 2); + this.mpsSpinner04.Location = new Point(this.gridPlayerDetails.Left + ((this.gridPlayerDetails.Width - this.mpsSpinner04.Width) / 2), (this.gridPlayerDetails.Height - this.mpsSpinner04.Height) / 2); + this.mpsSpinner05.Location = new Point((this.gridWeeklyCrown.Width - this.mpsSpinner05.Width) / 2, (this.gridWeeklyCrown.Height - this.mpsSpinner05.Height) / 2); + this.lblSearchDescription.Location = new Point((this.gridLevelRank.Width - this.lblSearchDescription.Width) / 2, (this.gridLevelRank.Height - this.lblSearchDescription.Height) / 2); + } + + private void SetTheme(MetroThemeStyle theme) { + this.SuspendLayout(); + foreach (Control c1 in Controls) { + if (c1 is MetroLink ml1) { + if (ml1.Equals(this.mlMyRank)) { + ml1.ForeColor = theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(Color.Fuchsia, 0.6f) : Utils.GetColorBrightnessAdjustment(Color.GreenYellow, 0.5f); + } else if (ml1.Equals(this.mlVisitFallalytics)) { + ml1.ForeColor = Utils.GetColorBrightnessAdjustment(Color.FromArgb(0, 174, 219), 0.6f); + } else { + ml1.Theme = theme; + } + ml1.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + ml1.BringToFront(); + } else if (c1 is Label lb1) { + lb1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (c1 is ImageComboBox icb1) { + icb1.Theme = theme; + icb1.BringToFront(); + } else if (c1 is MetroTabControl mtc1) { + mtc1.Theme = theme; + foreach (Control c2 in mtc1.Controls) { + if (c2 is MetroTabPage mtp2) { + mtp2.Theme = theme; + foreach (Control c3 in mtp2.Controls) { + if (c3 is Grid g3) { + g3.Theme = theme; + g3.BackgroundColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + g3.ColumnHeadersDefaultCellStyle = this.dataGridViewCellStyle1; + g3.DefaultCellStyle = this.dataGridViewCellStyle2; + g3.RowTemplate.Height = 32; + g3.SetContextMenuTheme(); + } else if (c3 is MetroTextBox mtb3) { + mtb3.Theme = theme; + } else if (c3 is MetroLabel mlb3) { + mlb3.Theme = theme; + mlb3.ForeColor = theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(Color.Fuchsia, 0.8f) : Color.GreenYellow; + } else if (c3 is MetroProgressSpinner mps3) { + mps3.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + } + } + } + } + } + } + + this.dataGridViewCellStyle1.Font = Overlay.GetMainFont(14); + this.dataGridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft; + this.dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.dataGridViewCellStyle1.BackColor = theme == MetroThemeStyle.Light ? Color.LightGray : Color.FromArgb(2, 2, 2); + this.dataGridViewCellStyle1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.dataGridViewCellStyle1.SelectionBackColor = theme == MetroThemeStyle.Light ? Color.LightGray : Color.FromArgb(2, 2, 2); + this.dataGridViewCellStyle1.SelectionForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + + this.dataGridViewCellStyle2.Font = Overlay.GetMainFont(16); + this.dataGridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + this.dataGridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.dataGridViewCellStyle2.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(49, 51, 56); + this.dataGridViewCellStyle2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.WhiteSmoke; + this.dataGridViewCellStyle2.SelectionBackColor = theme == MetroThemeStyle.Light ? Color.DeepSkyBlue : Color.SpringGreen; + this.dataGridViewCellStyle2.SelectionForeColor = Color.Black; + + this.Theme = theme; + this.ResumeLayout(); + this.Refresh(); + } + + private void cboLevelList_SelectedIndexChanged(object sender, EventArgs e) { + if (((ImageComboBox)sender).SelectedIndex == -1 || string.Equals(((ImageItem)((ImageComboBox)sender).SelectedItem).Data[0], this.levelKey)) return; + + this.levelKey = ((ImageItem)((ImageComboBox)sender).SelectedItem).Data[0]; + // this.totalHeight = 0; + // this.currentPage = 0; + this.mtcTabControl.SelectedIndex = 1; + this.SetLevelRankList(this.levelKey); + } + + private void metroLink_MouseEnter(object sender, EventArgs e) { + if (sender.Equals(this.mlMyRank)) { + this.mlMyRank.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Fuchsia : Color.GreenYellow; + } else if (sender.Equals(this.mlVisitFallalytics)) { + this.mlVisitFallalytics.ForeColor = Color.FromArgb(0, 174, 219); + } + } + + private void metroLink_MouseLeave(object sender, EventArgs e) { + if (sender.Equals(this.mlMyRank)) { + this.mlMyRank.ForeColor = this.Theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(Color.Fuchsia, 0.6f) : Utils.GetColorBrightnessAdjustment(Color.GreenYellow, 0.5f); + } else if (sender.Equals(this.mlVisitFallalytics)) { + this.mlVisitFallalytics.ForeColor = Utils.GetColorBrightnessAdjustment(Color.FromArgb(0, 174, 219), 0.6f); + } + } + + private void SetLevelList() { + this.cboLevelList.Enabled = false; + this.cboLevelList.SetImageItemData(new List()); + this.mpsSpinner02.Visible = true; + Task.Run(this.GetAvailableLevel).ContinueWith(prevTask => { + List levelList = new List(); + foreach (AvailableLevel.LevelInfo level in this.availableLevelList) { + foreach (string id in level.ids) { + if (this.StatsForm.StatLookup.TryGetValue(id, out LevelStats levelStats)) { + levelList.Add(new ImageItem(Utils.ResizeImageHeight(levelStats.RoundBigIcon, 23), levelStats.Name, Overlay.GetMainFont(15f), new[] { level.queryname, string.Join(";", level.ids), levelStats.IsCreative.ToString() })); + break; + } + } + } + levelList.Sort((x, y) => { + int result = string.Compare(x.Data[2], y.Data[2], StringComparison.OrdinalIgnoreCase); + if (result == 0) { + result = string.Compare(x.Text, y.Text, StringComparison.OrdinalIgnoreCase); + } else if (string.Equals(x.Data[2], "false")) { + result = -1; + } + return result; + }); + this.Invoke((MethodInvoker)delegate { + if (prevTask.Result) { + this.mpsSpinner02.Visible = false; + this.lblSearchDescription.Visible = true; + this.cboLevelList.SetImageItemData(levelList); + this.cboLevelList.Enabled = true; + } else { + this.mpsSpinner02.Visible = false; + this.gridLevelRank.DataSource = this.levelRankNodata; + this.mlRefreshList.Visible = false; + this.mlVisitFallalytics.Visible = false; + this.lblSearchDescription.Text = Multilingual.GetWord("level_detail_no_data_caption"); + this.lblSearchDescription.Visible = true; + this.cboLevelList.Enabled = false; + } + }); + }); + } + + private void SetLevelRankData(int index) { + this.mtcTabControl.Enabled = true; + this.mtpLevelRankPage.Text = $@"🏅 {this.cboLevelList.SelectedName} ({this.totalLevelPlayers:N0}{Multilingual.GetWord("level_detail_creative_player_suffix")})"; + this.mpsSpinner02.Visible = false; + this.spinnerTransition.Stop(); + this.gridLevelRank.DataSource = this.levelRankList; + // Application.DoEvents(); + this.myLevelRank = -1; + if (index != -1) { + int displayedRowCount = this.gridLevelRank.DisplayedRowCount(false); + int firstDisplayedScrollingRowIndex = index - (displayedRowCount / 2); + this.gridLevelRank.FirstDisplayedScrollingRowIndex = firstDisplayedScrollingRowIndex < 0 ? 0 : firstDisplayedScrollingRowIndex; + + this.myLevelRank = index + 1; + + if (this.mtcTabControl.SelectedIndex == 1) { + this.mlMyRank.Visible = true; + this.mlMyRank.Text = $@"{Utils.AppendOrdinal(this.myLevelRank)} {Stats.OnlineServiceNickname}"; + if (this.myLevelRank == 1) { + this.mlMyRank.Image = Properties.Resources.medal_gold_1st_grid_icon; + } else { + double percentage = ((double)(this.myLevelRank - 1) / (Math.Min(1000, this.totalLevelPlayers) - 1)) * 100; + if (percentage <= 20) { + if (this.myLevelRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_silver_2nd_grid_icon; + } else if (this.myLevelRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_silver_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_silver_grid_icon; + } + } else if (percentage <= 50) { + if (this.myLevelRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_2nd_grid_icon; + } else if (this.myLevelRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_bronze_grid_icon; + } + } else if (percentage <= 100) { + this.mlMyRank.Image = Properties.Resources.medal_pink_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_eliminated_grid_icon; + } + } + this.mlMyRank.Location = new Point(this.Width - this.mlMyRank.Width - 5, this.mtcTabControl.Top + (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? -20 : 5)); + } + } + if (this.mtcTabControl.SelectedIndex == 1) { + this.mlVisitFallalytics.Location = new Point(this.Width - this.mlVisitFallalytics.Width - 5, index != -1 ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : this.mtcTabControl.Top + 5)); + this.mlVisitFallalytics.Visible = true; + } + // this.Text = $@" {Multilingual.GetWord("leaderboard_menu_title")}"; + this.BackMaxSize = 38; + this.BackImage = ((ImageItem)this.cboLevelList.SelectedItem).Image; + foreach (string key in ((ImageItem)this.cboLevelList.SelectedItem).Data[1].Split(';')) { + if (this.StatsForm.StatLookup.TryGetValue(key, out LevelStats level)) { + this.BackImage = level.RoundBigIcon; + break; + } + } + this.BackImagePadding = new Padding(17, (int)(15 + (Math.Ceiling(Math.Max(0, 60 - this.BackImage.Height) / 5f) * 2f)), 0, 0); + this.mlRefreshList.Location = new Point(this.cboLevelList.Right + 15, this.cboLevelList.Location.Y); + this.mlRefreshList.Visible = true; + this.cboLevelList.Enabled = true; + } + + private void SetLevelRankNoData() { + this.mtcTabControl.Enabled = true; + // this.Text = $@" {Multilingual.GetWord("leaderboard_menu_title")}"; + this.mpsSpinner02.Visible = false; + this.spinnerTransition.Stop(); + // this.targetSpinner = null; + this.gridLevelRank.DataSource = this.levelRankNodata; + this.mlRefreshList.Visible = false; + this.mlVisitFallalytics.Visible = false; + this.BackMaxSize = 32; + this.BackImage = this.Theme == MetroThemeStyle.Light ? Properties.Resources.leaderboard_icon : Properties.Resources.leaderboard_gray_icon; + this.BackImagePadding = new Padding(20, 21, 0, 0); + this.lblSearchDescription.Text = Multilingual.GetWord("level_detail_no_data_caption"); + this.lblSearchDescription.Visible = true; + this.mlMyRank.Visible = false; + this.Invalidate(); + } + + private void SetLevelRankList(string queryKey) { + this.mtcTabControl.Enabled = false; + this.cboLevelList.Enabled = false; + this.mlRefreshList.Visible = false; + this.lblSearchDescription.Visible = false; + this.mlMyRank.Visible = false; + this.mlVisitFallalytics.Visible = false; + this.mpsSpinner02.Visible = true; + this.mpsSpinner02.BringToFront(); + this.spinnerTransition.Start(); + this.targetSpinner = this.mpsSpinner02; + this.gridLevelRank.DataSource = this.levelRankNodata; + try { + Task.Run(() => this.DataLoadBulk(queryKey)).ContinueWith(prevTask => { + int index = this.levelRankList.FindIndex(r => string.Equals(r.onlineServiceId, Stats.OnlineServiceId) && int.TryParse(r.onlineServiceType, out int type) && type == (int)Stats.OnlineServiceType); + this.Invoke((MethodInvoker)delegate { + if (prevTask.Result) { + this.SetLevelRankData(index); + } else { + this.SetLevelRankNoData(); + } + this.refreshTime = DateTime.Now; + }); + }); + } catch { + this.SetLevelRankNoData(); + } + } + + private bool DataLoadBulk(string queryKey) { + bool isFound; + using (ApiWebClient web = new ApiWebClient()) { + try { + this.levelRankList = null; + web.Headers.Add("X-Authorization-Key", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + string json = web.DownloadString($"{this.LEADERBOARD_API_URL}?round={queryKey}&p=1"); + var options = new JsonSerializerOptions(); + options.Converters.Add(new LevelRankInfoConverter()); + LevelRank levelRank = JsonSerializer.Deserialize(json, options); + isFound = levelRank.found; + if (isFound) { + this.totalLevelPlayers = levelRank.total; + this.totalPages = (int)Math.Ceiling(Math.Min(1000, this.totalLevelPlayers) / 100f); + for (int i = 0; i < levelRank.recordholders.Count; i++) { + LevelRank.RankInfo temp = levelRank.recordholders[i]; + temp.rank = i + 1; + levelRank.recordholders[i] = temp; + } + this.levelRankList = levelRank.recordholders; + if (this.totalPages > 1) { + var tasks = new List(); + HttpClient client = new HttpClient(); + client.DefaultRequestHeaders.Add("X-Authorization-Key", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + for (int i = 2; i <= this.totalPages; i++) { + int page = i; + tasks.Add(Task.Run(async () => { + HttpResponseMessage response = await client.GetAsync($"{this.LEADERBOARD_API_URL}?round={queryKey}&p={page}"); + if (response.IsSuccessStatusCode) { + json = await response.Content.ReadAsStringAsync(); + levelRank = JsonSerializer.Deserialize(json, options); + for (int j = 0; j < levelRank.recordholders.Count; j++) { + LevelRank.RankInfo temp = levelRank.recordholders[j]; + temp.rank = j + 1 + ((page - 1) * 100); + levelRank.recordholders[j] = temp; + } + this.levelRankList.AddRange(levelRank.recordholders); + } + })); + } + Task.WhenAll(tasks).Wait(); + this.levelRankList.Sort((r1, r2) => r1.rank.CompareTo(r2.rank)); + } + } else { + this.totalPages = 0; + this.totalLevelPlayers = 0; + } + } catch { + isFound = false; + this.totalPages = 0; + this.totalLevelPlayers = 0; + } + } + return isFound; + } + + private bool GetAvailableLevel() { + bool result; + using (ApiWebClient web = new ApiWebClient()) { + web.Headers.Add("X-Authorization-Key", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + try { + string json = web.DownloadString($"{this.AVAILABLE_LEVEL_API_URL}"); + var options = new JsonSerializerOptions(); + options.Converters.Add(new RoundConverter()); + var availableLevel = JsonSerializer.Deserialize(json, options); + result = availableLevel.found; + this.availableLevelList = availableLevel.leaderboards; + } catch { + result = false; + } + } + return result; + } + + private int GetDataGridViewColumnWidth(string columnName) { + switch (columnName) { + case "rank": + return 80; + case "level": + case "show": + return 0; + case "flag": + return 35; + case "platform": + return 45; + case "RoundIcon": + return 45; + case "crowns": + return 90; + case "shards": + return 200; + case "crownIcon": + return 50; + case "shardIcon": + return 40; + case "medal": + return 40; + case "onlineServiceNickname": + return 0; + case "score": + return 140; + case "firstPlaces": + return 80; + case "record": + return 180; + case "finish": + return 200; + case "country": + return 0; + default: + return 0; + } + } + + private void gridOverallRank_DataSourceChanged(object sender, EventArgs e) { + if (((Grid)sender).Columns.Count == 0) return; + + int pos = 0; + ((Grid)sender).Columns["isAnonymous"].Visible = false; + ((Grid)sender).Columns["country"].Visible = false; + ((Grid)sender).Columns["onlineServiceType"].Visible = false; + ((Grid)sender).Columns["id"].Visible = false; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "medal", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "" }); + ((Grid)sender).Setup("medal", pos++, this.GetDataGridViewColumnWidth("medal"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["medal"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("rank", pos++, this.GetDataGridViewColumnWidth("rank"), $"{Multilingual.GetWord("leaderboard_grid_header_rank")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["rank"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "platform", ImageLayout = DataGridViewImageCellLayout.Normal, ToolTipText = "" }); + ((Grid)sender).Setup("platform", pos++, this.GetDataGridViewColumnWidth("platform"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["platform"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "flag", ImageLayout = DataGridViewImageCellLayout.Normal, ToolTipText = "" }); + ((Grid)sender).Setup("flag", pos++, this.GetDataGridViewColumnWidth("flag"), "", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["flag"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("onlineServiceNickname", pos++, this.GetDataGridViewColumnWidth("onlineServiceNickname"), $"{Multilingual.GetWord("leaderboard_grid_header_player")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["onlineServiceNickname"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("score", pos++, this.GetDataGridViewColumnWidth("score"), $"{Multilingual.GetWord("leaderboard_grid_header_score")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["score"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("firstPlaces", pos++, this.GetDataGridViewColumnWidth("firstPlaces"), $"{Multilingual.GetWord("leaderboard_grid_header_first_places")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["firstPlaces"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).ClearSelection(); + } + + private void gridOverallRank_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { + if (e.RowIndex < 0 || e.RowIndex >= ((Grid)sender).RowCount) return; + + string columnName = ((Grid)sender).Columns[e.ColumnIndex].Name; + OverallRank.Player info = (OverallRank.Player)((Grid)sender).Rows[e.RowIndex].DataBoundItem; + + if (e.RowIndex % 2 == 0) { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(225, 235, 255) : Color.FromArgb(40, 66, 66); + } else { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.WhiteSmoke : Color.FromArgb(49, 51, 56); + } + + if (int.TryParse(info.onlineServiceType, out int type) && (int)Stats.OnlineServiceType == type && string.Equals(Stats.OnlineServiceNickname, info.onlineServiceNickname)) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Fuchsia : Color.GreenYellow; + } + + if (info.rank == 1) { + ((Grid)sender).Rows[e.RowIndex].Height = 41; + ((Grid)sender).Rows[e.RowIndex].DefaultCellStyle.Font = Overlay.GetMainFont(19.5f); + } else if (info.rank == 2) { + ((Grid)sender).Rows[e.RowIndex].Height = 39; + ((Grid)sender).Rows[e.RowIndex].DefaultCellStyle.Font = Overlay.GetMainFont(18.6f); + } else if (info.rank == 3) { + ((Grid)sender).Rows[e.RowIndex].Height = 36; + ((Grid)sender).Rows[e.RowIndex].DefaultCellStyle.Font = Overlay.GetMainFont(18f); + } + + if (columnName == "rank") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + } else if (columnName == "flag") { + if (!info.isAnonymous && !string.IsNullOrEmpty(info.country)) ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetCountryName(info.country); + e.Value = info.isAnonymous ? Properties.Resources.country_unknown_icon : (string.IsNullOrEmpty(info.country) ? Properties.Resources.country_unknown_icon : (Image)Properties.Resources.ResourceManager.GetObject($"country_{info.country.ToLower()}_icon")); + } else if (columnName == "platform") { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord(info.onlineServiceType == "0" ? "level_detail_online_platform_eos" : "level_detail_online_platform_steam"); + e.Value = info.onlineServiceType == "0" ? Properties.Resources.epic_grid_icon : Properties.Resources.steam_grid_icon; + } else if (columnName == "medal") { + if (info.rank == 1) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_gold"); + e.Value = Properties.Resources.medal_gold_1st_grid_icon; + } else { + double percentage = ((double)(info.rank - 1) / (Math.Min(1000, this.StatsForm.totalOverallRankPlayers) - 1)) * 100; + if (percentage < 20) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_silver"); + if (info.rank == 2) { + e.Value = Properties.Resources.medal_silver_2nd_grid_icon; + } else if (info.rank == 3) { + e.Value = Properties.Resources.medal_silver_3rd_grid_icon; + } else { + e.Value = Properties.Resources.medal_silver_grid_icon; + } + } else if (percentage < 50) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_bronze"); + if (info.rank == 2) { + e.Value = Properties.Resources.medal_bronze_2nd_grid_icon; + } else if (info.rank == 3) { + e.Value = Properties.Resources.medal_bronze_3rd_grid_icon; + } else { + e.Value = Properties.Resources.medal_bronze_grid_icon; + } + } else { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_pink"); + e.Value = Properties.Resources.medal_pink_grid_icon; + } + } + } else if (columnName == "onlineServiceNickname") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = info.isAnonymous ? $"👻 {Multilingual.GetWord("leaderboard_grid_anonymous")}" : e.Value; + } else if (columnName == "score") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = $"{e.Value:N0}"; + } else if (columnName == "firstPlaces") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + if (info.firstPlaces == 0) { + e.Value = "-"; + } + } + } + + private void gridOverallRank_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { + if (this.overallRankList == null) return; + + string columnName = ((Grid)sender).Columns[e.ColumnIndex].Name; + SortOrder sortOrder = ((Grid)sender).GetSortOrder(columnName); + if (sortOrder == SortOrder.None) { columnName = "rank"; } + + this.overallRankList.Sort(delegate (OverallRank.Player one, OverallRank.Player two) { + int rankCompare = one.rank.CompareTo(two.rank); + int scoreCompare = one.score.CompareTo(two.score); + if (sortOrder == SortOrder.Descending) { + (one, two) = (two, one); + } + + switch (columnName) { + case "medal": + rankCompare = one.rank.CompareTo(two.rank); + return rankCompare != 0 ? rankCompare : scoreCompare; + case "rank": + rankCompare = one.rank.CompareTo(two.rank); + return rankCompare != 0 ? rankCompare : scoreCompare; + case "platform": + int platformCompare = String.Compare(one.onlineServiceType, two.onlineServiceType, StringComparison.OrdinalIgnoreCase); + return platformCompare != 0 ? platformCompare : rankCompare; + case "flag": + int countryCompare = String.Compare(one.country, two.country, StringComparison.OrdinalIgnoreCase); + return countryCompare != 0 ? countryCompare : rankCompare; + case "onlineServiceNickname": + int nicknameCompare = String.Compare(one.onlineServiceNickname, two.onlineServiceNickname, StringComparison.OrdinalIgnoreCase); + return nicknameCompare != 0 ? nicknameCompare : rankCompare; + case "score": + scoreCompare = one.score.CompareTo(two.score); + return scoreCompare != 0 ? scoreCompare : rankCompare; + case "firstPlaces": + int firstPlacesCompare = one.firstPlaces.CompareTo(two.firstPlaces); + return firstPlacesCompare != 0 ? firstPlacesCompare : rankCompare; + default: + return 0; + } + }); + + ((Grid)sender).DataSource = null; + ((Grid)sender).DataSource = this.overallRankList; + ((Grid)sender).Columns[columnName].HeaderCell.SortGlyphDirection = sortOrder; + } + + private void gridOverallSummary_SelectionChanged(object sender, EventArgs e) { + ((Grid)sender).ClearSelection(); + } + + private void gridOverallSummary_DataSourceChanged(object sender, EventArgs e) { + if (((Grid)sender).Columns.Count == 0) return; + + int pos = 0; + ((Grid)sender).Columns["pink"].Visible = false; + ((Grid)sender).Columns["players"].Visible = false; + ((Grid)sender).Setup("rank", pos++, 40, $"{Multilingual.GetWord("leaderboard_grid_header_rank")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["rank"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "flag", ImageLayout = DataGridViewImageCellLayout.Normal, ToolTipText = "" }); + ((Grid)sender).Setup("flag", pos++, this.GetDataGridViewColumnWidth("flag"), "", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["flag"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("country", pos++, 0, $"{Multilingual.GetWord("leaderboard_grid_header_country")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["country"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "goldIcon", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "" }); + ((Grid)sender).Setup("goldIcon", pos++, 25, "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["goldIcon"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("gold", pos++, 70, $"{Multilingual.GetWord("main_gold")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["gold"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "silverIcon", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "" }); + ((Grid)sender).Setup("silverIcon", pos++, 25, "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["silverIcon"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("silver", pos++, 70, $"{Multilingual.GetWord("main_silver")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["silver"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "bronzeIcon", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "" }); + ((Grid)sender).Setup("bronzeIcon", pos++, 25, "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["bronzeIcon"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("bronze", pos++, 70, $"{Multilingual.GetWord("main_bronze")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["bronze"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).ClearSelection(); + } + + private void gridOverallSummary_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { + if (e.RowIndex < 0 || e.RowIndex >= ((Grid)sender).RowCount) return; + + string columnName = ((Grid)sender).Columns[e.ColumnIndex].Name; + OverallSummary summary = (OverallSummary)((Grid)sender).Rows[e.RowIndex].DataBoundItem; + + if (e.RowIndex % 2 == 0) { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(225, 235, 255) : Color.FromArgb(40, 66, 66); + } else { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.WhiteSmoke : Color.FromArgb(49, 51, 56); + } + + if (columnName == "rank") { + if (string.Equals(Stats.HostCountryCode, summary.country, StringComparison.OrdinalIgnoreCase)) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Fuchsia : Color.GreenYellow; + } + if (summary.rank == 0) { + e.Value = "-"; + e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + } + } else if (columnName == "flag") { + e.Value = (Image)Properties.Resources.ResourceManager.GetObject($"country_{summary.country.ToLower()}_icon"); + } else if (columnName == "country") { + e.Value = Multilingual.GetCountryName(summary.country); + if (string.Equals(Stats.HostCountryCode, summary.country, StringComparison.OrdinalIgnoreCase)) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Fuchsia : Color.GreenYellow; + } + } else if (columnName == "goldIcon") { + if (summary.gold != 0) { e.Value = Properties.Resources.medal_gold_grid_icon; } + } else if (columnName == "silverIcon") { + if (summary.silver != 0) { e.Value = Properties.Resources.medal_silver_grid_icon; } + } else if (columnName == "bronzeIcon") { + if (summary.bronze != 0) { e.Value = Properties.Resources.medal_bronze_grid_icon; } + } else if (columnName == "gold") { + if (summary.gold == 0) { e.Value = ""; } + else { + e.CellStyle.ForeColor = string.Equals(Stats.HostCountryCode, summary.country, StringComparison.OrdinalIgnoreCase) + ? (this.Theme == MetroThemeStyle.Light ? Color.Fuchsia : Color.GreenYellow) : (this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold); + } + } else if (columnName == "silver") { + if (summary.silver == 0) { e.Value = ""; } + else { + e.CellStyle.ForeColor = string.Equals(Stats.HostCountryCode, summary.country, StringComparison.OrdinalIgnoreCase) + ? (this.Theme == MetroThemeStyle.Light ? Color.Fuchsia : Color.GreenYellow) : (this.Theme == MetroThemeStyle.Light ? Color.DimGray : Color.LightGray); + } + } else if (columnName == "bronze") { + if (summary.bronze == 0) { e.Value = ""; } + else { + e.CellStyle.ForeColor = string.Equals(Stats.HostCountryCode, summary.country, StringComparison.OrdinalIgnoreCase) + ? (this.Theme == MetroThemeStyle.Light ? Color.Fuchsia : Color.GreenYellow) : (this.Theme == MetroThemeStyle.Light ? Color.Sienna : Color.Chocolate); + } + } + } + + private void gridOverallRank_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { + if (e.RowIndex != -1 && ((Grid)sender).SelectedRows.Count > 0) { + OverallRank.Player data = (OverallRank.Player)((Grid)sender).SelectedRows[0].DataBoundItem; + if (string.IsNullOrEmpty(data.id) || data.isAnonymous) return; + + ((Grid)sender).Enabled = false; + this.gridPlayerList.Enabled = false; + this.gridPlayerDetails.DataSource = this.playerDetailsNodata; + this.spinnerTransition.Start(); + this.targetSpinner = this.mpsSpinner04; + this.mpsSpinner04.BringToFront(); + this.mpsSpinner04.Visible = true; + this.currentUserId = data.id; + this.SetPlayerInfo(data.id); + this.mtcTabControl.SelectedIndex = 2; + } + } + + private void gridLevelRank_DataSourceChanged(object sender, EventArgs e) { + if (((Grid)sender).Columns.Count == 0) return; + + int pos = 0; + // ((Grid)sender).Columns["round"].Visible = false; + ((Grid)sender).Columns["isAnonymous"].Visible = false; + ((Grid)sender).Columns["country"].Visible = false; + ((Grid)sender).Columns["onlineServiceType"].Visible = false; + ((Grid)sender).Columns["onlineServiceId"].Visible = false; + ((Grid)sender).Columns["id"].Visible = false; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "medal", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "" }); + ((Grid)sender).Setup("medal", pos++, this.GetDataGridViewColumnWidth("medal"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["medal"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("rank", pos++, this.GetDataGridViewColumnWidth("rank"), $"{Multilingual.GetWord("leaderboard_grid_header_rank")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["rank"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("show", pos++, this.GetDataGridViewColumnWidth("show"), $"{Multilingual.GetWord("leaderboard_grid_header_show")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["show"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "platform", ImageLayout = DataGridViewImageCellLayout.Normal, ToolTipText = "" }); + ((Grid)sender).Setup("platform", pos++, this.GetDataGridViewColumnWidth("platform"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["platform"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "flag", ImageLayout = DataGridViewImageCellLayout.Normal, ToolTipText = "" }); + ((Grid)sender).Setup("flag", pos++, this.GetDataGridViewColumnWidth("flag"), "", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["flag"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("onlineServiceNickname", pos++, this.GetDataGridViewColumnWidth("onlineServiceNickname"), $"{Multilingual.GetWord("leaderboard_grid_header_player")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["onlineServiceNickname"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("record", pos++, this.GetDataGridViewColumnWidth("record"), $"{Multilingual.GetWord("leaderboard_grid_header_record")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["record"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("finish", pos++, this.GetDataGridViewColumnWidth("finish"), $"{Multilingual.GetWord("leaderboard_grid_header_finish")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["finish"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).ClearSelection(); + + // foreach (DataGridViewRow row in ((Grid)sender).Rows) { + // this.totalHeight += row.Height; + // } + } + + private void gridLevelRank_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { + if (e.RowIndex < 0 || e.RowIndex >= ((Grid)sender).RowCount) return; + + string columnName = ((Grid)sender).Columns[e.ColumnIndex].Name; + LevelRank.RankInfo info = (LevelRank.RankInfo)((Grid)sender).Rows[e.RowIndex].DataBoundItem; + + if (e.RowIndex % 2 == 0) { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(225, 235, 255) : Color.FromArgb(40, 66, 66); + } else { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.WhiteSmoke : Color.FromArgb(49, 51, 56); + } + + if (string.Equals(info.onlineServiceId, Stats.OnlineServiceId)) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Fuchsia : Color.GreenYellow; + } + + if (info.rank == 1) { + ((Grid)sender).Rows[e.RowIndex].Height = 41; + ((Grid)sender).Rows[e.RowIndex].DefaultCellStyle.Font = Overlay.GetMainFont(19.5f); + } else if (info.rank == 2) { + ((Grid)sender).Rows[e.RowIndex].Height = 39; + ((Grid)sender).Rows[e.RowIndex].DefaultCellStyle.Font = Overlay.GetMainFont(18.6f); + } else if (info.rank == 3) { + ((Grid)sender).Rows[e.RowIndex].Height = 36; + ((Grid)sender).Rows[e.RowIndex].DefaultCellStyle.Font = Overlay.GetMainFont(18f); + } + + if (columnName == "rank") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + } else if (columnName == "show") { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].Style.Font = Overlay.GetMainFont(16f); + if (!string.IsNullOrEmpty((string)e.Value)) { + e.Value = Multilingual.GetShowName((string)e.Value) ?? e.Value; + } + } else if (columnName == "flag") { + if (!info.isAnonymous && !string.IsNullOrEmpty(info.country)) ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetCountryName(info.country); + e.Value = info.isAnonymous ? Properties.Resources.country_unknown_icon : (string.IsNullOrEmpty(info.country) ? Properties.Resources.country_unknown_icon : (Image)Properties.Resources.ResourceManager.GetObject($"country_{info.country.ToLower()}_icon")); + } else if (columnName == "platform") { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord(info.onlineServiceType == "0" ? "level_detail_online_platform_eos" : "level_detail_online_platform_steam"); + e.Value = info.onlineServiceType == "0" ? Properties.Resources.epic_grid_icon : Properties.Resources.steam_grid_icon; + } else if (columnName == "medal") { + if (info.rank == 1) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_gold"); + e.Value = Properties.Resources.medal_gold_1st_grid_icon; + } else { + double percentage = ((double)(info.rank - 1) / (Math.Min(1000, this.totalLevelPlayers) - 1)) * 100; + if (percentage < 20) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_silver"); + if (info.rank == 2) { + e.Value = Properties.Resources.medal_silver_2nd_grid_icon; + } else if (info.rank == 3) { + e.Value = Properties.Resources.medal_silver_3rd_grid_icon; + } else { + e.Value = Properties.Resources.medal_silver_grid_icon; + } + } else if (percentage < 50) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_bronze"); + if (info.rank == 2) { + e.Value = Properties.Resources.medal_bronze_2nd_grid_icon; + } else if (info.rank == 3) { + e.Value = Properties.Resources.medal_bronze_3rd_grid_icon; + } else { + e.Value = Properties.Resources.medal_bronze_grid_icon; + } + } else { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_pink"); + e.Value = Properties.Resources.medal_pink_grid_icon; + } + } + } else if (columnName == "onlineServiceNickname") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = info.isAnonymous ? $"👻 {Multilingual.GetWord("leaderboard_grid_anonymous")}" : e.Value; + } else if (columnName == "record") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = Utils.FormatTime((double)e.Value); + } else if (columnName == "finish") { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].Style.Font = Overlay.GetMainFont(16f); + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = ((DateTime)e.Value).ToString(Multilingual.GetWord("level_grid_date_format")); + e.Value = Utils.GetRelativeTime((DateTime)e.Value); + } + } + + private void gridLevelRank_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { + if (this.levelRankList == null) return; + + string columnName = ((Grid)sender).Columns[e.ColumnIndex].Name; + SortOrder sortOrder = ((Grid)sender).GetSortOrder(columnName); + if (sortOrder == SortOrder.None) { columnName = "rank"; } + + this.levelRankList.Sort(delegate (LevelRank.RankInfo one, LevelRank.RankInfo two) { + int rankCompare = one.rank.CompareTo(two.rank); + int recordCompare = one.record.CompareTo(two.record); + if (sortOrder == SortOrder.Descending) { + (one, two) = (two, one); + } + + switch (columnName) { + case "medal": + rankCompare = one.rank.CompareTo(two.rank); + return rankCompare != 0 ? rankCompare : recordCompare; + case "rank": + rankCompare = one.rank.CompareTo(two.rank); + return rankCompare != 0 ? rankCompare : recordCompare; + case "show": + int showCompare = String.Compare(one.show, two.show, StringComparison.OrdinalIgnoreCase); + return showCompare != 0 ? showCompare : rankCompare; + case "platform": + int platformCompare = String.Compare(one.onlineServiceType, two.onlineServiceType, StringComparison.OrdinalIgnoreCase); + return platformCompare != 0 ? platformCompare : rankCompare; + case "flag": + int countryCompare = String.Compare(one.country, two.country, StringComparison.OrdinalIgnoreCase); + return countryCompare != 0 ? countryCompare : rankCompare; + case "onlineServiceNickname": + int nicknameCompare = String.Compare(one.onlineServiceNickname, two.onlineServiceNickname, StringComparison.OrdinalIgnoreCase); + return nicknameCompare != 0 ? nicknameCompare : rankCompare; + case "record": + recordCompare = one.record.CompareTo(two.record); + return recordCompare != 0 ? recordCompare : rankCompare; + case "finish": + int finishCompare = one.finish.CompareTo(two.finish); + return finishCompare != 0 ? finishCompare : rankCompare; + default: + return 0; + } + }); + + ((Grid)sender).DataSource = null; + ((Grid)sender).DataSource = this.levelRankList; + ((Grid)sender).Columns[columnName].HeaderCell.SortGlyphDirection = sortOrder; + } + + private void gridLevelRank_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { + if (e.RowIndex != -1 && ((Grid)sender).SelectedRows.Count > 0) { + LevelRank.RankInfo data = (LevelRank.RankInfo)((Grid)sender).SelectedRows[0].DataBoundItem; + if (string.IsNullOrEmpty(data.id) || data.isAnonymous) return; + + ((Grid)sender).Enabled = false; + this.gridPlayerList.Enabled = false; + this.gridPlayerDetails.DataSource = this.playerDetailsNodata; + this.spinnerTransition.Start(); + this.targetSpinner = this.mpsSpinner04; + this.mpsSpinner04.BringToFront(); + this.mpsSpinner04.Visible = true; + this.currentUserId = data.id; + this.SetPlayerInfo(data.id); + this.mtcTabControl.SelectedIndex = 2; + } + } + + // private void gridLevelRank_Scroll(object sender, ScrollEventArgs e) { + // if (this.totalHeight - ((Grid)sender).Height < ((Grid)sender).VerticalScrollingOffset) { + // // to do + // } + // } + + private void gridPlayerList_DataSourceChanged(object sender, EventArgs e) { + if (((Grid)sender).Columns.Count == 0) return; + + int pos = 0; + ((Grid)sender).Columns["isAnonymous"].Visible = false; + ((Grid)sender).Columns["country"].Visible = false; + ((Grid)sender).Columns["onlineServiceType"].Visible = false; + ((Grid)sender).Columns["onlineServiceId"].Visible = false; + ((Grid)sender).Columns["id"].Visible = false; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "platform", ImageLayout = DataGridViewImageCellLayout.Normal, ToolTipText = "" }); + ((Grid)sender).Setup("platform", pos++, this.GetDataGridViewColumnWidth("platform"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["platform"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "flag", ImageLayout = DataGridViewImageCellLayout.Normal, ToolTipText = "" }); + ((Grid)sender).Setup("flag", pos++, this.GetDataGridViewColumnWidth("flag"), "", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["flag"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("onlineServiceNickname", pos++, this.GetDataGridViewColumnWidth("onlineServiceNickname"), $"{Multilingual.GetWord("leaderboard_grid_header_player")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["onlineServiceNickname"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).ClearSelection(); + } + + private void gridPlayerList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { + if (e.RowIndex < 0 || e.RowIndex >= ((Grid)sender).RowCount) return; + + SearchResult.Player info = (SearchResult.Player)((Grid)sender).Rows[e.RowIndex].DataBoundItem; + + if (e.RowIndex % 2 == 0) { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(225, 235, 255) : Color.FromArgb(40, 66, 66); + } else { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.WhiteSmoke : Color.FromArgb(49, 51, 56); + } + + if (string.Equals(info.onlineServiceId, Stats.OnlineServiceId)) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Fuchsia : Color.GreenYellow; + } + + if (((Grid)sender).Columns[e.ColumnIndex].Name == "flag") { + if (!info.isAnonymous && !string.IsNullOrEmpty(info.country)) ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetCountryName(info.country); + e.Value = info.isAnonymous ? Properties.Resources.country_unknown_icon : (string.IsNullOrEmpty(info.country) ? Properties.Resources.country_unknown_icon : (Image)Properties.Resources.ResourceManager.GetObject($"country_{info.country.ToLower()}_icon")); + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "platform") { + if (!info.isAnonymous) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord((info.onlineServiceType == "0" ? "level_detail_online_platform_eos" : "level_detail_online_platform_steam")); + } + e.Value = info.isAnonymous ? null : (info.onlineServiceType == "0" ? Properties.Resources.epic_grid_icon : Properties.Resources.steam_grid_icon); + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "onlineServiceNickname") { + e.Value = info.isAnonymous ? $"👻 {Multilingual.GetWord("leaderboard_grid_anonymous")}" : e.Value; + } + } + + private void gridPlayerList_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { + if (this.searchResult == null) return; + + string columnName = ((Grid)sender).Columns[e.ColumnIndex].Name; + SortOrder sortOrder = ((Grid)sender).GetSortOrder(columnName); + if (sortOrder == SortOrder.None) { columnName = "onlineServiceNickname"; } + + this.searchResult.Sort(delegate (SearchResult.Player one, SearchResult.Player two) { + int nicknameCompare = String.Compare(one.onlineServiceNickname, two.onlineServiceNickname, StringComparison.OrdinalIgnoreCase); + int countryCompare = String.Compare(one.country, two.country, StringComparison.OrdinalIgnoreCase); + if (sortOrder == SortOrder.Descending) { + (one, two) = (two, one); + } + + switch (columnName) { + case "platform": + int platformCompare = String.Compare(one.onlineServiceType, two.onlineServiceType, StringComparison.OrdinalIgnoreCase); + return platformCompare != 0 ? platformCompare : nicknameCompare; + case "flag": + countryCompare = String.Compare(one.country, two.country, StringComparison.OrdinalIgnoreCase); + return countryCompare != 0 ? countryCompare : nicknameCompare; + case "onlineServiceNickname": + nicknameCompare = String.Compare(one.onlineServiceNickname, two.onlineServiceNickname, StringComparison.OrdinalIgnoreCase); + return nicknameCompare != 0 ? nicknameCompare : countryCompare; + default: + return 0; + } + }); + + ((Grid)sender).DataSource = null; + ((Grid)sender).DataSource = this.searchResult; + ((Grid)sender).Columns[columnName].HeaderCell.SortGlyphDirection = sortOrder; + } + + private void gridPlayerList_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { + if (e.RowIndex != -1 && ((Grid)sender).SelectedRows.Count > 0) { + if (this.isSearchCompleted) { + ((Grid)sender).Enabled = false; + this.gridPlayerDetails.DataSource = this.playerDetailsNodata; + this.spinnerTransition.Start(); + this.targetSpinner = this.mpsSpinner04; + this.mpsSpinner04.BringToFront(); + this.mpsSpinner04.Visible = true; + SearchResult.Player data = (SearchResult.Player)((Grid)sender).SelectedRows[0].DataBoundItem; + this.currentUserId = data.id; + this.SetPlayerInfo(data.id); + } + } + } + + private string ReplaceLevelIdInShuffleShow(string showId, string roundId) { + if (string.Equals(showId, "wle_mrs_shuffle_show_squads")) { // Squads Scramble + if (roundId.StartsWith("wle_shuffle_") && roundId.IndexOf("_fp") != -1) { + roundId = roundId.Replace("_squads_", "_discover_"); + } else if (roundId.StartsWith("wle_shuffle_squads_2_24_01_")) { + roundId = roundId.Replace("_squads_", "_").Replace("_24_01_", "_24_"); + } else if (roundId.StartsWith("wle_round_mrs_shuffle_discover_") && roundId.EndsWith("_squads")) { + roundId = roundId.Replace("_squads", ""); + } + } + + if (string.Equals(showId, "no_elimination_show") && (roundId.StartsWith("wle_main_filler_") || roundId.StartsWith("wle_main_opener_"))) { + roundId = roundId.Replace("_noelim", ""); + } + return roundId; + } + + private void SetPlayerInfo(string userId) { + this.cboLevelList.Enabled = false; + this.mtcTabControl.Enabled = false; + Task.Run(() => { + using (ApiWebClient web = new ApiWebClient()) { + web.Headers.Add("X-Authorization-Key", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + string json = web.DownloadString($"{this.PLAYER_DETAILS_API_URL}{userId}"); + PlayerStats ps = JsonSerializer.Deserialize(json); + if (ps.found) { + ps.pbs.Sort((p1, p2) => { + bool isCreative1 = this.StatsForm.StatLookup.TryGetValue(this.ReplaceLevelIdInShuffleShow(p1.show, p1.round), out LevelStats l1) && l1.IsCreative; + bool isCreative2 = this.StatsForm.StatLookup.TryGetValue(this.ReplaceLevelIdInShuffleShow(p2.show, p2.round), out LevelStats l2) && l2.IsCreative; + int result = isCreative1.CompareTo(isCreative2); + return result == 0 ? string.Compare(l1?.Name ?? p1.roundDisplayName, l2?.Name ?? p2.roundDisplayName, StringComparison.OrdinalIgnoreCase) : result; + }); + this.playerDetails = ps.pbs; + this.speedrunRank = ps.speedrunrank; + this.crownLeagueRank = ps.crownrank; + } else { + this.playerDetails = null; + this.speedrunRank = null; + this.crownLeagueRank = null; + } + } + }).ContinueWith(prevTask => { + this.spinnerTransition.Stop(); + // this.targetSpinner = null; + this.Invoke((MethodInvoker)delegate { + this.mtcTabControl.Enabled = true; + this.cboLevelList.Enabled = true; + this.mtbSearchPlayersText.Width = this.playerDetails == null || this.playerDetails.Count == 0 ? (this.gridPlayerList.Width + this.gridPlayerDetails.Width + 2) : this.gridPlayerList.Width + 1; + this.mtbSearchPlayersText.Invalidate(); + this.mpsSpinner04.Visible = false; + this.gridPlayerDetails.DataSource = this.playerDetails ?? this.playerDetailsNodata; + this.gridPlayerDetails.ClearSelection(); + this.gridPlayerList.Enabled = true; + this.gridOverallRank.Enabled = true; + this.gridLevelRank.Enabled = true; + this.gridWeeklyCrown.Enabled = true; + if (this.speedrunRank != null) { + this.picPlayerInfo01.Image = (string.Equals(this.speedrunRank.Value.onlineServiceType, "0") ? Properties.Resources.epic_main_icon : Properties.Resources.steam_main_icon); + this.picPlayerInfo02.Image = string.IsNullOrEmpty(this.speedrunRank.Value.country) ? Properties.Resources.country_unknown_icon : (Image)Properties.Resources.ResourceManager.GetObject($"country_{this.speedrunRank.Value.country.ToLower()}_icon"); + this.lblPlayerInfo01.Text = this.speedrunRank.Value.onlineServiceNickname; + this.lblPlayerInfo02.Left = this.lblPlayerInfo01.Right + 15; + this.lblPlayerInfo02.Text = $@"{Multilingual.GetWord("leaderboard_overall_rank")} :"; + this.picPlayerInfo03.Left = this.lblPlayerInfo02.Right; + double percentage = ((double)(this.speedrunRank.Value.index - 1) / (Math.Min(1000, this.speedrunRank.Value.total) - 1)) * 100; + if (this.speedrunRank.Value.index == 0) { + this.picPlayerInfo03.Image = Properties.Resources.medal_eliminated; + } else if (this.speedrunRank.Value.index == 1) { + this.picPlayerInfo03.Image = Properties.Resources.medal_gold; + } else if (percentage <= 20) { + this.picPlayerInfo03.Image = Properties.Resources.medal_silver; + } else if (percentage <= 50) { + this.picPlayerInfo03.Image = Properties.Resources.medal_bronze; + } else if (percentage <= 100) { + this.picPlayerInfo03.Image = Properties.Resources.medal_pink; + } else { + this.picPlayerInfo03.Image = Properties.Resources.medal_eliminated; + } + this.lblPlayerInfo03.Left = this.picPlayerInfo03.Right; + this.lblPlayerInfo03.Text = $@"{this.speedrunRank.Value.index} ({this.speedrunRank.Value.total})"; + this.lblPlayerInfo04.Left = this.lblPlayerInfo03.Right + 15; + this.lblPlayerInfo04.Text = $@"{Multilingual.GetWord("leaderboard_grid_header_score")} : {this.speedrunRank.Value.score:N0}"; + this.lblPlayerInfo05.Left = this.lblPlayerInfo04.Right + 15; + this.lblPlayerInfo05.Text = $@"{Multilingual.GetWord("leaderboard_grid_header_first_places")} : {this.speedrunRank.Value.firstPlaces}"; + if (this.crownLeagueRank == null) { + this.gridPlayerDetails.Height = this.gridPlayerList.Height; + this.gridPlayerDetails.Top = this.gridPlayerList.Top; + this.lblPlayerInfo06.Visible = false; + this.lblPlayerInfo07.Visible = false; + this.lblPlayerInfo08.Visible = false; + this.lblPlayerInfo09.Visible = false; + this.lblPlayerInfo10.Visible = false; + this.picPlayerInfo04.Visible = false; + this.picPlayerInfo05.Visible = false; + this.picPlayerInfo06.Visible = false; + } + } + + if (this.crownLeagueRank != null) { + this.lblPlayerInfo06.Text = $@"{Multilingual.GetWord("leaderboard_weekly_crown_league")} :"; + int widthOfText = TextRenderer.MeasureText(this.lblPlayerInfo01.Text, this.lblPlayerInfo01.Font).Width; + this.lblPlayerInfo06.Left = this.lblPlayerInfo02.Left - widthOfText; + this.picPlayerInfo04.Left = this.lblPlayerInfo06.Right; + double percentage = ((double)(this.crownLeagueRank.Value.index - 1) / (Math.Min(1000, this.crownLeagueRank.Value.total) - 1)) * 100; + if (this.crownLeagueRank.Value.index == 0) { + this.picPlayerInfo04.Image = Properties.Resources.medal_eliminated; + } else if (this.crownLeagueRank.Value.index == 1) { + this.picPlayerInfo04.Image = Properties.Resources.medal_gold; + } else if (percentage <= 20) { + this.picPlayerInfo04.Image = Properties.Resources.medal_silver; + } else if (percentage <= 50) { + this.picPlayerInfo04.Image = Properties.Resources.medal_bronze; + } else if (percentage <= 100) { + this.picPlayerInfo04.Image = Properties.Resources.medal_pink; + } else { + this.picPlayerInfo04.Image = Properties.Resources.medal_eliminated; + } + this.lblPlayerInfo07.Left = this.picPlayerInfo04.Right; + this.lblPlayerInfo07.Text = $@"{this.crownLeagueRank.Value.index} ({this.crownLeagueRank.Value.total})"; + + this.lblPlayerInfo08.Left = this.lblPlayerInfo07.Right + 15; + this.lblPlayerInfo08.Text = $@"{Multilingual.GetWord("leaderboard_grid_header_score")} : {this.crownLeagueRank.Value.score:N0}"; + + + this.picPlayerInfo05.Left = this.lblPlayerInfo08.Right + 15; + this.lblPlayerInfo09.Left = this.picPlayerInfo05.Right; + this.lblPlayerInfo09.Text = $@"{this.crownLeagueRank.Value.crowns:N0}"; + this.picPlayerInfo06.Left = this.lblPlayerInfo09.Right + 15; + this.lblPlayerInfo10.Left = this.picPlayerInfo06.Right - 3; + this.lblPlayerInfo10.Text = $@"{this.crownLeagueRank.Value.shards:N0}"; + this.gridPlayerDetails.Height = this.gridPlayerList.Height - 25; + this.gridPlayerDetails.Top = this.gridPlayerList.Top + 25; + this.lblPlayerInfo06.Visible = true; + this.lblPlayerInfo07.Visible = true; + this.lblPlayerInfo08.Visible = true; + this.lblPlayerInfo09.Visible = true; + this.lblPlayerInfo10.Visible = true; + this.picPlayerInfo04.Visible = true; + this.picPlayerInfo05.Visible = true; + this.picPlayerInfo06.Visible = true; + } + }); + }); + } + + private void gridPlayerDetails_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { + if (e.RowIndex != -1 && ((Grid)sender).SelectedRows.Count > 0) { + PlayerStats.PbInfo data = (PlayerStats.PbInfo)((Grid)sender).SelectedRows[0].DataBoundItem; + if (string.IsNullOrEmpty(data.round)) return; + + this.cboLevelList.SelectedImageItem(this.ReplaceLevelIdInShuffleShow(data.show, data.round), 1); + } + } + + private void gridPlayerDetails_DataSourceChanged(object sender, EventArgs e) { + if (((Grid)sender).Columns.Count == 0) return; + + int pos = 0; + ((Grid)sender).Columns["session"].Visible = false; + ((Grid)sender).Columns["isAnonymous"].Visible = false; + ((Grid)sender).Columns["ip"].Visible = false; + ((Grid)sender).Columns["country"].Visible = false; + ((Grid)sender).Columns["user"].Visible = false; + ((Grid)sender).Columns["roundDisplayName"].Visible = false; + ((Grid)sender).Columns["roundName"].Visible = false; + ((Grid)sender).Setup("show", pos++, this.GetDataGridViewColumnWidth("show"), $"{Multilingual.GetWord("leaderboard_grid_header_show")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["show"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "RoundIcon", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "" }); + ((Grid)sender).Setup("RoundIcon", pos++, this.GetDataGridViewColumnWidth("RoundIcon"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["RoundIcon"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("round", pos++, this.GetDataGridViewColumnWidth("level"), $"{Multilingual.GetWord("level_detail_name")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["round"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "medal", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "" }); + ((Grid)sender).Setup("medal", pos++, this.GetDataGridViewColumnWidth("medal"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["medal"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("index", pos++, 40, $"{Multilingual.GetWord("leaderboard_grid_header_rank")}", DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Columns["index"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("roundTotal", pos++, 100, "", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["roundTotal"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("record", pos++, 0, $"{Multilingual.GetWord("leaderboard_grid_header_record")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["record"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("finish", pos++, 0, $"{Multilingual.GetWord("leaderboard_grid_header_finish")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["finish"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).ClearSelection(); + } + + private void gridPlayerDetails_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { + if (e.RowIndex < 0 || e.RowIndex >= ((Grid)sender).RowCount) return; + + PlayerStats.PbInfo info = (PlayerStats.PbInfo)((Grid)sender).Rows[e.RowIndex].DataBoundItem; + + if (e.RowIndex % 2 == 0) { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(225, 235, 255) : Color.FromArgb(40, 66, 66); + } else { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.WhiteSmoke : Color.FromArgb(49, 51, 56); + } + + if (((Grid)sender).Columns[e.ColumnIndex].Name == "show") { + if (!string.IsNullOrEmpty((string)e.Value)) { + e.Value = Multilingual.GetShowName((string)e.Value) ?? e.Value; + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "RoundIcon") { + if (this.StatsForm.StatLookup.TryGetValue(this.ReplaceLevelIdInShuffleShow(info.show, info.round), out LevelStats l1)) { + e.Value = l1.RoundBigIcon; + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "round") { + if (!string.IsNullOrEmpty((string)e.Value)) { + if (info.index == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = this.StatsForm.StatLookup.TryGetValue((string)e.Value, out LevelStats l2) ? l2.Name : (string)e.Value; + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "medal") { + if (info.index == 0) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_eliminated"); + e.Value = Properties.Resources.medal_eliminated_grid_icon; + } else if (info.index == 1) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_gold"); + e.Value = Properties.Resources.medal_gold_grid_icon; + } else { + double percentage = ((double)(info.index - 1) / (Math.Min(1000, info.roundTotal) - 1)) * 100; + if (percentage <= 20) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_silver"); + e.Value = Properties.Resources.medal_silver_grid_icon; + } else if (percentage <= 50) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_bronze"); + e.Value = Properties.Resources.medal_bronze_grid_icon; + } else { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_pink"); + e.Value = Properties.Resources.medal_pink_grid_icon; + } + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "index") { + if (info.index == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = info.index == 0 ? (object)"-" : info.index; + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "roundTotal") { + if (info.index == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = $"({e.Value})"; + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "record") { + if (info.index == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = Utils.FormatTime((double)e.Value); + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "finish") { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = ((DateTime)e.Value).ToString(Multilingual.GetWord("level_grid_date_format")); + e.Value = Utils.GetRelativeTime((DateTime)e.Value); + } + } + + private void gridPlayerDetails_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { + if (this.playerDetails == null) return; + + string columnName = ((Grid)sender).Columns[e.ColumnIndex].Name; + SortOrder sortOrder = ((Grid)sender).GetSortOrder(columnName); + if (sortOrder == SortOrder.None) { columnName = "round"; } + + this.playerDetails.Sort(delegate (PlayerStats.PbInfo one, PlayerStats.PbInfo two) { + int showCompare = String.Compare(Multilingual.GetShowName(one.show), Multilingual.GetShowName(two.show), StringComparison.Ordinal); + int roundCompare = String.Compare((this.StatsForm.StatLookup.TryGetValue(one.round, out LevelStats l1) ? l1.Name : one.round), (this.StatsForm.StatLookup.TryGetValue(two.round, out LevelStats l2) ? l2.Name : two.round), StringComparison.Ordinal); + int rankCompare = one.index.CompareTo(two.index); + if (sortOrder == SortOrder.Descending) { + (one, two) = (two, one); + } + + switch (columnName) { + case "show": + showCompare = String.Compare(Multilingual.GetShowName(one.show), Multilingual.GetShowName(two.show), StringComparison.Ordinal); + return showCompare != 0 ? showCompare : roundCompare; + case "roundIcon": + case "round": + bool isCreative1 = this.StatsForm.StatLookup.TryGetValue(this.ReplaceLevelIdInShuffleShow(one.show, one.round), out LevelStats ll1) && ll1.IsCreative; + bool isCreative2 = this.StatsForm.StatLookup.TryGetValue(this.ReplaceLevelIdInShuffleShow(two.show, two.round), out LevelStats ll2) && ll2.IsCreative; + int result = sortOrder == SortOrder.Descending ? isCreative2.CompareTo(isCreative1) : isCreative1.CompareTo(isCreative2); + return result == 0 ? string.Compare(ll1?.Name ?? one.roundDisplayName, ll2?.Name ?? two.roundDisplayName, StringComparison.OrdinalIgnoreCase) : result; + case "medal": + double onePercentage = ((double)(one.index - 1) / (Math.Min(1000, one.roundTotal) - 1)) * 100; + double twoPercentage = ((double)(two.index - 1) / (Math.Min(1000, two.roundTotal) - 1)) * 100; + int medalCompare = onePercentage.CompareTo(twoPercentage); + return medalCompare != 0 ? medalCompare : roundCompare; + case "index": + rankCompare = one.index.CompareTo(two.index); + return rankCompare != 0 ? rankCompare : roundCompare; + case "roundTotal": + int totalCompare = one.roundTotal.CompareTo(two.roundTotal); + return totalCompare != 0 ? totalCompare : roundCompare; + case "record": + int recordCompare = one.record.CompareTo(two.record); + return recordCompare != 0 ? recordCompare : roundCompare; + case "finish": + int finishCompare = one.finish.CompareTo(two.finish); + return finishCompare != 0 ? finishCompare : roundCompare; + default: + return 0; + } + }); + + ((Grid)sender).DataSource = null; + ((Grid)sender).DataSource = this.playerDetails; + ((Grid)sender).Columns[columnName].HeaderCell.SortGlyphDirection = sortOrder; + } + + private void grid_CellMouseEnter(object sender, DataGridViewCellEventArgs e) { + if (e.RowIndex >= 0) { + ((Grid)sender).Cursor = Cursors.Hand; + } + } + + private void grid_CellMouseLeave(object sender, DataGridViewCellEventArgs e) { + ((Grid)sender).Cursor = Cursors.Default; + } + + private void grid_SelectionChanged(object sender, EventArgs e) { + if (this.isHeaderClicked) { + ((Grid)sender).ClearSelection(); + this.isHeaderClicked = false; + } + } + + private void grid_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { + if (e.RowIndex == -1) { + this.isHeaderClicked = true; + } + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { + if(keyData == Keys.Escape) { + this.Close(); + return true; + } + return base.ProcessCmdKey(ref msg, keyData); + } + + private void mtbSearchPlayersText_KeyDown(object sender, KeyEventArgs e) { + if (string.IsNullOrEmpty(this.mtbSearchPlayersText.Text)) return; + if (e.KeyCode == Keys.Enter) { + this.mtcTabControl.Enabled = false; + this.cboLevelList.Enabled = false; + this.mtbSearchPlayersText.Enabled = false; + e.SuppressKeyPress = true; + this.gridPlayerList.DataSource = this.searchResultNodata; + this.gridPlayerDetails.DataSource = this.playerDetailsNodata; + this.mpsSpinner03.Visible = true; + this.mpsSpinner03.BringToFront(); + this.spinnerTransition.Start(); + this.targetSpinner = this.mpsSpinner03; + this.isSearchCompleted = false; + Task.Run(() => { + using (ApiWebClient web = new ApiWebClient()) { + web.Headers.Add("X-Authorization-Key", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + string json = web.DownloadString($"{this.PLAYER_LIST_API_URL}{this.mtbSearchPlayersText.Text}"); + SearchResult result = JsonSerializer.Deserialize(json); + this.searchResult = result.found ? result.users : null; + this.searchResult?.Sort((x, y) => StringComparer.OrdinalIgnoreCase.Compare(x.onlineServiceNickname, y.onlineServiceNickname)); + } + }).ContinueWith(prevTask => { + this.spinnerTransition.Stop(); + // this.targetSpinner = null; + this.Invoke((MethodInvoker)delegate { + this.mtcTabControl.Enabled = true; + this.cboLevelList.Enabled = true; + this.mtbSearchPlayersText.Width = this.gridPlayerList.Width + this.gridPlayerDetails.Width + 2; + this.gridPlayerDetails.BringToFront(); + this.gridPlayerDetails.Height = this.gridPlayerList.Height; + this.gridPlayerDetails.Top = this.gridPlayerList.Top; + this.mpsSpinner03.Visible = false; + this.gridPlayerList.DataSource = this.searchResult ?? this.searchResultNodata; + this.mtpSearchPlayersPage.Text = this.searchResult == null ? Multilingual.GetWord("leaderboard_search_players") : $"{Multilingual.GetWord("leaderboard_search_players")} ({this.searchResult.Count:N0}{Multilingual.GetWord("level_detail_creative_player_suffix")})"; + this.gridPlayerList.ClearSelection(); + this.isSearchCompleted = true; + this.mtbSearchPlayersText.Enabled = true; + }); + }); + } + } + + private void gridWeeklyCrown_DataSourceChanged(object sender, EventArgs e) { + if (((Grid)sender).Columns.Count == 0) return; + + int pos = 0; + ((Grid)sender).Columns["isAnonymous"].Visible = false; + ((Grid)sender).Columns["country"].Visible = false; + ((Grid)sender).Columns["onlineServiceType"].Visible = false; + ((Grid)sender).Columns["id"].Visible = false; + ((Grid)sender).Columns["crowns"].Visible = false; + ((Grid)sender).Columns["shards"].Visible = false; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "medal", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "" }); + ((Grid)sender).Setup("medal", pos++, this.GetDataGridViewColumnWidth("medal"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["medal"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("rank", pos++, this.GetDataGridViewColumnWidth("rank"), Multilingual.GetWord("leaderboard_grid_header_rank"), DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["rank"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "platform", ImageLayout = DataGridViewImageCellLayout.Normal, ToolTipText = "" }); + ((Grid)sender).Setup("platform", pos++, this.GetDataGridViewColumnWidth("platform"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["platform"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "flag", ImageLayout = DataGridViewImageCellLayout.Normal, ToolTipText = "" }); + ((Grid)sender).Setup("flag", pos++, this.GetDataGridViewColumnWidth("flag"), "", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["flag"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("onlineServiceNickname", pos++, this.GetDataGridViewColumnWidth("onlineServiceNickname"), $"{Multilingual.GetWord("leaderboard_grid_header_player")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["onlineServiceNickname"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "crownIcon", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "" }); + ((Grid)sender).Setup("crownIcon", pos++, this.GetDataGridViewColumnWidth("crownIcon"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["crownIcon"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; + ((Grid)sender).Columns["crownIcon"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("crowns", pos++, this.GetDataGridViewColumnWidth("crowns"), Multilingual.GetWord("leaderboard_grid_header_crowns"), DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["crowns"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "shardIcon", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "" }); + ((Grid)sender).Setup("shardIcon", pos++, this.GetDataGridViewColumnWidth("shardIcon"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["shardIcon"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; + ((Grid)sender).Columns["shardIcon"].DefaultCellStyle.NullValue = null; + ((Grid)sender).Setup("shards", pos++, 225, Multilingual.GetWord("leaderboard_grid_header_shards"), DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["shards"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("score", pos++, 125, $"{Multilingual.GetWord("leaderboard_grid_header_score")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["score"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("period", pos++, this.GetDataGridViewColumnWidth("period"), $"{Multilingual.GetWord("leaderboard_grid_header_period")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["period"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).ClearSelection(); + } + + private void gridWeeklyCrown_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { + if (e.RowIndex < 0 || e.RowIndex >= ((Grid)sender).RowCount) return; + + string columnName = ((Grid)sender).Columns[e.ColumnIndex].Name; + WeeklyCrown.Player info = (WeeklyCrown.Player)((Grid)sender).Rows[e.RowIndex].DataBoundItem; + + if (e.RowIndex % 2 == 0) { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(225, 235, 255) : Color.FromArgb(40, 66, 66); + } else { + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.WhiteSmoke : Color.FromArgb(49, 51, 56); + } + + if (int.TryParse(info.onlineServiceType, out int type) && (int)Stats.OnlineServiceType == type && string.Equals(Stats.OnlineServiceNickname, info.onlineServiceNickname)) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Fuchsia : Color.GreenYellow; + } + + if (info.rank == 1) { + ((Grid)sender).Rows[e.RowIndex].Height = 41; + ((Grid)sender).Rows[e.RowIndex].DefaultCellStyle.Font = Overlay.GetMainFont(19.5f); + } else if (info.rank == 2) { + ((Grid)sender).Rows[e.RowIndex].Height = 39; + ((Grid)sender).Rows[e.RowIndex].DefaultCellStyle.Font = Overlay.GetMainFont(18.6f); + } else if (info.rank == 3) { + ((Grid)sender).Rows[e.RowIndex].Height = 36; + ((Grid)sender).Rows[e.RowIndex].DefaultCellStyle.Font = Overlay.GetMainFont(18f); + } + + if (columnName == "rank") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + } else if (columnName == "flag") { + if (!info.isAnonymous && !string.IsNullOrEmpty(info.country)) ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetCountryName(info.country); + e.Value = info.isAnonymous ? Properties.Resources.country_unknown_icon : (string.IsNullOrEmpty(info.country) ? Properties.Resources.country_unknown_icon : (Image)Properties.Resources.ResourceManager.GetObject($"country_{info.country.ToLower()}_icon")); + } else if (columnName == "platform") { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord(info.onlineServiceType == "0" ? "level_detail_online_platform_eos" : "level_detail_online_platform_steam"); + e.Value = info.onlineServiceType == "0" ? Properties.Resources.epic_grid_icon : Properties.Resources.steam_grid_icon; + } else if (columnName == "medal") { + if (info.rank == 1) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_gold"); + e.Value = Properties.Resources.medal_gold_1st_grid_icon; + } else { + double percentage = ((double)(info.rank - 1) / (Math.Min(1000, this.StatsForm.totalWeeklyCrownPlayers) - 1)) * 100; + if (percentage < 20) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_silver"); + if (info.rank == 2) { + e.Value = Properties.Resources.medal_silver_2nd_grid_icon; + } else if (info.rank == 3) { + e.Value = Properties.Resources.medal_silver_3rd_grid_icon; + } else { + e.Value = Properties.Resources.medal_silver_grid_icon; + } + } else if (percentage < 50) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_bronze"); + if (info.rank == 2) { + e.Value = Properties.Resources.medal_bronze_2nd_grid_icon; + } else if (info.rank == 3) { + e.Value = Properties.Resources.medal_bronze_3rd_grid_icon; + } else { + e.Value = Properties.Resources.medal_bronze_grid_icon; + } + } else { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_pink"); + e.Value = Properties.Resources.medal_pink_grid_icon; + } + } + } else if (columnName == "onlineServiceNickname") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = info.isAnonymous ? $"👻 {Multilingual.GetWord("leaderboard_grid_anonymous")}" : e.Value; + } else if (columnName == "crowns") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = info.crowns == 0 ? "-" : $"{e.Value:N0}"; + // e.Value = $"{Math.Truncate(info.score / 60):N0}"; + } else if (columnName == "shards") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = info.shards == 0 ? "-" : info.shards >= 60 ? $"{e.Value:N0} ⟦👑{Math.Truncate(info.shards / 60):N0}⟧" : e.Value; + // e.Value = $"{info.score % 60:N0}"; + } else if (columnName == "crownIcon") { + e.Value = Properties.Resources.crown_grid_icon; + } else if (columnName == "shardIcon") { + e.Value = Properties.Resources.shards_grid_icon; + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "score") { + if (info.rank == 1) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + } + e.Value = $"{e.Value:N0}"; + } else if (columnName == "period") { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].Style.Font = Overlay.GetMainFont(16f); + e.Value = $@"📆 {this.StatsForm.weeklyCrownPeriod}"; + } + } + + private void gridWeeklyCrown_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { + if (this.weeklyCrownList == null) return; + + string columnName = ((Grid)sender).Columns[e.ColumnIndex].Name; + if (string.Equals(columnName, "period")) return; + + SortOrder sortOrder = ((Grid)sender).GetSortOrder(columnName); + if (sortOrder == SortOrder.None) { columnName = "rank"; } + + this.weeklyCrownList.Sort(delegate (WeeklyCrown.Player one, WeeklyCrown.Player two) { + int rankCompare = one.rank.CompareTo(two.rank); + int scoreCompare = one.score.CompareTo(two.score); + if (sortOrder == SortOrder.Descending) { + (one, two) = (two, one); + } + + switch (columnName) { + case "medal": + rankCompare = one.rank.CompareTo(two.rank); + return rankCompare != 0 ? rankCompare : scoreCompare; + case "rank": + rankCompare = one.rank.CompareTo(two.rank); + return rankCompare != 0 ? rankCompare : scoreCompare; + case "platform": + int platformCompare = String.Compare(one.onlineServiceType, two.onlineServiceType, StringComparison.OrdinalIgnoreCase); + return platformCompare != 0 ? platformCompare : rankCompare; + case "flag": + int countryCompare = String.Compare(one.country, two.country, StringComparison.OrdinalIgnoreCase); + return countryCompare != 0 ? countryCompare : rankCompare; + case "onlineServiceNickname": + int nicknameCompare = String.Compare(one.onlineServiceNickname, two.onlineServiceNickname, StringComparison.OrdinalIgnoreCase); + return nicknameCompare != 0 ? nicknameCompare : rankCompare; + case "crowns": + case "crownIcon": + int crownsCompare = (one.crowns).CompareTo(two.crowns); + return crownsCompare != 0 ? crownsCompare : scoreCompare; + case "shards": + case "shardIcon": + int shardsCompare = (one.shards).CompareTo(two.shards); + return shardsCompare != 0 ? shardsCompare : scoreCompare; + case "score": + scoreCompare = one.score.CompareTo(two.score); + return scoreCompare != 0 ? scoreCompare : rankCompare; + default: + return 0; + } + }); + + ((Grid)sender).DataSource = null; + ((Grid)sender).DataSource = this.weeklyCrownList; + ((Grid)sender).Columns[columnName].HeaderCell.SortGlyphDirection = sortOrder; + } + + private void gridWeeklyCrown_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { + if (e.RowIndex != -1 && ((Grid)sender).SelectedRows.Count > 0) { + WeeklyCrown.Player data = (WeeklyCrown.Player)((Grid)sender).SelectedRows[0].DataBoundItem; + if (string.IsNullOrEmpty(data.id) || data.isAnonymous) return; + + ((Grid)sender).Enabled = false; + this.gridPlayerList.Enabled = false; + this.gridPlayerDetails.DataSource = this.playerDetailsNodata; + this.spinnerTransition.Start(); + this.targetSpinner = this.mpsSpinner04; + this.mpsSpinner04.BringToFront(); + this.mpsSpinner04.Visible = true; + this.currentUserId = data.id; + this.SetPlayerInfo(data.id); + this.mtcTabControl.SelectedIndex = 2; + } + } + + private void pagingButton_Click(object sender, EventArgs e) { + this.mlLeftPagingButton.Enabled = false; + this.mlRightPagingButton.Enabled = false; + if (sender.Equals(this.mlLeftPagingButton)) { + this.SetWeeklyCrownList(this.StatsForm.weeklyCrownPrevious); + } else if (sender.Equals(this.mlRightPagingButton)) { + this.SetWeeklyCrownList(this.StatsForm.weeklyCrownNext); + } + } + + private void SetWeeklyCrownList(string date = "") { + if (!string.IsNullOrEmpty(date) || this.StatsForm.weeklyCrownList == null || (DateTime.UtcNow > this.StatsForm.weeklyCrownLoadTime && + (DateTime.UtcNow.Year != this.StatsForm.weeklyCrownLoadTime.Year + || DateTime.UtcNow.Month != this.StatsForm.weeklyCrownLoadTime.Month + || DateTime.UtcNow.Day != this.StatsForm.weeklyCrownLoadTime.Day + || DateTime.UtcNow.Hour != this.StatsForm.weeklyCrownLoadTime.Hour))) { + this.cboLevelList.Enabled = false; + this.mlMyRank.Enabled = false; + this.mtcTabControl.Enabled = false; + this.mlVisitFallalytics.Enabled = false; + this.gridWeeklyCrown.DataSource = this.weeklyCrownNodata; + this.mpsSpinner05.Visible = true; + this.mpsSpinner05.BringToFront(); + this.spinnerTransition.Start(); + this.targetSpinner = this.mpsSpinner05; + Task.Run(() => this.StatsForm.InitializeWeeklyCrownList(date)).ContinueWith(prevTask => { + this.weeklyCrownList = this.StatsForm.weeklyCrownList; + this.Invoke((MethodInvoker)delegate { + this.mtcTabControl.Enabled = true; + this.mlMyRank.Enabled = true; + this.cboLevelList.Enabled = true; + this.mpsSpinner05.Visible = false; + this.spinnerTransition.Stop(); + // this.targetSpinner = null; + this.gridWeeklyCrown.DataSource = prevTask.Result ? this.weeklyCrownList : this.weeklyCrownNodata; + this.mlVisitFallalytics.Enabled = true; + if (prevTask.Result) { + // this.mtpWeeklyCrownPage.Text = $@"📆 {Utils.GetWeekString(this.StatsForm.leaderboardWeeklyCrownYear, this.StatsForm.leaderboardWeeklyCrownWeek)}"; + this.lblPagingInfo.Font = Overlay.GetMainFont(23f); + this.lblPagingInfo.Text = $@"📆 {Utils.GetWeekString(this.StatsForm.weeklyCrownCurrentYear, this.StatsForm.weeklyCrownCurrentWeek)}"; + int index = this.weeklyCrownList?.FindIndex(r => string.Equals(Stats.OnlineServiceNickname, r.onlineServiceNickname) && int.TryParse(r.onlineServiceType, out int type) && type == (int)Stats.OnlineServiceType) ?? -1; + this.myWeeklyCrownRank = index + 1; + this.mlMyRank.Visible = this.myWeeklyCrownRank > 0; + if (this.mtcTabControl.SelectedIndex == 3 && index != -1) { + this.mlMyRank.Text = $@"{Utils.AppendOrdinal(this.myWeeklyCrownRank)} {Stats.OnlineServiceNickname}"; + int displayedRowCount = this.gridWeeklyCrown.DisplayedRowCount(false); + int firstDisplayedScrollingRowIndex = index - (displayedRowCount / 2); + this.gridWeeklyCrown.FirstDisplayedScrollingRowIndex = firstDisplayedScrollingRowIndex < 0 ? 0 : firstDisplayedScrollingRowIndex; + if (this.myWeeklyCrownRank == 1) { + this.mlMyRank.Image = Properties.Resources.medal_gold_1st_grid_icon; + } else { + double percentage = ((double)(this.myWeeklyCrownRank - 1) / (Math.Min(1000, this.StatsForm.totalWeeklyCrownPlayers) - 1)) * 100; + if (percentage <= 20) { + if (this.myWeeklyCrownRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_silver_2nd_grid_icon; + } else if (this.myWeeklyCrownRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_silver_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_silver_grid_icon; + } + } else if (percentage <= 50) { + if (this.myWeeklyCrownRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_2nd_grid_icon; + } else if (this.myWeeklyCrownRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_bronze_grid_icon; + } + } else if (percentage <= 100) { + this.mlMyRank.Image = Properties.Resources.medal_pink_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_eliminated_grid_icon; + } + } + this.mlMyRank.Location = new Point(this.Width - this.mlMyRank.Width - 5, this.mtcTabControl.Top + (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? -20 : 5)); + } + this.mlVisitFallalytics.Location = new Point(this.Width - this.mlVisitFallalytics.Width - 5, index != -1 ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : this.mtcTabControl.Top + 5)); + this.lblPagingInfo.Left = (this.ClientSize.Width / 2) - (this.lblPagingInfo.Width / 2); + this.mlLeftPagingButton.Left = this.lblPagingInfo.Left - this.mlRightPagingButton.Width - 5; + this.mlRightPagingButton.Left = this.lblPagingInfo.Right + 5; + this.lblPagingInfo.Visible = true; + this.mlLeftPagingButton.Enabled = !string.IsNullOrEmpty(this.StatsForm.weeklyCrownPrevious); + this.mlRightPagingButton.Enabled = !string.IsNullOrEmpty(this.StatsForm.weeklyCrownNext); + this.mlLeftPagingButton.Visible = !string.IsNullOrEmpty(this.StatsForm.weeklyCrownPrevious); + this.mlRightPagingButton.Visible = !string.IsNullOrEmpty(this.StatsForm.weeklyCrownNext); + this.mtpWeeklyCrownPage.Invalidate(); + } else { + // this.mtpWeeklyCrownPage.Text = Multilingual.GetWord("leaderboard_weekly_crown_league"); + this.weeklyCrownList = null; + this.lblPagingInfo.Visible = false; + this.mlLeftPagingButton.Visible = false; + this.mlRightPagingButton.Visible = false; + } + }); + }); + } else { + this.weeklyCrownList = this.StatsForm.weeklyCrownList; + this.gridWeeklyCrown.DataSource = this.weeklyCrownList; + int index = this.weeklyCrownList?.FindIndex(r => string.Equals(Stats.OnlineServiceNickname, r.onlineServiceNickname) && (int)Stats.OnlineServiceType == int.Parse(r.onlineServiceType)) ?? -1; + this.myWeeklyCrownRank = index + 1; + this.mlVisitFallalytics.Location = new Point(this.Width - this.mlVisitFallalytics.Width - 5, index != -1 ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : this.mtcTabControl.Top + 5)); + this.mlMyRank.Visible = this.myWeeklyCrownRank > 0; + if (this.mtcTabControl.SelectedIndex == 3 && index != -1) { + this.mlMyRank.Text = $@"{Utils.AppendOrdinal(this.myWeeklyCrownRank)} {Stats.OnlineServiceNickname}"; + if (this.myWeeklyCrownRank == 1) { + this.mlMyRank.Image = Properties.Resources.medal_gold_1st_grid_icon; + } else { + double percentage = ((double)(this.myWeeklyCrownRank - 1) / (Math.Min(1000, this.StatsForm.totalWeeklyCrownPlayers) - 1)) * 100; + if (percentage <= 20) { + if (this.myWeeklyCrownRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_silver_2nd_grid_icon; + } else if (this.myWeeklyCrownRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_silver_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_silver_grid_icon; + } + } else if (percentage <= 50) { + if (this.myWeeklyCrownRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_2nd_grid_icon; + } else if (this.myWeeklyCrownRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_bronze_grid_icon; + } + } else if (percentage <= 100) { + this.mlMyRank.Image = Properties.Resources.medal_pink_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_eliminated_grid_icon; + } + } + this.mlMyRank.Location = new Point(this.Width - this.mlMyRank.Width - 5, this.mtcTabControl.Top + (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? -20 : 5)); + } + this.lblPagingInfo.Font = Overlay.GetMainFont(23f); + this.lblPagingInfo.Text = $@"📆 {Utils.GetWeekString(this.StatsForm.weeklyCrownCurrentYear, this.StatsForm.weeklyCrownCurrentWeek)}"; + this.lblPagingInfo.Left = (this.ClientSize.Width / 2) - (this.lblPagingInfo.Width / 2); + this.mlLeftPagingButton.Left = this.lblPagingInfo.Left - this.mlRightPagingButton.Width - 5; + this.mlRightPagingButton.Left = this.lblPagingInfo.Right + 5; + this.lblPagingInfo.Visible = true; + this.mlLeftPagingButton.Enabled = !string.IsNullOrEmpty(this.StatsForm.weeklyCrownPrevious); + this.mlRightPagingButton.Enabled = !string.IsNullOrEmpty(this.StatsForm.weeklyCrownNext); + this.mlLeftPagingButton.Visible = !string.IsNullOrEmpty(this.StatsForm.weeklyCrownPrevious); + this.mlRightPagingButton.Visible = !string.IsNullOrEmpty(this.StatsForm.weeklyCrownNext); + } + } + + private void mtcTabControl_SelectedIndexChanged(object sender, EventArgs e) { + if (this.mtcTabControl.SelectedIndex == 0) { + this.mlMyRank.Visible = this.myOverallRank > 0; + this.mlMyRank.Text = $@"{Utils.AppendOrdinal(this.myOverallRank)} {Stats.OnlineServiceNickname}"; + this.mlVisitFallalytics.Location = new Point(this.Width - this.mlVisitFallalytics.Width - 5, this.myOverallRank > 0 ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : this.mtcTabControl.Top + 5)); + if (this.myOverallRank == 1) { + this.mlMyRank.Image = Properties.Resources.medal_gold_1st_grid_icon; + } else { + double percentage = ((double)(this.myOverallRank - 1) / (Math.Min(1000, this.StatsForm.totalOverallRankPlayers) - 1)) * 100; + if (percentage <= 20) { + if (this.myOverallRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_silver_2nd_grid_icon; + } else if (this.myOverallRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_silver_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_silver_grid_icon; + } + } else if (percentage <= 50) { + if (this.myOverallRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_2nd_grid_icon; + } else if (this.myOverallRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_bronze_grid_icon; + } + } else if (percentage <= 100) { + this.mlMyRank.Image = Properties.Resources.medal_pink_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_eliminated_grid_icon; + } + } + this.mlMyRank.Location = new Point(this.Width - this.mlMyRank.Width - 5, this.mtcTabControl.Top + (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? -20 : 5)); + this.lblPagingInfo.Visible = false; + this.mlLeftPagingButton.Visible = false; + this.mlRightPagingButton.Visible = false; + } else if (this.mtcTabControl.SelectedIndex == 1) { + this.mlMyRank.Visible = this.myLevelRank > 0; + this.mlMyRank.Text = $@"{Utils.AppendOrdinal(this.myLevelRank)} {Stats.OnlineServiceNickname}"; + this.mlVisitFallalytics.Location = new Point(this.Width - this.mlVisitFallalytics.Width - 5, this.myLevelRank > 0 ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : this.mtcTabControl.Top + 5)); + if (this.myLevelRank == 1) { + this.mlMyRank.Image = Properties.Resources.medal_gold_1st_grid_icon; + } else { + double percentage = ((double)(this.myLevelRank - 1) / (Math.Min(1000, this.totalLevelPlayers) - 1)) * 100; + if (percentage <= 20) { + if (this.myLevelRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_silver_2nd_grid_icon; + } else if (this.myLevelRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_silver_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_silver_grid_icon; + } + } else if (percentage <= 50) { + if (this.myLevelRank == 2) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_2nd_grid_icon; + } else if (this.myLevelRank == 3) { + this.mlMyRank.Image = Properties.Resources.medal_bronze_3rd_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_bronze_grid_icon; + } + } else if (percentage <= 100) { + this.mlMyRank.Image = Properties.Resources.medal_pink_grid_icon; + } else { + this.mlMyRank.Image = Properties.Resources.medal_eliminated_grid_icon; + } + } + this.mlMyRank.Location = new Point(this.Width - this.mlMyRank.Width - 5, this.mtcTabControl.Top + (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? -20 : 5)); + this.lblPagingInfo.Visible = false; + this.mlLeftPagingButton.Visible = false; + this.mlRightPagingButton.Visible = false; + } else if (this.mtcTabControl.SelectedIndex == 2) { + this.mlMyRank.Visible = false; + this.mlVisitFallalytics.Location = new Point(this.Width - this.mlVisitFallalytics.Width - 5, (Stats.CurrentLanguage == Language.French || Stats.CurrentLanguage == Language.Japanese ? this.mlMyRank.Top - this.mlVisitFallalytics.Height - 3 : this.mtcTabControl.Top + 5)); + this.lblPagingInfo.Visible = false; + this.mlLeftPagingButton.Visible = false; + this.mlRightPagingButton.Visible = false; + } else if (this.mtcTabControl.SelectedIndex == 3) { + this.SetWeeklyCrownList(); + } + } + + private void link_Click(object sender, EventArgs e) { + if (sender.Equals(this.mlVisitFallalytics)) { + if (this.mtcTabControl.SelectedIndex == 0) { + Process.Start("https://fallalytics.com/leaderboards/speedrun-total"); + } else if (this.mtcTabControl.SelectedIndex == 1) { + Process.Start(string.IsNullOrEmpty(this.levelKey) ? "https://fallalytics.com/leaderboards/speedrun" : $"https://fallalytics.com/leaderboards/speedrun/{this.levelKey}/1"); + } else if (this.mtcTabControl.SelectedIndex == 2) { + Process.Start(this.playerDetails == null ? $"https://fallalytics.com/player-search?q={this.mtbSearchPlayersText.Text}" : $"https://fallalytics.com/player/{this.currentUserId}"); + } else if (this.mtcTabControl.SelectedIndex == 3) { + if (this.StatsForm.weeklyCrownCurrentWeek != 0 && this.StatsForm.weeklyCrownCurrentYear != 0) { + Process.Start($"https://fallalytics.com/leaderboards/crowns/{this.StatsForm.weeklyCrownCurrentWeek}-{this.StatsForm.weeklyCrownCurrentYear}"); + } else { + Process.Start("https://fallalytics.com/leaderboards/crowns"); + } + } + } else if (sender.Equals(this.mlRefreshList)) { + if (!string.IsNullOrEmpty(this.levelKey)) { + TimeSpan difference = DateTime.Now - this.refreshTime; + if (difference.TotalSeconds > 8) { + this.mtcTabControl.SelectedIndex = 1; + this.SetLevelRankList(this.levelKey); + } + } + } else if (sender.Equals(this.mlMyRank)) { + if (this.mtcTabControl.SelectedIndex == 0) { + int displayedRowCount = this.gridOverallRank.DisplayedRowCount(false); + int index = this.overallRankList.FindIndex(r => string.Equals(Stats.OnlineServiceNickname, r.onlineServiceNickname) && (int)Stats.OnlineServiceType == int.Parse(r.onlineServiceType)); + int firstDisplayedScrollingRowIndex = index - (displayedRowCount / 2); + this.gridOverallRank.FirstDisplayedScrollingRowIndex = firstDisplayedScrollingRowIndex < 0 ? 0 : firstDisplayedScrollingRowIndex; + } else if (this.mtcTabControl.SelectedIndex == 1) { + int displayedRowCount = this.gridLevelRank.DisplayedRowCount(false); + int index = this.levelRankList.FindIndex(r => string.Equals(r.onlineServiceId, Stats.OnlineServiceId) && (int)Stats.OnlineServiceType == int.Parse(r.onlineServiceType)); + int firstDisplayedScrollingRowIndex = index - (displayedRowCount / 2); + this.gridLevelRank.FirstDisplayedScrollingRowIndex = firstDisplayedScrollingRowIndex < 0 ? 0 : firstDisplayedScrollingRowIndex; + } else if (this.mtcTabControl.SelectedIndex == 3) { + int displayedRowCount = this.gridWeeklyCrown.DisplayedRowCount(false); + int index = this.weeklyCrownList.FindIndex(r => string.Equals(Stats.OnlineServiceNickname, r.onlineServiceNickname) && (int)Stats.OnlineServiceType == int.Parse(r.onlineServiceType)); + int firstDisplayedScrollingRowIndex = index - (displayedRowCount / 2); + this.gridWeeklyCrown.FirstDisplayedScrollingRowIndex = firstDisplayedScrollingRowIndex < 0 ? 0 : firstDisplayedScrollingRowIndex; + } + } + } + } +} \ No newline at end of file diff --git a/Views/LeaderboardDisplay.resx b/Views/LeaderboardDisplay.resx new file mode 100644 index 000000000..f53159b63 --- /dev/null +++ b/Views/LeaderboardDisplay.resx @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA + AAADNsT/AjbF/wI2xv8DNsX/AjbG/wI2xv8CNsb/AjbG/wI2x/8FMbH/BiaP/wM2x/8CNsX/AjjN/wE8 + 3/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ATze/wI4zP8CNsb/AzbF/wgpj/8GM7P/AzbG/wM2xf8DNsX/AzbF/wM2 + xf8DNsX/AjbF/wI2xv8DNsX/AjbF/wI2xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2xv8CN8j/BS+m/wYl + g/8DN8f/AjbG/wE50/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8COdH/AjbG/wM3x/8IJIH/BTCr/wI2 + yP8CNsb/AjbG/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI1xP8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8CNsb/AjfI/wcsnP8GJIL/AzfI/wI2x/8BOtj/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ATrW/wI2 + x/8DN8f/ByJ8/wUtof8CN8j/AjbG/wI2xv8CNsb/AjbH/wI2xv8CNsb/AjbG/wM2xf8CNMP/AjbG/wI2 + xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI3yP8IK5r/BiSD/wM3x/8CN8n/ATze/wA94v8APOH/ADzh/wA9 + 4v8APeL/ADzh/wA84f8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA94f8APeH/AD3h/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wE73P8CN8n/AzfH/wYjf/8FLZ//AjfI/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8DNcP/AjXF/wI2x/8CNsj/AjbH/wI2x/8CNsb/AjbG/wI2xv8CN8j/Byuc/wYlhv8DN8f/AjjN/wE9 + 4f8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA9 + 4v8APeP/AD3i/wA94/8APeP/AD3i/wA94/8BPeD/AjfL/wM3x/8GJIH/BS2g/wI3yP8CNsb/AjbG/wI2 + xv8CNsf/AjbH/wI2x/8CNsf/AjXF/wI72P8CPNv/Ajvb/wI72f8COtj/ATnU/wI4z/8CN8n/AjfI/wYt + oP8GJ4r/AzfH/wI50f8APeL/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA84/8APOL/ADzj/wE94v8CP+P/Aj7i/wE94v8APOL/ADzi/wA94/8APeP/AD3j/wA9 + 5P8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AT3i/wI50P8DN8b/BiaG/wUu + pf8CN8j/AjfI/wI4zv8COtP/ATrY/wE72f8CPNr/Ajvb/wI72P8BPeH/AD3k/wA95P8APeT/AD3k/wA9 + 5P8BPeL/ATzd/wI50/8FL6n/ByqQ/wM3x/8BOtb/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA9 + 5P8APeT/AD3k/wA95P8APeT/ADzj/wE+4/8NR+b/Jlrp/0Bw7/9WgPL/Yony/2GJ8v9Uf/L/PW3u/yFX + 6f8KReX/AT3j/wA84/8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeP/AD3k/wA9 + 5P8COtT/AzfG/wcni/8EMK7/AjnS/wE83P8BPeL/AD3k/wA95P8APeT/AD3k/wA95P8BPeH/AD3j/wA+ + 5f8APub/AD7m/wA+5f8APuX/AD7l/wA+5v8BPub/BDXB/wgsmP8DN8f/Ajva/wA+5v8APub/AD7l/wA+ + 5v8APub/AD7l/wA+5v8APub/AD7m/wA+5v8APeX/Aj7l/xlR6P9Sfe//lbD3/8XU+v/i6fz/7vP+//L2 + /v/y9v7/7fP+/9/o/P/B0fr/jan2/0h17v8TS+b/AD3l/wA95f8APuX/AD7l/wA+5f8APuX/AD7l/wA+ + 5f8APuX/AD3l/wA+5f8APub/AjvZ/wI3x/8GKZX/BDbE/wA+5f8APub/AD7m/wA+5f8APub/AD7l/wA+ + 5v8APub/AT3i/wE+4/8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7n/wM50v8ILqP/AjfJ/wE8 + 3v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APeb/CkXm/0t37v+rwff/6e/9//3+ + //////////////////////////////////////////////z9///l7P3/obn4/0Bu7f8GQeb/AD3m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wI83f8CN8j/Biyk/wM61P8APuf/AD7m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wE+4v8APuT/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8COtj/BTCw/wI3yv8BPeP/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APeb/FEzm/3qa + 7v/h6fv//v////////////////////////////////////////////////////////////////////7+ + ///b5fz/bpLx/w5I5v8APeb/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeH/AjfJ/wQu + sP8CO9r/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeP/AD3k/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/ATzf/wM0vP8COM3/AD7k/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APef/FU3k/46p7v/z9v3///////////////////////////////////////////////////////// + //////////////////////////////H1/v+GpPP/D0nm/wA95/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD3k/wI3zP8FMrr/Aj3g/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7l/wA/ + 6P8AP+r/AD/p/wA+6P8APuj/AD7o/wA+5/8APuf/AD7n/wI+4/8ENsf/AjnQ/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7o/wA+5/8APef/C0Xh/4ij6P/3+f3///////////////////////////////////////// + ////////////////////////////////////////////////////////9fj+/36d7/8IQ+X/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5f8COM7/BDbI/wI+4/8APuj/AD7n/wA+6P8APuj/AD7o/wA/ + 6f8BP+r/AT/q/wI/5P8KMKH/CDOw/wU3xP8FPNb/BEDj/wFA6/8AP+v/AD/q/wA/6f8BP+f/AjnQ/wI5 + 0/8BP+n/AD/p/wA+6P8APuj/AD7o/wA/6f8AP+n/AD3j/2GE3//x9Pv///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///s8fz/V3/o/wA+5/8APun/AD7p/wA+6P8AP+n/AD7o/wA/6f8BP+f/AjnR/wI50v8BPuf/AD7p/wA/ + 6v8BQOv/BEDl/wU81f8FNLv/BiyZ/wMie/8CG2X/AQIK/wMFEv8CCBz/BA8z/wYZV/8GJYP/BzS0/wU9 + 2v8CQOv/AD/q/wE61P8COtb/AD/q/wA/6v8AP+n/AD/q/wA/6f8AP+r/AD3p/ypZ2f/V3vP///////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////8vX9f8hVeL/AD7q/wA/6f8BP+r/AD/q/wE/6v8BP+r/AT/p/wI6 + 1f8COtb/AD/r/wNA6P8FOsz/BiyX/wMaXv8JEDT/FQ4f/y0WHf9HHyP/Wycq/wEBAP8JCQj/AgIC/wAA + AP8AAAD/AAAD/wEFFP8FEkD/ByiM/wU91/8CO9j/AjvZ/wE/6/8BP+v/AT/r/wE/6/8BP+v/AT/s/wQ+ + 3v+KoeH///////////////////////Hw8P+ko6T/i4qK/87Nzv////////////////////////////// + /////////////+rq6v+bmpr/j46P/9jY2P/////////////////9/v7/e5nn/wI/5v8AP+v/AT/r/wE/ + 6/8BP+v/AT/r/wE/6/8CO9j/AjzZ/wY6zf8FIHb/Bwws/x8PFv9OIiT/fzY8/6RETv+8T1z/x1dl/8pT + Yv8BAQH/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQIE/wMIF/8FFU//Bze+/wE83f8BP+v/AT/r/wE/ + 6/8BP+v/AT/r/wA+6v8oVtP/2eH0//////////////////////+Wlpb/LCsr/ygnJ/9NTE3/4uLi//// + //////////////////////////////z8/P+CgoL/Kigo/ygmJv9cW1z/7e3t/////////////////9Hc + 9f8fU9//AD7r/wE/6/8BP+v/AT/r/wE/6/8BP+v/Ajzc/wczsf8FETr/Kx0L/3U1M/+tSFT/xlFg/81S + Y//NUmL/zFJi/8xUY//LUmH/AAAA/wAAAP8AAAD/AAAA/wkJCP8PDw7/CwsK/wcNFf8KLl7/BA8l/wYg + b/8CPd//AUDt/wFA7P8BQOz/AUDs/wFA7f8APOP/Z4TX//r7/f/////////////////6+vr/bGxs/zMy + Mv83Njb/OTg4/8XFxf/////////////////////////////////x8fH/XFtb/zQzM/83Njb/QkFB/9XV + 1v/////////////////4+v3/W3/e/wA96P8BQOz/AUDs/wFA7P8BQOz/AUDt/wQ82f8EF1X/QzUD/7uM + GP/PYlr/z1lp/89bav/NVWX/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wEBAf8UFBT/FxcW/wwL + Cv8LERv/Czx6/wclTP8EET//BDzX/wFA7v8BQO3/AUDt/wFA7f8BQO7/CD/Y/56v4v////////////// + ////////+fn5/29tbv85Nzf/PDo6/z89Pf/Dw8P/////////////////////////////////7+/w/19e + X/87OTn/PDo6/0dGRv/U1NT//////////////////////5at5v8EP+H/AUDu/wFA7f8BQO3/AUDt/wFA + 7v8EOtH/CxMz/5R4Cv/eqRj/z2Rb/85Zaf/SYW//z1xq/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAA + AP8EBAT/FxYW/xUUFP8ICAf/ChAZ/wQ2dv8GLWD/Aw0x/wQ6zv8BQO//AUDt/wFA7f8BQO3/AD/t/xdI + 0v/Dzej///////////////////////j4+P9wb2//Pjw8/0E/P/9CQED/w8PD//////////////////// + //////////////Dw8P9iYWH/Pz09/0A/P/9KSEn/1NTU///////////////////////Aze3/EUbZ/wA/ + 7v8BQO3/AUDt/wFA7f8BQO//AzfK/xYYJf+xjwX/2qUQ/85jWv/NV2f/0WBu/9Ffbv/LUmL/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8MDAv/ExIR/wULE/8FNnb/BDJt/wMMKf8FOMb/AUHv/wFA + 7f8BQO3/AUDt/wA+6/8nUs7/1tzs///////////////////////4+fn/cXFx/0JBQf9IR0j/VVRU/8XE + xP/////////////////////////////////w8PD/ZGNj/0JCQv9JSUn/W1tb/9XV1f////////////// + ////////2eHz/x5P1v8AP+3/AUDt/wFA7f8BQO3/AUHv/wM0v/8iHxr/wZwD/9qkEf/NYFj/0F5u/81X + Zv/KUWH/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwMD/wUEA/8BBxD/BDV0/wM1 + dv8DDCX/BzS2/wFB8P8BQO3/AUDt/wFA7f8APur/MFjN/9rf7f///////////////////////v7+/5GR + kf9CQkL/Tk5O/4aFhv/d3d3/////////////////////////////////+fn6/4CAgP9CQkL/VFRU/42N + jf/o6Oj//////////////////////+Pp9v8mU9T/AD7s/wFA7v8BQO7/AUDt/wFB8P8GMKz/MCcS/8mi + A//ZoxD/zF1U/8xVZf/LUmL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/BAoS/wU2dv8DN3r/Aw0k/woxp/8BQvH/AUDu/wFB7v8BQO7/AD7q/y9YzP/Y3ev///7+//// + ///////////////////n5+f/kpKS/3x8fP++vr7//f39//////////////////////////////////// + ///f3t7/i4qL/4B/gP/Kysr////////////////////////////g5/b/JFLR/wA/7P8BQO7/AUDu/wFB + 7v8CQvH/BCmU/zwwDf/QqAX/2aMQ/81eVv/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkPF/8QQHz/Bjt+/wQPJ/8ILJb/AkPz/wFB8P8BQfD/AUHw/wA/ + 7P8lUMv/z9Xm//39/P////////////////////////////39/f/7+/v///////////////////////// + //////////////////////////////39/f/8/Pz/////////////////////////////////09vy/xxK + 0P8AQO7/AUHw/wFB8P8BQfD/AkLy/wMhff9MPAf/1q0I/9yoG//OYFn/y1Bi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CBxD/Bjd1/wY9g/8FEi3/BSSC/wJD + 8/8BQfD/AUHw/wFB8P8AQO7/F0XL/7nD4P/4+fj///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////7XD6P8PQc//AEHw/wFB8P8BQfD/AUHw/wNC7v8CG2f/YUwE/9qxBf/YoxL/zF1U/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8BAQH/AAAA/wAAAP8AAAD/AQcQ/wM0 + dP8CPIb/BBg2/wUea/8DQ/H/AULy/wFC8v8BQvL/AULy/wc80f+Spdj/8vLy//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v+HnNr/AzrX/wFC8v8BQfH/AULx/wFC8v8FQuf/BhZL/3ti + BP/dsgD/2KIO/8xdVP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/CwsL/wUF + Bf8AAAD/AAAA/wIHD/8DNHP/AT2J/wQgRv8GFlD/BkPq/wFD9f8BQ/P/AUP0/wFD9P8AO9//W3jL/+Tm + 6//6+vr///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////s7/j/TG3L/wA85f8BQ/T/AUPz/wFD + 9P8BQ/X/BD7b/wwTL/+Zewj/3bIA/9iiD//MXVT/y1Bi/8tRYf/MVWX/zlhn/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wUEBP8FBQX/AAAA/wAAAP8FChP/DDt4/wlDjf8ILFv/BA81/wU/3P8BQ/X/AUPz/wFD + 9P8BQ/T/AEDs/yFLxf/AyeL/8fHx//7///////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v3/usbl/xhG + yf8AQfD/AUP0/wFD9P8BQ/T/AUT2/wU2wP8YFxj/tpML/960B//apRb/zF5W/8tQYv/LUWH/zFZl/8xU + Y//LUWH/y1Fh/8tRYf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DBQd/w9Aff8JPoL/Bhw7/wIH + Hf8IOMD/AUT2/wFD9P8BQ/T/AUP0/wFD9P8DOtP/dIvQ/+Xn6v/29vf///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7/7e/0/2R/zv8BOtr/AUP0/wFD9P8BQ/T/AUP0/wJE9v8HK5T/DAoM/3hgCv/UrAr/3Kkd/85j + W//LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/CAgH/w4ODf8ICAf/AAAA/wAAAP8AAAD/AAAA/wkR + Gf8SQHr/CSNF/wMMLP8KIGb/CS+i/wJE9v8BQ/T/AUP0/wFD9P8BQ/X/AT/r/x9Jw/+0wOH/6uvr//n5 + +v////////////////////////////////////////////////////////////////////////////// + ////////////////////////9/f3/6q33v8WRMf/AEHv/wFD9P8BQ/T/AUP0/wFD9f8EQ+7/CCN//wUb + Xv8MDRr/gGgL/9mnH//OYVn/y1Bh/8tRYf/LUWH/y1Fh/81XZv/PWmn/zFVl/wAAAP8KCQn/EhIS/wAA + AP8AAAD/AAAA/wAAAP8HDRb/Gzdd/wUNJf8HLJf/BzrK/wkrmv8DQ+//AUP2/wFD9f8BQ/X/AUP2/wFD + 9v8AOdj/R2fF/9DW5//r6+v/+fn6//////////////////////////////////////////////////// + ////////////////////////////////////////9/f2/8vT5/86XcT/ADvh/wFD9v8BQ/X/AUP1/wFD + 9f8BQ/b/BT7e/woqmP8FOMj/Ah1x/yIdEP+5jSj/z2BY/8tQYv/LUWH/y1Fh/8tSYv/RXmz/zFZl/8tR + Yf8AAAD/Dg4O/wgICP8AAAD/AQEB/wcHBv8BAQD/AwgP/wcVKf8FF1P/Az7e/wFD9P8JM7f/BT/i/wFD + 9v8BQ/X/AUP1/wFD9v8BQ/b/AULy/wU3yv9ge8v/1tvn/+rq6v/19vb//v7+//////////////////// + ///////////////////////////////////////////////////9/f3/8/Pz/9LY5/9Tccj/AznT/wFD + 9P8BQ/X/AUP1/wFD9f8BQ/X/AUT3/wc6zf8HOMf/AUP3/wQ2w/8EDzT/eFUV/85fVv/LUmP/zFVl/8tR + Yf/KUWH/zllo/85YZ//LUWH/AgIC/wsLC/8BAQH/AAAA/wEBAf8GBgb/AAAA/wQGCv8GCxr/BSWD/wFD + 9f8AQ/n/BD7i/wQ94P8BQ/b/AUP2/wFD9v8BQ/b/AUP2/wFD9v8BQO7/BzfF/196y//P1eb/5+jo/+7v + 7//5+fr//v7+//////////////////////////////////////////////////39/v/29/f/7e3t/8nR + 5v9Tccj/BTjM/wFC8f8BQ/b/AUP1/wFD9v8BQ/b/AUP1/wFD9f8FOtX/AkHs/wBD+f8CQez/ARhd/1U3 + Ev/KW1f/y1Fi/8xWZf/LUWH/y1Fh/8tTYv/OWWj/y1Ji/wMDA/8DAwP/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBgr/BgoZ/wUojf8BRPn/AEP4/wBD9v8BQvH/AEP3/wBD9/8AQ/f/AEP3/wBD9v8AQ/f/AEP3/wFA + 6/8ENcX/Q2XF/6+94f/i5Oj/6Ono/+3u7v/19fX/+fn6//z8/P/9/f3//v7+//39/f/8/Pz/+Pj5//Pz + 8//t7u3/4OPp/6e23v86XcP/AzfM/wFC8f8AQ/f/AEP3/wBD9v8AQ/f/AEP2/wBD9/8AQ/X/AUHx/wBD + +P8AQ/j/AUP1/wEbaP9TNRH/yltX/8tQYv/LUWH/y1Fh/8tRYf/LUWH/y1Rj/8tTYv8AAAD/AAAA/wAA + AP8AAAD/BAQD/woKCv8LCgr/DBAY/wkUJ/8FHWb/A0T0/wBD+P8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEDw/wE1zf8bRL3/aoXQ/7jD4v/c4Oj/5ufo/+jp6f/q6ur/6+zs/+zt + 7f/r7Ov/6uvq/+fo6f/b3+j/sb/i/2F+zv8WQLz/ATfT/wFC8/8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEP5/wRC6/8EFEj/cVAW/9BlXP/OWGj/zVhn/8tTY//LUWH/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wUGBf8KCgr/CQgI/xIYIf8XMVP/BAwr/wc4w/8BRPv/AEP4/wBD + +P8AQ/j/AEP5/wBD+f8AQ/j/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/b/ATvf/wIzw/8aRL3/Tm7K/4Oa + 2P+ot+D/v8ji/8jQ5P/H0OT/vsfi/6W14P9+ltf/SWrI/xdBvf8CM8X/ATzi/wBD9/8AQ/n/AEP5/wBD + +f8AQ/n/AEP4/wBD+P8AQ/n/AEP4/wBD+P8AQ/j/AEP4/wFF+/8GMrD/GRcX/6+FJ//TaV//zVdn/81Y + Z//LVGP/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8DAwP/CgoK/w4NDP8YHSX/GEJ5/wQY + Nv8FEUL/BznG/wJE9v8ARPv/AUT7/wJF+f8BRPr/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/n/AEP6/wBE + +v8BQvL/ATvf/wA0y/8ENMD/Dju9/xpFwf8gSsL/IErC/xpEv/8OOrz/AzO//wA0yv8BO97/AULz/wBD + +v8AQ/n/AEP5/wBD+f8AQ/n/AEP5/wBD+f8ARPn/AUT5/wFE+f8ARPv/AUT7/wNE9P8GNLn/CBEz/25Z + Cf/bqib/02pi/85Zaf/NV2b/y1Nj/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/woK + Cv8LCwr/ChAY/xRDgP8DN3n/BBc1/wMMLP8GIHD/CC6c/wgumv8GI3v/CjvF/wJF/P8ARPv/AET7/wBE + +/8ARPv/AET7/wBE+/8ARPv/AET7/wBE+/8AQ/j/AEHy/wE+5/8BPOD/ADne/wA63v8BPOH/AT7n/wFB + 8P8BQ/j/AET7/wBE+/8ARPv/AET7/wBE+/8ARPv/AET7/wVH+v8VU/z/ElH7/ww0rf8DIHz/Bi2f/wYr + mf8DG2j/ERMf/2lTB//Opgb/36wi/85hWv/OWWr/zFZm/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8BAQH/AAAA/wIHEP8ENXT/ATyI/wM6f/8FKVj/BRYy/wQPJv8EECf/BA0d/wgV + P/8QQ9L/Akb+/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/f8ARP3/AET9/wBE + /f8ARP3/AET9/wBE/f8ARP3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8SUf3/HVr+/w44 + uP8MECb/OC0I/zYsDP85Lgz/WUYG/51+B//UqwT/27EA/9ijEf/MXVX/ylFi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CCBD/BTV0/wE7h/8BO4b/ATyI/wM7 + g/8EOXz/Azl8/w81gP8eEE7/DBdH/xZHzv8GSf3/AEP8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARP3/BEf7/wk0tP8CDy//JVkz/7emFv/OpQT/zqYF/9etBP/csQH/2q8A/9qwAP/YoxH/zF1V/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BAkR/xdE + f/8GQIr/ATuG/wE7hv8BO4b/ATuH/wA7hv8SN5b/YiHV/zANZf8MFDv/GkS1/xBP+v8CRv7/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARf7/A0Px/wYqmP8EESf/CGFI/yW4d/+9shP/3bAA/9uwAP/arwD/2q8A/9qv + AP/bsgf/3akg/8xdVf/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wEHD/8UQn3/FU2T/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETaV/20g7/93He3/PhGA/w0M + Mf8WMn//HFLg/w5P/v8DRv3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AkX8/whL/v8JSvr/BjrN/wUaYf8FHCD/C3hZ/wO9jv8fwHz/vbET/9yv + AP/arwD/2q8A/9qvAP/arwH/4boY/9qnHP/MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wMDA/8AAAD/AAAA/wAAAP8BBw//BDR0/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xQ6 + l/9tIu7/fxv//3wd+f9ZGLP/HwpI/w0WP/8aPJb/HlPh/xRT/P8IS///Akb9/wBD/P8AQ/z/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AEP8/wFF/P8GSf7/EVL//x9b+v8lVdf/Eyx//wURKv8JQTH/C5xz/wPC + j/8Awo//Ib98/72yFf/crwD/2q8A/9qvAP/arwD/2q8B/9uyBP/YohD/zF1U/8tQYv/LUWH/y1Fh/8tT + Yv/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8KCgr/BQUF/wAAAP8AAAD/AQcQ/wM0dP8AO4f/ATuG/wE7 + hv8BO4b/ATuG/whDiv8dQp3/bSHu/34b//99G///fhz//3Md5v9IE5L/Ggk//w0UPP8YMHn/IUm8/x9V + 5v8ZVfn/EFH//wpN//8JS///B0r//whL//8JTP//DU///xVV//8eWfb/JFfg/yNGsP8WKWr/Chgu/wg3 + K/8LgV//B7mJ/wHDkP8AwY7/AMGP/yHAff/BtiD/3bEF/9qvAP/arwD/2q8A/9qvAP/asAD/2KIP/8xd + VP/LUGL/ylFh/81WZf/NV2b/ylFh/8pRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wEBAf8AAAD/AAAA/wII + EP8IN3X/CUOL/w1FjP8ORo3/CUKK/wI8hv8DPof/EjeW/2wg7v9+G///fRv//30b//9+G///fh3+/3Ic + 5P9IGqD/DyJY/wYUM/8MFz3/FCZg/xk1hv8fQKL/I0e0/yBKvf8hSr7/I0a0/yA+nv8ZMX7/EyJX/wsZ + OP8IJTj/C1Re/wuNbv8Gt4f/AcOQ/wDCjv8AwY7/AMGO/wDBj/8fv3v/vbIV/9ywAf/arwH/3LIK/9yz + Df/dswz/27IH/9ijEv/MXVX/y1Bi/8pRYf/LUmL/y1Ji/8tRYf/LUWH/y1Fh/wEBAf8BAQH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8DCBH/Bzd1/wZAiv8IQYr/CkKL/wxFjP8FPoj/ADuF/xE2lf9sIO7/fhv//30b + //99G///fRv//30b//9/Gv//bSj+/xds9v8Hatf/C1On/wg5eP8JKFf/CR5F/wYZO/8FFTL/AwgY/wgh + M/8MNkn/Ck1e/wpuhf8Ol7b/Cbvj/wjO7f8CxZ7/AMGN/wDBjv8BwY7/AMGO/wDBjv8AwY//IL97/72x + E//crwD/27EG/9yzC//csgr/3LII/9uyBf/YoxL/zF1V/8pQYv/LUWH/y1Fh/8tRYf/LUWH/y1Ji/8tS + Yv8FBQT/Dg4O/woKCv8AAAD/AAAA/wAAAP8AAAD/AgkS/ws7ef8MRY3/CECJ/xVMkf8WTZH/CEGK/wA7 + hf8RNpX/bCDu/34b//99G///fRv+/4Yo/f+CI/3/hCT9/20p/P8Sbf3/AHz//wF8//8De/7/B3n3/wh1 + 7f8Gceb/C2nP/wgdMf8RfJb/C8v2/wjQ/P8D1P//AtT//wHT//8Cz/D/BcSe/wnEkv8LxJP/DMWU/wDB + jv8AwY7/AMGP/x+/e/+9sRP/3K8A/9yzC//ftxX/37cT/9uwBv/dtAv/2aUW/81eVv/LUGL/y1Fh/8tR + Yf/LUWH/zlln/85aaf/LVGP/AAAA/wgICP8RERH/AAAA/wAAAP8AAAD/AAAA/wMJEv8IOXf/CUKL/xRM + kf8JQor/EkqQ/wdAiv8AO4X/FDqX/3Al7/9+G///fRv//38e/v+LL/v/izD7/4kq/P9xMPz/E279/wB7 + /v8Bev7/AXr+/wF6/v8Bev//AXr//wiE+/8LQV7/ClNm/wbR/f8A0f//AdH//wHR//8B0f//A9Dw/wzG + of8TxpX/Gsma/xXHmP8Cwo//AcOQ/wPAj/8ov37/wLQW/92wAP/cswr/3rYQ/9yzC//fthP/27IG/9ml + Fv/NXVb/y1Bi/8tRYf/LUWH/y1Ji/9BdbP/LVWT/y1Fh/wAAAP8NDQ3/BgYG/wAAAP8AAAD/CgoK/wUE + BP8BBxD/AzR0/wE8h/8FPoj/ATuG/wE7hv8BO4b/ADuF/xQ6lv9yKO7/fxz//30b//9/Hv7/hSf9/4Yp + /f+FJfz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Eh///D3KY/wgoM/8Kv+j/AdL//wHR + //8B0f//AdH//wPP8P8KxJ//DsWT/xLHlv8Ox5X/CbiJ/wt9XP8HTTj/Fkgv/3FjD//Bmwb/27AB/9qv + AP/arwH/27EE/9qwAP/Yog//zF1U/8xVZv/NVmb/y1Fh/8tRYf/NV2b/zllo/8tRYf8CAgL/BQUF/wAA + AP8AAAD/AAAA/wUFBP8BAAD/AQcQ/wM0dP8BO4f/ATuG/wE7hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b + //99G///fRv//30b//99G///fhv//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4b//w+h + 0P8GHif/D5u9/wLU//8B0f//AdH//wHR//8Dz/D/AsOc/wHBjf8Bwo//B7WG/wlMOf8DCx//AxNP/wMU + VP8EDCv/OS0J/7eTCP/csAD/2q8A/9qvAP/asAD/2KIP/8xdVP/LUmP/zFVk/8tRYf/LUWH/y1Fh/8xW + Zf/LUmL/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AAAA/wEHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wE7 + hv8AO4X/ETaV/2wg7v9+G///fRv//30b//99G///fRv//38c//9sJ/3/Em39/wF7/v8De/7/AXr+/wJ6 + /v8Bev7/AXn+/wKE//8LvfP/CjlH/wxrg/8F0///AdH//wPR//8B0f//As/w/wLDnf8CwY7/AsOQ/wpy + VP8DDCX/BC6n/wM/5f8DPuL/BTCt/wEOOf9UQwf/06oE/9uvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tS + Yv/LUmL/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8LCwv/EhIS/xAPDv8KEBn/Bjd3/wI8 + h/8BO4b/ATuG/wdAif8EPoj/ADuF/xE2lf9sIO7/fhv//4Ij/f+BIf7/fRv//34c//+DIv3/bCj8/xJt + /f8IgP7/FYb9/w+C/f8LgP3/AXr+/wF5/v8ChP7/Bsj//wxthP8KPUz/Fc31/w/U/v8U1f7/BtL//wLP + 8P8FxJ7/CMSR/we9jP8KPi7/BB1w/wJE+P8ARP7/AET9/wJB7/8DI4b/HxoO/7+aCP/csAD/2q8A/9qw + AP/ZpBP/z2Na/9Bba//QXWv/zVdm/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/CAgI/w4O + Dv8JCAf/DxUe/w4+ev8EPoj/ATuG/wE7hv8JQor/CUOL/wE8hf8RN5X/cyrs/4Qk/f+IK/z/hin8/4Ml + /f9+Hf//fhr//2sn/f8Tbf3/DYP9/xWG/f8Pgv3/DoH9/wZ8/f8Bef7/A4T+/wPI//8NpMX/CCg0/xa2 + 2v8R1///FNb//w3W//8E0vH/A8Sd/wW+jP8PsIT/Cy4n/wUnj/8BRf//AET8/wBE/P8BRPr/Ayqe/xkW + Ev+6lgj/3LEA/9qvAP/bsQT/2qca/9FmXf/MVmb/zltp/8xWZf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wUFBP8PDw//EhIR/xogKP8SQX7/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/EjiU/3Yv + 6/+HKP3/giL9/4Eh/f+BIv3/fhz//34a//9rJ/3/E239/wqA/f8Qg/3/C4D9/wZ8/f8Cev7/AXn+/wOE + /v8Dxv//Ccfw/wo5R/8Xh6L/FcPp/xiv0v8Zm7r/EYif/wt6Yv8Pf17/Eo1q/wlBMP8FGVz/BETz/wBF + //8JS///B0bw/wIcb/8xJwj/yaIF/9uwAP/arwD/2rAB/96rIP/UbWT/z1tr/89aaf/LVGP/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/EREQ/wsKCf8HDRb/CTp4/wE7h/8BO4b/ATuG/wE7 + hv8BO4b/ADuF/xI5lf91Luv/hib+/4Um/f+CIv3/fx/9/30c//9+Gv//ayf9/xJt/f8Ae/7/Anr+/wN7 + /v8Ce/7/AXr+/wF5/v8DhP7/A8b//wTT//8LbIX/CyUx/w1DVf8NUmf/DHCM/xKRqP8JpYT/BraG/wXB + j/8NmHH/Bhwh/wche/8FOtD/DkLS/wgng/8LDRj/hWsI/9qwAv/arwD/2q8A/9qwAP/aphf/zWBY/85Z + av/PWmn/ylFh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AQcP/wM0 + c/8BO4f/ATuG/wE7hv8BO4b/BT6I/wM+hv8RN5X/cCXt/4Eg//9/Hv7/fhz+/30b//99G///fhr//20o + /f8WcP3/AHv+/wF6/v8Bev7/AXr+/wV8/f8Iff3/DIn9/xHJ/v8O1f//Dr/n/w6dv/8Jtd3/Ccr0/wXT + //8H0/H/AcSe/wDBjf8AwY7/A8GP/wuNaf8IMir/BBUl/wUSJP8lIAz/gWgL/9OrB//brwD/2q8A/9qv + AP/asAD/2KIP/8xdVP/LUWL/y1Ji/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wIHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wdAif8EPof/ETaV/2wg7v9+G///fRv//30b + //99G///gB/9/4Qj/f9tKf3/G3L9/wF7/v8Bev7/AXr+/wF6/v8Kf/3/BXz+/waG/v8Ix/7/BtP//wTS + /v8C1P//AdL//wDR//8D0f//C9Hv/wTDnf8KxJL/BMKQ/wDBjv8Bw4//B7WG/wmZcv8ikl7/q50T/9yx + B//csQX/2q8A/9qvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DCRH/DT16/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xE2 + lf9sIO7/fhv//30c//+AIP7/hSf9/4Yp/P+JK/v/cC37/xJt/f8Ae/7/AXr+/wF6/v8De/7/D4L9/wyA + /f8Fhf7/Bcb//wnT/v8E0f7/AdH//wHR//8B0f//AdH//wPP8P8LxqH/E8aW/w/Glf8MxZP/BMKQ/wDC + j/8Aw5H/H8J9/76yE//crwD/2q8A/9qvAP/arwD/2q8A/9uxBP/aphj/zF1V/8tQYv/LUWH/y1Fh/8tR + Yf/KUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgcQ/wo6d/8KQ4z/ATuG/wE7 + hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b//9+Hf7/gSL9/4Mk/f+CI/z/iCn7/3Qz+v8Sbf3/AHv+/wF6 + /v8Hff3/CH7+/xuK/v8Vhf3/Dor9/w3H/v8N1P7/CtL+/wTR/v8E0v7/AdH//wHR//8Dz/D/Esik/w/F + lP8Kw5L/C8ST/wnEkv8Cwo//AMGP/x+/e/+9sRP/3K8A/9qvAP/arwD/2q8A/9qvAf/dtQr/2aQU/8xd + VP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AAAA/wIH + D/8DNHP/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETeV/2wg7v9+G///fRv//34e/v+DJfz/iCz7/4Ul + /P9xL/z/Em39/wB7/v8De/7/CH79/wp//v8RhP3/A3v+/xKM/f8Pyf3/AtL//wXR/v8F0v7/DdP+/wPR + //8B0f//A9Dw/w3Hov8OxZP/E8eX/wvDkv8DwY//AMGO/wDBj/8fv3v/vbET/9yvAP/arwD/2q8A/9qv + AP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Ji/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/woK + Cv8EBAT/AAAA/wAAAP8CBw//AzRz/wE7h/8BO4b/ATuG/wE7hv8BO4b/BD6H/xs/m/9tIe7/fhv//30b + //9+HP//fh3+/38e/v9+G///ayb9/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Ghf3/Bcb+/wHS + //8B0f//AdH//wPR//8C0f//AdH//wPP8P8Bw5z/AcGN/wTCkP8Dwo//AsGO/wDBjv8AwY//IMB9/8C1 + Hf/csAH/2q8A/9qvAP/arwD/2q8A/9qwAP/Yog//zF1U/8tQYv/KUWH/zVZl/85XZv/LUWH/y1Fh/8tR + Yf8AAAD/AAAA/wAAAP8CAgL/AQEB/wAAAP8AAAD/AgcQ/wc3df8KQ4z/D0eO/xBIj/8NRYz/BD2I/wI9 + hv8UOZf/bCDu/34b//99G///fRv//30b//99G///fhr//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6 + /v8Bef7/A4T+/wPG//8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/AcOc/wDBjf8AwY7/AMGO/wDB + jv8AwY7/AMGP/x+/e/+9sxj/3K8B/9qvAf/cswr/3rQP/961Dv/dtAn/2aQU/8xdVf/LUGL/y1Fh/8tT + Yv/LUmL/y1Fh/8tRYf/LUWH/AgIC/wMDA/8BAQH/AAAA/wAAAP8AAAD/AAAA/wIHEf8FNnX/Bj+K/wU+ + iP8JQor/C0OK/wpCiv8AO4X/ETaV/2wg7v9+G///fRv//30b//9+HP7/fhz+/34a//9rJ/3/Em39/wB7 + /v8Bev7/AXr+/wF6/v8Bev7/AXn+/wOE/v8Dxv//AdL//wHR//8B0f//AdH//wHR//8B0f//A8/w/wHD + nP8AwY3/AcGO/wLBj/8AwY7/AMGO/wDBj/8fv3v/vbET/9yvAP/bsAT/3LMN/9uyCv/asAX/27EF/9ij + E//MXlX/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LU2P/y1Nj/wICAv8LCwv/ERER/wICAv8AAAD/AAAA/wAA + AP8DCBH/DDt4/w5Hjv8JQor/FEyR/xhOk/8PRo3/ADuF/xE2lf9sIO7/fhv//30b//99G///hSf8/4cq + /P+FJvz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8DhP7/A8b//wHS//8B0f//AdH//wHR + //8B0f//AdH//wLP8P8Ew53/DsaU/w3FlP8UyJj/AsGO/wDBjv8AwY//H797/72xE//crwD/27EG/9+3 + GP/guBb/3LMK/920C//aphn/zV9W/8tQYv/LUWH/y1Fh/8tRYf/OWWj/z1xq/8tVZP8AAAD/AwMD/xMT + E/8CAgL/AAAA/wAAAP8AAAD/AwgQ/wk5dv8EPon/FEyS/wpDiv8LRIz/CkOL/wA7hf8TOpb/cSjt/34b + //99G///fh3+/4gs+/+KL/v/hyj8/3Qz+/8Ubv3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4T+/wPG + //8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/C8Wg/xHHlf8WyJj/FseY/wXDkP8AwY7/AMGP/yPB + fv+/sxn/3K8A/9uwBP/dtRD/27EH/9+3Ff/bsgf/2aQT/81fVv/LUGL/y1Fh/8tRYf/LUWH/z1tq/81X + Zv/LUWH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/Views/LevelDetails.Designer.cs b/Views/LevelDetails.Designer.cs new file mode 100644 index 000000000..215f41fd6 --- /dev/null +++ b/Views/LevelDetails.Designer.cs @@ -0,0 +1,212 @@ +namespace FallGuysStats { + partial class LevelDetails { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LevelDetails)); + this.lblPagingInfo = new System.Windows.Forms.Label(); + this.mlFirstPagingButton = new MetroFramework.Controls.MetroLink(); + this.mlLastPagingButton = new MetroFramework.Controls.MetroLink(); + this.mlLeftPagingButton = new MetroFramework.Controls.MetroLink(); + this.mlRightPagingButton = new MetroFramework.Controls.MetroLink(); + this.mpsSpinner01 = new MetroFramework.Controls.MetroProgressSpinner(); + this.gridDetails = new FallGuysStats.Grid(); + ((System.ComponentModel.ISupportInitialize)(this.gridDetails)).BeginInit(); + this.SuspendLayout(); + // + // mlFirstPagingButton + // + this.mlFirstPagingButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mlFirstPagingButton.AutoSize = true; + this.mlFirstPagingButton.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlFirstPagingButton.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlFirstPagingButton.Image = global::FallGuysStats.Properties.Resources.first_button_icon; + this.mlFirstPagingButton.ImageSize = 21; + this.mlFirstPagingButton.Location = new System.Drawing.Point(0, 34); + this.mlFirstPagingButton.Name = "mlFirstPagingButton"; + this.mlFirstPagingButton.Size = new System.Drawing.Size(23, 22); + this.mlFirstPagingButton.TabIndex = 7; + this.mlFirstPagingButton.UseSelectable = true; + this.mlFirstPagingButton.UseStyleColors = true; + this.mlFirstPagingButton.Visible = false; + this.mlFirstPagingButton.Click += new System.EventHandler(this.pagingButton_Click); + // + // mlLeftPagingButton + // + this.mlLeftPagingButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mlLeftPagingButton.AutoSize = true; + this.mlLeftPagingButton.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlLeftPagingButton.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlLeftPagingButton.Image = global::FallGuysStats.Properties.Resources.left_button_icon; + this.mlLeftPagingButton.ImageSize = 21; + this.mlLeftPagingButton.Location = new System.Drawing.Point(31, 34); + this.mlLeftPagingButton.Name = "mlLeftPagingButton"; + this.mlLeftPagingButton.Size = new System.Drawing.Size(23, 22); + this.mlLeftPagingButton.TabIndex = 7; + this.mlLeftPagingButton.UseSelectable = true; + this.mlLeftPagingButton.UseStyleColors = true; + this.mlLeftPagingButton.Visible = false; + this.mlLeftPagingButton.Click += new System.EventHandler(this.pagingButton_Click); + // + // lblPagingInfo + // + this.lblPagingInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.lblPagingInfo.AutoSize = true; + this.lblPagingInfo.Location = new System.Drawing.Point(65, 32); + this.lblPagingInfo.Name = "lblPagingInfo"; + this.lblPagingInfo.Size = new System.Drawing.Size(31, 22); + this.lblPagingInfo.TabIndex = 3; + this.lblPagingInfo.Text = "1 / 2"; + this.lblPagingInfo.Visible = false; + // + // mlRightPagingButton + // + this.mlRightPagingButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mlRightPagingButton.AutoSize = true; + this.mlRightPagingButton.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlRightPagingButton.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlRightPagingButton.Image = global::FallGuysStats.Properties.Resources.right_button_icon; + this.mlRightPagingButton.ImageSize = 21; + this.mlRightPagingButton.Location = new System.Drawing.Point(127, 34); + this.mlRightPagingButton.Name = "mlRightPagingButton"; + this.mlRightPagingButton.Size = new System.Drawing.Size(23, 22); + this.mlRightPagingButton.TabIndex = 7; + this.mlRightPagingButton.UseSelectable = true; + this.mlRightPagingButton.UseStyleColors = true; + this.mlRightPagingButton.Visible = false; + this.mlRightPagingButton.Click += new System.EventHandler(this.pagingButton_Click); + // + // mlLastPagingButton + // + this.mlLastPagingButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mlLastPagingButton.AutoSize = true; + this.mlLastPagingButton.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlLastPagingButton.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlLastPagingButton.Image = global::FallGuysStats.Properties.Resources.last_button_icon; + this.mlLastPagingButton.ImageSize = 21; + this.mlLastPagingButton.Location = new System.Drawing.Point(158, 34); + this.mlLastPagingButton.Name = "mlLastPagingButton"; + this.mlLastPagingButton.Size = new System.Drawing.Size(23, 22); + this.mlLastPagingButton.TabIndex = 7; + this.mlLastPagingButton.UseSelectable = true; + this.mlLastPagingButton.UseStyleColors = true; + this.mlLastPagingButton.Visible = false; + this.mlLastPagingButton.Click += new System.EventHandler(this.pagingButton_Click); + // + // mpsSpinner01 + // + this.mpsSpinner01.BackColor = System.Drawing.Color.White; + this.mpsSpinner01.Location = new System.Drawing.Point(20, 20); + this.mpsSpinner01.Margin = new System.Windows.Forms.Padding(0); + this.mpsSpinner01.Maximum = 100; + this.mpsSpinner01.MaximumSize = new System.Drawing.Size(32, 32); + this.mpsSpinner01.MinimumSize = new System.Drawing.Size(32, 32); + this.mpsSpinner01.Name = "mpsSpinner01"; + this.mpsSpinner01.Size = new System.Drawing.Size(32, 32); + this.mpsSpinner01.Speed = 3F; + this.mpsSpinner01.Style = MetroFramework.MetroColorStyle.Teal; + this.mpsSpinner01.TabIndex = 4; + this.mpsSpinner01.UseCustomBackColor = true; + this.mpsSpinner01.UseSelectable = true; + this.mpsSpinner01.Value = 10; + this.mpsSpinner01.Visible = false; + // + // gridDetails + // + this.gridDetails.AllowUserToDeleteRows = false; + this.gridDetails.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.gridDetails.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.LightGray; + dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.Cyan; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.gridDetails.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.gridDetails.ColumnHeadersHeight = 20; + this.gridDetails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.gridDetails.Dock = System.Windows.Forms.DockStyle.Fill; + this.gridDetails.EnableHeadersVisualStyles = false; + this.gridDetails.Location = new System.Drawing.Point(23, 60); + this.gridDetails.Name = "gridDetails"; + this.gridDetails.ReadOnly = true; + this.gridDetails.RowHeadersVisible = false; + this.gridDetails.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.gridDetails.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.gridDetails.Size = new System.Drawing.Size(670, 392); + this.gridDetails.TabIndex = 10; + this.gridDetails.DataSourceChanged += new System.EventHandler(this.gridDetails_DataSourceChanged); + this.gridDetails.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridDetails_CellDoubleClick); + this.gridDetails.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridDetails_CellFormatting); + this.gridDetails.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridDetails_CellMouseDown); + this.gridDetails.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridDetails_CellMouseEnter); + this.gridDetails.CellMouseLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridDetails_CellMouseLeave); + this.gridDetails.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridDetails_ColumnHeaderMouseClick); + // this.gridDetails.DataBindingComplete += new System.Windows.Forms.DataGridViewBindingCompleteEventHandler(this.gridDetails_DataBindingComplete); + this.gridDetails.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.gridDetails_MouseWheel); + this.gridDetails.Scroll += new System.Windows.Forms.ScrollEventHandler(this.gridDetails_Scroll); + this.gridDetails.SelectionChanged += new System.EventHandler(this.gridDetails_SelectionChanged); + // + // LevelDetails + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.ClientSize = new System.Drawing.Size(716, 470); + this.Controls.Add(this.mlFirstPagingButton); + this.Controls.Add(this.mlLeftPagingButton); + this.Controls.Add(this.lblPagingInfo); + this.Controls.Add(this.mlRightPagingButton); + this.Controls.Add(this.mlLastPagingButton); + this.Controls.Add(this.mpsSpinner01); + this.Controls.Add(this.gridDetails); + this.ForeColor = System.Drawing.Color.Black; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Name = "LevelDetails"; + this.Padding = new System.Windows.Forms.Padding(23, 60, 23, 18); + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.Style = MetroFramework.MetroColorStyle.Teal; + this.Text = "Level Stats"; + this.Load += new System.EventHandler(this.LevelDetails_Load); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.LevelDetails_KeyDown); + this.Shown += new System.EventHandler(this.LevelDetails_Shown); + ((System.ComponentModel.ISupportInitialize)(this.gridDetails)).EndInit(); + this.ResumeLayout(false); + } + + #endregion + + private System.Windows.Forms.Label lblPagingInfo; + private MetroFramework.Controls.MetroLink mlFirstPagingButton; + private MetroFramework.Controls.MetroLink mlLastPagingButton; + private MetroFramework.Controls.MetroLink mlLeftPagingButton; + private MetroFramework.Controls.MetroLink mlRightPagingButton; + private MetroFramework.Controls.MetroProgressSpinner mpsSpinner01; + private FallGuysStats.Grid gridDetails; + } +} \ No newline at end of file diff --git a/Views/LevelDetails.cs b/Views/LevelDetails.cs new file mode 100644 index 000000000..0c4f290d3 --- /dev/null +++ b/Views/LevelDetails.cs @@ -0,0 +1,1533 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Text.Json; +using System.Threading.Tasks; +using System.Windows.Forms; +using MetroFramework; + +namespace FallGuysStats { + public partial class LevelDetails : MetroFramework.Forms.MetroForm { + public string LevelId { get; set; } + public string LevelName { get; set; } + public Image RoundIcon { get; set; } + public bool IsCreative { get; set; } + public List RoundDetails { get; set; } + public List currentRoundDetails; + public Stats StatsForm { get; set; } + private StatType statType; + private int currentPage, totalPages; + private readonly int pageSize = 1000; + private int currentProfileId = -1; + private int totalHeight; + readonly DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle(); + readonly DataGridViewCellStyle dataGridViewCellStyle2 = new DataGridViewCellStyle(); + + private readonly Timer spinnerTransition = new Timer { Interval = 1 }; + private bool isIncreasing; + private bool preventPaging; + + private readonly Timer scrollTimer = new Timer { Interval = 100 }; + private bool isScrollingStopped = true; + private bool isHeaderClicked; + + public LevelDetails() { + this.InitializeComponent(); + this.Opacity = 0; + this.scrollTimer.Tick += this.scrollTimer_Tick; + this.spinnerTransition.Tick += this.spinnerTransition_Tick; + } + + private void LevelDetails_Load(object sender, EventArgs e) { + this.SetTheme(Stats.CurrentTheme); + // + // dataGridViewCellStyle1 + // + this.dataGridViewCellStyle1.Font = Overlay.GetMainFont(12); + this.dataGridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft; + this.dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.gridDetails.ColumnHeadersDefaultCellStyle = this.dataGridViewCellStyle1; + // + // dataGridViewCellStyle2 + // + this.dataGridViewCellStyle2.Font = Overlay.GetMainFont(14); + this.dataGridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + this.dataGridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.gridDetails.DefaultCellStyle = this.dataGridViewCellStyle2; + + this.currentProfileId = this.StatsForm.GetCurrentProfileId(); + this.gridDetails.CurrentCell = null; + this.gridDetails.ClearSelection(); + this.BackMaxSize = 32; + this.BackImagePadding = new Padding(20, 20, 0, 0); + if (string.Equals(this.LevelName, "Shows")) { + this.gridDetails.Name = "gridShowsStats"; + this.gridDetails.MultiSelect = true; + this.BackImage = Properties.Resources.fallguys_icon; + this.Text = $@" {Multilingual.GetWord("level_detail_show_stats")} - {StatsForm.GetCurrentProfileName().Replace("&", "&&")} ({StatsForm.GetCurrentFilterName()})"; + this.statType = StatType.Shows; + } else if (string.Equals(this.LevelName, "Rounds")) { + this.gridDetails.Name = "gridRoundsStats"; + this.gridDetails.MultiSelect = false; + this.BackImage = this.Theme == MetroThemeStyle.Light ? Properties.Resources.round_icon : Properties.Resources.round_gray_icon; + this.Text = $@" {Multilingual.GetWord("level_detail_round_stats")} - {StatsForm.GetCurrentProfileName().Replace("&", "&&")} ({StatsForm.GetCurrentFilterName()})"; + this.statType = StatType.Rounds; + } else if (string.Equals(this.LevelName, "Finals")) { + this.gridDetails.Name = "gridFinalsStats"; + this.gridDetails.MultiSelect = false; + this.BackImage = this.Theme == MetroThemeStyle.Light ? Properties.Resources.final_icon : Properties.Resources.final_gray_icon; + this.Text = $@" {Multilingual.GetWord("level_detail_final_stats")} - {StatsForm.GetCurrentProfileName().Replace("&", "&&")} ({StatsForm.GetCurrentFilterName()})"; + this.statType = StatType.Rounds; + } else { + this.gridDetails.Name = "gridLevelsStats"; + this.gridDetails.MultiSelect = false; + this.BackImage = this.RoundIcon; + this.Text = $@" {Multilingual.GetWord("level_detail_level_stats")} - {(this.IsCreative ? "🛠️ " : "")}{this.LevelName} ({StatsForm.GetCurrentFilterName()})"; + this.statType = StatType.Levels; + } + this.ClientSize = new Size(this.GetClientWidth(), this.Height + 387); + + this.totalPages = (int)Math.Ceiling(this.RoundDetails.Count / (float)this.pageSize); + this.currentPage = this.totalPages; + if (this.totalPages > 1) { + this.SetPagingDisplay(true); + this.EnablePagingUI(false); + this.gridDetails.Enabled = true; + } + this.UpdateGridPage(false, true, FirstDisplayedScrollingRowIndex.LastIndex, true); + } + + public void LevelDetails_OnUpdatedLevelRows() { + switch (this.statType) { + case StatType.Shows when string.Equals(this.gridDetails.Name, "gridShowsStats"): + this.RoundDetails = this.StatsForm.GetShowsForDisplay(); + this.totalPages = (int)Math.Ceiling(this.RoundDetails.Count / (float)this.pageSize); + if (this.currentProfileId != this.StatsForm.GetCurrentProfileId()) { + this.currentProfileId = this.StatsForm.GetCurrentProfileId(); + this.currentPage = this.totalPages; + } + this.UpdateGridPage(false, true, FirstDisplayedScrollingRowIndex.PrevIndex, false); + this.BackImage = Properties.Resources.fallguys_icon; + this.Text = $@" {Multilingual.GetWord("level_detail_show_stats")} - {StatsForm.GetCurrentProfileName().Replace("&", "&&")} ({StatsForm.GetCurrentFilterName()})"; + this.Invalidate(); + break; + case StatType.Rounds when string.Equals(this.gridDetails.Name, "gridRoundsStats"): + this.RoundDetails = this.StatsForm.GetRoundsForDisplay(); + this.totalPages = (int)Math.Ceiling(this.RoundDetails.Count / (float)this.pageSize); + if (this.currentProfileId != this.StatsForm.GetCurrentProfileId()) { + this.currentProfileId = this.StatsForm.GetCurrentProfileId(); + this.currentPage = this.totalPages; + } + this.UpdateGridPage(false, true, FirstDisplayedScrollingRowIndex.PrevIndex, false); + this.BackImage = this.Theme == MetroThemeStyle.Light ? Properties.Resources.round_icon : Properties.Resources.round_gray_icon; + this.Text = $@" {Multilingual.GetWord("level_detail_round_stats")} - {StatsForm.GetCurrentProfileName().Replace("&", "&&")} ({StatsForm.GetCurrentFilterName()})"; + this.Invalidate(); + break; + case StatType.Rounds when string.Equals(this.gridDetails.Name, "gridFinalsStats"): + this.RoundDetails = this.StatsForm.GetFinalsForDisplay(); + this.totalPages = (int)Math.Ceiling(this.RoundDetails.Count / (float)this.pageSize); + if (this.currentProfileId != this.StatsForm.GetCurrentProfileId()) { + this.currentProfileId = this.StatsForm.GetCurrentProfileId(); + this.currentPage = this.totalPages; + } + this.UpdateGridPage(false, true, FirstDisplayedScrollingRowIndex.PrevIndex, false); + this.BackImage = this.Theme == MetroThemeStyle.Light ? Properties.Resources.final_icon : Properties.Resources.final_gray_icon; + this.Text = $@" {Multilingual.GetWord("level_detail_final_stats")} - {StatsForm.GetCurrentProfileName().Replace("&", "&&")} ({StatsForm.GetCurrentFilterName()})"; + this.Invalidate(); + break; + case StatType.Levels when string.Equals(this.gridDetails.Name, "gridLevelsStats"): + LevelStats levelStats = this.StatsForm.GetFilteredDataSource(this.StatsForm.CurrentSettings.GroupingCreativeRoundLevels).Find(l => string.Equals(l.Id, this.LevelId)); + this.RoundDetails = levelStats.Stats; + this.totalPages = (int)Math.Ceiling(this.RoundDetails.Count / (float)this.pageSize); + if (this.currentProfileId != this.StatsForm.GetCurrentProfileId()) { + this.currentProfileId = this.StatsForm.GetCurrentProfileId(); + this.currentPage = this.totalPages; + } + this.UpdateGridPage(false, true, FirstDisplayedScrollingRowIndex.PrevIndex, false); + this.BackImage = levelStats.RoundIcon; + this.Text = $@" {Multilingual.GetWord("level_detail_level_stats")} - {(this.IsCreative ? "🛠️ " : "")}{this.LevelName} ({StatsForm.GetCurrentFilterName()})"; + this.Invalidate(); + break; + } + } + + private void SetContextMenu() { + if (this.gridDetails.RowCount == 0) { + this.gridDetails.DeallocContextMenu(); + } else { + if (this.statType == StatType.Shows) { + this.gridDetails.MenuSeparator1 = new ToolStripSeparator { + BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17) + , ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray + }; + this.gridDetails.MenuSeparator1.Paint += this.gridDetails.CustomToolStripSeparator_Paint; + // this.gridDetails.CMenu.Items.Add(this.gridDetails.MenuSeparator1); + + if (this.StatsForm.AllProfiles.Count > 1) { + this.gridDetails.MoveShows = new ToolStripMenuItem { + Name = "moveShows" + , Size = new Size(134, 22) + , Text = Multilingual.GetWord("main_move_shows") + , ShowShortcutKeys = true + , Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.move : Properties.Resources.move_gray + , ShortcutKeys = Keys.Control | Keys.P + , BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17) + , ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray + }; + this.gridDetails.MoveShows.Click += this.moveShows_Click; + this.gridDetails.MoveShows.MouseEnter += this.gridDetails.CMenu_MouseEnter; + this.gridDetails.MoveShows.MouseLeave += this.gridDetails.CMenu_MouseLeave; + // this.gridDetails.CMenu.Items.Add(this.gridDetails.MoveShows); + } + + this.gridDetails.DeleteShows = new ToolStripMenuItem { + Name = "deleteShows" + , Size = new Size(134, 22) + , Text = Multilingual.GetWord("main_delete_shows") + , ShowShortcutKeys = true + , Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.delete : Properties.Resources.delete_gray + , ShortcutKeys = Keys.Control | Keys.D + , BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17) + , ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray + }; + this.gridDetails.DeleteShows.Click += this.deleteShows_Click; + this.gridDetails.DeleteShows.MouseEnter += this.gridDetails.CMenu_MouseEnter; + this.gridDetails.DeleteShows.MouseLeave += this.gridDetails.CMenu_MouseLeave; + // this.gridDetails.CMenu.Items.Add(this.gridDetails.DeleteShows); + } else { + this.gridDetails.MenuSeparator1 = new ToolStripSeparator { + BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17) + , ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray + }; + this.gridDetails.MenuSeparator1.Paint += this.gridDetails.CustomToolStripSeparator_Paint; + // this.gridDetails.CMenu.Items.Add(this.gridDetails.MenuSeparator1); + + this.gridDetails.DeleteFinishTime = new ToolStripMenuItem { + Name = "deleteFinishTime" + , Size = new Size(134, 22) + , Text = Multilingual.GetWord("main_delete_finish_time") + , ShowShortcutKeys = true + , Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.delete : Properties.Resources.delete_gray + , ShortcutKeys = Keys.Control | Keys.D + , BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17) + , ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray + }; + this.gridDetails.DeleteFinishTime.Click += this.deleteFinishTime_Click; + this.gridDetails.DeleteFinishTime.MouseEnter += this.gridDetails.CMenu_MouseEnter; + this.gridDetails.DeleteFinishTime.MouseLeave += this.gridDetails.CMenu_MouseLeave; + // this.gridDetails.CMenu.Items.Add(this.gridDetails.DeleteFinishTime); + + this.gridDetails.MenuSeparator2 = new ToolStripSeparator { + BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17) + , ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray + }; + this.gridDetails.MenuSeparator2.Paint += this.gridDetails.CustomToolStripSeparator_Paint; + // this.gridDetails.CMenu.Items.Add(this.gridDetails.MenuSeparator2); + + this.gridDetails.UpdateCreativeLevel = new ToolStripMenuItem { + Name = "updateCreativeShows" + , Size = new Size(134, 22) + , Text = Multilingual.GetWord("main_update_creative_map_infos") + , ShowShortcutKeys = true + , Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.update : Properties.Resources.update_gray + , ShortcutKeys = Keys.Control | Keys.U + , BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17) + , ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray + }; + this.gridDetails.UpdateCreativeLevel.Click += this.updateLevel_Click; + this.gridDetails.UpdateCreativeLevel.MouseEnter += this.gridDetails.CMenu_MouseEnter; + this.gridDetails.UpdateCreativeLevel.MouseLeave += this.gridDetails.CMenu_MouseLeave; + // this.gridDetails.CMenu.Items.Add(this.gridDetails.UpdateCreativeLevel); + } + this.gridDetails.SetContextMenuTheme(); + } + } + + private void spinnerTransition_Tick(object sender, EventArgs e) { + if (this.isIncreasing) { + this.mpsSpinner01.Speed = 3.2F; + if (this.mpsSpinner01.Value < 90) { + this.mpsSpinner01.Value++; + } else { + this.isIncreasing = false; + } + } else { + this.mpsSpinner01.Speed = 2.7F; + if (this.mpsSpinner01.Value > 10) { + this.mpsSpinner01.Value--; + } else { + this.isIncreasing = true; + } + } + } + + private void SetPagingDisplay(bool visible) { + if (visible) { + this.mlLastPagingButton.Location = new Point(this.gridDetails.Right - this.mlLastPagingButton.Width, this.mlLastPagingButton.Top); + this.mlRightPagingButton.Location = new Point(this.mlLastPagingButton.Left - this.mlRightPagingButton.Width - 5, this.mlRightPagingButton.Top); + this.lblPagingInfo.Text = $@"{this.currentPage} / {this.totalPages}"; + this.lblPagingInfo.Location = new Point(this.mlRightPagingButton.Left - this.lblPagingInfo.Width - 5, this.lblPagingInfo.Top); + this.mlLeftPagingButton.Location = new Point(this.lblPagingInfo.Left - this.mlLeftPagingButton.Width - 5, this.mlLeftPagingButton.Top); + this.mlFirstPagingButton.Location = new Point(this.mlLeftPagingButton.Left - this.mlFirstPagingButton.Width - 5, this.mlFirstPagingButton.Top); + } + + this.mlFirstPagingButton.Visible = visible; + this.mlLeftPagingButton.Visible = visible; + this.lblPagingInfo.Visible = visible; + this.mlRightPagingButton.Visible = visible; + this.mlLastPagingButton.Visible = visible; + } + + private void EnablePagingUI(bool enable) { + this.gridDetails.Enabled = enable; + this.mlFirstPagingButton.Enabled = enable; + this.mlLeftPagingButton.Enabled = enable; + this.mlRightPagingButton.Enabled = enable; + this.mlLastPagingButton.Enabled = enable; + } + + private void UpdateGridPage(bool isFirstPage, bool isLastPage, FirstDisplayedScrollingRowIndex firstDisplayedScrollingRowIndex, bool isInitialize) { + // this.EnablePagingUI(false); + Task.Run(() => { + if (this.RoundDetails.Count > 0) { + this.currentRoundDetails = this.RoundDetails.Skip((this.currentPage - 1) * this.pageSize).Take(this.pageSize).ToList(); + if (this.statType != StatType.Shows) { + if ((!isFirstPage && !isLastPage) || isLastPage) { + int firstShowId = this.currentRoundDetails[0].ShowID; + List currentShows = this.currentRoundDetails.FindAll(r => r.ShowID == firstShowId); + List allShows = this.RoundDetails.FindAll(r => r.ShowID == firstShowId); + + if (currentShows.Count != allShows.Count) { + this.currentRoundDetails.RemoveAll(r => r.ShowID == firstShowId); + this.currentRoundDetails.InsertRange(0, allShows); + } + } + + if ((!isFirstPage && !isLastPage) || isFirstPage) { + int lastShowId = this.currentRoundDetails[this.currentRoundDetails.Count - 1].ShowID; + List currentShows = this.currentRoundDetails.FindAll(r => r.ShowID == lastShowId); + List allShows = this.RoundDetails.FindAll(r => r.ShowID == lastShowId); + + if (currentShows.Count != allShows.Count) { + this.currentRoundDetails.RemoveAll(r => r.ShowID == lastShowId); + this.currentRoundDetails.AddRange(allShows); + } + } + } + } + }).ContinueWith(prevTask => { + this.BeginInvoke((MethodInvoker)delegate { + if (this.RoundDetails.Count > 0) { + int prevIndex = this.gridDetails.FirstDisplayedScrollingRowIndex; + this.gridDetails.DataSource = this.currentRoundDetails; + if (this.gridDetails.RowCount > 0) { + switch (firstDisplayedScrollingRowIndex) { + case FirstDisplayedScrollingRowIndex.FirstIndex: + this.gridDetails.FirstDisplayedScrollingRowIndex = 0; + break; + case FirstDisplayedScrollingRowIndex.PrevIndex: + this.gridDetails.FirstDisplayedScrollingRowIndex = this.gridDetails.RowCount - 1 < prevIndex ? this.gridDetails.RowCount - 1 : prevIndex; + break; + case FirstDisplayedScrollingRowIndex.LastIndex: + this.gridDetails.FirstDisplayedScrollingRowIndex = this.gridDetails.RowCount - 1; + break; + } + } + this.gridDetails.Enabled = true; + this.SetPagingDisplay(true); + } else { + this.gridDetails.DataSource = this.RoundDetails; + } + + if (isInitialize) { + this.SetContextMenu(); + } + this.preventPaging = false; + }); + }); + } + + private void pagingButton_Click(object sender, EventArgs e) { + this.preventPaging = true; + if (sender.Equals(this.mlFirstPagingButton)) { + this.currentPage = 1; + this.UpdateGridPage(true, false, FirstDisplayedScrollingRowIndex.FirstIndex, false); + } else if (sender.Equals(this.mlLeftPagingButton)) { + this.currentPage -= 1; + this.UpdateGridPage(false, false, FirstDisplayedScrollingRowIndex.LastIndex, false); + } else if (sender.Equals(this.mlRightPagingButton)) { + this.currentPage += 1; + this.UpdateGridPage(false, false, FirstDisplayedScrollingRowIndex.FirstIndex, false); + } else if (sender.Equals(this.mlLastPagingButton)) { + this.currentPage = this.totalPages; + this.UpdateGridPage(false, true, FirstDisplayedScrollingRowIndex.LastIndex, false); + } + } + + private void LevelDetails_Shown(object sender, EventArgs e) { + this.Opacity = 1; + } + + private void SetTheme(MetroThemeStyle theme) { + this.SuspendLayout(); + + this.mpsSpinner01.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + this.mlFirstPagingButton.Theme = theme; + this.mlLeftPagingButton.Theme = theme; + this.lblPagingInfo.Font = Overlay.GetDefaultFont(23, 0); + this.lblPagingInfo.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.mlRightPagingButton.Theme = theme; + this.mlLastPagingButton.Theme = theme; + + this.gridDetails.Theme = theme; + this.gridDetails.BackgroundColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + this.dataGridViewCellStyle1.BackColor = theme == MetroThemeStyle.Light ? Color.LightGray : Color.FromArgb(2, 2, 2); + this.dataGridViewCellStyle1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.dataGridViewCellStyle1.SelectionBackColor = theme == MetroThemeStyle.Light ? Color.LightGray : Color.FromArgb(2, 2, 2); + this.dataGridViewCellStyle1.SelectionForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + // this.dataGridViewCellStyle1.SelectionBackColor = theme == MetroThemeStyle.Light ? Color.Cyan : Color.DarkMagenta; + // this.dataGridViewCellStyle1.SelectionForeColor = Color.Black; + + this.dataGridViewCellStyle2.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(49, 51, 56); + this.dataGridViewCellStyle2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.WhiteSmoke; + this.dataGridViewCellStyle2.SelectionBackColor = theme == MetroThemeStyle.Light ? Color.DeepSkyBlue : Color.SpringGreen; + this.dataGridViewCellStyle2.SelectionForeColor = Color.Black; + this.Theme = theme; + this.ResumeLayout(); + } + + private int GetClientWidth() { + Language lang = Stats.CurrentLanguage; + switch (this.statType) { + case StatType.Shows: + return this.Width - (lang == Language.English ? -380 : + lang == Language.French ? -400 : + lang == Language.Spanish ? -400 : + lang == Language.Korean ? -370 : + lang == Language.Japanese ? -370 : -380); + case StatType.Rounds: + case StatType.Levels: + return this.Width + (lang == Language.English ? 1310 : + lang == Language.French ? 1305 : + lang == Language.Spanish ? 1305 : + lang == Language.Korean ? 1260 : + lang == Language.Japanese ? 1260 : 1340); + default: + return this.Width + (lang == Language.English ? 1310 : + lang == Language.French ? 1305 : + lang == Language.Spanish ? 1305 : + lang == Language.Korean ? 1260 : + lang == Language.Japanese ? 1260 : 1340); + } + } + + private int GetDataGridViewColumnWidth(string columnName, string columnText = "") { + int sizeOfText; + switch (columnName) { + case "RoundIcon": + return 37; + case "Medal": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "IsFinalIcon": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "ShowID": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "ShowNameId": + return 0; + case "Round": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "Name": + return 0; + case "Players": + case "PlayersPs4": + case "PlayersPs5": + case "PlayersXb1": + case "PlayersXsx": + case "PlayersSw": + case "PlayersPc": + case "PlayersAndroid": + case "PlayersIos": + case "PlayersBots": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "Start": + return 0; + case "End": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "Finish": + return 80; + case "Position": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "Score": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "Kudos": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "CreativeLikes": + case "CreativeDislikes": + return 80; + default: + return 0; + } + + return sizeOfText + 24; + } + + private void scrollTimer_Tick(object sender, EventArgs e) { + this.scrollTimer.Stop(); + this.isScrollingStopped = true; + } + + private void gridDetails_MouseWheel(object sender, MouseEventArgs e) { + if (this.currentPage == this.totalPages && !((Grid)sender).Controls.OfType().First().Visible) { + if (e.Delta > 0 && this.mlLeftPagingButton.Enabled) { + this.mlLeftPagingButton.PerformClick(); + } + } else if (((Grid)sender).Controls.OfType().First().Visible) { + if (e.Delta > 0 && ((Grid)sender).VerticalScrollingOffset == 0 && this.mlLeftPagingButton.Enabled) { + this.mlLeftPagingButton.PerformClick(); + } else if (e.Delta < 0 && (this.totalHeight - ((Grid)sender).Height < ((Grid)sender).VerticalScrollingOffset) && this.mlRightPagingButton.Enabled) { + this.mlRightPagingButton.PerformClick(); + } + } + } + + private void gridDetails_Scroll(object sender, ScrollEventArgs e) { + this.isScrollingStopped = false; + this.scrollTimer.Stop(); + this.scrollTimer.Start(); + + this.StatsForm.HideCustomTooltip(this); + + // if (((Grid)sender).VerticalScrollingOffset == 0) { + // if (!this.preventPaging && this.mlLeftPagingButton.Enabled) { + // this.mlLeftPagingButton.PerformClick(); + // } + // } else if (this.totalHeight - ((Grid)sender).Height < ((Grid)sender).VerticalScrollingOffset) { + // if (!this.preventPaging && this.mlRightPagingButton.Enabled) { + // this.mlRightPagingButton.PerformClick(); + // } + // } + } + + // private void gridDetails_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { + // if (((Grid)sender).RowCount > 0) ((Grid)sender).FirstDisplayedScrollingRowIndex = ((Grid)sender).RowCount - 1; + // } + + private void gridDetails_DataSourceChanged(object sender, EventArgs e) { + if (((Grid)sender).Columns.Count == 0) return; + + if (this.totalPages > 1) { + if (this.currentPage == 1) { + this.mlFirstPagingButton.Enabled = false; + this.mlLeftPagingButton.Enabled = false; + this.mlRightPagingButton.Enabled = true; + this.mlLastPagingButton.Enabled = true; + } else if (this.currentPage == this.totalPages) { + this.mlFirstPagingButton.Enabled = true; + this.mlLeftPagingButton.Enabled = true; + this.mlRightPagingButton.Enabled = false; + this.mlLastPagingButton.Enabled = false; + } else { + this.mlFirstPagingButton.Enabled = true; + this.mlLeftPagingButton.Enabled = true; + this.mlRightPagingButton.Enabled = true; + this.mlLastPagingButton.Enabled = true; + } + } else { + this.mlFirstPagingButton.Enabled = false; + this.mlLeftPagingButton.Enabled = false; + this.mlRightPagingButton.Enabled = false; + this.mlLastPagingButton.Enabled = false; + this.lblPagingInfo.Visible = false; + this.mlFirstPagingButton.Visible = false; + this.mlLeftPagingButton.Visible = false; + this.mlRightPagingButton.Visible = false; + this.mlLastPagingButton.Visible = false; + } + + int pos = 0; + ((Grid)sender).Columns["Tier"].Visible = false; + ((Grid)sender).Columns["ID"].Visible = false; + ((Grid)sender).Columns["Crown"].Visible = false; + ((Grid)sender).Columns["Profile"].Visible = false; + ((Grid)sender).Columns["InParty"].Visible = false; + ((Grid)sender).Columns["PrivateLobby"].Visible = false; + ((Grid)sender).Columns["Qualified"].Visible = false; + ((Grid)sender).Columns["IsFinal"].Visible = false; + ((Grid)sender).Columns["IsTeam"].Visible = false; + ((Grid)sender).Columns["SessionId"].Visible = false; + ((Grid)sender).Columns["RoundId"].Visible = false; + ((Grid)sender).Columns["IsAbandon"].Visible = false; + ((Grid)sender).Columns["UseShareCode"].Visible = false; + ((Grid)sender).Columns["IsCasualShow"].Visible = false; + ((Grid)sender).Columns["CreativeShareCode"].Visible = false; + ((Grid)sender).Columns["CreativeStatus"].Visible = false; + ((Grid)sender).Columns["CreativeAuthor"].Visible = false; + ((Grid)sender).Columns["CreativeOnlinePlatformId"].Visible = false; + ((Grid)sender).Columns["CreativeVersion"].Visible = false; + ((Grid)sender).Columns["CreativeTitle"].Visible = false; + ((Grid)sender).Columns["CreativeDescription"].Visible = false; + ((Grid)sender).Columns["CreativeCreatorTags"].Visible = false; + ((Grid)sender).Columns["CreativeMaxPlayer"].Visible = false; + ((Grid)sender).Columns["CreativeThumbUrl"].Visible = false; + ((Grid)sender).Columns["CreativePlatformId"].Visible = false; + ((Grid)sender).Columns["CreativeLastModifiedDate"].Visible = false; + ((Grid)sender).Columns["CreativePlayCount"].Visible = false; + ((Grid)sender).Columns["CreativeQualificationPercent"].Visible = false; + ((Grid)sender).Columns["CreativeTimeLimitSeconds"].Visible = false; + ((Grid)sender).Columns["CreativeGameModeId"].Visible = false; + ((Grid)sender).Columns["CreativeLevelThemeId"].Visible = false; + ((Grid)sender).Columns["OnlineServiceType"].Visible = false; + ((Grid)sender).Columns["OnlineServiceId"].Visible = false; + ((Grid)sender).Columns["OnlineServiceNickname"].Visible = false; + if (this.statType == StatType.Levels) { + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "RoundIcon", ImageLayout = DataGridViewImageCellLayout.Zoom }); + ((Grid)sender).Setup("RoundIcon", pos++, this.GetDataGridViewColumnWidth("RoundIcon"), "", DataGridViewContentAlignment.MiddleCenter); + } + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "Medal", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = Multilingual.GetWord("level_detail_medal") }); + ((Grid)sender).Setup("Medal", pos++, this.GetDataGridViewColumnWidth("Medal", $"{Multilingual.GetWord("level_detail_medal")}"), $"{Multilingual.GetWord("level_detail_medal")}", DataGridViewContentAlignment.MiddleCenter); + if (this.statType == StatType.Shows) { + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "IsFinalIcon", ImageLayout = DataGridViewImageCellLayout.Zoom, ToolTipText = "IsFinalIcon" }); + ((Grid)sender).Setup("IsFinalIcon", pos++, this.GetDataGridViewColumnWidth("IsFinalIcon", $"{Multilingual.GetWord("level_detail_is_final")}"), $"{Multilingual.GetWord("level_detail_is_final")}", DataGridViewContentAlignment.MiddleCenter); + //((Grid)sender).Setup("IsFinal", pos++, this.GetDataGridViewColumnWidth("IsFinalIcon", $"{Multilingual.GetWord("level_detail_is_final")}"), $"{Multilingual.GetWord("level_detail_is_final")}", DataGridViewContentAlignment.MiddleCenter); + } + ((Grid)sender).Setup("ShowID", pos++, this.GetDataGridViewColumnWidth("ShowID", $"{Multilingual.GetWord("level_detail_show_id")}"), $"{Multilingual.GetWord("level_detail_show_id")}", DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("ShowNameId", pos++, this.GetDataGridViewColumnWidth("ShowNameId", $"{Multilingual.GetWord("level_detail_show_name_id")}"), $"{Multilingual.GetWord("level_detail_show_name_id")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["ShowNameId"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("Round", pos++, this.GetDataGridViewColumnWidth("Round", $"{Multilingual.GetWord("level_detail_round")}{(this.statType == StatType.Shows ? Multilingual.GetWord("level_detail_round_suffix") : "")}"), $"{Multilingual.GetWord("level_detail_round")}{(this.statType == StatType.Shows ? Multilingual.GetWord("level_detail_round_suffix") : "")}", DataGridViewContentAlignment.MiddleRight); + if (this.statType == StatType.Rounds) { + ((Grid)sender).Columns.Add(new DataGridViewImageColumn { Name = "RoundIcon", ImageLayout = DataGridViewImageCellLayout.Zoom }); + ((Grid)sender).Setup("RoundIcon", pos++, this.GetDataGridViewColumnWidth("RoundIcon"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("Name", pos++, this.GetDataGridViewColumnWidth("Name", $"{Multilingual.GetWord("level_detail_name")}"), $"{Multilingual.GetWord("level_detail_name")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["Name"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("CreativeLikes", pos++, this.GetDataGridViewColumnWidth("CreativeLikes"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["CreativeLikes"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; + ((Grid)sender).Setup("CreativeDislikes", pos++, this.GetDataGridViewColumnWidth("CreativeDislikes"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["CreativeDislikes"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; + } else if (this.statType == StatType.Levels) { + ((Grid)sender).Setup("Name", pos++, this.GetDataGridViewColumnWidth("Name", $"{Multilingual.GetWord("level_detail_name")}"), $"{Multilingual.GetWord("level_detail_name")}", DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["Name"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("CreativeLikes", pos++, this.GetDataGridViewColumnWidth("CreativeLikes"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["CreativeLikes"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; + ((Grid)sender).Setup("CreativeDislikes", pos++, this.GetDataGridViewColumnWidth("CreativeDislikes"), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["CreativeDislikes"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; + } else { + ((Grid)sender).Columns["Name"].Visible = false; + ((Grid)sender).Columns["CreativeLikes"].Visible = false; + ((Grid)sender).Columns["CreativeDislikes"].Visible = false; + } + if (this.statType == StatType.Shows) { + ((Grid)sender).Columns["Players"].Visible = false; + ((Grid)sender).Columns["PlayersPs4"].Visible = false; + ((Grid)sender).Columns["PlayersPs5"].Visible = false; + ((Grid)sender).Columns["PlayersXb1"].Visible = false; + ((Grid)sender).Columns["PlayersXsx"].Visible = false; + ((Grid)sender).Columns["PlayersSw"].Visible = false; + ((Grid)sender).Columns["PlayersPc"].Visible = false; + ((Grid)sender).Columns["PlayersAndroid"].Visible = false; + ((Grid)sender).Columns["PlayersIos"].Visible = false; + ((Grid)sender).Columns["PlayersBots"].Visible = false; + ((Grid)sender).Columns["PlayersEtc"].Visible = false; + } else { + ((Grid)sender).Setup("Players", pos++, this.GetDataGridViewColumnWidth("Players", $"{Multilingual.GetWord("level_detail_players")}"), $"{Multilingual.GetWord("level_detail_players")}", DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("PlayersPs4", pos++, this.GetDataGridViewColumnWidth("PlayersPs4", $"{Multilingual.GetWord("level_detail_playersPs4")}"), $"{Multilingual.GetWord("level_detail_playersPs4")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("PlayersPs5", pos++, this.GetDataGridViewColumnWidth("PlayersPs5", $"{Multilingual.GetWord("level_detail_playersPs5")}"), $"{Multilingual.GetWord("level_detail_playersPs5")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("PlayersXb1", pos++, this.GetDataGridViewColumnWidth("PlayersXb1", $"{Multilingual.GetWord("level_detail_playersXb1")}"), $"{Multilingual.GetWord("level_detail_playersXb1")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("PlayersXsx", pos++, this.GetDataGridViewColumnWidth("PlayersXsx", $"{Multilingual.GetWord("level_detail_playersXsx")}"), $"{Multilingual.GetWord("level_detail_playersXsx")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("PlayersSw", pos++, this.GetDataGridViewColumnWidth("PlayersSw", $"{Multilingual.GetWord("level_detail_playersSw")}"), $"{Multilingual.GetWord("level_detail_playersSw")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("PlayersPc", pos++, this.GetDataGridViewColumnWidth("PlayersPc", $"{Multilingual.GetWord("level_detail_playersPc")}"), $"{Multilingual.GetWord("level_detail_playersPc")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("PlayersAndroid", pos++, this.GetDataGridViewColumnWidth("PlayersAndroid", $"{Multilingual.GetWord("level_detail_playersAndroid")}"), $"{Multilingual.GetWord("level_detail_playersAndroid")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("PlayersIos", pos++, this.GetDataGridViewColumnWidth("PlayersIos", $"{Multilingual.GetWord("level_detail_playersIos")}"), $"{Multilingual.GetWord("level_detail_playersIos")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("PlayersBots", pos++, this.GetDataGridViewColumnWidth("PlayersBots", $"{Multilingual.GetWord("level_detail_playersBots")}"), $"{Multilingual.GetWord("level_detail_playersBots")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["PlayersEtc"].Visible = false; + } + ((Grid)sender).Setup("Start", pos++, this.GetDataGridViewColumnWidth("Start", $"{Multilingual.GetWord("level_detail_start")}"), $"{Multilingual.GetWord("level_detail_start")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("End", pos++, this.GetDataGridViewColumnWidth("End", $"{Multilingual.GetWord("level_detail_end")}"), $"{Multilingual.GetWord("level_detail_end")}", DataGridViewContentAlignment.MiddleCenter); + if (this.statType == StatType.Shows) { + ((Grid)sender).Columns["Finish"].Visible = false; + ((Grid)sender).Columns["Position"].Visible = false; + ((Grid)sender).Columns["Score"].Visible = false; + } else { + ((Grid)sender).Setup("Finish", pos++, this.GetDataGridViewColumnWidth("Finish", $"{Multilingual.GetWord("level_detail_finish")}"), $"{Multilingual.GetWord("level_detail_finish")}", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Setup("Position", pos++, this.GetDataGridViewColumnWidth("Position", $"{Multilingual.GetWord("level_detail_position")}"), $"{Multilingual.GetWord("level_detail_position")}", DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("Score", pos++, this.GetDataGridViewColumnWidth("Score", $"{Multilingual.GetWord("level_detail_score")}"), $"{Multilingual.GetWord("level_detail_score")}", DataGridViewContentAlignment.MiddleRight); + } + ((Grid)sender).Setup("Kudos", pos++, this.GetDataGridViewColumnWidth("Kudos", $"{Multilingual.GetWord("level_detail_kudos")}"), $"{Multilingual.GetWord("level_detail_kudos")}", DataGridViewContentAlignment.MiddleRight); + + bool colorSwitch = true; + int lastShow = -1; + Color backColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(225, 235, 255) : Color.FromArgb(40, 66, 66); + Color foreColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.WhiteSmoke; + this.totalHeight = 0; + for (int i = 0; i < ((Grid)sender).RowCount; i++) { + int showID = (int)((Grid)sender).Rows[i].Cells["ShowID"].Value; + if (showID != lastShow) { + colorSwitch = !colorSwitch; + lastShow = showID; + } + + if (colorSwitch) { + ((Grid)sender).Rows[i].DefaultCellStyle.BackColor = backColor; + ((Grid)sender).Rows[i].DefaultCellStyle.ForeColor = foreColor; + } + this.totalHeight += ((Grid)sender).Rows[i].Height; + } + ((Grid)sender).ClearSelection(); + } + + private void gridDetails_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { + if (((Grid)sender).RowCount <= 0 || e.RowIndex < 0 || e.RowIndex >= ((Grid)sender).RowCount) return; + + RoundInfo info = ((Grid)sender).Rows[e.RowIndex].DataBoundItem as RoundInfo; + if (info.PrivateLobby) { // Custom + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.LightGray : Color.FromArgb(8, 8, 8); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (info.IsCasualShow) { // "Explore" Shows + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.LightBlue : Color.FromArgb(8, 8, 40); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.MidnightBlue : Color.SkyBlue; + } + + if (((Grid)sender).Columns[e.ColumnIndex].Name == "End") { + e.Value = (info.End - info.Start).ToString("m\\:ss"); + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "Start") { + e.Value = info.StartLocal.ToString(Multilingual.GetWord("level_grid_date_format"), Utils.GetCultureInfo()); + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "Finish") { + if (info.Finish.HasValue) { + e.Value = (info.Finish.Value - info.Start).ToString("m\\:ss\\.fff"); + } + } else if (this.statType == StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "Qualified") { + e.Value = !string.IsNullOrEmpty(info.Name); + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "Medal" && e.Value == null) { + if (info.Qualified) { + switch (info.Tier) { + case 0: + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_pink"); + e.Value = Properties.Resources.medal_pink_grid_icon; + break; + case 1: + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_gold"); + e.Value = Properties.Resources.medal_gold_grid_icon; + break; + case 2: + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_silver"); + e.Value = Properties.Resources.medal_silver_grid_icon; + break; + case 3: + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_bronze"); + e.Value = Properties.Resources.medal_bronze_grid_icon; + break; + } + } else { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_eliminated"); + e.Value = Properties.Resources.medal_eliminated_grid_icon; + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "IsFinalIcon") { + if (info.IsCasualShow) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetShowName("casual_show"); + e.Value = Properties.Resources.casual_show_icon; + } else if (info.IsFinal || info.Qualified) { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_success_reaching_finals"); + e.Value = this.Theme == MetroThemeStyle.Light ? Properties.Resources.final_icon : Properties.Resources.final_gray_icon; + } else { + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_failure_reaching_finals"); + e.Value = Properties.Resources.uncheckmark_icon; + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "ShowID") { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Navy : Color.Snow; + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "RoundIcon") { + if ((this.statType == StatType.Levels || this.statType == StatType.Rounds) && this.StatsForm.StatLookup.TryGetValue(info.UseShareCode ? (string.IsNullOrEmpty(info.ShowNameId) ? "user_creative_race_round" : info.ShowNameId) : info.Name, out LevelStats level)) { + e.Value = level.RoundIcon; + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "Round") { + if ((this.statType == StatType.Levels || this.statType == StatType.Rounds) && this.StatsForm.StatLookup.TryGetValue(info.UseShareCode ? info.ShowNameId : info.Name, out LevelStats level)) { + Color c1 = level.Type.LevelForeColor(false, info.IsTeam, this.Theme); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? c1 : ControlPaint.LightLight(c1); + if (level.IsCreative && info.CreativeVersion == 0) { + e.Value = $"🔄️ {e.Value}"; + } + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "Name") { + if (info.UseShareCode) { + if (this.StatsForm.StatLookup.TryGetValue((string.IsNullOrEmpty(info.ShowNameId) ? "user_creative_race_round" : info.ShowNameId), out LevelStats level)) { + Color c1 = info.CreativeVersion == 0 ? (this.Theme == MetroThemeStyle.Light ? Color.Navy : Color.Snow) : level.Type.LevelForeColor(info.IsFinal, info.IsTeam, this.Theme); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? c1 : ControlPaint.LightLight(c1); + e.Value = $"🔧 {(string.IsNullOrEmpty(info.CreativeTitle) ? info.Name : info.CreativeTitle)}"; + } + } else { + if (this.StatsForm.StatLookup.TryGetValue((string)e.Value, out LevelStats level)) { + Color c1 = level.Type.LevelForeColor(info.IsFinal, info.IsTeam, this.Theme); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? c1 : ControlPaint.LightLight(c1); + e.Value = $"{(level.IsCreative ? "🔧 " : "")}{level.Name}"; + } + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "CreativeLikes") { + if ((this.statType == StatType.Levels || this.statType == StatType.Rounds) && this.StatsForm.StatLookup.TryGetValue(info.UseShareCode ? info.ShowNameId : info.Name, out LevelStats level)) { + if (level.IsCreative && info.CreativeVersion > 0) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(214, 86, 100) : Color.FromArgb(220, 155, 162); + e.CellStyle.Font = new Font("Tahoma", 8); + e.Value = $"👍 {e.Value:N0}"; + } else { + e.Value = ""; + } + } else { + e.Value = ""; + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "CreativeDislikes") { + if ((this.statType == StatType.Levels || this.statType == StatType.Rounds) && this.StatsForm.StatLookup.TryGetValue(info.UseShareCode ? info.ShowNameId : info.Name, out LevelStats level)) { + if (level.IsCreative && info.CreativeVersion > 0) { + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(101, 82, 183) : Color.FromArgb(147, 136, 195); + e.CellStyle.Font = new Font("Tahoma", 8); + e.Value = $"👎 {e.Value:N0}"; + } else { + e.Value = ""; + } + } else { + e.Value = ""; + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "ShowNameId") { + if (!string.IsNullOrEmpty((string)e.Value)) { + e.Value = info.UseShareCode ? $"🔧 {Multilingual.GetShowName("fall_guys_creative_mode")}" : Multilingual.GetShowName(((string)e.Value).Split(';')[0]) ?? ""; + } + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "Position") { + if ((int)e.Value == 0) { e.Value = ""; } + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "Players") { + e.CellStyle.Font = Overlay.GetMainFont(e.CellStyle.Font.Size * 1.1f); + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "PlayersPs4") { + e.CellStyle.Font = Overlay.GetMainFont(e.CellStyle.Font.Size * 0.9f); + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_playersPs4_desc"); + if ((int)e.Value == 0) { e.Value = "-"; } + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "PlayersPs5") { + e.CellStyle.Font = Overlay.GetMainFont(e.CellStyle.Font.Size * 0.9f); + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_playersPs5_desc"); + if ((int)e.Value == 0) { e.Value = "-"; } + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "PlayersXb1") { + e.CellStyle.Font = Overlay.GetMainFont(e.CellStyle.Font.Size * 0.9f); + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_playersXb1_desc"); + if ((int)e.Value == 0) { e.Value = "-"; } + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "PlayersXsx") { + e.CellStyle.Font = Overlay.GetMainFont(e.CellStyle.Font.Size * 0.9f); + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_playersXsx_desc"); + if ((int)e.Value == 0) { e.Value = "-"; } + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "PlayersSw") { + e.CellStyle.Font = Overlay.GetMainFont(e.CellStyle.Font.Size * 0.9f); + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_playersSw_desc"); + if ((int)e.Value == 0) { e.Value = "-"; } + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "PlayersPc") { + e.CellStyle.Font = Overlay.GetMainFont(e.CellStyle.Font.Size * 0.9f); + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_playersPc_desc"); + if ((int)e.Value == 0) { e.Value = "-"; } + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "PlayersAndroid") { + e.CellStyle.Font = Overlay.GetMainFont(e.CellStyle.Font.Size * 0.9f); + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_playersAndroid_desc"); + if ((int)e.Value == 0) { e.Value = "-"; } + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "PlayersIos") { + e.CellStyle.Font = Overlay.GetMainFont(e.CellStyle.Font.Size * 0.9f); + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_playersIos_desc"); + if ((int)e.Value == 0) { e.Value = "-"; } + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "PlayersBots") { + e.CellStyle.Font = Overlay.GetMainFont(e.CellStyle.Font.Size * 0.9f); + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = Multilingual.GetWord("level_detail_playersBots_desc"); + if ((int)e.Value == 0) { e.Value = "-"; } + } else if (this.statType != StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "Score") { + e.Value = $"{e.Value:N0}"; + } else if (((Grid)sender).Columns[e.ColumnIndex].Name == "Kudos") { + e.Value = (int)e.Value == 0 ? "" : $"{e.Value:N0}"; + } + } + + private void gridDetails_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { + if (e.RowIndex == -1) { + this.isHeaderClicked = true; + } + } + + private void gridDetails_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { + if (this.currentRoundDetails == null || this.currentRoundDetails.Count == 0) return; + + string columnName = ((Grid)sender).Columns[e.ColumnIndex].Name; + // if (string.Equals(columnName, "CreativeLikes") || string.Equals(columnName, "CreativeDislikes")) return; + SortOrder sortOrder = ((Grid)sender).GetSortOrder(columnName); + if (sortOrder == SortOrder.None) { columnName = "ShowID"; } + + this.currentRoundDetails.Sort(delegate (RoundInfo one, RoundInfo two) { + int roundCompare = one.Round.CompareTo(two.Round); + int showCompare = one.ShowID.CompareTo(two.ShowID); + if (sortOrder == SortOrder.Descending) { + (one, two) = (two, one); + } + + switch (columnName) { + case "ShowID": + showCompare = one.ShowID.CompareTo(two.ShowID); + return showCompare != 0 ? showCompare : roundCompare; + case "ShowNameId": + string showNameIdOne = Multilingual.GetShowName(one.ShowNameId) ?? @" "; + string showNameIdTwo = Multilingual.GetShowName(two.ShowNameId) ?? @" "; + int showNameIdCompare = showNameIdOne.CompareTo(showNameIdTwo); + return showNameIdCompare != 0 ? showNameIdCompare : showCompare == 0 ? roundCompare : showCompare; + case "Round": + roundCompare = one.Round.CompareTo(two.Round); + return roundCompare != 0 ? roundCompare : showCompare; + case "RoundIcon": + case "Name": + case "CreativeLikes": + case "CreativeDislikes": + string nameOne = one.UseShareCode ? (string.IsNullOrEmpty(one.CreativeTitle) ? one.Name : one.CreativeTitle) : (this.StatsForm.StatLookup.TryGetValue(one.Name, out LevelStats levelOne) ? levelOne.Name : one.Name); + string nameTwo = two.UseShareCode ? (string.IsNullOrEmpty(two.CreativeTitle) ? two.Name : two.CreativeTitle) : (this.StatsForm.StatLookup.TryGetValue(two.Name, out LevelStats levelTwo) ? levelTwo.Name : two.Name); + int nameCompare = nameOne.CompareTo(nameTwo); + return nameCompare != 0 ? nameCompare : showCompare; + case "Players": + int playerCompare = one.Players.CompareTo(two.Players); + return playerCompare != 0 ? playerCompare : showCompare == 0 ? roundCompare : showCompare; + case "PlayersPs4": + int playerPs4Compare = one.PlayersPs4.CompareTo(two.PlayersPs4); + return playerPs4Compare != 0 ? playerPs4Compare : showCompare == 0 ? roundCompare : showCompare; + case "PlayersPs5": + int playerPs5Compare = one.PlayersPs5.CompareTo(two.PlayersPs5); + return playerPs5Compare != 0 ? playerPs5Compare : showCompare == 0 ? roundCompare : showCompare; + case "PlayersXb1": + int playerXb1Compare = one.PlayersXb1.CompareTo(two.PlayersXb1); + return playerXb1Compare != 0 ? playerXb1Compare : showCompare == 0 ? roundCompare : showCompare; + case "PlayersXsx": + int playerXsxCompare = one.PlayersXsx.CompareTo(two.PlayersXsx); + return playerXsxCompare != 0 ? playerXsxCompare : showCompare == 0 ? roundCompare : showCompare; + case "PlayersSw": + int playerSwCompare = one.PlayersSw.CompareTo(two.PlayersSw); + return playerSwCompare != 0 ? playerSwCompare : showCompare == 0 ? roundCompare : showCompare; + case "PlayersPc": + int playerPcCompare = one.PlayersPc.CompareTo(two.PlayersPc); + return playerPcCompare != 0 ? playerPcCompare : showCompare == 0 ? roundCompare : showCompare; + case "PlayersAndroid": + int playerAndroidCompare = one.PlayersAndroid.CompareTo(two.PlayersAndroid); + return playerAndroidCompare != 0 ? playerAndroidCompare : showCompare == 0 ? roundCompare : showCompare; + case "PlayersIos": + int playerIosCompare = one.PlayersIos.CompareTo(two.PlayersIos); + return playerIosCompare != 0 ? playerIosCompare : showCompare == 0 ? roundCompare : showCompare; + case "PlayersBots": + int playersBotsCompare = one.PlayersBots.CompareTo(two.PlayersBots); + return playersBotsCompare != 0 ? playersBotsCompare : showCompare == 0 ? roundCompare : showCompare; + case "Start": return one.Start.CompareTo(two.Start); + case "End": return (one.End - one.Start).CompareTo(two.End - two.Start); + case "Finish": return one.Finish.HasValue && two.Finish.HasValue ? (one.Finish.Value - one.Start).CompareTo(two.Finish.Value - two.Start) : one.Finish.HasValue ? -1 : 1; + case "Qualified": + int qualifiedCompare = this.statType == StatType.Shows ? string.IsNullOrEmpty(one.Name).CompareTo(string.IsNullOrEmpty(two.Name)) : one.Qualified.CompareTo(two.Qualified); + return qualifiedCompare != 0 ? qualifiedCompare : showCompare == 0 ? roundCompare : showCompare; + case "Position": + int positionCompare = one.Position.CompareTo(two.Position); + return positionCompare != 0 ? positionCompare : showCompare == 0 ? roundCompare : showCompare; + case "Score": + int scoreCompare = one.Score.GetValueOrDefault(-1).CompareTo(two.Score.GetValueOrDefault(-1)); + return scoreCompare != 0 ? scoreCompare : showCompare == 0 ? roundCompare : showCompare; + case "Medal": + int tierOne = one.Qualified ? one.Tier == 0 ? 4 : one.Tier : 5; + int tierTwo = two.Qualified ? two.Tier == 0 ? 4 : two.Tier : 5; + int tierCompare = tierOne.CompareTo(tierTwo); + return tierCompare != 0 ? tierCompare : showCompare == 0 ? roundCompare : showCompare; + case "IsFinalIcon": + int finalsOne = one.IsFinal || one.Qualified ? 1 : 0; + int finalsTwo = two.IsFinal || two.Qualified ? 1 : 0; + return finalsOne.CompareTo(finalsTwo); + default: + int kudosCompare = one.Kudos.CompareTo(two.Kudos); + return kudosCompare != 0 ? kudosCompare : showCompare == 0 ? roundCompare : showCompare; + } + }); + + ((Grid)sender).DataSource = null; + ((Grid)sender).DataSource = this.currentRoundDetails; + if (string.Equals(columnName, "CreativeLikes") || string.Equals(columnName, "CreativeDislikes")) { + ((Grid)sender).Columns["Name"].HeaderCell.SortGlyphDirection = sortOrder; + } else { + ((Grid)sender).Columns[columnName].HeaderCell.SortGlyphDirection = sortOrder; + } + } + + private void gridDetails_SelectionChanged(object sender, EventArgs e) { + if (this.isHeaderClicked) { + ((Grid)sender).ClearSelection(); + this.isHeaderClicked = false; + } + + if (this.statType != StatType.Shows) { + if (((Grid)sender).MenuSeparator1 != null && ((Grid)sender).CMenu.Items.Contains(((Grid)sender).MenuSeparator1)) { + ((Grid)sender).CMenu.Items.Remove(((Grid)sender).MenuSeparator1); + } + if (((Grid)sender).DeleteFinishTime != null && ((Grid)sender).CMenu.Items.Contains(((Grid)sender).DeleteFinishTime)) { + ((Grid)sender).CMenu.Items.Remove(((Grid)sender).DeleteFinishTime); + } + if (((Grid)sender).MenuSeparator2 != null && ((Grid)sender).CMenu.Items.Contains(((Grid)sender).MenuSeparator2)) { + ((Grid)sender).CMenu.Items.Remove(((Grid)sender).MenuSeparator2); + } + if (((Grid)sender).UpdateCreativeLevel != null && ((Grid)sender).CMenu.Items.Contains(((Grid)sender).UpdateCreativeLevel)) { + ((Grid)sender).CMenu.Items.Remove(((Grid)sender).UpdateCreativeLevel); + } + if (((Grid)sender).SelectedCells.Count > 0) { + if (((Grid)sender).SelectedRows.Count == 1) { + RoundInfo info = ((Grid)sender).Rows[((DataGridView)sender).SelectedRows[0].Index].DataBoundItem as RoundInfo; + if (info.Finish.HasValue) { + if (((Grid)sender).MenuSeparator1 != null && !((Grid)sender).CMenu.Items.Contains(((Grid)sender).MenuSeparator1)) { + ((Grid)sender).CMenu.Items.Add(((Grid)sender).MenuSeparator1); + } + if (((Grid)sender).DeleteFinishTime != null && !((Grid)sender).CMenu.Items.Contains(((Grid)sender).DeleteFinishTime)) { + ((Grid)sender).CMenu.Items.Add(((Grid)sender).DeleteFinishTime); + } + } + if (info.UseShareCode || (this.StatsForm.StatLookup.TryGetValue(info.Name, out LevelStats levelStats) && levelStats.IsCreative && !string.IsNullOrEmpty(levelStats.ShareCode))) { + if (((Grid)sender).MenuSeparator2 != null && !((Grid)sender).CMenu.Items.Contains(((Grid)sender).MenuSeparator2)) { + ((Grid)sender).CMenu.Items.Add(((Grid)sender).MenuSeparator2); + } + if (((Grid)sender).UpdateCreativeLevel != null && !((Grid)sender).CMenu.Items.Contains(((Grid)sender).UpdateCreativeLevel)) { + ((Grid)sender).CMenu.Items.Add(((Grid)sender).UpdateCreativeLevel); + } + } + } else { + ((Grid)sender).ClearSelection(); + } + } + } else if (this.statType == StatType.Shows) { + if (((Grid)sender).SelectedCells.Count > 0) { + if (((Grid)sender).MenuSeparator1 != null && !((Grid)sender).CMenu.Items.Contains(((Grid)sender).MenuSeparator1)) { + ((Grid)sender).CMenu.Items.Add(((Grid)sender).MenuSeparator1); + } + if (((Grid)sender).MoveShows != null && !((Grid)sender).CMenu.Items.Contains(((Grid)sender).MoveShows)) { + ((Grid)sender).CMenu.Items.Add(((Grid)sender).MoveShows); + } + if (((Grid)sender).DeleteShows != null && !((Grid)sender).CMenu.Items.Contains(((Grid)sender).DeleteShows)) { + ((Grid)sender).CMenu.Items.Add(((Grid)sender).DeleteShows); + } + } else { + if (((Grid)sender).MenuSeparator1 != null && ((Grid)sender).CMenu.Items.Contains(((Grid)sender).MenuSeparator1)) { + ((Grid)sender).CMenu.Items.Remove(((Grid)sender).MenuSeparator1); + } + if (((Grid)sender).MoveShows != null && ((Grid)sender).CMenu.Items.Contains(((Grid)sender).MoveShows)) { + ((Grid)sender).CMenu.Items.Remove(((Grid)sender).MoveShows); + } + if (((Grid)sender).DeleteShows != null && ((Grid)sender).CMenu.Items.Contains(((Grid)sender).DeleteShows)) { + ((Grid)sender).CMenu.Items.Remove(((Grid)sender).DeleteShows); + } + } + } + } + + private void LevelDetails_KeyDown(object sender, KeyEventArgs e) { + try { + if (this.statType == StatType.Shows && e.KeyCode == Keys.Delete) { + this.DeleteShow(); + } + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.Message, $"{Multilingual.GetWord("message_program_error_caption")}", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { + if(keyData == Keys.Escape) { + this.Close(); + return true; + } + return base.ProcessCmdKey(ref msg, keyData); + } + + private void deleteShows_Click(object sender, EventArgs e) { + this.DeleteShow(); + } + + private void DeleteShow() { + int selectedCount = this.gridDetails.SelectedRows.Count; + if (selectedCount > 0) { + if (MetroMessageBox.Show(this, + $@"{Multilingual.GetWord("message_delete_show_prefix")} ({selectedCount:N0}) {Multilingual.GetWord("message_delete_show_suffix")}", + Multilingual.GetWord("message_delete_show_caption"), + MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + this.gridDetails.Enabled = false; + this.spinnerTransition.Start(); + this.mpsSpinner01.Visible = true; + this.preventPaging = true; + lock (this.StatsForm.StatsDB) { + Task.Run(() => { + Task deleteShowTask = new Task(() => { + this.StatsForm.StatsDB.BeginTrans(); + foreach (DataGridViewRow row in this.gridDetails.SelectedRows) { + RoundInfo bi = row.DataBoundItem as RoundInfo; + List ri = this.StatsForm.AllStats.FindAll(r => r.ShowID == bi.ShowID); + foreach (RoundInfo r in ri) { + if (r.Finish.HasValue) { + lock (this.StatsForm.PersonalBestLogCache) { + PersonalBestLog pbLog = this.StatsForm.PersonalBestLogCache.Find(l => l.PbDate == r.Finish); + if (pbLog != null) { + this.StatsForm.PersonalBestLog.Delete(r.Finish); + this.StatsForm.PersonalBestLogCache.Remove(pbLog); + } + } + lock (this.StatsForm.FallalyticsPbLogCache) { + FallalyticsPbLog fPbLog = this.StatsForm.FallalyticsPbLogCache.Find(l => l.PbDate == r.Finish); + if (fPbLog != null) { + this.StatsForm.FallalyticsPbLog.Delete(fPbLog.PbId); + this.StatsForm.FallalyticsPbLogCache.Remove(fPbLog); + } + } + } + } + this.StatsForm.RoundDetails.DeleteMany(r => r.ShowID == bi.ShowID); + this.StatsForm.AllStats.RemoveAll(r => r.ShowID == bi.ShowID); + } + this.StatsForm.StatsDB.Commit(); + }); + this.StatsForm.RunDatabaseTask(deleteShowTask, false); + }).ContinueWith(prevTask => { + this.BeginInvoke((MethodInvoker)delegate { + this.RoundDetails = this.StatsForm.GetShowsForDisplay(); + this.totalPages = (int)Math.Ceiling(this.RoundDetails.Count / (float)this.pageSize); + if (this.currentPage > this.totalPages) { + this.currentPage = this.totalPages; + } + this.UpdateGridPage(this.currentPage <= 1, this.currentPage >= this.totalPages, FirstDisplayedScrollingRowIndex.PrevIndex, false); + + this.gridDetails.Enabled = true; + this.spinnerTransition.Stop(); + this.mpsSpinner01.Visible = false; + + this.StatsForm.ResetStats(); + Stats.IsOverlayRoundInfoNeedRefresh = true; + }); + }); + } + } + } + } + + private void moveShows_Click(object sender, EventArgs e) { + int selectedCount = this.gridDetails.SelectedRows.Count; + if (selectedCount > 0) { + using (EditShows moveShows = new EditShows()) { + moveShows.StatsForm = this.StatsForm; + moveShows.Profiles = this.StatsForm.AllProfiles; + moveShows.FunctionFlag = "move"; + moveShows.SelectedCount = selectedCount; + moveShows.Icon = Icon; + if (moveShows.ShowDialog(this) == DialogResult.OK) { + this.gridDetails.Enabled = false; + this.spinnerTransition.Start(); + this.mpsSpinner01.Visible = true; + this.preventPaging = true; + int fromProfileId = this.StatsForm.GetCurrentProfileId(); + int toProfileId = moveShows.SelectedProfileId; + lock (this.StatsForm.StatsDB) { + Task.Run(() => { + Task moveShowsTask = new Task(() => { + this.StatsForm.StatsDB.BeginTrans(); + foreach (DataGridViewRow row in this.gridDetails.SelectedRows) { + RoundInfo bi = row.DataBoundItem as RoundInfo; + List ri = this.StatsForm.AllStats.FindAll(r => r.ShowID == bi.ShowID && r.Profile == fromProfileId); + foreach (RoundInfo r in ri) { + r.Profile = toProfileId; + } + this.StatsForm.RoundDetails.Update(ri); + } + this.StatsForm.StatsDB.Commit(); + }); + this.StatsForm.RunDatabaseTask(moveShowsTask, false); + }).ContinueWith(prevTask => { + this.BeginInvoke((MethodInvoker)delegate { + this.RoundDetails = this.StatsForm.GetShowsForDisplay(); + this.totalPages = (int)Math.Ceiling(this.RoundDetails.Count / (float)this.pageSize); + if (this.currentPage > this.totalPages) { + this.currentPage = this.totalPages; + } + this.UpdateGridPage(this.currentPage <= 1, this.currentPage >= this.totalPages, FirstDisplayedScrollingRowIndex.PrevIndex, false); + + this.gridDetails.Enabled = true; + this.spinnerTransition.Stop(); + this.mpsSpinner01.Visible = false; + + this.StatsForm.ResetStats(); + Stats.IsOverlayRoundInfoNeedRefresh = true; + }); + }); + } + } + } + } + } + + private void deleteFinishTime_Click(object sender, EventArgs e) { + if (this.statType != StatType.Shows && this.gridDetails.SelectedCells.Count > 0 && this.gridDetails.SelectedRows.Count == 1) { + RoundInfo ri = this.gridDetails.Rows[this.gridDetails.SelectedCells[0].RowIndex].DataBoundItem as RoundInfo; + if (ri.Finish.HasValue) { + if (MetroMessageBox.Show(this, + Multilingual.GetWord("message_delete_finish_time"), + Multilingual.GetWord("message_delete_finish_time_caption"), + MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + this.gridDetails.Enabled = false; + this.spinnerTransition.Start(); + this.mpsSpinner01.Visible = true; + this.preventPaging = true; + lock (this.StatsForm.StatsDB) { + Task.Run(() => { + Task deleteFinishTimeTask = new Task(() => { + this.StatsForm.StatsDB.BeginTrans(); + lock (this.StatsForm.PersonalBestLogCache) { + PersonalBestLog pbLog = this.StatsForm.PersonalBestLogCache.Find(l => l.PbDate == ri.Finish); + if (pbLog != null) { + this.StatsForm.PersonalBestLog.Delete(ri.Finish); + this.StatsForm.PersonalBestLogCache.Remove(pbLog); + } + } + lock (this.StatsForm.FallalyticsPbLogCache) { + FallalyticsPbLog fPbLog = this.StatsForm.FallalyticsPbLogCache.Find(l => l.PbDate == ri.Finish); + if (fPbLog != null) { + this.StatsForm.FallalyticsPbLog.Delete(fPbLog.PbId); + this.StatsForm.FallalyticsPbLogCache.Remove(fPbLog); + } + } + ri.Finish = null; + this.StatsForm.RoundDetails.Update(ri); + this.StatsForm.StatsDB.Commit(); + }); + this.StatsForm.RunDatabaseTask(deleteFinishTimeTask, false); + }).ContinueWith(prevTask => { + this.BeginInvoke((MethodInvoker)delegate { + this.spinnerTransition.Stop(); + this.mpsSpinner01.Visible = false; + this.gridDetails.Enabled = true; + this.preventPaging = false; + + this.StatsForm.ResetStats(); + Stats.IsOverlayRoundInfoNeedRefresh = true; + }); + }); + } + } + } + } + } + + private void updateLevel_Click(object sender, EventArgs e) { + if (Utils.IsInternetConnected()) { + if (this.statType != StatType.Shows && this.gridDetails.SelectedCells.Count > 0 && this.gridDetails.SelectedRows.Count == 1) { + RoundInfo ri = this.gridDetails.Rows[this.gridDetails.SelectedCells[0].RowIndex].DataBoundItem as RoundInfo; + if ((this.StatsForm.StatLookup.TryGetValue(ri.Name, out LevelStats l1) && l1.IsCreative && !string.IsNullOrEmpty(l1.ShareCode)) || ri.UseShareCode) { + string shareCode = ri.UseShareCode ? ri.Name : l1.ShareCode; + if (MetroMessageBox.Show(this, + string.IsNullOrEmpty(ri.CreativeTitle) ? $"{Multilingual.GetWord("message_update_creative_map_with_sharecode_prefix")}{shareCode}{Multilingual.GetWord("message_update_creative_map_with_sharecode_suffix")}" + : $"{Multilingual.GetWord("message_update_creative_map_with_title_prefix")}{ri.CreativeTitle}{Multilingual.GetWord("message_update_creative_map_with_title_suffix")}", + Multilingual.GetWord("message_update_creative_map_caption"), + MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + this.gridDetails.Enabled = false; + this.spinnerTransition.Start(); + this.mpsSpinner01.Visible = true; + this.preventPaging = true; + Task.Run(() => { + try { + JsonElement resData = Utils.GetApiData(Utils.FALLGUYSDB_API_URL, $"creative/{shareCode}.json"); + JsonElement je = resData.GetProperty("data"); + JsonElement snapshot = je.GetProperty("snapshot"); + JsonElement versionMetadata = snapshot.GetProperty("version_metadata"); + JsonElement stats = snapshot.GetProperty("stats"); + + List filteredInfo = ri.UseShareCode ? this.RoundDetails.FindAll(r => r.UseShareCode && string.Equals(r.Name, shareCode)) + : this.RoundDetails.FindAll(r => string.Equals(r.Name, ri.Name)); + foreach (RoundInfo info in filteredInfo) { + if (ri.UseShareCode) { info.ShowNameId = this.StatsForm.GetUserCreativeLevelTypeId(versionMetadata.GetProperty("game_mode_id").GetString()); } + string[] onlinePlatformInfo = this.StatsForm.FindUserCreativeAuthor(snapshot.GetProperty("author").GetProperty("name_per_platform")); + // info.CreativeShareCode = snapshot.GetProperty("share_code").GetString(); + info.CreativeShareCode = shareCode; + info.CreativeOnlinePlatformId = onlinePlatformInfo[0]; + info.CreativeAuthor = onlinePlatformInfo[1]; + info.CreativeVersion = versionMetadata.GetProperty("version").GetInt32(); + info.CreativeStatus = versionMetadata.GetProperty("status").GetString(); + info.CreativeTitle = versionMetadata.GetProperty("title").GetString(); + info.CreativeDescription = versionMetadata.GetProperty("description").GetString(); + if (versionMetadata.TryGetProperty("creator_tags", out JsonElement creatorTags) && creatorTags.ValueKind == JsonValueKind.Array) { + string temps = string.Empty; + foreach (JsonElement t in creatorTags.EnumerateArray()) { + if (!string.IsNullOrEmpty(temps)) { temps += ";"; } + temps += t.GetString(); + } + info.CreativeCreatorTags = temps; + } + info.CreativeMaxPlayer = versionMetadata.GetProperty("max_player_count").GetInt32(); + info.CreativeThumbUrl = versionMetadata.GetProperty("thumb_url").GetString(); + info.CreativePlatformId = versionMetadata.GetProperty("platform_id").GetString(); + info.CreativeGameModeId = versionMetadata.GetProperty("game_mode_id").GetString() ?? "GAMEMODE_GAUNTLET"; + info.CreativeLevelThemeId = versionMetadata.GetProperty("level_theme_id").GetString() ?? "THEME_VANILLA"; + info.CreativeLastModifiedDate = versionMetadata.GetProperty("last_modified_date").GetDateTime(); + info.CreativePlayCount = stats.GetProperty("play_count").GetInt32(); + info.CreativeLikes = stats.GetProperty("likes").GetInt32(); + info.CreativeDislikes = stats.GetProperty("dislikes").GetInt32(); + info.CreativeQualificationPercent = versionMetadata.GetProperty("qualification_percent").GetInt32(); + info.CreativeTimeLimitSeconds = versionMetadata.GetProperty("config").TryGetProperty("time_limit_seconds", out JsonElement jeTimeLimitSeconds) ? jeTimeLimitSeconds.GetInt32() : 240; + } + + lock (this.StatsForm.StatsDB) { + Task updateCreativeLevelTask = new Task(() => { + this.StatsForm.StatsDB.BeginTrans(); + this.StatsForm.RoundDetails.Update(filteredInfo); + this.StatsForm.StatsDB.Commit(); + }); + this.StatsForm.RunDatabaseTask(updateCreativeLevelTask, false); + } + + this.StatsForm.UpdateCreativeLevel(ri.Name, shareCode, snapshot); + } catch { + try { + JsonElement resData = Utils.GetApiData(Utils.FGANALYST_API_URL, $"creative/?share_code={shareCode}"); + JsonElement je = resData.GetProperty("level_data"); + JsonElement levelData = je[0]; + JsonElement versionMetadata = levelData.GetProperty("version_metadata"); + JsonElement stats = levelData.GetProperty("stats"); + + List filteredInfo = ri.UseShareCode ? this.RoundDetails.FindAll(r => r.UseShareCode && string.Equals(r.Name, shareCode)) + : this.RoundDetails.FindAll(r => string.Equals(r.Name, ri.Name)); + foreach (RoundInfo info in filteredInfo) { + if (ri.UseShareCode) { info.ShowNameId = this.StatsForm.GetUserCreativeLevelTypeId(versionMetadata.GetProperty("game_mode_id").GetString()); } + string[] onlinePlatformInfo = this.StatsForm.FindUserCreativeAuthor(levelData.GetProperty("author").GetProperty("name_per_platform")); + // info.CreativeShareCode = levelData.GetProperty("share_code").GetString(); + info.CreativeShareCode = shareCode; + info.CreativeOnlinePlatformId = onlinePlatformInfo[0]; + info.CreativeAuthor = onlinePlatformInfo[1]; + info.CreativeVersion = versionMetadata.GetProperty("version").GetInt32(); + info.CreativeStatus = versionMetadata.GetProperty("status").GetString(); + info.CreativeTitle = versionMetadata.GetProperty("title").GetString(); + info.CreativeDescription = versionMetadata.GetProperty("description").GetString(); + if (versionMetadata.TryGetProperty("creator_tags", out JsonElement creatorTags) && creatorTags.ValueKind == JsonValueKind.Array) { + string temps = string.Empty; + foreach (JsonElement t in creatorTags.EnumerateArray()) { + if (!string.IsNullOrEmpty(temps)) { temps += ";"; } + temps += t.GetString(); + } + info.CreativeCreatorTags = temps; + } + info.CreativeMaxPlayer = versionMetadata.GetProperty("max_player_count").GetInt32(); + info.CreativeThumbUrl = versionMetadata.GetProperty("thumb_url").GetString(); + info.CreativePlatformId = versionMetadata.GetProperty("platform_id").GetString(); + info.CreativeGameModeId = versionMetadata.GetProperty("game_mode_id").GetString() ?? "GAMEMODE_GAUNTLET"; + info.CreativeLevelThemeId = versionMetadata.GetProperty("level_theme_id").GetString() ?? "THEME_VANILLA"; + info.CreativeLastModifiedDate = versionMetadata.GetProperty("last_modified_date").GetDateTime(); + info.CreativePlayCount = stats.GetProperty("play_count").GetInt32(); + info.CreativeLikes = stats.GetProperty("likes").GetInt32(); + info.CreativeDislikes = stats.GetProperty("dislikes").GetInt32(); + info.CreativeQualificationPercent = versionMetadata.GetProperty("qualification_percent").GetInt32(); + info.CreativeTimeLimitSeconds = versionMetadata.GetProperty("config").TryGetProperty("time_limit_seconds", out JsonElement jeTimeLimitSeconds) ? jeTimeLimitSeconds.GetInt32() : 240; + } + + lock (this.StatsForm.StatsDB) { + Task updateCreativeLevelTask = new Task(() => { + this.StatsForm.StatsDB.BeginTrans(); + this.StatsForm.RoundDetails.Update(filteredInfo); + this.StatsForm.StatsDB.Commit(); + }); + this.StatsForm.RunDatabaseTask(updateCreativeLevelTask, false); + } + + this.StatsForm.UpdateCreativeLevel(ri.Name, shareCode, levelData); + } catch { + MetroMessageBox.Show(this, $"{Multilingual.GetWord("message_update_creative_map_error")}", $"{Multilingual.GetWord("message_update_error_caption")}", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + }).ContinueWith(prevTask => { + this.BeginInvoke((MethodInvoker)delegate { + this.spinnerTransition.Stop(); + this.mpsSpinner01.Visible = false; + this.gridDetails.Enabled = true; + this.preventPaging = false; + }); + }); + } + } + } + } else { + MetroMessageBox.Show(this, $"{Multilingual.GetWord("message_check_internet_connection")}", $"{Multilingual.GetWord("message_check_internet_connection_caption")}", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void gridDetails_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { + if (this.statType == StatType.Shows || e.RowIndex < 0 || e.RowIndex >= ((Grid)sender).RowCount) return; + if ((bool)((Grid)sender).Rows[e.RowIndex].Cells["UseShareCode"].Value) { + string shareCode = (string)((Grid)sender).Rows[e.RowIndex].Cells["Name"].Value; + Clipboard.SetText(shareCode, TextDataFormat.Text); + this.StatsForm.AllocTooltip(); + Point cursorPosition = this.PointToClient(Cursor.Position); + Point position = new Point(cursorPosition.X + 4, cursorPosition.Y - 20); + this.StatsForm.ShowTooltip(Multilingual.GetWord("level_detail_share_code_copied"), this, position, 2000); + } else if (this.StatsForm.StatLookup.TryGetValue((string)((Grid)sender).Rows[e.RowIndex].Cells["Name"].Value, out LevelStats levelStats) && levelStats.IsCreative && !string.IsNullOrEmpty(levelStats.ShareCode)) { + string shareCode = levelStats.ShareCode; + Clipboard.SetText(shareCode, TextDataFormat.Text); + this.StatsForm.AllocTooltip(); + Point cursorPosition = this.PointToClient(Cursor.Position); + Point position = new Point(cursorPosition.X + 4, cursorPosition.Y - 20); + this.StatsForm.ShowTooltip(Multilingual.GetWord("level_detail_share_code_copied"), this, position, 2000); + } + } + + private void gridDetails_CellMouseEnter(object sender, DataGridViewCellEventArgs e) { + if (!this.isScrollingStopped || e.RowIndex < 0 || e.RowIndex >= ((Grid)sender).RowCount) return; + + ((Grid)sender).Cursor = Cursors.Hand; + + if (this.statType != StatType.Shows && (((Grid)sender).Columns[e.ColumnIndex].Name == "Round" || ((Grid)sender).Columns[e.ColumnIndex].Name == "RoundIcon" || ((Grid)sender).Columns[e.ColumnIndex].Name == "Name" || ((Grid)sender).Columns[e.ColumnIndex].Name == "CreativeLikes" || ((Grid)sender).Columns[e.ColumnIndex].Name == "CreativeDislikes") && + ((bool)((Grid)sender).Rows[e.RowIndex].Cells["UseShareCode"].Value || !string.IsNullOrEmpty((string)((Grid)sender).Rows[e.RowIndex].Cells["CreativeShareCode"].Value))) { + ((Grid)sender).ShowCellToolTips = false; + RoundInfo info = ((Grid)sender).Rows[e.RowIndex].DataBoundItem as RoundInfo; + if (info.CreativeLastModifiedDate == DateTime.MinValue) return; + + StringBuilder strBuilder = new StringBuilder(); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"⟦{this.GetLevelTypeName(info.CreativeGameModeId)}⟧ {info.CreativeTitle}"); + strBuilder.Append(Environment.NewLine); + strBuilder.Append(Environment.NewLine); + strBuilder.Append(info.CreativeDescription); + strBuilder.Append(Environment.NewLine); + strBuilder.Append(Environment.NewLine); + if (string.IsNullOrEmpty(info.CreativeAuthor) || string.IsNullOrEmpty(info.CreativeOnlinePlatformId)) { + strBuilder.Append($"• {Multilingual.GetWord("level_detail_creative_author")} : N/A"); + } else { + string[] createAuthorArr = info.CreativeAuthor.Split(';'); + string[] creativeOnlinePlatformIdArr = info.CreativeOnlinePlatformId.Split(';'); + for (int i = 0; i < creativeOnlinePlatformIdArr.Length; i++) { + strBuilder.Append(i == 0 ? $"• {Multilingual.GetWord("level_detail_creative_author")} : ⟦{this.GetCreativeOnlinePlatformName(creativeOnlinePlatformIdArr[i])}⟧ {createAuthorArr[i]}" + :$"{Environment.NewLine}\t ⟦{this.GetCreativeOnlinePlatformName(creativeOnlinePlatformIdArr[i])}⟧ {createAuthorArr[i]}"); + } + } + strBuilder.Append(Environment.NewLine); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"• {(Stats.InstalledEmojiFont ? "👍" : Multilingual.GetWord("level_detail_creative_likes"))} {info.CreativeLikes:N0}\t • {(Stats.InstalledEmojiFont ? "👎" : Multilingual.GetWord("level_detail_creative_dislikes"))} {info.CreativeDislikes:N0}"); + strBuilder.Append(Environment.NewLine); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"• {Multilingual.GetWord("level_detail_creative_share_code")} : {info.CreativeShareCode}"); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"• {Multilingual.GetWord("level_detail_creative_version")} : v{info.CreativeVersion}"); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"• {Multilingual.GetWord("level_detail_creative_max_players")} : {info.CreativeMaxPlayer}{Multilingual.GetWord("level_detail_creative_player_suffix")}"); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"• {Multilingual.GetWord("level_detail_creative_time_limit")} : {TimeSpan.FromSeconds(info.CreativeTimeLimitSeconds > 0 ? info.CreativeTimeLimitSeconds : 240):m\\:ss}"); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"• {Multilingual.GetWord("level_detail_creative_platform")} : {this.GetCreativePlatformName(info.CreativePlatformId)}"); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"• {Multilingual.GetWord("level_detail_creative_last_modified")} : {info.CreativeLastModifiedDate.ToString(Multilingual.GetWord("level_date_format"), Utils.GetCultureInfo())}"); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"• {Multilingual.GetWord("level_detail_creative_play_count")} : {info.CreativePlayCount:N0}{Multilingual.GetWord("level_detail_creative_inning")}"); + strBuilder.Append(Environment.NewLine); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"# {(Stats.InstalledEmojiFont ? "📋 " : "")}{Multilingual.GetWord("level_detail_share_code_copied_tooltip")}"); + + this.StatsForm.AllocCustomTooltip(this.StatsForm.cmtt_levelDetails_Draw); + Point cursorPosition = this.PointToClient(Cursor.Position); + Point position = new Point(cursorPosition.X + 50, cursorPosition.Y); + this.StatsForm.ShowCustomTooltip(strBuilder.ToString(), this, position); + } else if (this.statType == StatType.Shows && ((Grid)sender).Columns[e.ColumnIndex].Name == "ShowNameId") { + ((Grid)sender).ShowCellToolTips = false; + RoundInfo info = ((Grid)sender).Rows[e.RowIndex].DataBoundItem as RoundInfo; + string showName = Multilingual.GetShowName(info.UseShareCode ? "fall_guys_creative_mode" : info.ShowNameId.Split(';')[0]); + StringBuilder strBuilder = new StringBuilder(); + strBuilder.Append(Environment.NewLine); + strBuilder.Append(info.StartLocal.ToString(Multilingual.GetWord("level_grid_date_format"), Utils.GetCultureInfo())); + strBuilder.Append(Environment.NewLine); + strBuilder.Append(Environment.NewLine); + strBuilder.Append($"⟦ {info.ShowID}{(!string.IsNullOrEmpty(showName) ? $" • {showName} ⟧" : " ⟧")}"); + strBuilder.Append(Environment.NewLine); + strBuilder.Append(Environment.NewLine); + + if (info.UseShareCode) { + string[] levelTypes = info.ShowNameId.Split(';'); + string[] levelNames = info.Name.Split(';'); + for (int i = 0; i < levelNames.Length; i++) { + string type = $"⟦{this.GetLevelTitle(levelTypes[i])}⟧ "; + strBuilder.Append($"• {Multilingual.GetWord("overlay_round_prefix")}{i + 1}{Multilingual.GetWord("overlay_round_suffix")} : {type}{levelNames[i]}"); + if (i != levelNames.Length - 1) strBuilder.Append(Environment.NewLine); + } + } else { + string[] levelNames = info.Name.Split(';'); + for (int i = 0; i < levelNames.Length; i++) { + string type = string.Empty; + if (this.StatsForm.StatLookup.TryGetValue(levelNames[i], out LevelStats levelStats)) { + type = $"⟦{levelStats.Type.LevelTitle(false)}⟧ "; + } + strBuilder.Append($"• {Multilingual.GetWord("overlay_round_prefix")}{i + 1}{Multilingual.GetWord("overlay_round_suffix")} : {type}{levelStats.Name ?? levelNames[i]}"); + if (i != levelNames.Length - 1) strBuilder.Append(Environment.NewLine); + } + } + + this.StatsForm.AllocCustomTooltip(this.StatsForm.cmtt_levelDetails_Draw2); + Point cursorPosition = this.PointToClient(Cursor.Position); + Point position = new Point(cursorPosition.X + 40, cursorPosition.Y); + this.StatsForm.ShowCustomTooltip(strBuilder.ToString(), this, position); + } else { + ((Grid)sender).ShowCellToolTips = true; + } + } + + private string GetLevelTitle(string showId) { + switch (showId) { + case "user_creative_race_round": + return Multilingual.GetWord("level_detail_race"); + case "user_creative_survival_round": + return Multilingual.GetWord("level_detail_survival"); + case "user_creative_hunt_round": + return Multilingual.GetWord("level_detail_hunt"); + case "user_creative_logic_round": + return Multilingual.GetWord("level_detail_logic"); + case "user_creative_team_round": + return Multilingual.GetWord("level_detail_team"); + } + return "unknown"; + } + + private void gridDetails_CellMouseLeave(object sender, DataGridViewCellEventArgs e) { + this.StatsForm.HideCustomTooltip(this); + ((Grid)sender).Cursor = Cursors.Default; + } + + private string GetLevelTypeName(string gameModeId) { + switch (gameModeId) { + case "GAMEMODE_GAUNTLET": return Multilingual.GetWord("level_detail_race"); + case "GAMEMODE_SURVIVAL": return Multilingual.GetWord("level_detail_survival"); + case "GAMEMODE_POINTS": return Multilingual.GetWord("level_detail_hunt"); + case "GAMEMODE_LOGIC": return Multilingual.GetWord("level_detail_logic"); + case "GAMEMODE_TEAM": return Multilingual.GetWord("level_detail_team"); + default: return Multilingual.GetWord("level_detail_race"); + } + } + + private string GetCreativeOnlinePlatformName(string platform) { + switch (platform) { + case "win": return Multilingual.GetWord("level_detail_playersPc"); + case "eos": return Multilingual.GetWord("level_detail_online_platform_eos"); + case "steam": return Multilingual.GetWord("level_detail_online_platform_steam"); + case "psn": return Multilingual.GetWord("level_detail_online_platform_psn"); + case "xbl": return Multilingual.GetWord("level_detail_online_platform_xbl"); + case "nso": + case "nintendo": + return Multilingual.GetWord("level_detail_online_platform_nso"); + default: return platform; + } + } + + private string GetCreativePlatformName(string platform) { + switch (platform) { + case "ps4": return Multilingual.GetWord("level_detail_playersPs4"); + case "ps5": return Multilingual.GetWord("level_detail_playersPs5"); + case "xb1": return Multilingual.GetWord("level_detail_playersXb1"); + case "xsx": return Multilingual.GetWord("level_detail_playersXsx"); + case "switch": return Multilingual.GetWord("level_detail_playersSw"); + case "win": + case "pc_egs": + case "pc_steam": + return Multilingual.GetWord("level_detail_playersPc"); + default: return platform; + } + } + } +} \ No newline at end of file diff --git a/Views/LevelDetails.resx b/Views/LevelDetails.resx new file mode 100644 index 000000000..f53159b63 --- /dev/null +++ b/Views/LevelDetails.resx @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA + AAADNsT/AjbF/wI2xv8DNsX/AjbG/wI2xv8CNsb/AjbG/wI2x/8FMbH/BiaP/wM2x/8CNsX/AjjN/wE8 + 3/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ATze/wI4zP8CNsb/AzbF/wgpj/8GM7P/AzbG/wM2xf8DNsX/AzbF/wM2 + xf8DNsX/AjbF/wI2xv8DNsX/AjbF/wI2xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2xv8CN8j/BS+m/wYl + g/8DN8f/AjbG/wE50/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8COdH/AjbG/wM3x/8IJIH/BTCr/wI2 + yP8CNsb/AjbG/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI1xP8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8CNsb/AjfI/wcsnP8GJIL/AzfI/wI2x/8BOtj/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ATrW/wI2 + x/8DN8f/ByJ8/wUtof8CN8j/AjbG/wI2xv8CNsb/AjbH/wI2xv8CNsb/AjbG/wM2xf8CNMP/AjbG/wI2 + xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI3yP8IK5r/BiSD/wM3x/8CN8n/ATze/wA94v8APOH/ADzh/wA9 + 4v8APeL/ADzh/wA84f8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA94f8APeH/AD3h/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wE73P8CN8n/AzfH/wYjf/8FLZ//AjfI/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8DNcP/AjXF/wI2x/8CNsj/AjbH/wI2x/8CNsb/AjbG/wI2xv8CN8j/Byuc/wYlhv8DN8f/AjjN/wE9 + 4f8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA9 + 4v8APeP/AD3i/wA94/8APeP/AD3i/wA94/8BPeD/AjfL/wM3x/8GJIH/BS2g/wI3yP8CNsb/AjbG/wI2 + xv8CNsf/AjbH/wI2x/8CNsf/AjXF/wI72P8CPNv/Ajvb/wI72f8COtj/ATnU/wI4z/8CN8n/AjfI/wYt + oP8GJ4r/AzfH/wI50f8APeL/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA84/8APOL/ADzj/wE94v8CP+P/Aj7i/wE94v8APOL/ADzi/wA94/8APeP/AD3j/wA9 + 5P8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AT3i/wI50P8DN8b/BiaG/wUu + pf8CN8j/AjfI/wI4zv8COtP/ATrY/wE72f8CPNr/Ajvb/wI72P8BPeH/AD3k/wA95P8APeT/AD3k/wA9 + 5P8BPeL/ATzd/wI50/8FL6n/ByqQ/wM3x/8BOtb/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA9 + 5P8APeT/AD3k/wA95P8APeT/ADzj/wE+4/8NR+b/Jlrp/0Bw7/9WgPL/Yony/2GJ8v9Uf/L/PW3u/yFX + 6f8KReX/AT3j/wA84/8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeP/AD3k/wA9 + 5P8COtT/AzfG/wcni/8EMK7/AjnS/wE83P8BPeL/AD3k/wA95P8APeT/AD3k/wA95P8BPeH/AD3j/wA+ + 5f8APub/AD7m/wA+5f8APuX/AD7l/wA+5v8BPub/BDXB/wgsmP8DN8f/Ajva/wA+5v8APub/AD7l/wA+ + 5v8APub/AD7l/wA+5v8APub/AD7m/wA+5v8APeX/Aj7l/xlR6P9Sfe//lbD3/8XU+v/i6fz/7vP+//L2 + /v/y9v7/7fP+/9/o/P/B0fr/jan2/0h17v8TS+b/AD3l/wA95f8APuX/AD7l/wA+5f8APuX/AD7l/wA+ + 5f8APuX/AD3l/wA+5f8APub/AjvZ/wI3x/8GKZX/BDbE/wA+5f8APub/AD7m/wA+5f8APub/AD7l/wA+ + 5v8APub/AT3i/wE+4/8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7n/wM50v8ILqP/AjfJ/wE8 + 3v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APeb/CkXm/0t37v+rwff/6e/9//3+ + //////////////////////////////////////////////z9///l7P3/obn4/0Bu7f8GQeb/AD3m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wI83f8CN8j/Biyk/wM61P8APuf/AD7m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wE+4v8APuT/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8COtj/BTCw/wI3yv8BPeP/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APeb/FEzm/3qa + 7v/h6fv//v////////////////////////////////////////////////////////////////////7+ + ///b5fz/bpLx/w5I5v8APeb/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeH/AjfJ/wQu + sP8CO9r/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeP/AD3k/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/ATzf/wM0vP8COM3/AD7k/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APef/FU3k/46p7v/z9v3///////////////////////////////////////////////////////// + //////////////////////////////H1/v+GpPP/D0nm/wA95/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD3k/wI3zP8FMrr/Aj3g/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7l/wA/ + 6P8AP+r/AD/p/wA+6P8APuj/AD7o/wA+5/8APuf/AD7n/wI+4/8ENsf/AjnQ/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7o/wA+5/8APef/C0Xh/4ij6P/3+f3///////////////////////////////////////// + ////////////////////////////////////////////////////////9fj+/36d7/8IQ+X/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5f8COM7/BDbI/wI+4/8APuj/AD7n/wA+6P8APuj/AD7o/wA/ + 6f8BP+r/AT/q/wI/5P8KMKH/CDOw/wU3xP8FPNb/BEDj/wFA6/8AP+v/AD/q/wA/6f8BP+f/AjnQ/wI5 + 0/8BP+n/AD/p/wA+6P8APuj/AD7o/wA/6f8AP+n/AD3j/2GE3//x9Pv///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///s8fz/V3/o/wA+5/8APun/AD7p/wA+6P8AP+n/AD7o/wA/6f8BP+f/AjnR/wI50v8BPuf/AD7p/wA/ + 6v8BQOv/BEDl/wU81f8FNLv/BiyZ/wMie/8CG2X/AQIK/wMFEv8CCBz/BA8z/wYZV/8GJYP/BzS0/wU9 + 2v8CQOv/AD/q/wE61P8COtb/AD/q/wA/6v8AP+n/AD/q/wA/6f8AP+r/AD3p/ypZ2f/V3vP///////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////8vX9f8hVeL/AD7q/wA/6f8BP+r/AD/q/wE/6v8BP+r/AT/p/wI6 + 1f8COtb/AD/r/wNA6P8FOsz/BiyX/wMaXv8JEDT/FQ4f/y0WHf9HHyP/Wycq/wEBAP8JCQj/AgIC/wAA + AP8AAAD/AAAD/wEFFP8FEkD/ByiM/wU91/8CO9j/AjvZ/wE/6/8BP+v/AT/r/wE/6/8BP+v/AT/s/wQ+ + 3v+KoeH///////////////////////Hw8P+ko6T/i4qK/87Nzv////////////////////////////// + /////////////+rq6v+bmpr/j46P/9jY2P/////////////////9/v7/e5nn/wI/5v8AP+v/AT/r/wE/ + 6/8BP+v/AT/r/wE/6/8CO9j/AjzZ/wY6zf8FIHb/Bwws/x8PFv9OIiT/fzY8/6RETv+8T1z/x1dl/8pT + Yv8BAQH/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQIE/wMIF/8FFU//Bze+/wE83f8BP+v/AT/r/wE/ + 6/8BP+v/AT/r/wA+6v8oVtP/2eH0//////////////////////+Wlpb/LCsr/ygnJ/9NTE3/4uLi//// + //////////////////////////////z8/P+CgoL/Kigo/ygmJv9cW1z/7e3t/////////////////9Hc + 9f8fU9//AD7r/wE/6/8BP+v/AT/r/wE/6/8BP+v/Ajzc/wczsf8FETr/Kx0L/3U1M/+tSFT/xlFg/81S + Y//NUmL/zFJi/8xUY//LUmH/AAAA/wAAAP8AAAD/AAAA/wkJCP8PDw7/CwsK/wcNFf8KLl7/BA8l/wYg + b/8CPd//AUDt/wFA7P8BQOz/AUDs/wFA7f8APOP/Z4TX//r7/f/////////////////6+vr/bGxs/zMy + Mv83Njb/OTg4/8XFxf/////////////////////////////////x8fH/XFtb/zQzM/83Njb/QkFB/9XV + 1v/////////////////4+v3/W3/e/wA96P8BQOz/AUDs/wFA7P8BQOz/AUDt/wQ82f8EF1X/QzUD/7uM + GP/PYlr/z1lp/89bav/NVWX/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wEBAf8UFBT/FxcW/wwL + Cv8LERv/Czx6/wclTP8EET//BDzX/wFA7v8BQO3/AUDt/wFA7f8BQO7/CD/Y/56v4v////////////// + ////////+fn5/29tbv85Nzf/PDo6/z89Pf/Dw8P/////////////////////////////////7+/w/19e + X/87OTn/PDo6/0dGRv/U1NT//////////////////////5at5v8EP+H/AUDu/wFA7f8BQO3/AUDt/wFA + 7v8EOtH/CxMz/5R4Cv/eqRj/z2Rb/85Zaf/SYW//z1xq/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAA + AP8EBAT/FxYW/xUUFP8ICAf/ChAZ/wQ2dv8GLWD/Aw0x/wQ6zv8BQO//AUDt/wFA7f8BQO3/AD/t/xdI + 0v/Dzej///////////////////////j4+P9wb2//Pjw8/0E/P/9CQED/w8PD//////////////////// + //////////////Dw8P9iYWH/Pz09/0A/P/9KSEn/1NTU///////////////////////Aze3/EUbZ/wA/ + 7v8BQO3/AUDt/wFA7f8BQO//AzfK/xYYJf+xjwX/2qUQ/85jWv/NV2f/0WBu/9Ffbv/LUmL/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8MDAv/ExIR/wULE/8FNnb/BDJt/wMMKf8FOMb/AUHv/wFA + 7f8BQO3/AUDt/wA+6/8nUs7/1tzs///////////////////////4+fn/cXFx/0JBQf9IR0j/VVRU/8XE + xP/////////////////////////////////w8PD/ZGNj/0JCQv9JSUn/W1tb/9XV1f////////////// + ////////2eHz/x5P1v8AP+3/AUDt/wFA7f8BQO3/AUHv/wM0v/8iHxr/wZwD/9qkEf/NYFj/0F5u/81X + Zv/KUWH/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwMD/wUEA/8BBxD/BDV0/wM1 + dv8DDCX/BzS2/wFB8P8BQO3/AUDt/wFA7f8APur/MFjN/9rf7f///////////////////////v7+/5GR + kf9CQkL/Tk5O/4aFhv/d3d3/////////////////////////////////+fn6/4CAgP9CQkL/VFRU/42N + jf/o6Oj//////////////////////+Pp9v8mU9T/AD7s/wFA7v8BQO7/AUDt/wFB8P8GMKz/MCcS/8mi + A//ZoxD/zF1U/8xVZf/LUmL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/BAoS/wU2dv8DN3r/Aw0k/woxp/8BQvH/AUDu/wFB7v8BQO7/AD7q/y9YzP/Y3ev///7+//// + ///////////////////n5+f/kpKS/3x8fP++vr7//f39//////////////////////////////////// + ///f3t7/i4qL/4B/gP/Kysr////////////////////////////g5/b/JFLR/wA/7P8BQO7/AUDu/wFB + 7v8CQvH/BCmU/zwwDf/QqAX/2aMQ/81eVv/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkPF/8QQHz/Bjt+/wQPJ/8ILJb/AkPz/wFB8P8BQfD/AUHw/wA/ + 7P8lUMv/z9Xm//39/P////////////////////////////39/f/7+/v///////////////////////// + //////////////////////////////39/f/8/Pz/////////////////////////////////09vy/xxK + 0P8AQO7/AUHw/wFB8P8BQfD/AkLy/wMhff9MPAf/1q0I/9yoG//OYFn/y1Bi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CBxD/Bjd1/wY9g/8FEi3/BSSC/wJD + 8/8BQfD/AUHw/wFB8P8AQO7/F0XL/7nD4P/4+fj///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////7XD6P8PQc//AEHw/wFB8P8BQfD/AUHw/wNC7v8CG2f/YUwE/9qxBf/YoxL/zF1U/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8BAQH/AAAA/wAAAP8AAAD/AQcQ/wM0 + dP8CPIb/BBg2/wUea/8DQ/H/AULy/wFC8v8BQvL/AULy/wc80f+Spdj/8vLy//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v+HnNr/AzrX/wFC8v8BQfH/AULx/wFC8v8FQuf/BhZL/3ti + BP/dsgD/2KIO/8xdVP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/CwsL/wUF + Bf8AAAD/AAAA/wIHD/8DNHP/AT2J/wQgRv8GFlD/BkPq/wFD9f8BQ/P/AUP0/wFD9P8AO9//W3jL/+Tm + 6//6+vr///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////s7/j/TG3L/wA85f8BQ/T/AUPz/wFD + 9P8BQ/X/BD7b/wwTL/+Zewj/3bIA/9iiD//MXVT/y1Bi/8tRYf/MVWX/zlhn/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wUEBP8FBQX/AAAA/wAAAP8FChP/DDt4/wlDjf8ILFv/BA81/wU/3P8BQ/X/AUPz/wFD + 9P8BQ/T/AEDs/yFLxf/AyeL/8fHx//7///////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v3/usbl/xhG + yf8AQfD/AUP0/wFD9P8BQ/T/AUT2/wU2wP8YFxj/tpML/960B//apRb/zF5W/8tQYv/LUWH/zFZl/8xU + Y//LUWH/y1Fh/8tRYf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DBQd/w9Aff8JPoL/Bhw7/wIH + Hf8IOMD/AUT2/wFD9P8BQ/T/AUP0/wFD9P8DOtP/dIvQ/+Xn6v/29vf///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7/7e/0/2R/zv8BOtr/AUP0/wFD9P8BQ/T/AUP0/wJE9v8HK5T/DAoM/3hgCv/UrAr/3Kkd/85j + W//LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/CAgH/w4ODf8ICAf/AAAA/wAAAP8AAAD/AAAA/wkR + Gf8SQHr/CSNF/wMMLP8KIGb/CS+i/wJE9v8BQ/T/AUP0/wFD9P8BQ/X/AT/r/x9Jw/+0wOH/6uvr//n5 + +v////////////////////////////////////////////////////////////////////////////// + ////////////////////////9/f3/6q33v8WRMf/AEHv/wFD9P8BQ/T/AUP0/wFD9f8EQ+7/CCN//wUb + Xv8MDRr/gGgL/9mnH//OYVn/y1Bh/8tRYf/LUWH/y1Fh/81XZv/PWmn/zFVl/wAAAP8KCQn/EhIS/wAA + AP8AAAD/AAAA/wAAAP8HDRb/Gzdd/wUNJf8HLJf/BzrK/wkrmv8DQ+//AUP2/wFD9f8BQ/X/AUP2/wFD + 9v8AOdj/R2fF/9DW5//r6+v/+fn6//////////////////////////////////////////////////// + ////////////////////////////////////////9/f2/8vT5/86XcT/ADvh/wFD9v8BQ/X/AUP1/wFD + 9f8BQ/b/BT7e/woqmP8FOMj/Ah1x/yIdEP+5jSj/z2BY/8tQYv/LUWH/y1Fh/8tSYv/RXmz/zFZl/8tR + Yf8AAAD/Dg4O/wgICP8AAAD/AQEB/wcHBv8BAQD/AwgP/wcVKf8FF1P/Az7e/wFD9P8JM7f/BT/i/wFD + 9v8BQ/X/AUP1/wFD9v8BQ/b/AULy/wU3yv9ge8v/1tvn/+rq6v/19vb//v7+//////////////////// + ///////////////////////////////////////////////////9/f3/8/Pz/9LY5/9Tccj/AznT/wFD + 9P8BQ/X/AUP1/wFD9f8BQ/X/AUT3/wc6zf8HOMf/AUP3/wQ2w/8EDzT/eFUV/85fVv/LUmP/zFVl/8tR + Yf/KUWH/zllo/85YZ//LUWH/AgIC/wsLC/8BAQH/AAAA/wEBAf8GBgb/AAAA/wQGCv8GCxr/BSWD/wFD + 9f8AQ/n/BD7i/wQ94P8BQ/b/AUP2/wFD9v8BQ/b/AUP2/wFD9v8BQO7/BzfF/196y//P1eb/5+jo/+7v + 7//5+fr//v7+//////////////////////////////////////////////////39/v/29/f/7e3t/8nR + 5v9Tccj/BTjM/wFC8f8BQ/b/AUP1/wFD9v8BQ/b/AUP1/wFD9f8FOtX/AkHs/wBD+f8CQez/ARhd/1U3 + Ev/KW1f/y1Fi/8xWZf/LUWH/y1Fh/8tTYv/OWWj/y1Ji/wMDA/8DAwP/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBgr/BgoZ/wUojf8BRPn/AEP4/wBD9v8BQvH/AEP3/wBD9/8AQ/f/AEP3/wBD9v8AQ/f/AEP3/wFA + 6/8ENcX/Q2XF/6+94f/i5Oj/6Ono/+3u7v/19fX/+fn6//z8/P/9/f3//v7+//39/f/8/Pz/+Pj5//Pz + 8//t7u3/4OPp/6e23v86XcP/AzfM/wFC8f8AQ/f/AEP3/wBD9v8AQ/f/AEP2/wBD9/8AQ/X/AUHx/wBD + +P8AQ/j/AUP1/wEbaP9TNRH/yltX/8tQYv/LUWH/y1Fh/8tRYf/LUWH/y1Rj/8tTYv8AAAD/AAAA/wAA + AP8AAAD/BAQD/woKCv8LCgr/DBAY/wkUJ/8FHWb/A0T0/wBD+P8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEDw/wE1zf8bRL3/aoXQ/7jD4v/c4Oj/5ufo/+jp6f/q6ur/6+zs/+zt + 7f/r7Ov/6uvq/+fo6f/b3+j/sb/i/2F+zv8WQLz/ATfT/wFC8/8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEP5/wRC6/8EFEj/cVAW/9BlXP/OWGj/zVhn/8tTY//LUWH/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wUGBf8KCgr/CQgI/xIYIf8XMVP/BAwr/wc4w/8BRPv/AEP4/wBD + +P8AQ/j/AEP5/wBD+f8AQ/j/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/b/ATvf/wIzw/8aRL3/Tm7K/4Oa + 2P+ot+D/v8ji/8jQ5P/H0OT/vsfi/6W14P9+ltf/SWrI/xdBvf8CM8X/ATzi/wBD9/8AQ/n/AEP5/wBD + +f8AQ/n/AEP4/wBD+P8AQ/n/AEP4/wBD+P8AQ/j/AEP4/wFF+/8GMrD/GRcX/6+FJ//TaV//zVdn/81Y + Z//LVGP/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8DAwP/CgoK/w4NDP8YHSX/GEJ5/wQY + Nv8FEUL/BznG/wJE9v8ARPv/AUT7/wJF+f8BRPr/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/n/AEP6/wBE + +v8BQvL/ATvf/wA0y/8ENMD/Dju9/xpFwf8gSsL/IErC/xpEv/8OOrz/AzO//wA0yv8BO97/AULz/wBD + +v8AQ/n/AEP5/wBD+f8AQ/n/AEP5/wBD+f8ARPn/AUT5/wFE+f8ARPv/AUT7/wNE9P8GNLn/CBEz/25Z + Cf/bqib/02pi/85Zaf/NV2b/y1Nj/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/woK + Cv8LCwr/ChAY/xRDgP8DN3n/BBc1/wMMLP8GIHD/CC6c/wgumv8GI3v/CjvF/wJF/P8ARPv/AET7/wBE + +/8ARPv/AET7/wBE+/8ARPv/AET7/wBE+/8AQ/j/AEHy/wE+5/8BPOD/ADne/wA63v8BPOH/AT7n/wFB + 8P8BQ/j/AET7/wBE+/8ARPv/AET7/wBE+/8ARPv/AET7/wVH+v8VU/z/ElH7/ww0rf8DIHz/Bi2f/wYr + mf8DG2j/ERMf/2lTB//Opgb/36wi/85hWv/OWWr/zFZm/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8BAQH/AAAA/wIHEP8ENXT/ATyI/wM6f/8FKVj/BRYy/wQPJv8EECf/BA0d/wgV + P/8QQ9L/Akb+/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/f8ARP3/AET9/wBE + /f8ARP3/AET9/wBE/f8ARP3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8SUf3/HVr+/w44 + uP8MECb/OC0I/zYsDP85Lgz/WUYG/51+B//UqwT/27EA/9ijEf/MXVX/ylFi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CCBD/BTV0/wE7h/8BO4b/ATyI/wM7 + g/8EOXz/Azl8/w81gP8eEE7/DBdH/xZHzv8GSf3/AEP8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARP3/BEf7/wk0tP8CDy//JVkz/7emFv/OpQT/zqYF/9etBP/csQH/2q8A/9qwAP/YoxH/zF1V/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BAkR/xdE + f/8GQIr/ATuG/wE7hv8BO4b/ATuH/wA7hv8SN5b/YiHV/zANZf8MFDv/GkS1/xBP+v8CRv7/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARf7/A0Px/wYqmP8EESf/CGFI/yW4d/+9shP/3bAA/9uwAP/arwD/2q8A/9qv + AP/bsgf/3akg/8xdVf/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wEHD/8UQn3/FU2T/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETaV/20g7/93He3/PhGA/w0M + Mf8WMn//HFLg/w5P/v8DRv3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AkX8/whL/v8JSvr/BjrN/wUaYf8FHCD/C3hZ/wO9jv8fwHz/vbET/9yv + AP/arwD/2q8A/9qvAP/arwH/4boY/9qnHP/MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wMDA/8AAAD/AAAA/wAAAP8BBw//BDR0/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xQ6 + l/9tIu7/fxv//3wd+f9ZGLP/HwpI/w0WP/8aPJb/HlPh/xRT/P8IS///Akb9/wBD/P8AQ/z/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AEP8/wFF/P8GSf7/EVL//x9b+v8lVdf/Eyx//wURKv8JQTH/C5xz/wPC + j/8Awo//Ib98/72yFf/crwD/2q8A/9qvAP/arwD/2q8B/9uyBP/YohD/zF1U/8tQYv/LUWH/y1Fh/8tT + Yv/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8KCgr/BQUF/wAAAP8AAAD/AQcQ/wM0dP8AO4f/ATuG/wE7 + hv8BO4b/ATuG/whDiv8dQp3/bSHu/34b//99G///fhz//3Md5v9IE5L/Ggk//w0UPP8YMHn/IUm8/x9V + 5v8ZVfn/EFH//wpN//8JS///B0r//whL//8JTP//DU///xVV//8eWfb/JFfg/yNGsP8WKWr/Chgu/wg3 + K/8LgV//B7mJ/wHDkP8AwY7/AMGP/yHAff/BtiD/3bEF/9qvAP/arwD/2q8A/9qvAP/asAD/2KIP/8xd + VP/LUGL/ylFh/81WZf/NV2b/ylFh/8pRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wEBAf8AAAD/AAAA/wII + EP8IN3X/CUOL/w1FjP8ORo3/CUKK/wI8hv8DPof/EjeW/2wg7v9+G///fRv//30b//9+G///fh3+/3Ic + 5P9IGqD/DyJY/wYUM/8MFz3/FCZg/xk1hv8fQKL/I0e0/yBKvf8hSr7/I0a0/yA+nv8ZMX7/EyJX/wsZ + OP8IJTj/C1Re/wuNbv8Gt4f/AcOQ/wDCjv8AwY7/AMGO/wDBj/8fv3v/vbIV/9ywAf/arwH/3LIK/9yz + Df/dswz/27IH/9ijEv/MXVX/y1Bi/8pRYf/LUmL/y1Ji/8tRYf/LUWH/y1Fh/wEBAf8BAQH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8DCBH/Bzd1/wZAiv8IQYr/CkKL/wxFjP8FPoj/ADuF/xE2lf9sIO7/fhv//30b + //99G///fRv//30b//9/Gv//bSj+/xds9v8Hatf/C1On/wg5eP8JKFf/CR5F/wYZO/8FFTL/AwgY/wgh + M/8MNkn/Ck1e/wpuhf8Ol7b/Cbvj/wjO7f8CxZ7/AMGN/wDBjv8BwY7/AMGO/wDBjv8AwY//IL97/72x + E//crwD/27EG/9yzC//csgr/3LII/9uyBf/YoxL/zF1V/8pQYv/LUWH/y1Fh/8tRYf/LUWH/y1Ji/8tS + Yv8FBQT/Dg4O/woKCv8AAAD/AAAA/wAAAP8AAAD/AgkS/ws7ef8MRY3/CECJ/xVMkf8WTZH/CEGK/wA7 + hf8RNpX/bCDu/34b//99G///fRv+/4Yo/f+CI/3/hCT9/20p/P8Sbf3/AHz//wF8//8De/7/B3n3/wh1 + 7f8Gceb/C2nP/wgdMf8RfJb/C8v2/wjQ/P8D1P//AtT//wHT//8Cz/D/BcSe/wnEkv8LxJP/DMWU/wDB + jv8AwY7/AMGP/x+/e/+9sRP/3K8A/9yzC//ftxX/37cT/9uwBv/dtAv/2aUW/81eVv/LUGL/y1Fh/8tR + Yf/LUWH/zlln/85aaf/LVGP/AAAA/wgICP8RERH/AAAA/wAAAP8AAAD/AAAA/wMJEv8IOXf/CUKL/xRM + kf8JQor/EkqQ/wdAiv8AO4X/FDqX/3Al7/9+G///fRv//38e/v+LL/v/izD7/4kq/P9xMPz/E279/wB7 + /v8Bev7/AXr+/wF6/v8Bev//AXr//wiE+/8LQV7/ClNm/wbR/f8A0f//AdH//wHR//8B0f//A9Dw/wzG + of8TxpX/Gsma/xXHmP8Cwo//AcOQ/wPAj/8ov37/wLQW/92wAP/cswr/3rYQ/9yzC//fthP/27IG/9ml + Fv/NXVb/y1Bi/8tRYf/LUWH/y1Ji/9BdbP/LVWT/y1Fh/wAAAP8NDQ3/BgYG/wAAAP8AAAD/CgoK/wUE + BP8BBxD/AzR0/wE8h/8FPoj/ATuG/wE7hv8BO4b/ADuF/xQ6lv9yKO7/fxz//30b//9/Hv7/hSf9/4Yp + /f+FJfz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Eh///D3KY/wgoM/8Kv+j/AdL//wHR + //8B0f//AdH//wPP8P8KxJ//DsWT/xLHlv8Ox5X/CbiJ/wt9XP8HTTj/Fkgv/3FjD//Bmwb/27AB/9qv + AP/arwH/27EE/9qwAP/Yog//zF1U/8xVZv/NVmb/y1Fh/8tRYf/NV2b/zllo/8tRYf8CAgL/BQUF/wAA + AP8AAAD/AAAA/wUFBP8BAAD/AQcQ/wM0dP8BO4f/ATuG/wE7hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b + //99G///fRv//30b//99G///fhv//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4b//w+h + 0P8GHif/D5u9/wLU//8B0f//AdH//wHR//8Dz/D/AsOc/wHBjf8Bwo//B7WG/wlMOf8DCx//AxNP/wMU + VP8EDCv/OS0J/7eTCP/csAD/2q8A/9qvAP/asAD/2KIP/8xdVP/LUmP/zFVk/8tRYf/LUWH/y1Fh/8xW + Zf/LUmL/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AAAA/wEHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wE7 + hv8AO4X/ETaV/2wg7v9+G///fRv//30b//99G///fRv//38c//9sJ/3/Em39/wF7/v8De/7/AXr+/wJ6 + /v8Bev7/AXn+/wKE//8LvfP/CjlH/wxrg/8F0///AdH//wPR//8B0f//As/w/wLDnf8CwY7/AsOQ/wpy + VP8DDCX/BC6n/wM/5f8DPuL/BTCt/wEOOf9UQwf/06oE/9uvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tS + Yv/LUmL/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8LCwv/EhIS/xAPDv8KEBn/Bjd3/wI8 + h/8BO4b/ATuG/wdAif8EPoj/ADuF/xE2lf9sIO7/fhv//4Ij/f+BIf7/fRv//34c//+DIv3/bCj8/xJt + /f8IgP7/FYb9/w+C/f8LgP3/AXr+/wF5/v8ChP7/Bsj//wxthP8KPUz/Fc31/w/U/v8U1f7/BtL//wLP + 8P8FxJ7/CMSR/we9jP8KPi7/BB1w/wJE+P8ARP7/AET9/wJB7/8DI4b/HxoO/7+aCP/csAD/2q8A/9qw + AP/ZpBP/z2Na/9Bba//QXWv/zVdm/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/CAgI/w4O + Dv8JCAf/DxUe/w4+ev8EPoj/ATuG/wE7hv8JQor/CUOL/wE8hf8RN5X/cyrs/4Qk/f+IK/z/hin8/4Ml + /f9+Hf//fhr//2sn/f8Tbf3/DYP9/xWG/f8Pgv3/DoH9/wZ8/f8Bef7/A4T+/wPI//8NpMX/CCg0/xa2 + 2v8R1///FNb//w3W//8E0vH/A8Sd/wW+jP8PsIT/Cy4n/wUnj/8BRf//AET8/wBE/P8BRPr/Ayqe/xkW + Ev+6lgj/3LEA/9qvAP/bsQT/2qca/9FmXf/MVmb/zltp/8xWZf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wUFBP8PDw//EhIR/xogKP8SQX7/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/EjiU/3Yv + 6/+HKP3/giL9/4Eh/f+BIv3/fhz//34a//9rJ/3/E239/wqA/f8Qg/3/C4D9/wZ8/f8Cev7/AXn+/wOE + /v8Dxv//Ccfw/wo5R/8Xh6L/FcPp/xiv0v8Zm7r/EYif/wt6Yv8Pf17/Eo1q/wlBMP8FGVz/BETz/wBF + //8JS///B0bw/wIcb/8xJwj/yaIF/9uwAP/arwD/2rAB/96rIP/UbWT/z1tr/89aaf/LVGP/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/EREQ/wsKCf8HDRb/CTp4/wE7h/8BO4b/ATuG/wE7 + hv8BO4b/ADuF/xI5lf91Luv/hib+/4Um/f+CIv3/fx/9/30c//9+Gv//ayf9/xJt/f8Ae/7/Anr+/wN7 + /v8Ce/7/AXr+/wF5/v8DhP7/A8b//wTT//8LbIX/CyUx/w1DVf8NUmf/DHCM/xKRqP8JpYT/BraG/wXB + j/8NmHH/Bhwh/wche/8FOtD/DkLS/wgng/8LDRj/hWsI/9qwAv/arwD/2q8A/9qwAP/aphf/zWBY/85Z + av/PWmn/ylFh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AQcP/wM0 + c/8BO4f/ATuG/wE7hv8BO4b/BT6I/wM+hv8RN5X/cCXt/4Eg//9/Hv7/fhz+/30b//99G///fhr//20o + /f8WcP3/AHv+/wF6/v8Bev7/AXr+/wV8/f8Iff3/DIn9/xHJ/v8O1f//Dr/n/w6dv/8Jtd3/Ccr0/wXT + //8H0/H/AcSe/wDBjf8AwY7/A8GP/wuNaf8IMir/BBUl/wUSJP8lIAz/gWgL/9OrB//brwD/2q8A/9qv + AP/asAD/2KIP/8xdVP/LUWL/y1Ji/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wIHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wdAif8EPof/ETaV/2wg7v9+G///fRv//30b + //99G///gB/9/4Qj/f9tKf3/G3L9/wF7/v8Bev7/AXr+/wF6/v8Kf/3/BXz+/waG/v8Ix/7/BtP//wTS + /v8C1P//AdL//wDR//8D0f//C9Hv/wTDnf8KxJL/BMKQ/wDBjv8Bw4//B7WG/wmZcv8ikl7/q50T/9yx + B//csQX/2q8A/9qvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DCRH/DT16/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xE2 + lf9sIO7/fhv//30c//+AIP7/hSf9/4Yp/P+JK/v/cC37/xJt/f8Ae/7/AXr+/wF6/v8De/7/D4L9/wyA + /f8Fhf7/Bcb//wnT/v8E0f7/AdH//wHR//8B0f//AdH//wPP8P8LxqH/E8aW/w/Glf8MxZP/BMKQ/wDC + j/8Aw5H/H8J9/76yE//crwD/2q8A/9qvAP/arwD/2q8A/9uxBP/aphj/zF1V/8tQYv/LUWH/y1Fh/8tR + Yf/KUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgcQ/wo6d/8KQ4z/ATuG/wE7 + hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b//9+Hf7/gSL9/4Mk/f+CI/z/iCn7/3Qz+v8Sbf3/AHv+/wF6 + /v8Hff3/CH7+/xuK/v8Vhf3/Dor9/w3H/v8N1P7/CtL+/wTR/v8E0v7/AdH//wHR//8Dz/D/Esik/w/F + lP8Kw5L/C8ST/wnEkv8Cwo//AMGP/x+/e/+9sRP/3K8A/9qvAP/arwD/2q8A/9qvAf/dtQr/2aQU/8xd + VP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AAAA/wIH + D/8DNHP/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETeV/2wg7v9+G///fRv//34e/v+DJfz/iCz7/4Ul + /P9xL/z/Em39/wB7/v8De/7/CH79/wp//v8RhP3/A3v+/xKM/f8Pyf3/AtL//wXR/v8F0v7/DdP+/wPR + //8B0f//A9Dw/w3Hov8OxZP/E8eX/wvDkv8DwY//AMGO/wDBj/8fv3v/vbET/9yvAP/arwD/2q8A/9qv + AP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Ji/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/woK + Cv8EBAT/AAAA/wAAAP8CBw//AzRz/wE7h/8BO4b/ATuG/wE7hv8BO4b/BD6H/xs/m/9tIe7/fhv//30b + //9+HP//fh3+/38e/v9+G///ayb9/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Ghf3/Bcb+/wHS + //8B0f//AdH//wPR//8C0f//AdH//wPP8P8Bw5z/AcGN/wTCkP8Dwo//AsGO/wDBjv8AwY//IMB9/8C1 + Hf/csAH/2q8A/9qvAP/arwD/2q8A/9qwAP/Yog//zF1U/8tQYv/KUWH/zVZl/85XZv/LUWH/y1Fh/8tR + Yf8AAAD/AAAA/wAAAP8CAgL/AQEB/wAAAP8AAAD/AgcQ/wc3df8KQ4z/D0eO/xBIj/8NRYz/BD2I/wI9 + hv8UOZf/bCDu/34b//99G///fRv//30b//99G///fhr//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6 + /v8Bef7/A4T+/wPG//8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/AcOc/wDBjf8AwY7/AMGO/wDB + jv8AwY7/AMGP/x+/e/+9sxj/3K8B/9qvAf/cswr/3rQP/961Dv/dtAn/2aQU/8xdVf/LUGL/y1Fh/8tT + Yv/LUmL/y1Fh/8tRYf/LUWH/AgIC/wMDA/8BAQH/AAAA/wAAAP8AAAD/AAAA/wIHEf8FNnX/Bj+K/wU+ + iP8JQor/C0OK/wpCiv8AO4X/ETaV/2wg7v9+G///fRv//30b//9+HP7/fhz+/34a//9rJ/3/Em39/wB7 + /v8Bev7/AXr+/wF6/v8Bev7/AXn+/wOE/v8Dxv//AdL//wHR//8B0f//AdH//wHR//8B0f//A8/w/wHD + nP8AwY3/AcGO/wLBj/8AwY7/AMGO/wDBj/8fv3v/vbET/9yvAP/bsAT/3LMN/9uyCv/asAX/27EF/9ij + E//MXlX/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LU2P/y1Nj/wICAv8LCwv/ERER/wICAv8AAAD/AAAA/wAA + AP8DCBH/DDt4/w5Hjv8JQor/FEyR/xhOk/8PRo3/ADuF/xE2lf9sIO7/fhv//30b//99G///hSf8/4cq + /P+FJvz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8DhP7/A8b//wHS//8B0f//AdH//wHR + //8B0f//AdH//wLP8P8Ew53/DsaU/w3FlP8UyJj/AsGO/wDBjv8AwY//H797/72xE//crwD/27EG/9+3 + GP/guBb/3LMK/920C//aphn/zV9W/8tQYv/LUWH/y1Fh/8tRYf/OWWj/z1xq/8tVZP8AAAD/AwMD/xMT + E/8CAgL/AAAA/wAAAP8AAAD/AwgQ/wk5dv8EPon/FEyS/wpDiv8LRIz/CkOL/wA7hf8TOpb/cSjt/34b + //99G///fh3+/4gs+/+KL/v/hyj8/3Qz+/8Ubv3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4T+/wPG + //8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/C8Wg/xHHlf8WyJj/FseY/wXDkP8AwY7/AMGP/yPB + fv+/sxn/3K8A/9uwBP/dtRD/27EH/9+3Ff/bsgf/2aQT/81fVv/LUGL/y1Fh/8tRYf/LUWH/z1tq/81X + Zv/LUWH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/Views/LevelStatsDisplay.Designer.cs b/Views/LevelStatsDisplay.Designer.cs new file mode 100644 index 000000000..832f57849 --- /dev/null +++ b/Views/LevelStatsDisplay.Designer.cs @@ -0,0 +1,349 @@ +namespace FallGuysStats { + partial class LevelStatsDisplay { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LevelStatsDisplay)); + this.formsPlot = new ScottPlot.FormsPlot(); + this.picRoundIcon = new System.Windows.Forms.PictureBox(); + this.cboRoundList = new MetroFramework.Controls.MetroComboBox(); + this.lblRoundTime = new System.Windows.Forms.Label(); + this.lblRoundType = new FallGuysStats.RoundLabel(); + this.lblBestRecord = new System.Windows.Forms.Label(); + this.lblWorstRecord = new System.Windows.Forms.Label(); + this.picGoldMedalIcon = new System.Windows.Forms.PictureBox(); + this.lblCountGoldMedal = new System.Windows.Forms.Label(); + this.picSilverMedalIcon = new System.Windows.Forms.PictureBox(); + this.lblCountSilverMedal = new System.Windows.Forms.Label(); + this.picBronzeMedalIcon = new System.Windows.Forms.PictureBox(); + this.lblCountBronzeMedal = new System.Windows.Forms.Label(); + this.picPinkMedalIcon = new System.Windows.Forms.PictureBox(); + this.lblCountPinkMedal = new System.Windows.Forms.Label(); + this.picEliminatedMedalIcon = new System.Windows.Forms.PictureBox(); + this.lblCountEliminatedMedal = new System.Windows.Forms.Label(); + this.btnCopyShareCode = new MetroFramework.Controls.MetroButton(); + ((System.ComponentModel.ISupportInitialize)(this.picRoundIcon)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picGoldMedalIcon)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picSilverMedalIcon)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picBronzeMedalIcon)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPinkMedalIcon)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picEliminatedMedalIcon)).BeginInit(); + this.SuspendLayout(); + // + // formsPlot + // + this.formsPlot.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.formsPlot.Location = new System.Drawing.Point(0, 58); + this.formsPlot.Margin = new System.Windows.Forms.Padding(4, 2, 4, 2); + this.formsPlot.Name = "formsPlot"; + this.formsPlot.Size = new System.Drawing.Size(596, 523); + this.formsPlot.TabIndex = 1; + // + // picRoundIcon + // + this.picRoundIcon.Image = global::FallGuysStats.Properties.Resources.fallguys_icon; + this.picRoundIcon.Location = new System.Drawing.Point(616, 64); + this.picRoundIcon.Name = "picRoundIcon"; + this.picRoundIcon.Size = new System.Drawing.Size(60, 60); + this.picRoundIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picRoundIcon.TabIndex = 2; + this.picRoundIcon.TabStop = false; + this.picRoundIcon.Click += new System.EventHandler(this.Medal_MouseClick); + this.picRoundIcon.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.picRoundIcon.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // cboRoundList + // + this.cboRoundList.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboRoundList.IntegralHeight = false; + this.cboRoundList.ItemHeight = 23; + this.cboRoundList.Location = new System.Drawing.Point(706, 95); + this.cboRoundList.MaxDropDownItems = 18; + this.cboRoundList.Name = "cboRoundList"; + this.cboRoundList.Size = new System.Drawing.Size(290, 29); + this.cboRoundList.TabIndex = 4; + this.cboRoundList.UseSelectable = true; + this.cboRoundList.SelectedIndexChanged += new System.EventHandler(this.cboRoundList_SelectedIndexChanged); + // + // lblRoundTime + // + this.lblRoundTime.AutoSize = true; + this.lblRoundTime.ForeColor = System.Drawing.Color.Teal; + this.lblRoundTime.Location = new System.Drawing.Point(700, 60); + this.lblRoundTime.Name = "lblRoundTime"; + this.lblRoundTime.Size = new System.Drawing.Size(49, 13); + this.lblRoundTime.TabIndex = 3; + this.lblRoundTime.Text = "00:00:00"; + this.lblRoundTime.Click += new System.EventHandler(this.Medal_MouseClick); + this.lblRoundTime.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.lblRoundTime.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // lblRoundType + // + this.lblRoundType.ForeColor = System.Drawing.Color.White; + this.lblRoundType.Location = new System.Drawing.Point(616, 138); + this.lblRoundType.Name = "lblRoundType"; + this.lblRoundType.Size = new System.Drawing.Size(100, 35); + this.lblRoundType.TabIndex = 15; + this.lblRoundType.Text = "RACE"; + this.lblRoundType.Click += new System.EventHandler(this.Medal_MouseClick); + this.lblRoundType.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.lblRoundType.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // lblBestRecord + // + this.lblBestRecord.AutoSize = true; + this.lblBestRecord.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(218)))), ((int)(((byte)(165)))), ((int)(((byte)(32))))); + this.lblBestRecord.Location = new System.Drawing.Point(722, 138); + this.lblBestRecord.Name = "lblBestRecord"; + this.lblBestRecord.Size = new System.Drawing.Size(13, 13); + this.lblBestRecord.TabIndex = 16; + this.lblBestRecord.Text = "0"; + this.lblBestRecord.Click += new System.EventHandler(this.Medal_MouseClick); + this.lblBestRecord.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.lblBestRecord.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // lblWorstRecord + // + this.lblWorstRecord.AutoSize = true; + this.lblWorstRecord.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(0)))), ((int)(((byte)(128))))); + this.lblWorstRecord.Location = new System.Drawing.Point(722, 163); + this.lblWorstRecord.Name = "lblWorstRecord"; + this.lblWorstRecord.Size = new System.Drawing.Size(13, 13); + this.lblWorstRecord.TabIndex = 17; + this.lblWorstRecord.Text = "0"; + this.lblWorstRecord.Click += new System.EventHandler(this.Medal_MouseClick); + this.lblWorstRecord.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.lblWorstRecord.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // picGoldMedalIcon + // + this.picGoldMedalIcon.Image = global::FallGuysStats.Properties.Resources.medal_gold_original; + this.picGoldMedalIcon.Location = new System.Drawing.Point(616, 211); + this.picGoldMedalIcon.Name = "picGoldMedalIcon"; + this.picGoldMedalIcon.Size = new System.Drawing.Size(55, 55); + this.picGoldMedalIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picGoldMedalIcon.TabIndex = 5; + this.picGoldMedalIcon.TabStop = false; + this.picGoldMedalIcon.Click += new System.EventHandler(this.Medal_MouseClick); + this.picGoldMedalIcon.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.picGoldMedalIcon.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // lblCountGoldMedal + // + this.lblCountGoldMedal.AutoSize = true; + this.lblCountGoldMedal.ForeColor = System.Drawing.Color.Teal; + this.lblCountGoldMedal.Location = new System.Drawing.Point(690, 211); + this.lblCountGoldMedal.Name = "lblCountGoldMedal"; + this.lblCountGoldMedal.Size = new System.Drawing.Size(13, 13); + this.lblCountGoldMedal.TabIndex = 6; + this.lblCountGoldMedal.Text = "0"; + this.lblCountGoldMedal.Click += new System.EventHandler(this.Medal_MouseClick); + this.lblCountGoldMedal.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.lblCountGoldMedal.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // picSilverMedalIcon + // + this.picSilverMedalIcon.Image = global::FallGuysStats.Properties.Resources.medal_silver_original; + this.picSilverMedalIcon.Location = new System.Drawing.Point(616, 280); + this.picSilverMedalIcon.Name = "picSilverMedalIcon"; + this.picSilverMedalIcon.Size = new System.Drawing.Size(55, 55); + this.picSilverMedalIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picSilverMedalIcon.TabIndex = 7; + this.picSilverMedalIcon.TabStop = false; + this.picSilverMedalIcon.Click += new System.EventHandler(this.Medal_MouseClick); + this.picSilverMedalIcon.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.picSilverMedalIcon.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // lblCountSilverMedal + // + this.lblCountSilverMedal.AutoSize = true; + this.lblCountSilverMedal.ForeColor = System.Drawing.Color.Teal; + this.lblCountSilverMedal.Location = new System.Drawing.Point(690, 280); + this.lblCountSilverMedal.Name = "lblCountSilverMedal"; + this.lblCountSilverMedal.Size = new System.Drawing.Size(13, 13); + this.lblCountSilverMedal.TabIndex = 8; + this.lblCountSilverMedal.Text = "0"; + this.lblCountSilverMedal.Click += new System.EventHandler(this.Medal_MouseClick); + this.lblCountSilverMedal.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.lblCountSilverMedal.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // picBronzeMedalIcon + // + this.picBronzeMedalIcon.Image = global::FallGuysStats.Properties.Resources.medal_bronze_original; + this.picBronzeMedalIcon.Location = new System.Drawing.Point(616, 349); + this.picBronzeMedalIcon.Name = "picBronzeMedalIcon"; + this.picBronzeMedalIcon.Size = new System.Drawing.Size(55, 55); + this.picBronzeMedalIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picBronzeMedalIcon.TabIndex = 9; + this.picBronzeMedalIcon.TabStop = false; + this.picBronzeMedalIcon.Click += new System.EventHandler(this.Medal_MouseClick); + this.picBronzeMedalIcon.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.picBronzeMedalIcon.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // lblCountBronzeMedal + // + this.lblCountBronzeMedal.AutoSize = true; + this.lblCountBronzeMedal.ForeColor = System.Drawing.Color.Teal; + this.lblCountBronzeMedal.Location = new System.Drawing.Point(690, 349); + this.lblCountBronzeMedal.Name = "lblCountBronzeMedal"; + this.lblCountBronzeMedal.Size = new System.Drawing.Size(13, 13); + this.lblCountBronzeMedal.TabIndex = 10; + this.lblCountBronzeMedal.Text = "0"; + this.lblCountBronzeMedal.Click += new System.EventHandler(this.Medal_MouseClick); + this.lblCountBronzeMedal.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.lblCountBronzeMedal.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // picPinkMedalIcon + // + this.picPinkMedalIcon.Image = global::FallGuysStats.Properties.Resources.medal_pink_original; + this.picPinkMedalIcon.Location = new System.Drawing.Point(616, 418); + this.picPinkMedalIcon.Name = "picPinkMedalIcon"; + this.picPinkMedalIcon.Size = new System.Drawing.Size(55, 55); + this.picPinkMedalIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPinkMedalIcon.TabIndex = 11; + this.picPinkMedalIcon.TabStop = false; + this.picPinkMedalIcon.Click += new System.EventHandler(this.Medal_MouseClick); + this.picPinkMedalIcon.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.picPinkMedalIcon.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // lblCountPinkMedal + // + this.lblCountPinkMedal.AutoSize = true; + this.lblCountPinkMedal.ForeColor = System.Drawing.Color.Teal; + this.lblCountPinkMedal.Location = new System.Drawing.Point(690, 418); + this.lblCountPinkMedal.Name = "lblCountPinkMedal"; + this.lblCountPinkMedal.Size = new System.Drawing.Size(13, 13); + this.lblCountPinkMedal.TabIndex = 12; + this.lblCountPinkMedal.Text = "0"; + this.lblCountPinkMedal.Click += new System.EventHandler(this.Medal_MouseClick); + this.lblCountPinkMedal.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.lblCountPinkMedal.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // picEliminatedMedalIcon + // + this.picEliminatedMedalIcon.Image = global::FallGuysStats.Properties.Resources.medal_eliminated_original; + this.picEliminatedMedalIcon.Location = new System.Drawing.Point(616, 487); + this.picEliminatedMedalIcon.Name = "picEliminatedMedalIcon"; + this.picEliminatedMedalIcon.Size = new System.Drawing.Size(55, 55); + this.picEliminatedMedalIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picEliminatedMedalIcon.TabIndex = 13; + this.picEliminatedMedalIcon.TabStop = false; + this.picEliminatedMedalIcon.Click += new System.EventHandler(this.Medal_MouseClick); + this.picEliminatedMedalIcon.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.picEliminatedMedalIcon.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // lblCountEliminatedMedal + // + this.lblCountEliminatedMedal.AutoSize = true; + this.lblCountEliminatedMedal.ForeColor = System.Drawing.Color.Teal; + this.lblCountEliminatedMedal.Location = new System.Drawing.Point(690, 487); + this.lblCountEliminatedMedal.Name = "lblCountEliminatedMedal"; + this.lblCountEliminatedMedal.Size = new System.Drawing.Size(13, 13); + this.lblCountEliminatedMedal.TabIndex = 14; + this.lblCountEliminatedMedal.Text = "0"; + this.lblCountEliminatedMedal.Click += new System.EventHandler(this.Medal_MouseClick); + this.lblCountEliminatedMedal.MouseEnter += new System.EventHandler(this.Medal_MouseEnter); + this.lblCountEliminatedMedal.MouseLeave += new System.EventHandler(this.Medal_MouseLeave); + // + // btnCopyShareCode + // + this.btnCopyShareCode.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnCopyShareCode.Location = new System.Drawing.Point(366, 87); + this.btnCopyShareCode.Name = "btnCopyShareCode"; + this.btnCopyShareCode.Size = new System.Drawing.Size(19, 15); + this.btnCopyShareCode.TabIndex = 18; + this.btnCopyShareCode.Text = "⧉"; + this.btnCopyShareCode.TextAlign = System.Drawing.ContentAlignment.TopLeft; + this.btnCopyShareCode.UseSelectable = true; + this.btnCopyShareCode.Visible = false; + this.btnCopyShareCode.Click += new System.EventHandler(this.btnCopyShareCode_Click); + // + // LevelStatsDisplay + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.ClientSize = new System.Drawing.Size(1010, 580); + this.Controls.Add(this.btnCopyShareCode); + this.Controls.Add(this.formsPlot); + this.Controls.Add(this.picRoundIcon); + this.Controls.Add(this.cboRoundList); + this.Controls.Add(this.lblRoundTime); + this.Controls.Add(this.lblRoundType); + this.Controls.Add(this.lblBestRecord); + this.Controls.Add(this.lblWorstRecord); + this.Controls.Add(this.picGoldMedalIcon); + this.Controls.Add(this.lblCountGoldMedal); + this.Controls.Add(this.picSilverMedalIcon); + this.Controls.Add(this.lblCountSilverMedal); + this.Controls.Add(this.picBronzeMedalIcon); + this.Controls.Add(this.lblCountBronzeMedal); + this.Controls.Add(this.picPinkMedalIcon); + this.Controls.Add(this.lblCountPinkMedal); + this.Controls.Add(this.picEliminatedMedalIcon); + this.Controls.Add(this.lblCountEliminatedMedal); + this.ForeColor = System.Drawing.Color.Black; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "LevelStatsDisplay"; + this.Padding = new System.Windows.Forms.Padding(20, 60, 20, 0); + this.Resizable = false; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.Style = MetroFramework.MetroColorStyle.Teal; + this.Text = "Round Stats Display"; + this.Load += new System.EventHandler(this.RoundStatsDisplay_Load); + this.Shown += new System.EventHandler(this.RoundStatsDisplay_Shown); + ((System.ComponentModel.ISupportInitialize)(this.picRoundIcon)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picGoldMedalIcon)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picSilverMedalIcon)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picBronzeMedalIcon)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPinkMedalIcon)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picEliminatedMedalIcon)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + private ScottPlot.FormsPlot formsPlot; + private System.Windows.Forms.PictureBox picRoundIcon; + private MetroFramework.Controls.MetroComboBox cboRoundList; + private System.Windows.Forms.Label lblRoundTime; + private RoundLabel lblRoundType; + private System.Windows.Forms.Label lblBestRecord; + private System.Windows.Forms.Label lblWorstRecord; + private System.Windows.Forms.PictureBox picGoldMedalIcon; + private System.Windows.Forms.Label lblCountGoldMedal; + private System.Windows.Forms.PictureBox picSilverMedalIcon; + private System.Windows.Forms.Label lblCountSilverMedal; + private System.Windows.Forms.PictureBox picBronzeMedalIcon; + private System.Windows.Forms.Label lblCountBronzeMedal; + private System.Windows.Forms.PictureBox picPinkMedalIcon; + private System.Windows.Forms.Label lblCountPinkMedal; + private System.Windows.Forms.PictureBox picEliminatedMedalIcon; + private System.Windows.Forms.Label lblCountEliminatedMedal; + private MetroFramework.Controls.MetroButton btnCopyShareCode; + } +} \ No newline at end of file diff --git a/Views/LevelStatsDisplay.cs b/Views/LevelStatsDisplay.cs new file mode 100644 index 000000000..7b5310ce4 --- /dev/null +++ b/Views/LevelStatsDisplay.cs @@ -0,0 +1,312 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text.RegularExpressions; +using System.Windows.Forms; +using MetroFramework; +using MetroFramework.Controls; +using ScottPlot; +using ScottPlot.Plottable; + +namespace FallGuysStats { + public partial class LevelStatsDisplay : MetroFramework.Forms.MetroForm { + public Stats StatsForm { get; set; } + public Dictionary levelMedalInfo; + public Dictionary levelTotalPlayTime; + public Dictionary levelTimeInfo; + public Dictionary levelScoreInfo; + public IOrderedEnumerable> levelList; + private string levelShareCode; + private RadialGaugePlot radialGauges; + private readonly string[] labelList = { + Multilingual.GetWord("main_played"), Multilingual.GetWord("level_detail_gold"), + Multilingual.GetWord("level_detail_silver"), Multilingual.GetWord("level_detail_bronze"), + Multilingual.GetWord("level_detail_pink"), Multilingual.GetWord("level_detail_eliminated") + }; + private bool isInitComplete; + private string goldMedalCount, silverMedalCount, bronzeMedalCount, pinkMedalCount, eliminatedMedalCount; + private string goldMedalPercent, silverMedalPercent, bronzeMedalPercent, pinkMedalPercent, eliminatedMedalPercent; + private bool switching; + public LevelStatsDisplay() { + this.InitializeComponent(); + this.Opacity = 0; + } + + private class CustomPalette : IPalette { + public string Name => "Custom Palette"; + public string Description => "Custom Palette"; + + public Color[] Colors { get; } = { + Color.FromArgb(31, 119, 180), Color.FromArgb(255, 215, 0), Color.FromArgb(192, 192, 192), Color.FromArgb(205, 127, 50), Color.FromArgb(255, 20, 147), + Color.FromArgb(128, 0, 128), Color.FromArgb(227, 119, 194), Color.FromArgb(127, 127, 127), Color.FromArgb(188, 189, 34), Color.FromArgb(23, 190, 207) + }; + } + + private void RoundStatsDisplay_Load(object sender, EventArgs e) { + this.SetTheme(Stats.CurrentTheme); + this.ChangeLanguage(); + + this.cboRoundList.DataSource = new BindingSource(this.levelList, null); + this.cboRoundList.DisplayMember = "Value"; + this.cboRoundList.ValueMember = "Key"; + + this.formsPlot.Plot.Legend(location: Alignment.UpperRight); + this.SetGraph(this.cboRoundList.SelectedItem); + this.isInitComplete = true; + } + + private void RoundStatsDisplay_Shown(object sender, EventArgs e) { + this.Opacity = 1; + } + + private void SetTheme(MetroThemeStyle theme) { + this.SuspendLayout(); + if (theme == MetroThemeStyle.Dark) { + this.formsPlot.Plot.Style(ScottPlot.Style.Black); + this.formsPlot.Plot.Style(figureBackground: Color.FromArgb(17, 17, 17)); + this.formsPlot.Plot.Style(dataBackground: Color.FromArgb(17, 17, 17)); + this.formsPlot.Plot.Style(tick: Color.WhiteSmoke); + foreach (Control c1 in Controls) { + if (c1 is MetroComboBox mcbo1) { + mcbo1.Theme = theme; + } else if (c1 is MetroLabel mlb1) { + mlb1.Theme = theme; + } else if (c1 is Label lb1) { + if (lb1.Equals(this.lblRoundType) || lb1.Equals(this.lblRoundTime) || lb1.Equals(this.lblBestRecord) || lb1.Equals(this.lblWorstRecord)) continue; + lb1.ForeColor = Color.DarkGray; + } + } + } + this.Theme = theme; + this.ResumeLayout(); + } + + private void SetGraph(object selectedItem) { + //this.formsPlot.Plot.Grid(false); + //this.formsPlot.Plot.Frameless(); + KeyValuePair selectedRoundPair = (KeyValuePair)selectedItem; + string levelId = selectedRoundPair.Key; + + MatchCollection matches = Regex.Matches(levelId, @"^\d{4}-\d{4}-\d{4}\.$"); + if (matches.Count > 0) { + this.levelShareCode = levelId.Remove(14); + this.btnCopyShareCode.Visible = true; + List info = this.StatsForm.AllStats.FindAll(r => r.UseShareCode && string.Equals(r.Name, this.levelShareCode)); + this.picRoundIcon.Size = Properties.Resources.round_creative_big_icon.Size; + this.picRoundIcon.Image = Properties.Resources.round_creative_big_icon; + this.formsPlot.Plot.Title($@"{selectedRoundPair.Value.Replace("&&", "&")}{Environment.NewLine}{this.levelShareCode}"); + + switch (info.Last().ShowNameId) { + case "user_creative_race_round": + this.lblRoundType.Text = Multilingual.GetWord("level_detail_race"); + this.lblRoundType.borderColor = Color.FromArgb(0, 236, 106); + this.lblRoundType.backColor = Color.FromArgb(0, 236, 106); + this.lblBestRecord.Text = $"{Multilingual.GetWord("overlay_fastest")} : {this.levelTimeInfo[levelId][0]}"; + this.lblWorstRecord.Text = $"{Multilingual.GetWord("overlay_longest")} : {(!string.Equals(this.levelTimeInfo[levelId][0], this.levelTimeInfo[levelId][1]) ? this.levelTimeInfo[levelId][1] : @"-")}"; + break; + case "user_creative_hunt_round": + this.lblRoundType.Text = Multilingual.GetWord("level_detail_hunt"); + this.lblRoundType.borderColor = Color.FromArgb(45, 101, 186); + this.lblRoundType.backColor = Color.FromArgb(45, 101, 186); + this.lblBestRecord.Text = $"{Multilingual.GetWord("overlay_fastest")} : {this.levelTimeInfo[levelId][0]}"; + this.lblWorstRecord.Text = $"{Multilingual.GetWord("overlay_longest")} : {(!string.Equals(this.levelTimeInfo[levelId][0], this.levelTimeInfo[levelId][1]) ? this.levelTimeInfo[levelId][1] : @"-")}"; + break; + case "user_creative_survival_round": + this.lblRoundType.Text = Multilingual.GetWord("level_detail_survival"); + this.lblRoundType.borderColor = Color.FromArgb(184, 21, 213); + this.lblRoundType.backColor = Color.FromArgb(184, 21, 213); + this.lblBestRecord.Text = $"{Multilingual.GetWord("overlay_longest")} : {this.levelTimeInfo[levelId][1]}"; + this.lblWorstRecord.Text = $"{Multilingual.GetWord("overlay_fastest")} : {(!string.Equals(this.levelTimeInfo[levelId][1], this.levelTimeInfo[levelId][0]) ? this.levelTimeInfo[levelId][0] : @"-")}"; + break; + case "user_creative_logic_round": + this.lblRoundType.Text = Multilingual.GetWord("level_detail_logic"); + this.lblRoundType.borderColor = Color.FromArgb(91, 181, 189); + this.lblRoundType.backColor = Color.FromArgb(91, 181, 189); + this.lblBestRecord.Text = $"{Multilingual.GetWord("overlay_fastest")} : {this.levelTimeInfo[levelId][0]}"; + this.lblWorstRecord.Text = $"{Multilingual.GetWord("overlay_longest")} : {(!string.Equals(this.levelTimeInfo[levelId][0], this.levelTimeInfo[levelId][1]) ? this.levelTimeInfo[levelId][1] : @"-")}"; + break; + case "user_creative_team_round": + this.lblRoundType.Text = Multilingual.GetWord("level_detail_team"); + this.lblRoundType.borderColor = Color.FromArgb(248, 82, 0); + this.lblRoundType.backColor = Color.FromArgb(248, 82, 0); + this.lblBestRecord.Text = $"{Multilingual.GetWord("overlay_high_score")} : {this.levelScoreInfo[levelId][0]}"; + this.lblWorstRecord.Text = $"{Multilingual.GetWord("overlay_low_score")} : {(!string.Equals(this.levelScoreInfo[levelId][0], this.levelScoreInfo[levelId][1]) ? this.levelScoreInfo[levelId][1] : @"-")}"; + break; + default: + this.lblRoundType.Text = "UNKNOWN"; + this.lblRoundType.borderColor = Color.DarkGray; + this.lblRoundType.backColor = Color.DarkGray; + this.lblBestRecord.Text = $"{Multilingual.GetWord("overlay_fastest")} : {this.levelTimeInfo[levelId][0]}"; + this.lblWorstRecord.Text = $"{Multilingual.GetWord("overlay_longest")} : {(!string.Equals(this.levelTimeInfo[levelId][0], this.levelTimeInfo[levelId][1]) ? this.levelTimeInfo[levelId][1] : @"-")}"; + break; + } + + this.lblRoundType.Width = TextRenderer.MeasureText(this.lblRoundType.Text, this.lblRoundType.Font).Width + 12; + this.lblBestRecord.Left = this.lblRoundType.Right + 12; + this.lblWorstRecord.Left = this.lblRoundType.Right + 12; + } else { + if (this.StatsForm.StatLookup.TryGetValue(levelId, out LevelStats level)) { + this.levelShareCode = level.ShareCode; + bool hasShareCode = !string.IsNullOrEmpty(this.levelShareCode); + this.btnCopyShareCode.Visible = hasShareCode; + this.picRoundIcon.Size = level.RoundBigIcon.Size; + this.picRoundIcon.Image = level.RoundBigIcon; + this.formsPlot.Plot.Title(hasShareCode ? $@"{level.Name}{Environment.NewLine}{this.levelShareCode}" : level.Name); + this.lblRoundType.Text = level.Type.LevelTitle(level.IsFinal); + this.lblRoundType.borderColor = level.Type.LevelDefaultColor(level.IsFinal); + this.lblRoundType.backColor = level.Type.LevelDefaultColor(level.IsFinal); + this.lblRoundType.Width = TextRenderer.MeasureText(this.lblRoundType.Text, this.lblRoundType.Font).Width + 12; + this.lblBestRecord.Left = this.lblRoundType.Right + 12; + this.lblWorstRecord.Left = this.lblRoundType.Right + 12; + + levelId = hasShareCode ? this.levelShareCode : levelId; + switch (level.BestRecordType) { + case BestRecordType.Fastest: + this.lblBestRecord.Text = $"{Multilingual.GetWord("overlay_fastest")} : {this.levelTimeInfo[levelId][0]}"; + this.lblWorstRecord.Text = $"{Multilingual.GetWord("overlay_longest")} : {(!string.Equals(this.levelTimeInfo[levelId][0], this.levelTimeInfo[levelId][1]) ? this.levelTimeInfo[levelId][1] : @"-")}"; + break; + case BestRecordType.Longest: + this.lblBestRecord.Text = $"{Multilingual.GetWord("overlay_longest")} : {this.levelTimeInfo[levelId][1]}"; + this.lblWorstRecord.Text = $"{Multilingual.GetWord("overlay_fastest")} : {(!string.Equals(this.levelTimeInfo[levelId][1], this.levelTimeInfo[levelId][0]) ? this.levelTimeInfo[levelId][0] : @"-")}"; + break; + case BestRecordType.HighScore: + this.lblBestRecord.Text = $"{Multilingual.GetWord("overlay_high_score")} : {this.levelScoreInfo[levelId][0]}"; + this.lblWorstRecord.Text = $"{Multilingual.GetWord("overlay_low_score")} : {(!string.Equals(this.levelScoreInfo[levelId][0], this.levelScoreInfo[levelId][1]) ? this.levelScoreInfo[levelId][1] : @"-")}"; + break; + default: + this.lblBestRecord.Text = $"{Multilingual.GetWord("overlay_fastest")} : {this.levelTimeInfo[levelId][0]}"; + this.lblWorstRecord.Text = $"{Multilingual.GetWord("overlay_longest")} : {(!string.Equals(this.levelTimeInfo[levelId][0], this.levelTimeInfo[levelId][1]) ? this.levelTimeInfo[levelId][1] : @"-")}"; + break; + } + } + } + + TimeSpan playTime = this.levelTotalPlayTime[levelId]; + this.lblRoundTime.Text = $@"{Multilingual.GetWord("level_round_played_prefix")} {(int)playTime.TotalHours}{Multilingual.GetWord("main_hour")}{playTime:mm}{Multilingual.GetWord("main_min")}{playTime:ss}{Multilingual.GetWord("main_sec")} {Multilingual.GetWord("level_round_played_suffix")}"; + double[] values = this.levelMedalInfo[levelId]; + + this.formsPlot.Plot.Palette = new CustomPalette(); + + this.goldMedalPercent = $@"{Math.Round((values[1] / values[0]) * 100, 2)}%"; + this.silverMedalPercent = $@"{Math.Round((values[2] / values[0]) * 100, 2)}%"; + this.bronzeMedalPercent = $@"{Math.Round((values[3] / values[0]) * 100, 2)}%"; + this.pinkMedalPercent = $@"{Math.Round((values[4] / values[0]) * 100, 2)}%"; + this.eliminatedMedalPercent = $@"{Math.Round((values[5] / values[0]) * 100, 2)}%"; + + this.goldMedalCount = $@"{values[1]:N0}"; + this.silverMedalCount = $@"{values[2]:N0}"; + this.bronzeMedalCount = $@"{values[3]:N0}"; + this.pinkMedalCount = $@"{values[4]:N0}"; + this.eliminatedMedalCount = $@"{values[5]:N0}"; + + if (this.switching) { + this.lblCountGoldMedal.Text = this.goldMedalPercent; + this.lblCountSilverMedal.Text = this.silverMedalPercent; + this.lblCountBronzeMedal.Text = this.bronzeMedalPercent; + this.lblCountPinkMedal.Text = this.pinkMedalPercent; + this.lblCountEliminatedMedal.Text = this.eliminatedMedalPercent; + } else { + this.lblCountGoldMedal.Text = this.goldMedalCount; + this.lblCountSilverMedal.Text = this.silverMedalCount; + this.lblCountBronzeMedal.Text = this.bronzeMedalCount; + this.lblCountPinkMedal.Text = this.pinkMedalCount; + this.lblCountEliminatedMedal.Text = this.eliminatedMedalCount; + } + + + + this.radialGauges = this.formsPlot.Plot.AddRadialGauge(values); + this.radialGauges.OrderInsideOut = false; + //this.radialGauges.Clockwise = false; + this.radialGauges.SpaceFraction = .1; + //this.radialGauges.BackgroundTransparencyFraction = .3; + //this.radialGauges.StartingAngle = 270; + this.radialGauges.EndCap = System.Drawing.Drawing2D.LineCap.Round; + this.radialGauges.LabelPositionFraction = 0; + this.radialGauges.FontSizeFraction = .7; + //this.radialGauges.Font.Color = Color.Black; + this.radialGauges.Labels = this.labelList; + + this.formsPlot.Plot.AxisZoom(.9, .9); + this.formsPlot.Plot.YAxis.SetBoundary(0, 0); + this.formsPlot.Plot.XAxis.SetBoundary(0, 0); + this.formsPlot.Refresh(); + + // this.formsPlot.Configuration.Pan = false; + // this.formsPlot.Configuration.Zoom = false; + // this.formsPlot.Configuration.ScrollWheelZoom = false; + // this.formsPlot.Configuration.RightClickDragZoom = false; + // this.formsPlot.Configuration.MiddleClickAutoAxis = false; + // this.formsPlot.Configuration.DoubleClickBenchmark = false; + // this.formsPlot.Configuration.LockHorizontalAxis = true; + // this.formsPlot.Configuration.LockVerticalAxis = true; + + var pb = this.formsPlot.Controls.OfType().FirstOrDefault(); + if (pb != null) { + pb.Enabled = false; + } + } + + private void btnCopyShareCode_Click(object sender, EventArgs e) { + Clipboard.SetText(this.levelShareCode, TextDataFormat.Text); + this.StatsForm.AllocTooltip(); + Point position = new Point(this.btnCopyShareCode.Location.X + 26, this.btnCopyShareCode.Location.Y - 6); + this.StatsForm.ShowTooltip(Multilingual.GetWord("level_detail_share_code_copied"), this, position, 2000); + } + + private void Medal_MouseEnter(object sender, EventArgs e) { + this.Cursor = this.Theme == MetroThemeStyle.Light + ? new System.Windows.Forms.Cursor(Properties.Resources.transform_icon.GetHicon()) + : new System.Windows.Forms.Cursor(Properties.Resources.transform_gray_icon.GetHicon()); + } + + private void Medal_MouseLeave(object sender, EventArgs e) { + this.Cursor = Cursors.Default; + } + + private void Medal_MouseClick(object sender, EventArgs e) { + this.switching = !this.switching; + if (this.switching) { + this.lblCountGoldMedal.Text = this.goldMedalPercent; + this.lblCountSilverMedal.Text = this.silverMedalPercent; + this.lblCountBronzeMedal.Text = this.bronzeMedalPercent; + this.lblCountPinkMedal.Text = this.pinkMedalPercent; + this.lblCountEliminatedMedal.Text = this.eliminatedMedalPercent; + } else { + this.lblCountGoldMedal.Text = this.goldMedalCount; + this.lblCountSilverMedal.Text = this.silverMedalCount; + this.lblCountBronzeMedal.Text = this.bronzeMedalCount; + this.lblCountPinkMedal.Text = this.pinkMedalCount; + this.lblCountEliminatedMedal.Text = this.eliminatedMedalCount; + } + } + + private void cboRoundList_SelectedIndexChanged(object sender, EventArgs e) { + if (this.isInitComplete) { + this.formsPlot.Plot.Clear(); + this.SetGraph(((MetroComboBox)sender).SelectedItem); + } + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { + if(keyData == Keys.Escape) { + this.Close(); + return true; + } + return base.ProcessCmdKey(ref msg, keyData); + } + + private void ChangeLanguage() { + this.lblRoundTime.Font = Overlay.GetDefaultFont(18, Stats.CurrentLanguage); + this.lblBestRecord.Font = Overlay.GetDefaultFont(18, Stats.CurrentLanguage); + this.lblWorstRecord.Font = Overlay.GetDefaultFont(18, Stats.CurrentLanguage); + this.lblRoundType.Font = Overlay.GetDefaultFont(18, Stats.CurrentLanguage); + this.lblCountGoldMedal.Font = Overlay.GetDefaultFont(45, 0); + this.lblCountSilverMedal.Font = Overlay.GetDefaultFont(45, 0); + this.lblCountBronzeMedal.Font = Overlay.GetDefaultFont(45, 0); + this.lblCountPinkMedal.Font = Overlay.GetDefaultFont(45, 0); + this.lblCountEliminatedMedal.Font = Overlay.GetDefaultFont(45, 0); + } + } +} \ No newline at end of file diff --git a/Views/LevelStatsDisplay.resx b/Views/LevelStatsDisplay.resx new file mode 100644 index 000000000..f53159b63 --- /dev/null +++ b/Views/LevelStatsDisplay.resx @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA + AAADNsT/AjbF/wI2xv8DNsX/AjbG/wI2xv8CNsb/AjbG/wI2x/8FMbH/BiaP/wM2x/8CNsX/AjjN/wE8 + 3/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ATze/wI4zP8CNsb/AzbF/wgpj/8GM7P/AzbG/wM2xf8DNsX/AzbF/wM2 + xf8DNsX/AjbF/wI2xv8DNsX/AjbF/wI2xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2xv8CN8j/BS+m/wYl + g/8DN8f/AjbG/wE50/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8COdH/AjbG/wM3x/8IJIH/BTCr/wI2 + yP8CNsb/AjbG/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI1xP8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8CNsb/AjfI/wcsnP8GJIL/AzfI/wI2x/8BOtj/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ATrW/wI2 + x/8DN8f/ByJ8/wUtof8CN8j/AjbG/wI2xv8CNsb/AjbH/wI2xv8CNsb/AjbG/wM2xf8CNMP/AjbG/wI2 + xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI3yP8IK5r/BiSD/wM3x/8CN8n/ATze/wA94v8APOH/ADzh/wA9 + 4v8APeL/ADzh/wA84f8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA94f8APeH/AD3h/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wE73P8CN8n/AzfH/wYjf/8FLZ//AjfI/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8DNcP/AjXF/wI2x/8CNsj/AjbH/wI2x/8CNsb/AjbG/wI2xv8CN8j/Byuc/wYlhv8DN8f/AjjN/wE9 + 4f8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA9 + 4v8APeP/AD3i/wA94/8APeP/AD3i/wA94/8BPeD/AjfL/wM3x/8GJIH/BS2g/wI3yP8CNsb/AjbG/wI2 + xv8CNsf/AjbH/wI2x/8CNsf/AjXF/wI72P8CPNv/Ajvb/wI72f8COtj/ATnU/wI4z/8CN8n/AjfI/wYt + oP8GJ4r/AzfH/wI50f8APeL/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA84/8APOL/ADzj/wE94v8CP+P/Aj7i/wE94v8APOL/ADzi/wA94/8APeP/AD3j/wA9 + 5P8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AT3i/wI50P8DN8b/BiaG/wUu + pf8CN8j/AjfI/wI4zv8COtP/ATrY/wE72f8CPNr/Ajvb/wI72P8BPeH/AD3k/wA95P8APeT/AD3k/wA9 + 5P8BPeL/ATzd/wI50/8FL6n/ByqQ/wM3x/8BOtb/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA9 + 5P8APeT/AD3k/wA95P8APeT/ADzj/wE+4/8NR+b/Jlrp/0Bw7/9WgPL/Yony/2GJ8v9Uf/L/PW3u/yFX + 6f8KReX/AT3j/wA84/8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeP/AD3k/wA9 + 5P8COtT/AzfG/wcni/8EMK7/AjnS/wE83P8BPeL/AD3k/wA95P8APeT/AD3k/wA95P8BPeH/AD3j/wA+ + 5f8APub/AD7m/wA+5f8APuX/AD7l/wA+5v8BPub/BDXB/wgsmP8DN8f/Ajva/wA+5v8APub/AD7l/wA+ + 5v8APub/AD7l/wA+5v8APub/AD7m/wA+5v8APeX/Aj7l/xlR6P9Sfe//lbD3/8XU+v/i6fz/7vP+//L2 + /v/y9v7/7fP+/9/o/P/B0fr/jan2/0h17v8TS+b/AD3l/wA95f8APuX/AD7l/wA+5f8APuX/AD7l/wA+ + 5f8APuX/AD3l/wA+5f8APub/AjvZ/wI3x/8GKZX/BDbE/wA+5f8APub/AD7m/wA+5f8APub/AD7l/wA+ + 5v8APub/AT3i/wE+4/8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7n/wM50v8ILqP/AjfJ/wE8 + 3v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APeb/CkXm/0t37v+rwff/6e/9//3+ + //////////////////////////////////////////////z9///l7P3/obn4/0Bu7f8GQeb/AD3m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wI83f8CN8j/Biyk/wM61P8APuf/AD7m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wE+4v8APuT/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8COtj/BTCw/wI3yv8BPeP/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APeb/FEzm/3qa + 7v/h6fv//v////////////////////////////////////////////////////////////////////7+ + ///b5fz/bpLx/w5I5v8APeb/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeH/AjfJ/wQu + sP8CO9r/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeP/AD3k/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/ATzf/wM0vP8COM3/AD7k/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APef/FU3k/46p7v/z9v3///////////////////////////////////////////////////////// + //////////////////////////////H1/v+GpPP/D0nm/wA95/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD3k/wI3zP8FMrr/Aj3g/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7l/wA/ + 6P8AP+r/AD/p/wA+6P8APuj/AD7o/wA+5/8APuf/AD7n/wI+4/8ENsf/AjnQ/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7o/wA+5/8APef/C0Xh/4ij6P/3+f3///////////////////////////////////////// + ////////////////////////////////////////////////////////9fj+/36d7/8IQ+X/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5f8COM7/BDbI/wI+4/8APuj/AD7n/wA+6P8APuj/AD7o/wA/ + 6f8BP+r/AT/q/wI/5P8KMKH/CDOw/wU3xP8FPNb/BEDj/wFA6/8AP+v/AD/q/wA/6f8BP+f/AjnQ/wI5 + 0/8BP+n/AD/p/wA+6P8APuj/AD7o/wA/6f8AP+n/AD3j/2GE3//x9Pv///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///s8fz/V3/o/wA+5/8APun/AD7p/wA+6P8AP+n/AD7o/wA/6f8BP+f/AjnR/wI50v8BPuf/AD7p/wA/ + 6v8BQOv/BEDl/wU81f8FNLv/BiyZ/wMie/8CG2X/AQIK/wMFEv8CCBz/BA8z/wYZV/8GJYP/BzS0/wU9 + 2v8CQOv/AD/q/wE61P8COtb/AD/q/wA/6v8AP+n/AD/q/wA/6f8AP+r/AD3p/ypZ2f/V3vP///////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////8vX9f8hVeL/AD7q/wA/6f8BP+r/AD/q/wE/6v8BP+r/AT/p/wI6 + 1f8COtb/AD/r/wNA6P8FOsz/BiyX/wMaXv8JEDT/FQ4f/y0WHf9HHyP/Wycq/wEBAP8JCQj/AgIC/wAA + AP8AAAD/AAAD/wEFFP8FEkD/ByiM/wU91/8CO9j/AjvZ/wE/6/8BP+v/AT/r/wE/6/8BP+v/AT/s/wQ+ + 3v+KoeH///////////////////////Hw8P+ko6T/i4qK/87Nzv////////////////////////////// + /////////////+rq6v+bmpr/j46P/9jY2P/////////////////9/v7/e5nn/wI/5v8AP+v/AT/r/wE/ + 6/8BP+v/AT/r/wE/6/8CO9j/AjzZ/wY6zf8FIHb/Bwws/x8PFv9OIiT/fzY8/6RETv+8T1z/x1dl/8pT + Yv8BAQH/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQIE/wMIF/8FFU//Bze+/wE83f8BP+v/AT/r/wE/ + 6/8BP+v/AT/r/wA+6v8oVtP/2eH0//////////////////////+Wlpb/LCsr/ygnJ/9NTE3/4uLi//// + //////////////////////////////z8/P+CgoL/Kigo/ygmJv9cW1z/7e3t/////////////////9Hc + 9f8fU9//AD7r/wE/6/8BP+v/AT/r/wE/6/8BP+v/Ajzc/wczsf8FETr/Kx0L/3U1M/+tSFT/xlFg/81S + Y//NUmL/zFJi/8xUY//LUmH/AAAA/wAAAP8AAAD/AAAA/wkJCP8PDw7/CwsK/wcNFf8KLl7/BA8l/wYg + b/8CPd//AUDt/wFA7P8BQOz/AUDs/wFA7f8APOP/Z4TX//r7/f/////////////////6+vr/bGxs/zMy + Mv83Njb/OTg4/8XFxf/////////////////////////////////x8fH/XFtb/zQzM/83Njb/QkFB/9XV + 1v/////////////////4+v3/W3/e/wA96P8BQOz/AUDs/wFA7P8BQOz/AUDt/wQ82f8EF1X/QzUD/7uM + GP/PYlr/z1lp/89bav/NVWX/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wEBAf8UFBT/FxcW/wwL + Cv8LERv/Czx6/wclTP8EET//BDzX/wFA7v8BQO3/AUDt/wFA7f8BQO7/CD/Y/56v4v////////////// + ////////+fn5/29tbv85Nzf/PDo6/z89Pf/Dw8P/////////////////////////////////7+/w/19e + X/87OTn/PDo6/0dGRv/U1NT//////////////////////5at5v8EP+H/AUDu/wFA7f8BQO3/AUDt/wFA + 7v8EOtH/CxMz/5R4Cv/eqRj/z2Rb/85Zaf/SYW//z1xq/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAA + AP8EBAT/FxYW/xUUFP8ICAf/ChAZ/wQ2dv8GLWD/Aw0x/wQ6zv8BQO//AUDt/wFA7f8BQO3/AD/t/xdI + 0v/Dzej///////////////////////j4+P9wb2//Pjw8/0E/P/9CQED/w8PD//////////////////// + //////////////Dw8P9iYWH/Pz09/0A/P/9KSEn/1NTU///////////////////////Aze3/EUbZ/wA/ + 7v8BQO3/AUDt/wFA7f8BQO//AzfK/xYYJf+xjwX/2qUQ/85jWv/NV2f/0WBu/9Ffbv/LUmL/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8MDAv/ExIR/wULE/8FNnb/BDJt/wMMKf8FOMb/AUHv/wFA + 7f8BQO3/AUDt/wA+6/8nUs7/1tzs///////////////////////4+fn/cXFx/0JBQf9IR0j/VVRU/8XE + xP/////////////////////////////////w8PD/ZGNj/0JCQv9JSUn/W1tb/9XV1f////////////// + ////////2eHz/x5P1v8AP+3/AUDt/wFA7f8BQO3/AUHv/wM0v/8iHxr/wZwD/9qkEf/NYFj/0F5u/81X + Zv/KUWH/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwMD/wUEA/8BBxD/BDV0/wM1 + dv8DDCX/BzS2/wFB8P8BQO3/AUDt/wFA7f8APur/MFjN/9rf7f///////////////////////v7+/5GR + kf9CQkL/Tk5O/4aFhv/d3d3/////////////////////////////////+fn6/4CAgP9CQkL/VFRU/42N + jf/o6Oj//////////////////////+Pp9v8mU9T/AD7s/wFA7v8BQO7/AUDt/wFB8P8GMKz/MCcS/8mi + A//ZoxD/zF1U/8xVZf/LUmL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/BAoS/wU2dv8DN3r/Aw0k/woxp/8BQvH/AUDu/wFB7v8BQO7/AD7q/y9YzP/Y3ev///7+//// + ///////////////////n5+f/kpKS/3x8fP++vr7//f39//////////////////////////////////// + ///f3t7/i4qL/4B/gP/Kysr////////////////////////////g5/b/JFLR/wA/7P8BQO7/AUDu/wFB + 7v8CQvH/BCmU/zwwDf/QqAX/2aMQ/81eVv/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkPF/8QQHz/Bjt+/wQPJ/8ILJb/AkPz/wFB8P8BQfD/AUHw/wA/ + 7P8lUMv/z9Xm//39/P////////////////////////////39/f/7+/v///////////////////////// + //////////////////////////////39/f/8/Pz/////////////////////////////////09vy/xxK + 0P8AQO7/AUHw/wFB8P8BQfD/AkLy/wMhff9MPAf/1q0I/9yoG//OYFn/y1Bi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CBxD/Bjd1/wY9g/8FEi3/BSSC/wJD + 8/8BQfD/AUHw/wFB8P8AQO7/F0XL/7nD4P/4+fj///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////7XD6P8PQc//AEHw/wFB8P8BQfD/AUHw/wNC7v8CG2f/YUwE/9qxBf/YoxL/zF1U/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8BAQH/AAAA/wAAAP8AAAD/AQcQ/wM0 + dP8CPIb/BBg2/wUea/8DQ/H/AULy/wFC8v8BQvL/AULy/wc80f+Spdj/8vLy//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v+HnNr/AzrX/wFC8v8BQfH/AULx/wFC8v8FQuf/BhZL/3ti + BP/dsgD/2KIO/8xdVP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/CwsL/wUF + Bf8AAAD/AAAA/wIHD/8DNHP/AT2J/wQgRv8GFlD/BkPq/wFD9f8BQ/P/AUP0/wFD9P8AO9//W3jL/+Tm + 6//6+vr///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////s7/j/TG3L/wA85f8BQ/T/AUPz/wFD + 9P8BQ/X/BD7b/wwTL/+Zewj/3bIA/9iiD//MXVT/y1Bi/8tRYf/MVWX/zlhn/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wUEBP8FBQX/AAAA/wAAAP8FChP/DDt4/wlDjf8ILFv/BA81/wU/3P8BQ/X/AUPz/wFD + 9P8BQ/T/AEDs/yFLxf/AyeL/8fHx//7///////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v3/usbl/xhG + yf8AQfD/AUP0/wFD9P8BQ/T/AUT2/wU2wP8YFxj/tpML/960B//apRb/zF5W/8tQYv/LUWH/zFZl/8xU + Y//LUWH/y1Fh/8tRYf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DBQd/w9Aff8JPoL/Bhw7/wIH + Hf8IOMD/AUT2/wFD9P8BQ/T/AUP0/wFD9P8DOtP/dIvQ/+Xn6v/29vf///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7/7e/0/2R/zv8BOtr/AUP0/wFD9P8BQ/T/AUP0/wJE9v8HK5T/DAoM/3hgCv/UrAr/3Kkd/85j + W//LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/CAgH/w4ODf8ICAf/AAAA/wAAAP8AAAD/AAAA/wkR + Gf8SQHr/CSNF/wMMLP8KIGb/CS+i/wJE9v8BQ/T/AUP0/wFD9P8BQ/X/AT/r/x9Jw/+0wOH/6uvr//n5 + +v////////////////////////////////////////////////////////////////////////////// + ////////////////////////9/f3/6q33v8WRMf/AEHv/wFD9P8BQ/T/AUP0/wFD9f8EQ+7/CCN//wUb + Xv8MDRr/gGgL/9mnH//OYVn/y1Bh/8tRYf/LUWH/y1Fh/81XZv/PWmn/zFVl/wAAAP8KCQn/EhIS/wAA + AP8AAAD/AAAA/wAAAP8HDRb/Gzdd/wUNJf8HLJf/BzrK/wkrmv8DQ+//AUP2/wFD9f8BQ/X/AUP2/wFD + 9v8AOdj/R2fF/9DW5//r6+v/+fn6//////////////////////////////////////////////////// + ////////////////////////////////////////9/f2/8vT5/86XcT/ADvh/wFD9v8BQ/X/AUP1/wFD + 9f8BQ/b/BT7e/woqmP8FOMj/Ah1x/yIdEP+5jSj/z2BY/8tQYv/LUWH/y1Fh/8tSYv/RXmz/zFZl/8tR + Yf8AAAD/Dg4O/wgICP8AAAD/AQEB/wcHBv8BAQD/AwgP/wcVKf8FF1P/Az7e/wFD9P8JM7f/BT/i/wFD + 9v8BQ/X/AUP1/wFD9v8BQ/b/AULy/wU3yv9ge8v/1tvn/+rq6v/19vb//v7+//////////////////// + ///////////////////////////////////////////////////9/f3/8/Pz/9LY5/9Tccj/AznT/wFD + 9P8BQ/X/AUP1/wFD9f8BQ/X/AUT3/wc6zf8HOMf/AUP3/wQ2w/8EDzT/eFUV/85fVv/LUmP/zFVl/8tR + Yf/KUWH/zllo/85YZ//LUWH/AgIC/wsLC/8BAQH/AAAA/wEBAf8GBgb/AAAA/wQGCv8GCxr/BSWD/wFD + 9f8AQ/n/BD7i/wQ94P8BQ/b/AUP2/wFD9v8BQ/b/AUP2/wFD9v8BQO7/BzfF/196y//P1eb/5+jo/+7v + 7//5+fr//v7+//////////////////////////////////////////////////39/v/29/f/7e3t/8nR + 5v9Tccj/BTjM/wFC8f8BQ/b/AUP1/wFD9v8BQ/b/AUP1/wFD9f8FOtX/AkHs/wBD+f8CQez/ARhd/1U3 + Ev/KW1f/y1Fi/8xWZf/LUWH/y1Fh/8tTYv/OWWj/y1Ji/wMDA/8DAwP/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBgr/BgoZ/wUojf8BRPn/AEP4/wBD9v8BQvH/AEP3/wBD9/8AQ/f/AEP3/wBD9v8AQ/f/AEP3/wFA + 6/8ENcX/Q2XF/6+94f/i5Oj/6Ono/+3u7v/19fX/+fn6//z8/P/9/f3//v7+//39/f/8/Pz/+Pj5//Pz + 8//t7u3/4OPp/6e23v86XcP/AzfM/wFC8f8AQ/f/AEP3/wBD9v8AQ/f/AEP2/wBD9/8AQ/X/AUHx/wBD + +P8AQ/j/AUP1/wEbaP9TNRH/yltX/8tQYv/LUWH/y1Fh/8tRYf/LUWH/y1Rj/8tTYv8AAAD/AAAA/wAA + AP8AAAD/BAQD/woKCv8LCgr/DBAY/wkUJ/8FHWb/A0T0/wBD+P8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEDw/wE1zf8bRL3/aoXQ/7jD4v/c4Oj/5ufo/+jp6f/q6ur/6+zs/+zt + 7f/r7Ov/6uvq/+fo6f/b3+j/sb/i/2F+zv8WQLz/ATfT/wFC8/8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEP5/wRC6/8EFEj/cVAW/9BlXP/OWGj/zVhn/8tTY//LUWH/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wUGBf8KCgr/CQgI/xIYIf8XMVP/BAwr/wc4w/8BRPv/AEP4/wBD + +P8AQ/j/AEP5/wBD+f8AQ/j/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/b/ATvf/wIzw/8aRL3/Tm7K/4Oa + 2P+ot+D/v8ji/8jQ5P/H0OT/vsfi/6W14P9+ltf/SWrI/xdBvf8CM8X/ATzi/wBD9/8AQ/n/AEP5/wBD + +f8AQ/n/AEP4/wBD+P8AQ/n/AEP4/wBD+P8AQ/j/AEP4/wFF+/8GMrD/GRcX/6+FJ//TaV//zVdn/81Y + Z//LVGP/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8DAwP/CgoK/w4NDP8YHSX/GEJ5/wQY + Nv8FEUL/BznG/wJE9v8ARPv/AUT7/wJF+f8BRPr/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/n/AEP6/wBE + +v8BQvL/ATvf/wA0y/8ENMD/Dju9/xpFwf8gSsL/IErC/xpEv/8OOrz/AzO//wA0yv8BO97/AULz/wBD + +v8AQ/n/AEP5/wBD+f8AQ/n/AEP5/wBD+f8ARPn/AUT5/wFE+f8ARPv/AUT7/wNE9P8GNLn/CBEz/25Z + Cf/bqib/02pi/85Zaf/NV2b/y1Nj/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/woK + Cv8LCwr/ChAY/xRDgP8DN3n/BBc1/wMMLP8GIHD/CC6c/wgumv8GI3v/CjvF/wJF/P8ARPv/AET7/wBE + +/8ARPv/AET7/wBE+/8ARPv/AET7/wBE+/8AQ/j/AEHy/wE+5/8BPOD/ADne/wA63v8BPOH/AT7n/wFB + 8P8BQ/j/AET7/wBE+/8ARPv/AET7/wBE+/8ARPv/AET7/wVH+v8VU/z/ElH7/ww0rf8DIHz/Bi2f/wYr + mf8DG2j/ERMf/2lTB//Opgb/36wi/85hWv/OWWr/zFZm/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8BAQH/AAAA/wIHEP8ENXT/ATyI/wM6f/8FKVj/BRYy/wQPJv8EECf/BA0d/wgV + P/8QQ9L/Akb+/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/f8ARP3/AET9/wBE + /f8ARP3/AET9/wBE/f8ARP3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8SUf3/HVr+/w44 + uP8MECb/OC0I/zYsDP85Lgz/WUYG/51+B//UqwT/27EA/9ijEf/MXVX/ylFi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CCBD/BTV0/wE7h/8BO4b/ATyI/wM7 + g/8EOXz/Azl8/w81gP8eEE7/DBdH/xZHzv8GSf3/AEP8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARP3/BEf7/wk0tP8CDy//JVkz/7emFv/OpQT/zqYF/9etBP/csQH/2q8A/9qwAP/YoxH/zF1V/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BAkR/xdE + f/8GQIr/ATuG/wE7hv8BO4b/ATuH/wA7hv8SN5b/YiHV/zANZf8MFDv/GkS1/xBP+v8CRv7/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARf7/A0Px/wYqmP8EESf/CGFI/yW4d/+9shP/3bAA/9uwAP/arwD/2q8A/9qv + AP/bsgf/3akg/8xdVf/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wEHD/8UQn3/FU2T/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETaV/20g7/93He3/PhGA/w0M + Mf8WMn//HFLg/w5P/v8DRv3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AkX8/whL/v8JSvr/BjrN/wUaYf8FHCD/C3hZ/wO9jv8fwHz/vbET/9yv + AP/arwD/2q8A/9qvAP/arwH/4boY/9qnHP/MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wMDA/8AAAD/AAAA/wAAAP8BBw//BDR0/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xQ6 + l/9tIu7/fxv//3wd+f9ZGLP/HwpI/w0WP/8aPJb/HlPh/xRT/P8IS///Akb9/wBD/P8AQ/z/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AEP8/wFF/P8GSf7/EVL//x9b+v8lVdf/Eyx//wURKv8JQTH/C5xz/wPC + j/8Awo//Ib98/72yFf/crwD/2q8A/9qvAP/arwD/2q8B/9uyBP/YohD/zF1U/8tQYv/LUWH/y1Fh/8tT + Yv/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8KCgr/BQUF/wAAAP8AAAD/AQcQ/wM0dP8AO4f/ATuG/wE7 + hv8BO4b/ATuG/whDiv8dQp3/bSHu/34b//99G///fhz//3Md5v9IE5L/Ggk//w0UPP8YMHn/IUm8/x9V + 5v8ZVfn/EFH//wpN//8JS///B0r//whL//8JTP//DU///xVV//8eWfb/JFfg/yNGsP8WKWr/Chgu/wg3 + K/8LgV//B7mJ/wHDkP8AwY7/AMGP/yHAff/BtiD/3bEF/9qvAP/arwD/2q8A/9qvAP/asAD/2KIP/8xd + VP/LUGL/ylFh/81WZf/NV2b/ylFh/8pRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wEBAf8AAAD/AAAA/wII + EP8IN3X/CUOL/w1FjP8ORo3/CUKK/wI8hv8DPof/EjeW/2wg7v9+G///fRv//30b//9+G///fh3+/3Ic + 5P9IGqD/DyJY/wYUM/8MFz3/FCZg/xk1hv8fQKL/I0e0/yBKvf8hSr7/I0a0/yA+nv8ZMX7/EyJX/wsZ + OP8IJTj/C1Re/wuNbv8Gt4f/AcOQ/wDCjv8AwY7/AMGO/wDBj/8fv3v/vbIV/9ywAf/arwH/3LIK/9yz + Df/dswz/27IH/9ijEv/MXVX/y1Bi/8pRYf/LUmL/y1Ji/8tRYf/LUWH/y1Fh/wEBAf8BAQH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8DCBH/Bzd1/wZAiv8IQYr/CkKL/wxFjP8FPoj/ADuF/xE2lf9sIO7/fhv//30b + //99G///fRv//30b//9/Gv//bSj+/xds9v8Hatf/C1On/wg5eP8JKFf/CR5F/wYZO/8FFTL/AwgY/wgh + M/8MNkn/Ck1e/wpuhf8Ol7b/Cbvj/wjO7f8CxZ7/AMGN/wDBjv8BwY7/AMGO/wDBjv8AwY//IL97/72x + E//crwD/27EG/9yzC//csgr/3LII/9uyBf/YoxL/zF1V/8pQYv/LUWH/y1Fh/8tRYf/LUWH/y1Ji/8tS + Yv8FBQT/Dg4O/woKCv8AAAD/AAAA/wAAAP8AAAD/AgkS/ws7ef8MRY3/CECJ/xVMkf8WTZH/CEGK/wA7 + hf8RNpX/bCDu/34b//99G///fRv+/4Yo/f+CI/3/hCT9/20p/P8Sbf3/AHz//wF8//8De/7/B3n3/wh1 + 7f8Gceb/C2nP/wgdMf8RfJb/C8v2/wjQ/P8D1P//AtT//wHT//8Cz/D/BcSe/wnEkv8LxJP/DMWU/wDB + jv8AwY7/AMGP/x+/e/+9sRP/3K8A/9yzC//ftxX/37cT/9uwBv/dtAv/2aUW/81eVv/LUGL/y1Fh/8tR + Yf/LUWH/zlln/85aaf/LVGP/AAAA/wgICP8RERH/AAAA/wAAAP8AAAD/AAAA/wMJEv8IOXf/CUKL/xRM + kf8JQor/EkqQ/wdAiv8AO4X/FDqX/3Al7/9+G///fRv//38e/v+LL/v/izD7/4kq/P9xMPz/E279/wB7 + /v8Bev7/AXr+/wF6/v8Bev//AXr//wiE+/8LQV7/ClNm/wbR/f8A0f//AdH//wHR//8B0f//A9Dw/wzG + of8TxpX/Gsma/xXHmP8Cwo//AcOQ/wPAj/8ov37/wLQW/92wAP/cswr/3rYQ/9yzC//fthP/27IG/9ml + Fv/NXVb/y1Bi/8tRYf/LUWH/y1Ji/9BdbP/LVWT/y1Fh/wAAAP8NDQ3/BgYG/wAAAP8AAAD/CgoK/wUE + BP8BBxD/AzR0/wE8h/8FPoj/ATuG/wE7hv8BO4b/ADuF/xQ6lv9yKO7/fxz//30b//9/Hv7/hSf9/4Yp + /f+FJfz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Eh///D3KY/wgoM/8Kv+j/AdL//wHR + //8B0f//AdH//wPP8P8KxJ//DsWT/xLHlv8Ox5X/CbiJ/wt9XP8HTTj/Fkgv/3FjD//Bmwb/27AB/9qv + AP/arwH/27EE/9qwAP/Yog//zF1U/8xVZv/NVmb/y1Fh/8tRYf/NV2b/zllo/8tRYf8CAgL/BQUF/wAA + AP8AAAD/AAAA/wUFBP8BAAD/AQcQ/wM0dP8BO4f/ATuG/wE7hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b + //99G///fRv//30b//99G///fhv//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4b//w+h + 0P8GHif/D5u9/wLU//8B0f//AdH//wHR//8Dz/D/AsOc/wHBjf8Bwo//B7WG/wlMOf8DCx//AxNP/wMU + VP8EDCv/OS0J/7eTCP/csAD/2q8A/9qvAP/asAD/2KIP/8xdVP/LUmP/zFVk/8tRYf/LUWH/y1Fh/8xW + Zf/LUmL/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AAAA/wEHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wE7 + hv8AO4X/ETaV/2wg7v9+G///fRv//30b//99G///fRv//38c//9sJ/3/Em39/wF7/v8De/7/AXr+/wJ6 + /v8Bev7/AXn+/wKE//8LvfP/CjlH/wxrg/8F0///AdH//wPR//8B0f//As/w/wLDnf8CwY7/AsOQ/wpy + VP8DDCX/BC6n/wM/5f8DPuL/BTCt/wEOOf9UQwf/06oE/9uvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tS + Yv/LUmL/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8LCwv/EhIS/xAPDv8KEBn/Bjd3/wI8 + h/8BO4b/ATuG/wdAif8EPoj/ADuF/xE2lf9sIO7/fhv//4Ij/f+BIf7/fRv//34c//+DIv3/bCj8/xJt + /f8IgP7/FYb9/w+C/f8LgP3/AXr+/wF5/v8ChP7/Bsj//wxthP8KPUz/Fc31/w/U/v8U1f7/BtL//wLP + 8P8FxJ7/CMSR/we9jP8KPi7/BB1w/wJE+P8ARP7/AET9/wJB7/8DI4b/HxoO/7+aCP/csAD/2q8A/9qw + AP/ZpBP/z2Na/9Bba//QXWv/zVdm/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/CAgI/w4O + Dv8JCAf/DxUe/w4+ev8EPoj/ATuG/wE7hv8JQor/CUOL/wE8hf8RN5X/cyrs/4Qk/f+IK/z/hin8/4Ml + /f9+Hf//fhr//2sn/f8Tbf3/DYP9/xWG/f8Pgv3/DoH9/wZ8/f8Bef7/A4T+/wPI//8NpMX/CCg0/xa2 + 2v8R1///FNb//w3W//8E0vH/A8Sd/wW+jP8PsIT/Cy4n/wUnj/8BRf//AET8/wBE/P8BRPr/Ayqe/xkW + Ev+6lgj/3LEA/9qvAP/bsQT/2qca/9FmXf/MVmb/zltp/8xWZf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wUFBP8PDw//EhIR/xogKP8SQX7/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/EjiU/3Yv + 6/+HKP3/giL9/4Eh/f+BIv3/fhz//34a//9rJ/3/E239/wqA/f8Qg/3/C4D9/wZ8/f8Cev7/AXn+/wOE + /v8Dxv//Ccfw/wo5R/8Xh6L/FcPp/xiv0v8Zm7r/EYif/wt6Yv8Pf17/Eo1q/wlBMP8FGVz/BETz/wBF + //8JS///B0bw/wIcb/8xJwj/yaIF/9uwAP/arwD/2rAB/96rIP/UbWT/z1tr/89aaf/LVGP/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/EREQ/wsKCf8HDRb/CTp4/wE7h/8BO4b/ATuG/wE7 + hv8BO4b/ADuF/xI5lf91Luv/hib+/4Um/f+CIv3/fx/9/30c//9+Gv//ayf9/xJt/f8Ae/7/Anr+/wN7 + /v8Ce/7/AXr+/wF5/v8DhP7/A8b//wTT//8LbIX/CyUx/w1DVf8NUmf/DHCM/xKRqP8JpYT/BraG/wXB + j/8NmHH/Bhwh/wche/8FOtD/DkLS/wgng/8LDRj/hWsI/9qwAv/arwD/2q8A/9qwAP/aphf/zWBY/85Z + av/PWmn/ylFh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AQcP/wM0 + c/8BO4f/ATuG/wE7hv8BO4b/BT6I/wM+hv8RN5X/cCXt/4Eg//9/Hv7/fhz+/30b//99G///fhr//20o + /f8WcP3/AHv+/wF6/v8Bev7/AXr+/wV8/f8Iff3/DIn9/xHJ/v8O1f//Dr/n/w6dv/8Jtd3/Ccr0/wXT + //8H0/H/AcSe/wDBjf8AwY7/A8GP/wuNaf8IMir/BBUl/wUSJP8lIAz/gWgL/9OrB//brwD/2q8A/9qv + AP/asAD/2KIP/8xdVP/LUWL/y1Ji/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wIHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wdAif8EPof/ETaV/2wg7v9+G///fRv//30b + //99G///gB/9/4Qj/f9tKf3/G3L9/wF7/v8Bev7/AXr+/wF6/v8Kf/3/BXz+/waG/v8Ix/7/BtP//wTS + /v8C1P//AdL//wDR//8D0f//C9Hv/wTDnf8KxJL/BMKQ/wDBjv8Bw4//B7WG/wmZcv8ikl7/q50T/9yx + B//csQX/2q8A/9qvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DCRH/DT16/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xE2 + lf9sIO7/fhv//30c//+AIP7/hSf9/4Yp/P+JK/v/cC37/xJt/f8Ae/7/AXr+/wF6/v8De/7/D4L9/wyA + /f8Fhf7/Bcb//wnT/v8E0f7/AdH//wHR//8B0f//AdH//wPP8P8LxqH/E8aW/w/Glf8MxZP/BMKQ/wDC + j/8Aw5H/H8J9/76yE//crwD/2q8A/9qvAP/arwD/2q8A/9uxBP/aphj/zF1V/8tQYv/LUWH/y1Fh/8tR + Yf/KUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgcQ/wo6d/8KQ4z/ATuG/wE7 + hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b//9+Hf7/gSL9/4Mk/f+CI/z/iCn7/3Qz+v8Sbf3/AHv+/wF6 + /v8Hff3/CH7+/xuK/v8Vhf3/Dor9/w3H/v8N1P7/CtL+/wTR/v8E0v7/AdH//wHR//8Dz/D/Esik/w/F + lP8Kw5L/C8ST/wnEkv8Cwo//AMGP/x+/e/+9sRP/3K8A/9qvAP/arwD/2q8A/9qvAf/dtQr/2aQU/8xd + VP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AAAA/wIH + D/8DNHP/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETeV/2wg7v9+G///fRv//34e/v+DJfz/iCz7/4Ul + /P9xL/z/Em39/wB7/v8De/7/CH79/wp//v8RhP3/A3v+/xKM/f8Pyf3/AtL//wXR/v8F0v7/DdP+/wPR + //8B0f//A9Dw/w3Hov8OxZP/E8eX/wvDkv8DwY//AMGO/wDBj/8fv3v/vbET/9yvAP/arwD/2q8A/9qv + AP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Ji/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/woK + Cv8EBAT/AAAA/wAAAP8CBw//AzRz/wE7h/8BO4b/ATuG/wE7hv8BO4b/BD6H/xs/m/9tIe7/fhv//30b + //9+HP//fh3+/38e/v9+G///ayb9/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Ghf3/Bcb+/wHS + //8B0f//AdH//wPR//8C0f//AdH//wPP8P8Bw5z/AcGN/wTCkP8Dwo//AsGO/wDBjv8AwY//IMB9/8C1 + Hf/csAH/2q8A/9qvAP/arwD/2q8A/9qwAP/Yog//zF1U/8tQYv/KUWH/zVZl/85XZv/LUWH/y1Fh/8tR + Yf8AAAD/AAAA/wAAAP8CAgL/AQEB/wAAAP8AAAD/AgcQ/wc3df8KQ4z/D0eO/xBIj/8NRYz/BD2I/wI9 + hv8UOZf/bCDu/34b//99G///fRv//30b//99G///fhr//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6 + /v8Bef7/A4T+/wPG//8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/AcOc/wDBjf8AwY7/AMGO/wDB + jv8AwY7/AMGP/x+/e/+9sxj/3K8B/9qvAf/cswr/3rQP/961Dv/dtAn/2aQU/8xdVf/LUGL/y1Fh/8tT + Yv/LUmL/y1Fh/8tRYf/LUWH/AgIC/wMDA/8BAQH/AAAA/wAAAP8AAAD/AAAA/wIHEf8FNnX/Bj+K/wU+ + iP8JQor/C0OK/wpCiv8AO4X/ETaV/2wg7v9+G///fRv//30b//9+HP7/fhz+/34a//9rJ/3/Em39/wB7 + /v8Bev7/AXr+/wF6/v8Bev7/AXn+/wOE/v8Dxv//AdL//wHR//8B0f//AdH//wHR//8B0f//A8/w/wHD + nP8AwY3/AcGO/wLBj/8AwY7/AMGO/wDBj/8fv3v/vbET/9yvAP/bsAT/3LMN/9uyCv/asAX/27EF/9ij + E//MXlX/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LU2P/y1Nj/wICAv8LCwv/ERER/wICAv8AAAD/AAAA/wAA + AP8DCBH/DDt4/w5Hjv8JQor/FEyR/xhOk/8PRo3/ADuF/xE2lf9sIO7/fhv//30b//99G///hSf8/4cq + /P+FJvz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8DhP7/A8b//wHS//8B0f//AdH//wHR + //8B0f//AdH//wLP8P8Ew53/DsaU/w3FlP8UyJj/AsGO/wDBjv8AwY//H797/72xE//crwD/27EG/9+3 + GP/guBb/3LMK/920C//aphn/zV9W/8tQYv/LUWH/y1Fh/8tRYf/OWWj/z1xq/8tVZP8AAAD/AwMD/xMT + E/8CAgL/AAAA/wAAAP8AAAD/AwgQ/wk5dv8EPon/FEyS/wpDiv8LRIz/CkOL/wA7hf8TOpb/cSjt/34b + //99G///fh3+/4gs+/+KL/v/hyj8/3Qz+/8Ubv3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4T+/wPG + //8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/C8Wg/xHHlf8WyJj/FseY/wXDkP8AwY7/AMGP/yPB + fv+/sxn/3K8A/9uwBP/dtRD/27EH/9+3Ff/bsgf/2aQT/81fVv/LUGL/y1Fh/8tRYf/LUWH/z1tq/81X + Zv/LUWH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/Views/Overlay.Designer.cs b/Views/Overlay.Designer.cs new file mode 100644 index 000000000..adfb4661d --- /dev/null +++ b/Views/Overlay.Designer.cs @@ -0,0 +1,522 @@ +using System; + +namespace FallGuysStats { + sealed partial class Overlay { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tmrQueued = new System.Windows.Forms.Timer(this.components); + this.picPositionNE = new System.Windows.Forms.PictureBox(); + this.picPositionNW = new System.Windows.Forms.PictureBox(); + this.picPositionSE = new System.Windows.Forms.PictureBox(); + this.picPositionSW = new System.Windows.Forms.PictureBox(); + this.picPositionLock = new System.Windows.Forms.PictureBox(); + this.lblFilter = new FallGuysStats.TransparentLabel(); + this.lblProfile = new FallGuysStats.TransparentLabel(); + this.lblStreak = new FallGuysStats.TransparentLabel(); + this.lblFinals = new FallGuysStats.TransparentLabel(); + this.lblQualifyChance = new FallGuysStats.TransparentLabel(); + this.lblFastest = new FallGuysStats.TransparentLabel(); + this.lblDuration = new FallGuysStats.TransparentLabel(); + this.lblPingIcon = new FallGuysStats.TransparentLabel(); + this.lblCountryIcon = new FallGuysStats.TransparentLabel(); + this.lblPlayers = new FallGuysStats.TransparentLabel(); + this.lblPlayersPc = new FallGuysStats.TransparentLabel(); + this.lblPlayersMobile = new FallGuysStats.TransparentLabel(); + this.lblPlayersPs = new FallGuysStats.TransparentLabel(); + this.lblPlayersXbox = new FallGuysStats.TransparentLabel(); + this.lblPlayersSwitch = new FallGuysStats.TransparentLabel(); + this.lblRound = new FallGuysStats.TransparentLabel(); + this.lblWins = new FallGuysStats.TransparentLabel(); + this.lblFinish = new FallGuysStats.TransparentLabel(); + ((System.ComponentModel.ISupportInitialize)(this.picPositionNE)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPositionNW)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPositionSE)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPositionSW)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPositionLock)).BeginInit(); + this.SuspendLayout(); + // + // tmrQueued + // + this.tmrQueued.Interval = 70; + this.tmrQueued.Tick += new System.EventHandler(this.LoadingTimer_Tick); + // + // picPositionNE + // + this.picPositionNE.BackColor = System.Drawing.Color.Transparent; + this.picPositionNE.Cursor = System.Windows.Forms.Cursors.Hand; + this.picPositionNE.Image = Properties.Resources.position_ne_off_icon; + this.picPositionNE.Location = new System.Drawing.Point(201, 46); + this.picPositionNE.Name = "picPositionNE"; + this.picPositionNE.Size = new System.Drawing.Size(47, 30); + this.picPositionNE.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPositionNE.TabStop = false; + this.picPositionNE.Visible = false; + this.picPositionNE.MouseClick += new System.Windows.Forms.MouseEventHandler(this.Position_MouseClick); + this.picPositionNE.MouseEnter += new System.EventHandler(this.Position_MouseEnter); + this.picPositionNE.MouseLeave += new System.EventHandler(this.Position_MouseLeave); + // + // picPositionNW + // + this.picPositionNW.BackColor = System.Drawing.Color.Transparent; + this.picPositionNW.Cursor = System.Windows.Forms.Cursors.Hand; + this.picPositionNW.Image = Properties.Resources.position_nw_off_icon; + this.picPositionNW.Location = new System.Drawing.Point(251, 46); + this.picPositionNW.Name = "picPositionNW"; + this.picPositionNW.Size = new System.Drawing.Size(47, 30); + this.picPositionNW.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPositionNW.TabStop = false; + this.picPositionNW.Visible = false; + this.picPositionNW.MouseClick += new System.Windows.Forms.MouseEventHandler(this.Position_MouseClick); + this.picPositionNW.MouseEnter += new System.EventHandler(this.Position_MouseEnter); + this.picPositionNW.MouseLeave += new System.EventHandler(this.Position_MouseLeave); + // + // picPositionSE + // + this.picPositionSE.BackColor = System.Drawing.Color.Transparent; + this.picPositionSE.Cursor = System.Windows.Forms.Cursors.Hand; + this.picPositionSE.Image = Properties.Resources.position_se_off_icon; + this.picPositionSE.Location = new System.Drawing.Point(201, 80); + this.picPositionSE.Name = "picPositionSE"; + this.picPositionSE.Size = new System.Drawing.Size(47, 30); + this.picPositionSE.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPositionSE.TabStop = false; + this.picPositionSE.Visible = false; + this.picPositionSE.MouseClick += new System.Windows.Forms.MouseEventHandler(this.Position_MouseClick); + this.picPositionSE.MouseEnter += new System.EventHandler(this.Position_MouseEnter); + this.picPositionSE.MouseLeave += new System.EventHandler(this.Position_MouseLeave); + // + // picPositionSW + // + this.picPositionSW.BackColor = System.Drawing.Color.Transparent; + this.picPositionSW.Cursor = System.Windows.Forms.Cursors.Hand; + this.picPositionSW.Image = Properties.Resources.position_sw_off_icon; + this.picPositionSW.Location = new System.Drawing.Point(251, 80); + this.picPositionSW.Name = "picPositionSW"; + this.picPositionSW.Size = new System.Drawing.Size(47, 30); + this.picPositionSW.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPositionSW.TabStop = false; + this.picPositionSW.Visible = false; + this.picPositionSW.MouseClick += new System.Windows.Forms.MouseEventHandler(this.Position_MouseClick); + this.picPositionSW.MouseEnter += new System.EventHandler(this.Position_MouseEnter); + this.picPositionSW.MouseLeave += new System.EventHandler(this.Position_MouseLeave); + // + // picSwitchPositionLock + // + this.picPositionLock.BackColor = System.Drawing.Color.Transparent; + this.picPositionLock.Cursor = System.Windows.Forms.Cursors.Hand; + this.picPositionLock.Image = Properties.Resources.switch_unlock_icon; + this.picPositionLock.Location = new System.Drawing.Point(12, 7); + this.picPositionLock.Name = "picPositionLock"; + this.picPositionLock.Size = new System.Drawing.Size(47, 30); + this.picPositionLock.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPositionLock.TabStop = false; + this.picPositionLock.Visible = false; + this.picPositionLock.MouseClick += new System.Windows.Forms.MouseEventHandler(this.Position_MouseClick); + this.picPositionLock.MouseEnter += new System.EventHandler(this.Position_MouseEnter); + this.picPositionLock.MouseLeave += new System.EventHandler(this.Position_MouseLeave); + // + // lblFilter + // + this.lblFilter.ImageHeight = 0; + this.lblFilter.ImageWidth = 0; + this.lblFilter.ImageX = 0; + this.lblFilter.ImageY = 0; + this.lblFilter.LevelColor = System.Drawing.Color.Empty; + this.lblFilter.Location = new System.Drawing.Point(22, 77); + this.lblFilter.Name = "lblFilter"; + this.lblFilter.Size = new System.Drawing.Size(110, 22); + this.lblFilter.TabIndex = 22; + this.lblFilter.Text = "Season"; + this.lblFilter.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lblFilter.TextRight = ""; + this.lblFilter.Visible = false; + // + // lblProfile + // + this.lblProfile.ImageHeight = 0; + this.lblProfile.ImageWidth = 0; + this.lblProfile.ImageX = 0; + this.lblProfile.ImageY = 0; + this.lblProfile.LevelColor = System.Drawing.Color.Empty; + this.lblProfile.Location = new System.Drawing.Point(22, 27); + this.lblProfile.Name = "lblProfile"; + this.lblProfile.Size = new System.Drawing.Size(600, 22); + this.lblProfile.TabIndex = 23; + this.lblProfile.Text = "Solo"; + this.lblProfile.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lblProfile.TextRight = ""; + this.lblProfile.Visible = false; + // + // lblStreak + // + this.lblStreak.ImageHeight = 0; + this.lblStreak.ImageWidth = 0; + this.lblStreak.ImageX = 0; + this.lblStreak.ImageY = 0; + this.lblStreak.LevelColor = System.Drawing.Color.Empty; + this.lblStreak.Location = new System.Drawing.Point(22, 55); + this.lblStreak.Name = "lblStreak"; + this.lblStreak.Size = new System.Drawing.Size(242, 22); + this.lblStreak.TabIndex = 21; + this.lblStreak.Text = "WIN STREAK :"; + this.lblStreak.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblStreak.TextRight = "0 (Best 0)"; + this.lblStreak.Visible = false; + // + // lblFinals + // + this.lblFinals.ImageHeight = 0; + this.lblFinals.ImageWidth = 0; + this.lblFinals.ImageX = 0; + this.lblFinals.ImageY = 0; + this.lblFinals.LevelColor = System.Drawing.Color.Empty; + this.lblFinals.Location = new System.Drawing.Point(22, 32); + this.lblFinals.Name = "lblFinals"; + this.lblFinals.Size = new System.Drawing.Size(242, 22); + this.lblFinals.TabIndex = 5; + this.lblFinals.Text = "FINALS :"; + this.lblFinals.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblFinals.TextRight = "0 - 0.0%"; + this.lblFinals.Visible = false; + // + // lblQualifyChance + // + this.lblQualifyChance.ImageHeight = 0; + this.lblQualifyChance.ImageWidth = 0; + this.lblQualifyChance.ImageX = 0; + this.lblQualifyChance.ImageY = 0; + this.lblQualifyChance.LevelColor = System.Drawing.Color.Empty; + this.lblQualifyChance.Location = new System.Drawing.Point(270, 32); + this.lblQualifyChance.Name = "lblQualifyChance"; + this.lblQualifyChance.Size = new System.Drawing.Size(281, 22); + this.lblQualifyChance.TabIndex = 14; + this.lblQualifyChance.Text = "QUALIFY :"; + this.lblQualifyChance.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblQualifyChance.TextRight = "0 / 0 - 0.0%"; + this.lblQualifyChance.Visible = false; + // + // lblFastest + // + this.lblFastest.ImageHeight = 0; + this.lblFastest.ImageWidth = 0; + this.lblFastest.ImageX = 0; + this.lblFastest.ImageY = 0; + this.lblFastest.LevelColor = System.Drawing.Color.Empty; + this.lblFastest.Location = new System.Drawing.Point(270, 55); + this.lblFastest.Name = "lblFastest"; + this.lblFastest.Size = new System.Drawing.Size(281, 22); + this.lblFastest.TabIndex = 16; + this.lblFastest.Text = "FASTEST :"; + this.lblFastest.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblFastest.TextRight = "-"; + this.lblFastest.Visible = false; + // + // lblDuration + // + this.lblDuration.ImageHeight = 0; + this.lblDuration.ImageWidth = 0; + this.lblDuration.ImageX = 0; + this.lblDuration.ImageY = 0; + this.lblDuration.LevelColor = System.Drawing.Color.Empty; + this.lblDuration.Location = new System.Drawing.Point(557, 32); + this.lblDuration.Name = "lblDuration"; + this.lblDuration.Size = new System.Drawing.Size(225, 22); + this.lblDuration.TabIndex = 18; + this.lblDuration.Text = "TIME :"; + this.lblDuration.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblDuration.TextRight = "-"; + this.lblDuration.Visible = false; + // + // lblPingIcon + // + this.lblPingIcon.ImageHeight = 12; + this.lblPingIcon.ImageWidth = 15; + this.lblPingIcon.ImageX = 0; + this.lblPingIcon.ImageY = 1; + this.lblPingIcon.LevelColor = System.Drawing.Color.Empty; + this.lblPingIcon.Location = new System.Drawing.Point(685, 12); + this.lblPingIcon.Name = "lblPingIcon"; + this.lblPingIcon.Size = new System.Drawing.Size(225, 22); + this.lblPingIcon.TabIndex = 12; + this.lblPingIcon.Text = ""; + this.lblPingIcon.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblPingIcon.TextRight = ""; + this.lblPingIcon.Visible = false; + // + // lblCountryIcon + // + this.lblCountryIcon.ImageHeight = 0; + this.lblCountryIcon.ImageWidth = 0; + this.lblCountryIcon.ImageX = 0; + this.lblCountryIcon.ImageY = 0; + this.lblCountryIcon.LevelColor = System.Drawing.Color.Empty; + this.lblCountryIcon.Location = new System.Drawing.Point(640, 12); + this.lblCountryIcon.Name = "lblCountryIcon"; + this.lblCountryIcon.Size = new System.Drawing.Size(225, 23); + this.lblCountryIcon.TabIndex = 12; + this.lblCountryIcon.Text = ""; + this.lblCountryIcon.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblCountryIcon.TextRight = ""; + this.lblCountryIcon.Visible = false; + // + // lblPlayers + // + this.lblPlayers.ImageHeight = 22; + this.lblPlayers.ImageWidth = 28; + this.lblPlayers.ImageX = 4; + this.lblPlayers.ImageY = -1; + this.lblPlayers.LevelColor = System.Drawing.Color.Empty; + this.lblPlayers.Location = new System.Drawing.Point(557, 10); + this.lblPlayers.Name = "lblPlayers"; + this.lblPlayers.Size = new System.Drawing.Size(225, 22); + this.lblPlayers.TabIndex = 12; + this.lblPlayers.Text = "PLAYERS :"; + this.lblPlayers.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblPlayers.TextRight = "0"; + this.lblPlayers.Visible = false; + // + // lblPlayersPc + // + this.lblPlayersPc.DrawVisible = false; + this.lblPlayersPc.PlatformIcon = Properties.Resources.pc_icon; + this.lblPlayersPc.ImageHeight = 13; + this.lblPlayersPc.ImageWidth = 13; + this.lblPlayersPc.ImageX = 0; + this.lblPlayersPc.ImageY = 0; + this.lblPlayersPc.LevelColor = System.Drawing.Color.Empty; + this.lblPlayersPc.Location = new System.Drawing.Point(719, 12); + this.lblPlayersPc.Name = "lblPlayersPc"; + this.lblPlayersPc.Size = new System.Drawing.Size(26, 16); + this.lblPlayersPc.TabIndex = 23; + this.lblPlayersPc.TextRight = "-"; + this.lblPlayersPc.Visible = false; + // + // lblPlayersMobile + // + this.lblPlayersMobile.DrawVisible = false; + this.lblPlayersMobile.PlatformIcon = Properties.Resources.mobile_icon; + this.lblPlayersMobile.ImageHeight = 13; + this.lblPlayersMobile.ImageWidth = 13; + this.lblPlayersMobile.ImageX = 0; + this.lblPlayersMobile.ImageY = 0; + this.lblPlayersMobile.LevelColor = System.Drawing.Color.Empty; + this.lblPlayersMobile.Location = new System.Drawing.Point(757, 12); + this.lblPlayersMobile.Name = "lblPlayersMobile"; + this.lblPlayersMobile.Size = new System.Drawing.Size(26, 16); + this.lblPlayersMobile.TabIndex = 24; + this.lblPlayersMobile.TextRight = "-"; + this.lblPlayersMobile.Visible = false; + // + // lblPlayersPs + // + this.lblPlayersPs.DrawVisible = false; + this.lblPlayersPs.PlatformIcon = Properties.Resources.ps_icon; + this.lblPlayersPs.ImageHeight = 13; + this.lblPlayersPs.ImageWidth = 13; + this.lblPlayersPs.ImageX = 0; + this.lblPlayersPs.ImageY = 0; + this.lblPlayersPs.LevelColor = System.Drawing.Color.Empty; + this.lblPlayersPs.Location = new System.Drawing.Point(605, 12); + this.lblPlayersPs.Name = "lblPlayersPs"; + this.lblPlayersPs.Size = new System.Drawing.Size(26, 16); + this.lblPlayersPs.TabIndex = 25; + this.lblPlayersPs.TextRight = "-"; + this.lblPlayersPs.Visible = false; + // + // lblPlayersXbox + // + this.lblPlayersXbox.DrawVisible = false; + this.lblPlayersXbox.PlatformIcon = Properties.Resources.xbox_icon; + this.lblPlayersXbox.ImageHeight = 13; + this.lblPlayersXbox.ImageWidth = 13; + this.lblPlayersXbox.ImageX = 0; + this.lblPlayersXbox.ImageY = 0; + this.lblPlayersXbox.LevelColor = System.Drawing.Color.Empty; + this.lblPlayersXbox.Location = new System.Drawing.Point(643, 12); + this.lblPlayersXbox.Name = "lblPlayersXbox"; + this.lblPlayersXbox.Size = new System.Drawing.Size(26, 16); + this.lblPlayersXbox.TabIndex = 26; + this.lblPlayersXbox.TextRight = "-"; + this.lblPlayersXbox.Visible = false; + // + // lblPlayersSwitch + // + this.lblPlayersSwitch.DrawVisible = false; + this.lblPlayersSwitch.PlatformIcon = Properties.Resources.switch_icon; + this.lblPlayersSwitch.ImageHeight = 13; + this.lblPlayersSwitch.ImageWidth = 13; + this.lblPlayersSwitch.ImageX = 0; + this.lblPlayersSwitch.ImageY = 0; + this.lblPlayersSwitch.LevelColor = System.Drawing.Color.Empty; + this.lblPlayersSwitch.Location = new System.Drawing.Point(681, 12); + this.lblPlayersSwitch.Name = "lblPlayersSwitch"; + this.lblPlayersSwitch.Size = new System.Drawing.Size(26, 16); + this.lblPlayersSwitch.TabIndex = 27; + this.lblPlayersSwitch.TextRight = "-"; + this.lblPlayersSwitch.Visible = false; + // + // lblRound + // + this.lblRound.AutoEllipsis = true; + this.lblRound.ImageHeight = 0; + this.lblRound.ImageWidth = 0; + this.lblRound.ImageX = 0; + this.lblRound.ImageY = 0; + this.lblRound.LevelColor = System.Drawing.Color.Empty; + this.lblRound.Location = new System.Drawing.Point(270, 9); + this.lblRound.Name = "lblRound"; + this.lblRound.Size = new System.Drawing.Size(281, 22); + this.lblRound.TabIndex = 10; + this.lblRound.Text = "ROUND 1 :"; + this.lblRound.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblRound.TextRight = "N/A"; + this.lblRound.Visible = false; + // + // lblWins + // + this.lblWins.ImageHeight = 0; + this.lblWins.ImageWidth = 0; + this.lblWins.ImageX = 0; + this.lblWins.ImageY = 0; + this.lblWins.LevelColor = System.Drawing.Color.Empty; + this.lblWins.Location = new System.Drawing.Point(22, 9); + this.lblWins.Name = "lblWins"; + this.lblWins.Size = new System.Drawing.Size(242, 22); + this.lblWins.TabIndex = 1; + this.lblWins.Text = "WINS :"; + this.lblWins.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblWins.TextRight = "0 - 0.0%"; + this.lblWins.Visible = false; + // + // lblFinish + // + this.lblFinish.ImageHeight = 0; + this.lblFinish.ImageWidth = 0; + this.lblFinish.ImageX = 0; + this.lblFinish.ImageY = 0; + this.lblFinish.LevelColor = System.Drawing.Color.Empty; + this.lblFinish.Location = new System.Drawing.Point(557, 55); + this.lblFinish.Name = "lblFinish"; + this.lblFinish.Size = new System.Drawing.Size(225, 22); + this.lblFinish.TabIndex = 20; + this.lblFinish.Text = "FINISH :"; + this.lblFinish.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lblFinish.TextRight = "-"; + this.lblFinish.Visible = false; + // + // Overlay + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.Magenta; + this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.ClientSize = new System.Drawing.Size(786, 99); + this.Controls.Add(this.picPositionNE); + this.Controls.Add(this.picPositionNW); + this.Controls.Add(this.picPositionSE); + this.Controls.Add(this.picPositionSW); + this.Controls.Add(this.picPositionLock); + this.Controls.Add(this.lblFilter); + this.Controls.Add(this.lblProfile); + this.Controls.Add(this.lblStreak); + this.Controls.Add(this.lblFinals); + this.Controls.Add(this.lblQualifyChance); + this.Controls.Add(this.lblFastest); + this.Controls.Add(this.lblDuration); + this.Controls.Add(this.lblPingIcon); + this.Controls.Add(this.lblCountryIcon); + this.Controls.Add(this.lblPlayers); + this.Controls.Add(this.lblPlayersPc); + this.Controls.Add(this.lblPlayersMobile); + this.Controls.Add(this.lblPlayersPs); + this.Controls.Add(this.lblPlayersXbox); + this.Controls.Add(this.lblPlayersSwitch); + this.Controls.Add(this.lblRound); + this.Controls.Add(this.lblWins); + this.Controls.Add(this.lblFinish); + this.Cursor = System.Windows.Forms.Cursors.SizeAll; + this.DoubleBuffered = true; + this.ForeColor = System.Drawing.Color.White; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Location = new System.Drawing.Point(15, 15); + this.Name = "Overlay"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.TopMost = true; + this.KeyPreview = true; + this.TransparencyKey = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.Activated += new System.EventHandler(this.Overlay_GotFocus); + this.Deactivate += new System.EventHandler(this.Overlay_LostFocus); + //this.GotFocus += new System.EventHandler(this.Overlay_GotFocus); + //this.LostFocus += new System.EventHandler(this.Overlay_LostFocus); + this.Load += new System.EventHandler(this.Overlay_Load); + this.LocationChanged += new System.EventHandler(this.Overlay_LocationChanged); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Overlay_KeyDown); + this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Overlay_KeyUp); + this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Overlay_MouseDown); + this.MouseEnter += new System.EventHandler(this.Overlay_MouseEnter); + this.MouseLeave += new System.EventHandler(this.Overlay_MouseLeave); + this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.Overlay_MouseWheel); + this.Resize += new System.EventHandler(this.Overlay_Resize); + ((System.ComponentModel.ISupportInitialize)(this.picPositionNE)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPositionNW)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPositionSE)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPositionSW)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPositionLock)).EndInit(); + this.ResumeLayout(false); + } + + #endregion + private System.Windows.Forms.Timer tmrQueued; + + private FallGuysStats.TransparentLabel lblRound; + private FallGuysStats.TransparentLabel lblDuration; + private FallGuysStats.TransparentLabel lblFinish; + private FallGuysStats.TransparentLabel lblFastest; + private FallGuysStats.TransparentLabel lblQualifyChance; + private FallGuysStats.TransparentLabel lblWins; + private FallGuysStats.TransparentLabel lblFinals; + private FallGuysStats.TransparentLabel lblPlayers; + private FallGuysStats.TransparentLabel lblPingIcon; + private FallGuysStats.TransparentLabel lblCountryIcon; + + private FallGuysStats.TransparentLabel lblPlayersPc; + private FallGuysStats.TransparentLabel lblPlayersMobile; + private FallGuysStats.TransparentLabel lblPlayersPs; + private FallGuysStats.TransparentLabel lblPlayersXbox; + private FallGuysStats.TransparentLabel lblPlayersSwitch; + + private FallGuysStats.TransparentLabel lblStreak; + private FallGuysStats.TransparentLabel lblFilter; + private FallGuysStats.TransparentLabel lblProfile; + + private System.Windows.Forms.PictureBox picPositionNE; + private System.Windows.Forms.PictureBox picPositionNW; + private System.Windows.Forms.PictureBox picPositionSE; + private System.Windows.Forms.PictureBox picPositionSW; + private System.Windows.Forms.PictureBox picPositionLock; + } +} \ No newline at end of file diff --git a/Views/Overlay.cs b/Views/Overlay.cs new file mode 100644 index 000000000..66b2b59ef --- /dev/null +++ b/Views/Overlay.cs @@ -0,0 +1,2133 @@ +using System; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Drawing.Imaging; +using System.Drawing.Text; +using System.IO; +using System.Runtime.InteropServices; +using System.Threading; +using System.Windows.Forms; + +namespace FallGuysStats { + public sealed partial class Overlay : Form { + private const int WM_NCLBUTTONDOWN = 0xA1; + private const int HT_CAPTION = 0x2; + + [DllImport("user32.dll")] + private static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam); + [DllImport("user32.dll")] + private static extern bool ReleaseCapture(); + + public Stats StatsForm { get; set; } + public string BackgroundResourceName; + public string TabResourceName; + private Thread timer; + public bool saveDisplayChange; + public bool flippedImage; + private int frameCount; + private bool isTimeToSwitch; + private int switchCount; + private Bitmap Background, DrawImage; + private Graphics DrawGraphics; + private RoundInfo lastRound; + private string savedSessionId; + private int savedRoundNum; + private string levelId; + private string levelName; + private int levelTimeLimit; + private LevelStats levelStats; + private LevelType levelType; + private BestRecordType recordType; + private Image roundIcon; + private StatSummary levelSummary; + private int drawWidth, drawHeight; + private bool startedPlaying; + private DateTime startTime; + private bool shiftKeyToggle, ctrlKeyToggle; + private new Size DefaultSize; + private Bitmap customizedBackground, customizedTab; + private string backgroundResourceNameCache, tabResourceNameCache; + private byte transitionCounter; + private TransparentLabel targetLabel; + + private bool isPositionButtonMouseEnter; + private readonly Image positionNeOffBlur = Utils.ImageOpacity(Properties.Resources.position_ne_off_icon, 0.4F); + private readonly Image positionNwOffBlur = Utils.ImageOpacity(Properties.Resources.position_nw_off_icon, 0.4F); + private readonly Image positionSeOffBlur = Utils.ImageOpacity(Properties.Resources.position_se_off_icon, 0.4F); + private readonly Image positionSwOffBlur = Utils.ImageOpacity(Properties.Resources.position_sw_off_icon, 0.4F); + private readonly Image positionNeOffFocus = Utils.ImageOpacity(Properties.Resources.position_ne_off_icon, 0.8F); + private readonly Image positionNwOffFocus = Utils.ImageOpacity(Properties.Resources.position_nw_off_icon, 0.8F); + private readonly Image positionSeOffFocus = Utils.ImageOpacity(Properties.Resources.position_se_off_icon, 0.8F); + private readonly Image positionSwOffFocus = Utils.ImageOpacity(Properties.Resources.position_sw_off_icon, 0.8F); + private readonly Image positionNeOnBlur = Utils.ImageOpacity(Properties.Resources.position_ne_on_icon, 0.4F); + private readonly Image positionNwOnBlur = Utils.ImageOpacity(Properties.Resources.position_nw_on_icon, 0.4F); + private readonly Image positionSeOnBlur = Utils.ImageOpacity(Properties.Resources.position_se_on_icon, 0.4F); + private readonly Image positionSwOnBlur = Utils.ImageOpacity(Properties.Resources.position_sw_on_icon, 0.4F); + private readonly Image positionNeOnFocus = Utils.ImageOpacity(Properties.Resources.position_ne_on_icon, 0.8F); + private readonly Image positionNwOnFocus = Utils.ImageOpacity(Properties.Resources.position_nw_on_icon, 0.8F); + private readonly Image positionSeOnFocus = Utils.ImageOpacity(Properties.Resources.position_se_on_icon, 0.8F); + private readonly Image positionSwOnFocus = Utils.ImageOpacity(Properties.Resources.position_sw_on_icon, 0.8F); + private readonly Image positionLockBlur = Utils.ImageOpacity(Properties.Resources.switch_lock_icon, 0.4F); + private readonly Image positionLockFocus = Utils.ImageOpacity(Properties.Resources.switch_lock_icon, 0.8F); + private readonly Image positionUnlockBlur = Utils.ImageOpacity(Properties.Resources.switch_unlock_icon, 0.4F); + private readonly Image positionUnlockFocus = Utils.ImageOpacity(Properties.Resources.switch_unlock_icon, 0.8F); + private bool isFixedPositionNe, isFixedPositionNw, isFixedPositionSe, isFixedPositionSw, isPositionLock; + private bool isFocused, isMouseOver; + + private static readonly PrivateFontCollection DefaultFontCollection = new PrivateFontCollection(); + public static new Font DefaultFont; + + static Overlay() { + string[] fontNames = { "TitanOne-Regular.ttf", "PretendardJP-Medium.ttf", "NotoSansSC-Regular.otf" }; + for (int i = 0; i < fontNames.Length; i++) { + if (string.IsNullOrEmpty(fontNames[i]) || File.Exists($"{Stats.CURRENTDIR}{fontNames[i]}")) continue; + using (Stream fontStream = typeof(Overlay).Assembly.GetManifestResourceStream($"FallGuysStats.Resources.font.{fontNames[i]}")) { + byte[] fontData = new byte[fontStream.Length]; + fontStream.Read(fontData, 0, (int)fontStream.Length); + File.WriteAllBytes($"{Stats.CURRENTDIR}{fontNames[i]}", fontData); + } + } + + for (int i = 0; i < fontNames.Length; i++) { + DefaultFontCollection.AddFontFile($"{Stats.CURRENTDIR}{fontNames[i]}"); + } + SetDefaultFont(18, Stats.CurrentLanguage); + + if (!Directory.Exists($"{Stats.CURRENTDIR}Overlay")) { + Directory.CreateDirectory($"{Stats.CURRENTDIR}Overlay"); + using (Stream overlayStream = typeof(Stats).Assembly.GetManifestResourceStream("FallGuysStats.Resources.overlay.background.png")) { + byte[] overlaydata = new byte[overlayStream.Length]; + overlayStream.Read(overlaydata, 0, (int)overlayStream.Length); + File.WriteAllBytes(Path.Combine($"{Stats.CURRENTDIR}Overlay", "background.png"), overlaydata); + } + using (Stream overlayStream = typeof(Stats).Assembly.GetManifestResourceStream("FallGuysStats.Resources.overlay.tab_unselected.png")) { + byte[] overlaydata = new byte[overlayStream.Length]; + overlayStream.Read(overlaydata, 0, (int)overlayStream.Length); + File.WriteAllBytes(Path.Combine($"{Stats.CURRENTDIR}Overlay", "tab.png"), overlaydata); + } + } else { + if (!File.Exists(Path.Combine($"{Stats.CURRENTDIR}Overlay", "background.png"))) { + using (Stream overlayStream = typeof(Stats).Assembly.GetManifestResourceStream("FallGuysStats.Resources.overlay.background.png")) { + byte[] overlaydata = new byte[overlayStream.Length]; + overlayStream.Read(overlaydata, 0, (int)overlayStream.Length); + File.WriteAllBytes(Path.Combine($"{Stats.CURRENTDIR}Overlay", "background.png"), overlaydata); + } + } + if (!File.Exists(Path.Combine($"{Stats.CURRENTDIR}Overlay", "tab.png"))) { + using (Stream overlayStream = typeof(Stats).Assembly.GetManifestResourceStream("FallGuysStats.Resources.overlay.tab_unselected.png")) { + byte[] overlaydata = new byte[overlayStream.Length]; + overlayStream.Read(overlaydata, 0, (int)overlayStream.Length); + File.WriteAllBytes(Path.Combine($"{Stats.CURRENTDIR}Overlay", "tab.png"), overlaydata); + } + } + } + } + + public Overlay() { + this.InitializeComponent(); + } + + private void Overlay_Load(object sender, EventArgs e) { + this.ChangeLanguage(); + // this.SetBackground(); + this.SetStyle(ControlStyles.ResizeRedraw, true); + } + + public void UpdateDisplay(bool init = false) { + this.ArrangeDisplay(init, string.IsNullOrEmpty(this.StatsForm.CurrentSettings.OverlayFixedPosition) ? this.StatsForm.CurrentSettings.FlippedDisplay : this.StatsForm.CurrentSettings.FixedFlippedDisplay, this.StatsForm.CurrentSettings.ShowOverlayTabs, + this.StatsForm.CurrentSettings.HideWinsInfo, this.StatsForm.CurrentSettings.HideRoundInfo, this.StatsForm.CurrentSettings.HideTimeInfo, + this.StatsForm.CurrentSettings.OverlayColor, this.StatsForm.CurrentSettings.LockButtonLocation, + string.IsNullOrEmpty(this.StatsForm.CurrentSettings.OverlayFixedPosition) ? this.StatsForm.CurrentSettings.OverlayWidth : this.StatsForm.CurrentSettings.OverlayFixedWidth, + string.IsNullOrEmpty(this.StatsForm.CurrentSettings.OverlayFixedPosition) ? this.StatsForm.CurrentSettings.OverlayHeight : this.StatsForm.CurrentSettings.OverlayFixedHeight, + this.StatsForm.CurrentSettings.OverlayFontSerialized, this.StatsForm.CurrentSettings.OverlayFontColorSerialized); + } + + public void SetFixedPosition(bool positionNe, bool positionNw, bool positionSe, bool positionSw, bool positionFree) { + this.isFixedPositionNe = positionNe; + this.isFixedPositionNw = positionNw; + this.isFixedPositionSe = positionSe; + this.isFixedPositionSw = positionSw; + this.isPositionLock = positionFree; + } + + public void SetBackgroundResourcesName(string backgroundResourceName, string tabResourceName) { + this.BackgroundResourceName = backgroundResourceName; + this.TabResourceName = tabResourceName; + } + + // private void SetBackground(string backgroundResourceName = null) { + // Bitmap background = string.IsNullOrEmpty(backgroundResourceName) + // ? Properties.Resources.background + // : (Bitmap)Properties.Resources.ResourceManager.GetObject(backgroundResourceName) ?? Properties.Resources.background; + // + // Bitmap newImage = new Bitmap(background.Width, background.Height, PixelFormat.Format32bppArgb); + // using (Graphics g = Graphics.FromImage(newImage)) { + // g.DrawImage(background, 0, 0); + // } + // this.Background = newImage; + // this.DrawImage = new Bitmap(background.Width, background.Height, PixelFormat.Format32bppArgb); + // this.DrawGraphics = Graphics.FromImage(this.DrawImage); + // this.drawWidth = background.Width; + // this.drawHeight = background.Height; + // } + + protected override void WndProc(ref Message m) { + switch (m.Msg) { + case 0x84: + Point pos = PointToClient(new Point(m.LParam.ToInt32())); + int hitSize = 16; + if (pos.X >= ClientSize.Width - hitSize && pos.Y >= ClientSize.Height - hitSize) { + m.Result = (IntPtr)17; + return; + } else if (pos.X <= hitSize && pos.Y >= ClientSize.Height - hitSize) { + m.Result = (IntPtr)16; + return; + } else if (pos.X <= hitSize && pos.Y <= hitSize) { + m.Result = (IntPtr)13; + return; + } else if (pos.X >= ClientSize.Width - hitSize && pos.Y <= hitSize) { + m.Result = (IntPtr)14; + return; + } + break; + case 0x0112: + if ((m.WParam.ToInt32() & 0xFFF0) == 0xF060) { + this.StatsForm.Stats_ExitProgram(this, null); + } + break; + } + base.WndProc(ref m); + } + + public void StartTimer() { + this.timer = new Thread(this.UpdateTimer) { IsBackground = true }; + this.timer.Start(); + } + + public int GetDisplaySetting() { + return (this.StatsForm.CurrentSettings.HideWinsInfo ? 4 : 0) + (this.StatsForm.CurrentSettings.HideRoundInfo ? 2 : 0) + (this.StatsForm.CurrentSettings.HideTimeInfo ? 1 : 0); + } + + private static void SetFonts(Control control, float customSize = -1, Font font = null) { + if (font == null) { + font = customSize <= 0 ? DefaultFont : new Font(GetDefaultFontFamilies(), customSize, FontStyle.Regular, GraphicsUnit.Pixel); + } + + control.Font = font; + foreach (Control ctr in control.Controls) { + if (string.Equals(ctr.Name, "lblProfile")) { ctr.Font = GetMainFont(font.Size, FontStyle.Bold); continue; } + ctr.Font = font; + if (ctr.HasChildren) { + SetFonts(ctr, customSize, font); + } + } + } + + private void SetDefaultFontColor() { + this.ForeColor = Color.White; + } + private void SetFontColor(Color color) { + this.ForeColor = color; + } + public static void SetDefaultFont(float emSize, Language lang) { + DefaultFont = new Font(GetDefaultFontFamilies(lang), emSize, (lang == Language.English || lang == Language.French || lang == Language.Spanish) ? FontStyle.Regular : FontStyle.Bold, GraphicsUnit.Pixel); + } + public static Font GetDefaultFont(float emSize, Language lang) { + return new Font(GetDefaultFontFamilies(lang), emSize, (lang == Language.English || lang == Language.French || lang == Language.Spanish) ? FontStyle.Regular : FontStyle.Bold, GraphicsUnit.Pixel); + } + public static FontFamily GetDefaultFontFamilies(Language lang = Language.English) { + return (lang == Language.English || lang == Language.French || lang == Language.Spanish) ? DefaultFontCollection.Families[2] : (lang == Language.SimplifiedChinese || lang == Language.TraditionalChinese) ? DefaultFontCollection.Families[0] : DefaultFontCollection.Families[1]; + } + public static Font GetMainFont(float emSize, FontStyle fontStyle = FontStyle.Regular, Language lang = Language.English) { + return new Font(GetMainFontFamilies(lang), emSize, fontStyle, GraphicsUnit.Pixel); + } + public static FontFamily GetMainFontFamilies(Language lang) { + return (lang == Language.SimplifiedChinese || lang == Language.TraditionalChinese) ? DefaultFontCollection.Families[0] : DefaultFontCollection.Families[1]; + } + public bool IsFocused() { + return this.isFocused; + } + public bool IsMouseOver() { + return this.isMouseOver; + } + public bool IsFixed() { + return this.isFixedPositionNe || this.isFixedPositionNw || this.isFixedPositionSe || this.isFixedPositionSw || this.isPositionLock; + } + // public void ShowCountryName(string message, int duration) { + // if (this.lblPlayers.DrawVisible) { + // this.StatsForm.AllocOverlayTooltip(); + // Rectangle rectangle = this.lblPlayers.Bounds; + // Point position = new Point(rectangle.X, rectangle.Y); + // this.StatsForm.ShowOverlayTooltip(message, this, position, duration); + // } + // } + private void Position_MouseClick(object sender, MouseEventArgs e) { + if (e.Button == MouseButtons.Left) { + Screen screen = Utils.GetCurrentScreen(this.Location); + Point screenLocation = screen != null ? screen.Bounds.Location : Screen.PrimaryScreen.Bounds.Location; + Size screenSize = screen != null ? screen.Bounds.Size : Screen.PrimaryScreen.Bounds.Size; + if (sender.Equals(this.picPositionNE)) { + if (this.isFixedPositionNe) { + if (this.StatsForm.CurrentSettings.OverlayLocationX.HasValue && Utils.IsOnScreen(this.StatsForm.CurrentSettings.OverlayLocationX.Value, this.StatsForm.CurrentSettings.OverlayLocationY.Value, this.Width, this.Height)) { + this.Location = new Point(this.StatsForm.CurrentSettings.OverlayLocationX.Value, this.StatsForm.CurrentSettings.OverlayLocationY.Value); + } + this.FlipDisplay(this.StatsForm.CurrentSettings.FlippedDisplay); + this.picPositionNE.Image = this.positionNeOffFocus; + this.isFixedPositionNe = false; + this.Cursor = Cursors.SizeAll; + this.StatsForm.CurrentSettings.OverlayFixedPosition = string.Empty; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = null; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = null; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = false; + this.SetVisiblePositionLockButton(true); + } else { + if (!this.IsFixed()) { + this.StatsForm.CurrentSettings.OverlayLocationX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayLocationY = this.Location.Y; + } + this.FlipDisplay(true); + this.saveDisplayChange = false; + this.Location = new Point(screenLocation.X, 0); + this.saveDisplayChange = true; + this.SetFocusPositionMenu("ne"); + this.Cursor = Cursors.Default; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = this.Location.Y; + this.StatsForm.CurrentSettings.OverlayFixedWidth = this.Width; + this.StatsForm.CurrentSettings.OverlayFixedHeight = this.Height; + this.StatsForm.CurrentSettings.OverlayFixedPosition = "ne"; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = true; + this.SetVisiblePositionLockButton(false); + } + this.UpdateDisplay(); + } else if (sender.Equals(this.picPositionNW)) { + if (this.isFixedPositionNw) { + if (this.StatsForm.CurrentSettings.OverlayLocationX.HasValue && Utils.IsOnScreen(this.StatsForm.CurrentSettings.OverlayLocationX.Value, this.StatsForm.CurrentSettings.OverlayLocationY.Value, this.Width, this.Height)) { + this.Location = new Point(this.StatsForm.CurrentSettings.OverlayLocationX.Value, this.StatsForm.CurrentSettings.OverlayLocationY.Value); + } + this.FlipDisplay(this.StatsForm.CurrentSettings.FlippedDisplay); + this.picPositionNW.Image = this.positionNwOffFocus; + this.isFixedPositionNw = false; + this.Cursor = Cursors.SizeAll; + this.StatsForm.CurrentSettings.OverlayFixedPosition = string.Empty; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = null; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = null; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = false; + this.SetVisiblePositionLockButton(true); + } else { + if (!this.IsFixed()) { + this.StatsForm.CurrentSettings.OverlayLocationX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayLocationY = this.Location.Y; + } + this.FlipDisplay(false); + this.saveDisplayChange = false; + this.Location = new Point(screenLocation.X + screenSize.Width - this.Width, 0); + this.saveDisplayChange = true; + this.SetFocusPositionMenu("nw"); + this.Cursor = Cursors.Default; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = this.Location.Y; + this.StatsForm.CurrentSettings.OverlayFixedWidth = this.Width; + this.StatsForm.CurrentSettings.OverlayFixedHeight = this.Height; + this.StatsForm.CurrentSettings.OverlayFixedPosition = "nw"; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = false; + this.SetVisiblePositionLockButton(false); + } + this.UpdateDisplay(); + } else if (sender.Equals(this.picPositionSE)) { + if (this.isFixedPositionSe) { + if (this.StatsForm.CurrentSettings.OverlayLocationX.HasValue && Utils.IsOnScreen(this.StatsForm.CurrentSettings.OverlayLocationX.Value, this.StatsForm.CurrentSettings.OverlayLocationY.Value, this.Width, this.Height)) { + this.Location = new Point(this.StatsForm.CurrentSettings.OverlayLocationX.Value, this.StatsForm.CurrentSettings.OverlayLocationY.Value); + } + this.FlipDisplay(this.StatsForm.CurrentSettings.FlippedDisplay); + this.picPositionSE.Image = this.positionSeOffFocus; + this.isFixedPositionSe = false; + this.Cursor = Cursors.SizeAll; + this.StatsForm.CurrentSettings.OverlayFixedPosition = string.Empty; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = null; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = null; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = false; + this.SetVisiblePositionLockButton(true); + } else { + if (!this.IsFixed()) { + this.StatsForm.CurrentSettings.OverlayLocationX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayLocationY = this.Location.Y; + } + this.FlipDisplay(true); + this.saveDisplayChange = false; + this.Location = new Point(screenLocation.X, screenLocation.Y + screenSize.Height - this.Height); + this.saveDisplayChange = true; + this.SetFocusPositionMenu("se"); + this.Cursor = Cursors.Default; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = this.Location.Y; + this.StatsForm.CurrentSettings.OverlayFixedWidth = this.Width; + this.StatsForm.CurrentSettings.OverlayFixedHeight = this.Height; + this.StatsForm.CurrentSettings.OverlayFixedPosition = "se"; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = true; + this.SetVisiblePositionLockButton(false); + } + this.UpdateDisplay(); + } else if (sender.Equals(this.picPositionSW)) { + if (this.isFixedPositionSw) { + if (this.StatsForm.CurrentSettings.OverlayLocationX.HasValue && Utils.IsOnScreen(this.StatsForm.CurrentSettings.OverlayLocationX.Value, this.StatsForm.CurrentSettings.OverlayLocationY.Value, this.Width, this.Height)) { + this.Location = new Point(this.StatsForm.CurrentSettings.OverlayLocationX.Value, this.StatsForm.CurrentSettings.OverlayLocationY.Value); + } + this.FlipDisplay(this.StatsForm.CurrentSettings.FlippedDisplay); + this.picPositionSW.Image = this.positionSwOffFocus; + this.isFixedPositionSw = false; + this.Cursor = Cursors.SizeAll; + this.StatsForm.CurrentSettings.OverlayFixedPosition = string.Empty; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = null; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = null; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = false; + this.SetVisiblePositionLockButton(true); + } else { + if (!this.IsFixed()) { + this.StatsForm.CurrentSettings.OverlayLocationX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayLocationY = this.Location.Y; + } + this.FlipDisplay(false); + this.saveDisplayChange = false; + this.Location = new Point(screenLocation.X + screenSize.Width - this.Width, screenLocation.Y + screenSize.Height - this.Height); + this.saveDisplayChange = true; + this.SetFocusPositionMenu("sw"); + this.Cursor = Cursors.Default; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = this.Location.Y; + this.StatsForm.CurrentSettings.OverlayFixedWidth = this.Width; + this.StatsForm.CurrentSettings.OverlayFixedHeight = this.Height; + this.StatsForm.CurrentSettings.OverlayFixedPosition = "sw"; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = false; + this.SetVisiblePositionLockButton(false); + } + this.UpdateDisplay(); + } else if (sender.Equals(this.picPositionLock)) { + if (this.isPositionLock) { + this.picPositionLock.Image = this.positionUnlockFocus; + this.isPositionLock = false; + this.Cursor = Cursors.SizeAll; + this.StatsForm.CurrentSettings.OverlayFixedPosition = string.Empty; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = null; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = null; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = false; + this.SetVisiblePositionMenu(true); + } else { + this.picPositionLock.Image = this.positionLockFocus; + this.isPositionLock = true; + this.Cursor = Cursors.Default; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = this.Location.Y; + this.StatsForm.CurrentSettings.OverlayFixedWidth = this.Width; + this.StatsForm.CurrentSettings.OverlayFixedHeight = this.Height; + this.StatsForm.CurrentSettings.OverlayFixedPosition = "free"; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = this.flippedImage; + this.SetVisiblePositionMenu(false); + } + this.UpdateDisplay(); + } + this.StatsForm.SaveUserSettings(); + } + } + + private void Position_MouseEnter(object sender, EventArgs e) { + this.StatsForm.HideTooltip(this); + if (!this.IsFixed()) { + Rectangle rectangle = ((PictureBox)sender).Bounds; + Point position = new Point(rectangle.Right + 5, rectangle.Top); + this.StatsForm.AllocTooltip(); + this.StatsForm.ShowTooltip(Multilingual.GetWord($"overlay_{((PictureBox)sender).Name}_tooltip"), this, position); + } + + if (this.isPositionButtonMouseEnter) return; + if (this.IsFixed()) { + if (this.isPositionLock) { + this.picPositionLock.Image = this.isPositionLock ? this.positionLockFocus : this.positionUnlockFocus; + } else { + this.SetFocusPositionMenu(); + } + } else { + this.SetFocusPositionMenu(); + this.picPositionLock.Image = this.isPositionLock ? this.positionLockFocus : this.positionUnlockFocus; + } + this.isPositionButtonMouseEnter = true; + } + + private void Position_MouseLeave(object sender, EventArgs e) { + this.StatsForm.HideTooltip(this); + + if (!this.isPositionButtonMouseEnter) return; + if (this.IsFixed()) { + if (this.isPositionLock) { + this.picPositionLock.Image = this.isPositionLock ? this.positionLockBlur : this.positionUnlockBlur; + } else { + this.SetBlurPositionMenu(); + } + } else { + this.SetBlurPositionMenu(); + this.picPositionLock.Image = this.isPositionLock ? this.positionLockBlur : this.positionUnlockBlur; + } + this.isPositionButtonMouseEnter = false; + } + + private void SetLocationPositionMenu(bool visibleTab, int lockOffset, bool flipped) { + this.picPositionNE.Location = new Point((this.Width / 2) - (this.picPositionNE.Size.Width + 2), (this.Height / 2) - (this.picPositionNE.Size.Height + 2) + (visibleTab ? 11 : -6)); + this.picPositionNW.Location = new Point((this.Width / 2) + 2, (this.Height / 2) - (this.picPositionNE.Size.Height + 2) + (visibleTab ? 11 : -6)); + this.picPositionSE.Location = new Point((this.Width / 2) - (this.picPositionSE.Size.Width + 2), (this.Height / 2) + 2 + (visibleTab ? 11 : -6)); + this.picPositionSW.Location = new Point((this.Width / 2) + 2, (this.Height / 2) + 2 + (visibleTab ? 11 : -6)); + this.picPositionLock.Location = new Point(flipped ? (this.Width - this.picPositionLock.Width - 14) : 14, this.Height - (this.picPositionLock.Size.Height + 2) - lockOffset); + } + + private void SetBlurPositionMenu() { + this.picPositionNE.Image = this.isFixedPositionNe ? this.positionNeOnBlur : this.positionNeOffBlur; + this.picPositionNW.Image = this.isFixedPositionNw ? this.positionNwOnBlur : this.positionNwOffBlur; + this.picPositionSE.Image = this.isFixedPositionSe ? this.positionSeOnBlur : this.positionSeOffBlur; + this.picPositionSW.Image = this.isFixedPositionSw ? this.positionSwOnBlur : this.positionSwOffBlur; + } + + private void SetFocusPositionMenu() { + this.picPositionNE.Image = this.isFixedPositionNe ? this.positionNeOnFocus : this.positionNeOffFocus; + this.picPositionNW.Image = this.isFixedPositionNw ? this.positionNwOnFocus : this.positionNwOffFocus; + this.picPositionSE.Image = this.isFixedPositionSe ? this.positionSeOnFocus : this.positionSeOffFocus; + this.picPositionSW.Image = this.isFixedPositionSw ? this.positionSwOnFocus : this.positionSwOffFocus; + } + + private void SetFocusPositionMenu(string flag) { + this.isFixedPositionNe = string.Equals(flag, "ne"); + this.isFixedPositionNw = string.Equals(flag, "nw"); + this.isFixedPositionSe = string.Equals(flag, "se"); + this.isFixedPositionSw = string.Equals(flag, "sw"); + this.picPositionNE.Image = this.isFixedPositionNe ? this.positionNeOnFocus : this.positionNeOffFocus; + this.picPositionNW.Image = this.isFixedPositionNw ? this.positionNwOnFocus : this.positionNwOffFocus; + this.picPositionSE.Image = this.isFixedPositionSe ? this.positionSeOnFocus : this.positionSeOffFocus; + this.picPositionSW.Image = this.isFixedPositionSw ? this.positionSwOnFocus : this.positionSwOffFocus; + } + + private void SetVisiblePositionMenu(bool visible) { + if (visible) { + this.picPositionNE.Show(); + this.picPositionNW.Show(); + this.picPositionSE.Show(); + this.picPositionSW.Show(); + } else { + this.picPositionNE.Hide(); + this.picPositionNW.Hide(); + this.picPositionSE.Hide(); + this.picPositionSW.Hide(); + } + } + + private void SetVisiblePositionLockButton(bool visible) { + if (visible) { this.picPositionLock.Show(); } + else { this.picPositionLock.Hide(); } + } + + private void Overlay_MouseEnter(object sender, EventArgs e) { + this.isMouseOver = true; + } + + private void Overlay_MouseLeave(object sender, EventArgs e) { + this.isMouseOver = false; + } + + private void Overlay_GotFocus(object sender, EventArgs e) { + this.isFocused = true; + if (this.IsFixed()) { + if (this.isPositionLock) { + this.SetVisiblePositionLockButton(true); + this.SetVisiblePositionMenu(false); + } else { + this.SetVisiblePositionLockButton(false); + this.SetVisiblePositionMenu(true); + + } + } else { + if (this.picPositionNE.Visible && this.picPositionNW.Visible && + this.picPositionSE.Visible && this.picPositionSW.Visible && this.picPositionLock.Visible) return; + + this.SetVisiblePositionMenu(true); + this.SetVisiblePositionLockButton(true); + } + } + + private void Overlay_LostFocus(object sender, EventArgs e) { + this.isFocused = false; + if (!this.picPositionNE.Visible && !this.picPositionNW.Visible && + !this.picPositionSE.Visible && !this.picPositionSW.Visible && !this.picPositionLock.Visible) return; + + this.SetVisiblePositionMenu(false); + this.SetVisiblePositionLockButton(false); + } + + private void Overlay_LocationChanged(object sender, EventArgs e) { + if (this.saveDisplayChange) { + this.StatsForm.CurrentSettings.OverlayLocationX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayLocationY = this.Location.Y; + } + } + + private void Overlay_Resize(object sender, EventArgs e) { + if (this.saveDisplayChange) { + this.StatsForm.CurrentSettings.OverlayWidth = this.Width; + this.StatsForm.CurrentSettings.OverlayHeight = this.Height; + this.StatsForm.CurrentSettings.OverlayFixedWidth = this.Width; + this.StatsForm.CurrentSettings.OverlayFixedHeight = this.Height; + } + + int lockButtonOffset = -6; + if (this.StatsForm.CurrentSettings.LockButtonLocation == 0) { + if (this.drawHeight > 99 || this.Height < 62) { + lockButtonOffset = (this.Height / 2) - 8; + } else { + lockButtonOffset = this.Height - 40; + } + } + this.SetLocationPositionMenu(this.drawHeight > 99, lockButtonOffset, this.StatsForm.CurrentSettings.FlippedDisplay); + } + + private void Overlay_MouseDown(object sender, MouseEventArgs e) { + if (e.Button != MouseButtons.Left) return; + if ((sender.GetType() == this.picPositionNE.GetType()) || + (sender.GetType() == this.picPositionNW.GetType()) || + (sender.GetType() == this.picPositionSE.GetType()) || + (sender.GetType() == this.picPositionSW.GetType()) || + (sender.GetType() == this.picPositionLock.GetType())) return; + if (this.IsFixed()) return; + + ReleaseCapture(); + SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + } + + private void UpdateTimer() { + while (this.StatsForm != null && !this.StatsForm.IsDisposed && !this.StatsForm.Disposing) { + try { + if (this.IsHandleCreated && !this.StatsForm.Disposing && !this.StatsForm.IsDisposed) { + this.frameCount++; + this.isTimeToSwitch = this.frameCount % (this.StatsForm.CurrentSettings.CycleTimeSeconds * 20) == 0; + this.Invoke((Action)this.UpdateInfo); + } + + this.StatsForm.UpdateDates(); + Thread.Sleep(50); + } catch { + // ignored + } + } + } + + private void SetRoundLabel(Image roundIcon, LevelType type, string roundName, int setting) { + if ((this.lastRound.IsCasualShow || !Stats.InShow) && Stats.IsQueuing && (setting == 1 || setting == 5)) { + this.lblRound.LevelColor = Color.Empty; + this.lblRound.LevelTrueColor = Color.Empty; + this.lblRound.RoundIcon = null; + this.targetLabel = this.lblRound; + this.lblRound.ImageWidth = 20; + this.lblRound.ImageHeight = 22; + this.tmrQueued.Start(); + + this.lblRound.Text = $@"{Multilingual.GetWord("overlay_queued_players")} :"; + this.lblRound.TextRight = Stats.QueuedPlayers.ToString(); + this.lblRound.ForeColor = this.ForeColor; + } else { + int roundNum = this.lastRound.Round > 0 ? (this.lastRound.IsCasualShow ? (Stats.CasualRoundNum != 0 ? Stats.CasualRoundNum : 1) : this.lastRound.Round) : 0; + if (this.StatsForm.CurrentSettings.ColorByRoundType) { + this.lblRound.Text = $@"{Multilingual.GetWord("overlay_round_abbreviation_prefix")}{roundNum}{Multilingual.GetWord("overlay_round_abbreviation_suffix")} :"; + this.lblRound.LevelColor = type == LevelType.Unknown ? type.LevelBackColor(false, false, 159) : (this.lastRound.UseShareCode ? type.LevelBackColor(false, this.lastRound.IsTeam, 159) : type.LevelBackColor(this.lastRound.IsFinal, this.lastRound.IsTeam, 223)); + this.lblRound.LevelTrueColor = type == LevelType.Unknown ? type.LevelBackColor(false, false, 159) : type.LevelBackColor(false, this.lastRound.IsTeam, 159); + this.lblRound.RoundIcon = roundIcon; + if (this.lblRound.RoundIcon.Height != 23) { + float ratio = 23f / this.lblRound.RoundIcon.Height; + this.lblRound.ImageHeight = 23; + this.lblRound.ImageWidth = (int)(this.lblRound.RoundIcon.Width * ratio); + } else { + this.lblRound.ImageHeight = this.lblRound.RoundIcon.Height; + this.lblRound.ImageWidth = this.lblRound.RoundIcon.Width; + } + } else { + this.lblRound.Text = $@"{Multilingual.GetWord("overlay_round_prefix")}{roundNum}{Multilingual.GetWord("overlay_round_suffix")} :"; + this.lblRound.LevelColor = Color.Empty; + this.lblRound.LevelTrueColor = Color.Empty; + this.lblRound.RoundIcon = null; + this.lblRound.ImageWidth = 0; + this.lblRound.ImageHeight = 0; + } + if (roundName.Length > 30) { roundName = roundName.Substring(0, 30); } + this.lblRound.TextRight = roundName; + } + } + + private void SetWinsLabel(StatSummary summary, int setting) { + if ((this.lastRound.IsCasualShow || !Stats.InShow) && Stats.IsQueuing && setting == 3) { + this.lblWins.Text = $@"{Multilingual.GetWord("overlay_queued_players")} :"; + this.lblWins.TextRight = $"{Stats.QueuedPlayers:N0}"; + this.lblWins.ForeColor = this.ForeColor; + this.targetLabel = this.lblWins; + this.lblWins.ImageWidth = 20; + this.lblWins.ImageHeight = 22; + this.tmrQueued.Start(); + } else { + this.lblWins.Text = $@"{Multilingual.GetWord("overlay_wins")} :"; + float winChance = summary.TotalWins * 100f / Math.Max(1, summary.TotalShows); + string winChanceDisplay = this.StatsForm.CurrentSettings.HideOverlayPercentages ? string.Empty : $" - {Math.Truncate(winChance * 10) / 10}%"; + this.lblWins.TextRight = this.StatsForm.CurrentSettings.FilterType != 1 + ? $"{summary.TotalWins:N0}{Multilingual.GetWord("overlay_win")} ({summary.AllWins + this.StatsForm.CurrentSettings.PreviousWins:N0}{Multilingual.GetWord("overlay_win")}){winChanceDisplay}" + : $"{summary.TotalWins:N0}{Multilingual.GetWord("overlay_win")}{winChanceDisplay}"; + } + } + + private void SetFinalsLabel(StatSummary summary, int setting) { + if (this.StatsForm.CurrentSettings.DisplayCurrentTime && !Stats.IsConnectedToServer && setting == 3) { + this.lblFinals.OverlaySetting = setting; + this.lblFinals.TickProgress = DateTime.Now.Second; + this.lblFinals.Text = $@"{Multilingual.GetWord("overlay_current_time")} :"; + this.lblFinals.TextRight = $"{DateTime.Now:HH\\:mm\\:ss}"; + } else { + this.lblFinals.TickProgress = 0; + this.lblFinals.Text = $@"{Multilingual.GetWord("overlay_finals")} :"; + string finalText = $"{summary.TotalFinals:N0}{(summary.TotalShows < 100000 ? $" / {summary.TotalShows:N0}" : Multilingual.GetWord("overlay_inning"))}"; + float finalChance = summary.TotalFinals * 100f / Math.Max(1, summary.TotalShows); + string finalChanceDisplay = this.StatsForm.CurrentSettings.HideOverlayPercentages ? string.Empty : $" - {Math.Truncate(finalChance * 10) / 10}%"; + this.lblFinals.TextRight = $"{finalText}{finalChanceDisplay}"; + } + } + + private void SetStreakLabel(StatSummary summary, int setting) { + if (this.StatsForm.CurrentSettings.DisplayCurrentTime && !Stats.IsConnectedToServer && (setting == 3)) { + this.lblStreak.OverlaySetting = setting; + this.lblStreak.Text = ""; + this.lblStreak.TextRight = $@"{DateTime.Now.ToString(Multilingual.GetWord("level_date_format"), Utils.GetCultureInfo())}"; + } else { + int streakSwitchCount = this.switchCount; + if (!this.StatsForm.CurrentSettings.SwitchBetweenStreaks) { + streakSwitchCount = this.StatsForm.CurrentSettings.OnlyShowFinalStreak ? 1 : 0; + } + switch (streakSwitchCount % 2) { + case 0: + this.lblStreak.Text = $@"{Multilingual.GetWord("overlay_streak")} :"; + string currentStreakSuffix = Stats.CurrentLanguage == Language.Korean ? (summary.CurrentStreak > 1 ? Multilingual.GetWord("overlay_streak_suffix") : Multilingual.GetWord("overlay_win")) : Multilingual.GetWord("overlay_streak_suffix"); + string bestStreakSuffix = Stats.CurrentLanguage == Language.Korean ? (summary.BestStreak > 1 ? Multilingual.GetWord("overlay_streak_suffix") : Multilingual.GetWord("overlay_win")) : Multilingual.GetWord("overlay_streak_suffix"); + this.lblStreak.TextRight = $"{summary.CurrentStreak:N0}{currentStreakSuffix} ({Multilingual.GetWord("overlay_best")}{summary.BestStreak:N0}{bestStreakSuffix})"; + break; + case 1: + this.lblStreak.Text = $@"{Multilingual.GetWord("overlay_streak_finals")} :"; + this.lblStreak.TextRight = $"{summary.CurrentFinalStreak:N0}{Multilingual.GetWord("overlay_inning")} ({Multilingual.GetWord("overlay_best")}{summary.BestFinalStreak:N0}{Multilingual.GetWord("overlay_inning")})"; + break; + } + } + } + + private void SetQualifyChanceLabel(StatSummary summary, int setting) { + if (this.StatsForm.CurrentSettings.DisplayCurrentTime && !Stats.IsConnectedToServer && (setting == 1 || setting == 5)) { + this.lblQualifyChance.OverlaySetting = setting; + this.lblQualifyChance.Text = ""; + this.lblQualifyChance.TextRight = $@"{DateTime.Now.ToString(Multilingual.GetWord("level_date_format"), Utils.GetCultureInfo())}"; + } else { + int qualifySwitchCount = this.switchCount; + if (!this.StatsForm.CurrentSettings.SwitchBetweenQualify) { + qualifySwitchCount = this.StatsForm.CurrentSettings.OnlyShowGold ? 1 : 0; + } + float qualifyChance; + string qualifyChanceDisplay; + string qualifyDisplay; + switch (qualifySwitchCount % 2) { + case 0: + this.lblQualifyChance.Text = $@"{Multilingual.GetWord("overlay_qualify_chance")} :"; + qualifyChance = summary.TotalQualify * 100f / Math.Max(1, summary.TotalPlays); + qualifyChanceDisplay = this.StatsForm.CurrentSettings.HideOverlayPercentages ? string.Empty : $" - {Math.Truncate(qualifyChance * 10) / 10}%"; + qualifyDisplay = $"{summary.TotalQualify}{(summary.TotalPlays < 100000 ? $" / {summary.TotalPlays:N0}" : Multilingual.GetWord("overlay_inning"))}"; + this.lblQualifyChance.TextRight = $"{qualifyDisplay}{qualifyChanceDisplay}"; + break; + case 1: + this.lblQualifyChance.Text = $@"{Multilingual.GetWord("overlay_qualify_gold")} :"; + qualifyChance = summary.TotalGolds * 100f / Math.Max(1, summary.TotalPlays); + qualifyChanceDisplay = this.StatsForm.CurrentSettings.HideOverlayPercentages ? string.Empty : $" - {Math.Truncate(qualifyChance * 10) / 10}%"; + qualifyDisplay = $"{summary.TotalGolds}{(summary.TotalPlays < 100000 ? $" / {summary.TotalPlays:N0}" : Multilingual.GetWord("overlay_inning"))}"; + this.lblQualifyChance.TextRight = $"{qualifyDisplay}{qualifyChanceDisplay}"; + break; + } + } + } + + private void SetFastestLabel(StatSummary summary, BestRecordType bestRecordType, int setting) { + if (this.StatsForm.CurrentSettings.DisplayCurrentTime && !Stats.IsConnectedToServer && setting == 2) { + this.lblFastest.OverlaySetting = setting; + this.lblFastest.TickProgress = DateTime.Now.Second; + this.lblFastest.Text = $@"{Multilingual.GetWord("overlay_current_time")} :"; + this.lblFastest.TextRight = $"{DateTime.Now:HH\\:mm\\:ss}"; + } else { + if ((this.lastRound.IsCasualShow || !Stats.InShow) && Stats.IsQueuing && setting == 6) { + this.lblFastest.Text = $@"{Multilingual.GetWord("overlay_queued_players")} :"; + this.lblFastest.TextRight = Stats.QueuedPlayers.ToString(); + this.lblFastest.ForeColor = this.ForeColor; + this.targetLabel = this.lblFastest; + this.lblFastest.ImageWidth = 20; + this.lblFastest.ImageHeight = 22; + this.tmrQueued.Start(); + } else { + this.lblFastest.TickProgress = 0; + bool useSwitching = this.StatsForm.CurrentSettings.SwitchBetweenLongest; + bool onlyShowLongest = this.StatsForm.CurrentSettings.OnlyShowLongest; + switch (bestRecordType) { + case BestRecordType.HighScore: + this.lblFastest.Text = useSwitching ? $@"{Multilingual.GetWord(this.switchCount == 0 ? "overlay_high_score" : "overlay_low_score")} :" + : $@"{Multilingual.GetWord(onlyShowLongest ? "overlay_low_score" : "overlay_high_score")} :"; + this.lblFastest.TextRight = useSwitching ? (this.switchCount == 0 ? (summary.HighScore.HasValue ? $"{summary.HighScore:N0}" : "-") : (summary.LowScore.HasValue ? $"{summary.LowScore:N0}" : "-")) + : (onlyShowLongest ? (summary.LowScore.HasValue ? $"{summary.LowScore:N0}" : "-") : (summary.HighScore.HasValue ? $"{summary.HighScore:N0}" : "-")); + break; + case BestRecordType.Longest: + this.lblFastest.Text = useSwitching ? $@"{Multilingual.GetWord(this.switchCount == 0 ? "overlay_longest" : "overlay_fastest")} :" + : $@"{Multilingual.GetWord(onlyShowLongest ? "overlay_fastest" : "overlay_longest")} :"; + this.lblFastest.TextRight = useSwitching ? (this.switchCount == 0 ? (summary.LongestFinish.HasValue ? $"{summary.LongestFinish:m\\:ss\\.fff}" : "-") : (summary.FastestFinish.HasValue ? $"{summary.FastestFinish:m\\:ss\\.fff}" : "-")) + : (onlyShowLongest ? (summary.FastestFinish.HasValue ? $"{summary.FastestFinish:m\\:ss\\.fff}" : "-") : (summary.LongestFinish.HasValue ? $"{summary.LongestFinish:m\\:ss\\.fff}" : "-")); + break; + case BestRecordType.Fastest: + default: + this.lblFastest.Text = useSwitching ? $@"{Multilingual.GetWord(this.switchCount == 0 ? "overlay_fastest" : "overlay_longest")} :" + : $@"{Multilingual.GetWord(onlyShowLongest ? "overlay_longest" : "overlay_fastest")} :"; + this.lblFastest.TextRight = useSwitching ? (this.switchCount == 0 ? (summary.FastestFinish.HasValue ? $"{summary.FastestFinish:m\\:ss\\.fff}" : "-") : (summary.LongestFinish.HasValue ? $"{summary.LongestFinish:m\\:ss\\.fff}" : "-")) + : (onlyShowLongest ? (summary.LongestFinish.HasValue ? $"{summary.LongestFinish:m\\:ss\\.fff}" : "-") : (summary.FastestFinish.HasValue ? $"{summary.FastestFinish:m\\:ss\\.fff}" : "-")); + break; + + } + } + } + } + + private void SetPlayersLabel(LevelType type, BestRecordType bestRecordType, int setting) { + if (this.StatsForm.CurrentSettings.DisplayCurrentTime && !Stats.IsConnectedToServer && (setting == 0 || setting == 1 || setting == 4 || setting == 5)) { + this.lblPlayers.Image = null; + this.lblPlayersPs.DrawVisible = false; + this.lblPlayersXbox.DrawVisible = false; + this.lblPlayersSwitch.DrawVisible = false; + this.lblPlayersPc.DrawVisible = false; + this.lblPlayersMobile.DrawVisible = false; + this.lblCountryIcon.DrawVisible = false; + this.lblPingIcon.DrawVisible = false; + this.lblPlayers.OverlaySetting = setting; + this.lblPlayers.TickProgress = DateTime.Now.Second; + this.lblPlayers.Text = $@"{Multilingual.GetWord("overlay_current_time")} :"; + this.lblPlayers.TextRight = $"{DateTime.Now:HH\\:mm\\:ss}"; + } else { + this.lblPlayers.TickProgress = 0; + int playersSwitchCount = this.switchCount; + if (!this.StatsForm.CurrentSettings.SwitchBetweenPlayers) { + playersSwitchCount = this.StatsForm.CurrentSettings.OnlyShowPing ? 1 : 0; + } + switch (playersSwitchCount % 2) { + case 0: + if (this.StatsForm.CurrentSettings.PlayerByConsoleType) { + this.lblPlayers.Image = Properties.Resources.player_icon; + this.lblPlayers.Text = @"ㅤ :"; + // this.lblPlayers.TextRight = $"{this.lastRound?.Players}"; + this.lblPlayers.TextRight = string.Empty; + int psCount = this.lastRound.PlayersPs4 + this.lastRound.PlayersPs5; + int xbCount = this.lastRound.PlayersXb1 + this.lastRound.PlayersXsx; + int swCount = this.lastRound.PlayersSw; + int pcCount = this.lastRound.PlayersPc; + int mobileCount = this.lastRound.PlayersAndroid + this.lastRound.PlayersIos; + if (this.StatsForm.CurrentSettings.CountPlayersDuringTheLevel) { + if (type == LevelType.Survival || type == LevelType.CreativeSurvival) { + psCount -= Stats.NumPlayersPsEliminated; + xbCount -= Stats.NumPlayersXbEliminated; + swCount -= Stats.NumPlayersSwEliminated; + pcCount -= Stats.NumPlayersPcEliminated; + mobileCount -= Stats.NumPlayersMbEliminated; + } else if (type == LevelType.Logic || type == LevelType.CreativeLogic) { + if (bestRecordType == BestRecordType.Fastest) { + if (Stats.NumPlayersSucceeded > 0) { + psCount = Stats.NumPlayersPsSucceeded; + xbCount = Stats.NumPlayersXbSucceeded; + swCount = Stats.NumPlayersSwSucceeded; + pcCount = Stats.NumPlayersPcSucceeded; + mobileCount = Stats.NumPlayersMbSucceeded; + } else { + psCount -= Stats.NumPlayersPsEliminated; + xbCount -= Stats.NumPlayersXbEliminated; + swCount -= Stats.NumPlayersSwEliminated; + pcCount -= Stats.NumPlayersPcEliminated; + mobileCount -= Stats.NumPlayersMbEliminated; + } + } else if (bestRecordType == BestRecordType.Longest) { + psCount -= Stats.NumPlayersPsEliminated; + xbCount -= Stats.NumPlayersXbEliminated; + swCount -= Stats.NumPlayersSwEliminated; + pcCount -= Stats.NumPlayersPcEliminated; + mobileCount -= Stats.NumPlayersMbEliminated; + } + } else if (type == LevelType.Race || type == LevelType.CreativeRace || type == LevelType.Hunt || type == LevelType.CreativeHunt || type == LevelType.Team || type == LevelType.CreativeTeam) { + if (Stats.NumPlayersSucceeded > 0) { + psCount = Stats.NumPlayersPsSucceeded; + xbCount = Stats.NumPlayersXbSucceeded; + swCount = Stats.NumPlayersSwSucceeded; + pcCount = Stats.NumPlayersPcSucceeded; + mobileCount = Stats.NumPlayersMbSucceeded; + } else { + psCount -= Stats.NumPlayersPsEliminated; + xbCount -= Stats.NumPlayersXbEliminated; + swCount -= Stats.NumPlayersSwEliminated; + pcCount -= Stats.NumPlayersPcEliminated; + mobileCount -= Stats.NumPlayersMbEliminated; + } + } else { + if (Stats.NumPlayersSucceeded > 0) { + psCount = Stats.NumPlayersPsSucceeded; + xbCount = Stats.NumPlayersXbSucceeded; + swCount = Stats.NumPlayersSwSucceeded; + pcCount = Stats.NumPlayersPcSucceeded; + mobileCount = Stats.NumPlayersMbSucceeded; + } else { + psCount -= Stats.NumPlayersPsEliminated; + xbCount -= Stats.NumPlayersXbEliminated; + swCount -= Stats.NumPlayersSwEliminated; + pcCount -= Stats.NumPlayersPcEliminated; + mobileCount -= Stats.NumPlayersMbEliminated; + } + } + } + this.lblPlayersPs.TextRight = psCount <= 0 ? "-" : $"{psCount}"; + this.lblPlayersPs.Size = new Size(psCount > 9 ? 31 : 25, 16); + this.lblPlayersPs.DrawVisible = true; + this.lblPlayersXbox.TextRight = xbCount <= 0 ? "-" : $"{xbCount}"; + this.lblPlayersXbox.Size = new Size(xbCount > 9 ? 31 : 25, 16); + this.lblPlayersXbox.DrawVisible = true; + this.lblPlayersSwitch.TextRight = swCount <= 0 ? "-" : $"{swCount}"; + this.lblPlayersSwitch.Size = new Size(swCount > 9 ? 31 : 25, 16); + this.lblPlayersSwitch.DrawVisible = true; + this.lblPlayersPc.TextRight = pcCount <= 0 ? "-" : $"{pcCount}"; + this.lblPlayersPc.Size = new Size(pcCount > 9 ? 31 : 25, 16); + this.lblPlayersPc.DrawVisible = true; + this.lblPlayersMobile.TextRight = mobileCount <= 0 ? "-" : $"{mobileCount}"; + this.lblPlayersMobile.Size = new Size(mobileCount > 9 ? 27 : 21, 16); + this.lblPlayersMobile.DrawVisible = true; + this.lblCountryIcon.DrawVisible = false; + this.lblPingIcon.DrawVisible = false; + } else { + this.lblPlayers.Image = null; + this.lblPlayers.Text = $@"{Multilingual.GetWord("overlay_players")} :"; + if (this.StatsForm.CurrentSettings.CountPlayersDuringTheLevel) { + if (type == LevelType.Survival || type == LevelType.CreativeSurvival) { + this.lblPlayers.TextRight = $"{(this.lastRound.Players - Stats.NumPlayersEliminated >= 0 ? this.lastRound.Players - Stats.NumPlayersEliminated : this.lastRound.Players)}"; + } else if (type == LevelType.Logic || type == LevelType.CreativeLogic) { + if (bestRecordType == BestRecordType.Fastest) { + if (this.lastRound.Players - Stats.NumPlayersEliminated >= 0) { + this.lblPlayers.TextRight = $"{(Stats.NumPlayersSucceeded > 0 ? Stats.NumPlayersSucceeded + " / " : "")}{this.lastRound.Players - Stats.NumPlayersEliminated}"; + } else { + this.lblPlayers.TextRight = $"{(Stats.NumPlayersSucceeded > 0 ? Stats.NumPlayersSucceeded + " / " : "")}{this.lastRound.Players}"; + } + } else if (bestRecordType == BestRecordType.Longest) { + this.lblPlayers.TextRight = $"{(this.lastRound.Players - Stats.NumPlayersEliminated >= 0 ? this.lastRound.Players - Stats.NumPlayersEliminated : this.lastRound.Players)}"; + } + } else if (type == LevelType.Race || type == LevelType.CreativeRace || type == LevelType.Hunt || type == LevelType.CreativeHunt || type == LevelType.Team || type == LevelType.CreativeTeam) { + if (this.lastRound.Players - Stats.NumPlayersEliminated >= 0) { + this.lblPlayers.TextRight = $"{(Stats.NumPlayersSucceeded > 0 ? Stats.NumPlayersSucceeded + " / " : "")}{this.lastRound.Players - Stats.NumPlayersEliminated}"; + } else { + this.lblPlayers.TextRight = $"{(Stats.NumPlayersSucceeded > 0 ? Stats.NumPlayersSucceeded + " / " : "")}{this.lastRound.Players}"; + } + } else { + if (this.lastRound.Players - Stats.NumPlayersEliminated >= 0) { + this.lblPlayers.TextRight = $"{(Stats.NumPlayersSucceeded > 0 ? Stats.NumPlayersSucceeded + " / " : "")}{this.lastRound.Players - Stats.NumPlayersEliminated}"; + } else { + this.lblPlayers.TextRight = $"{(Stats.NumPlayersSucceeded > 0 ? Stats.NumPlayersSucceeded + " / " : "")}{this.lastRound.Players}"; + } + } + } else { + this.lblPlayers.TextRight = $"{this.lastRound.Players}"; + } + this.lblPlayersPs.DrawVisible = false; + this.lblPlayersXbox.DrawVisible = false; + this.lblPlayersSwitch.DrawVisible = false; + this.lblPlayersPc.DrawVisible = false; + this.lblPlayersMobile.DrawVisible = false; + this.lblCountryIcon.DrawVisible = false; + this.lblPingIcon.DrawVisible = false; + } + break; + case 1: + this.lblPlayers.Image = null; + this.lblPlayersPs.DrawVisible = false; + this.lblPlayersXbox.DrawVisible = false; + this.lblPlayersSwitch.DrawVisible = false; + this.lblPlayersPc.DrawVisible = false; + this.lblPlayersMobile.DrawVisible = false; + this.lblCountryIcon.DrawVisible = true; + this.lblPingIcon.DrawVisible = true; + if (Stats.IsBadServerPing) { + this.lblCountryIcon.ImageX = 50; + this.lblCountryIcon.Image = string.IsNullOrEmpty(Stats.LastCountryAlpha2Code) ? null : (Image)Properties.Resources.ResourceManager.GetObject($"country_{Stats.LastCountryAlpha2Code}{(this.StatsForm.CurrentSettings.ShadeTheFlagImage ? "_shiny" : "")}_icon"); + this.lblPingIcon.ImageX = 50; + this.lblPingIcon.Image = Properties.Resources.ping_100_icon; + this.lblPingIcon.PingColor = Color.Red; + } else { + if (Stats.LastServerPing >= 100 && 199 >= Stats.LastServerPing) { + this.lblPlayers.PingColor = Color.Orange; + this.lblPingIcon.PingColor = Color.Orange; + } else if (Stats.LastServerPing >= 200) { + this.lblPlayers.PingColor = Color.Red; + this.lblPingIcon.PingColor = Color.Red; + } else { + this.lblPlayers.PingColor = Color.Green; + } + this.lblCountryIcon.Image = (Image)(!string.IsNullOrEmpty(Stats.LastCountryAlpha2Code) && Stats.IsConnectedToServer && Stats.LastServerPing > 0 ? Properties.Resources.ResourceManager.GetObject($"country_{Stats.LastCountryAlpha2Code}{(this.StatsForm.CurrentSettings.ShadeTheFlagImage ? "_shiny" : "")}_icon") : null); + this.lblCountryIcon.ImageX = (Stats.IsConnectedToServer && Stats.LastServerPing < 1000) + ? (Stats.LastServerPing > 0 && 9 >= Stats.LastServerPing ? 39 + : Stats.LastServerPing >= 10 && 99 >= Stats.LastServerPing ? 30 + : Stats.LastServerPing >= 100 && 199 >= Stats.LastServerPing ? -3 + : Stats.LastServerPing >= 200 && 999 >= Stats.LastServerPing ? -6 : 0) : -12; + + this.lblPingIcon.Image = (Stats.IsConnectedToServer && Stats.LastServerPing > 99 && 200 > Stats.LastServerPing) ? Properties.Resources.ping_100_icon + : (Stats.IsConnectedToServer && Stats.LastServerPing >= 200 ? Properties.Resources.ping_100_icon : null); + this.lblPingIcon.ImageX = (Stats.IsConnectedToServer && Stats.LastServerPing >= 100 && 199 >= Stats.LastServerPing) ? -2 + : (Stats.IsConnectedToServer && Stats.LastServerPing >= 200 && 999 >= Stats.LastServerPing) ? -6 + : (Stats.IsConnectedToServer && Stats.LastServerPing > 999) ? -9 : 0; + + if (!string.Equals(this.Font.FontFamily.Name, GetDefaultFontFamilies().Name)) { + this.lblCountryIcon.ImageX += 7; + this.lblPingIcon.ImageX += 6; + } + } + + this.lblPlayers.Text = $@"{Multilingual.GetWord("overlay_ping")} :"; + this.lblPlayers.TextRight = (Stats.IsConnectedToServer && Stats.LastServerPing > 0) ? $"{Stats.LastServerPing} ms" : "-"; + break; + } + } + } + + private void SetDurationLabel(int timeLimit, DateTime currentUtc, int setting) { + if (this.StatsForm.CurrentSettings.DisplayCurrentTime && !Stats.IsConnectedToServer && (setting == 0 || setting == 2 || setting == 4)) { + this.lblDuration.OverlaySetting = setting; + this.lblDuration.TickProgress = 0; + this.lblDuration.Text = ""; + this.lblDuration.TextRight = $@"{DateTime.Now.ToString(Multilingual.GetWord("level_date_format"), Utils.GetCultureInfo())}"; + } else if (this.StatsForm.CurrentSettings.DisplayCurrentTime && !Stats.IsConnectedToServer && setting == 6) { + this.lblDuration.OverlaySetting = setting; + this.lblDuration.TickProgress = DateTime.Now.Second; + this.lblDuration.Text = $@"{Multilingual.GetWord("overlay_current_time")} :"; + this.lblDuration.TextRight = $"{DateTime.Now:HH\\:mm\\:ss}"; + } else { + this.lblDuration.TickProgress = 0; + this.lblDuration.Text = timeLimit > 0 ? $"{Multilingual.GetWord("overlay_duration")} ({TimeSpan.FromSeconds(timeLimit):m\\:ss}) :" : $"{Multilingual.GetWord("overlay_duration")} :"; + + DateTime start = this.lastRound.Start; + DateTime end = this.lastRound.End; + TimeSpan runningTime = start > currentUtc ? currentUtc - this.startTime : currentUtc - start; + int maxRunningTime = 30; // in minutes + + if (!Stats.IsDisplayOverlayTime) { + this.lblDuration.TextRight = "-"; + } else if (Stats.LastPlayedRoundEnd.HasValue && Stats.LastPlayedRoundEnd > Stats.LastPlayedRoundStart) { + TimeSpan time = Stats.LastPlayedRoundEnd.Value - Stats.LastPlayedRoundStart.Value; + bool isExtraTime = timeLimit > 0 && TimeSpan.FromSeconds(timeLimit) < time; + this.lblDuration.TextRight = timeLimit > 0 ? $"{(isExtraTime ? "+ " : "")}{TimeSpan.FromSeconds(timeLimit) - time:m\\:ss\\.fff}" : $"{time:m\\:ss\\.fff}"; + } else if (Stats.IsLastPlayedRoundStillPlaying) { + bool isOverRunningTime = runningTime.TotalMinutes >= maxRunningTime || !Stats.IsGameRunning; + runningTime = timeLimit > 0 ? TimeSpan.FromSeconds(timeLimit) - (currentUtc - Stats.LastPlayedRoundStart.GetValueOrDefault(currentUtc)) : currentUtc - Stats.LastPlayedRoundStart.GetValueOrDefault(currentUtc); + bool isExtraTime = timeLimit > 0 && TimeSpan.FromSeconds(timeLimit) < (currentUtc - Stats.LastPlayedRoundStart.GetValueOrDefault(currentUtc)); + this.lblDuration.TextRight = isOverRunningTime ? "-" : $"{(isExtraTime ? "+ " : "")}{runningTime:m\\:ss}"; + } else if (end != DateTime.MinValue) { + TimeSpan time = end - start; + bool isExtraTime = timeLimit > 0 && TimeSpan.FromSeconds(timeLimit) < time; + this.lblDuration.TextRight = timeLimit > 0 ? $"{(isExtraTime ? "+ " : "")}{TimeSpan.FromSeconds(timeLimit) - time:m\\:ss\\.fff}" : $"{time:m\\:ss\\.fff}"; + } else if (this.lastRound.Playing) { + bool isExtraTime = timeLimit > 0 && TimeSpan.FromSeconds(timeLimit) < runningTime; + this.lblDuration.TextRight = timeLimit > 0 ? $"{(isExtraTime ? "+ " : "")}{TimeSpan.FromSeconds(timeLimit) - runningTime:m\\:ss}" : $"{runningTime:m\\:ss}"; + } else { + this.lblDuration.TextRight = "-"; + } + } + } + + private void SetFinishLabel(StatSummary summary, LevelType type, string roundId, BestRecordType record, DateTime currentUtc, int setting) { + if (this.StatsForm.CurrentSettings.DisplayCurrentTime && !Stats.IsConnectedToServer && setting == 6) { + this.lblFinish.OverlaySetting = setting; + this.lblFinish.Text = ""; + this.lblFinish.TextRight = $@"{DateTime.Now.ToString(Multilingual.GetWord("level_date_format"), Utils.GetCultureInfo())}"; + this.lblFinish.ForeColor = this.ForeColor; + } else { + if ((this.lastRound.IsCasualShow || !Stats.InShow) && Stats.IsQueuing && (setting == 0 || setting == 2 || setting == 4)) { + this.lblFinish.ImageWidth = 20; + this.lblFinish.ImageHeight = 22; + this.targetLabel = this.lblFinish; + this.tmrQueued.Start(); + this.lblFinish.Text = $@"{Multilingual.GetWord("overlay_queued_players")} :"; + this.lblFinish.TextRight = Stats.QueuedPlayers.ToString(); + this.lblFinish.ForeColor = this.ForeColor; + } else { + this.lblFinish.Text = $@"{Multilingual.GetWord("overlay_finish")} :"; + DateTime start = this.lastRound.Start; + DateTime end = this.lastRound.End; + DateTime? finish = this.lastRound.Finish; + TimeSpan runningTime = start > currentUtc ? currentUtc - this.startTime : currentUtc - start; + int maxRunningTime = 30; // in minutes + float fBrightness = 0.7f; + + if (!Stats.IsDisplayOverlayTime) { + this.lblFinish.TextRight = "-"; + this.lblFinish.ForeColor = this.ForeColor; + } else if (finish.HasValue) { + TimeSpan time = finish.GetValueOrDefault(start) - start; + if (this.lastRound.Crown) { + this.lblFinish.TextRight = this.StatsForm.CurrentSettings.DisplayGamePlayedInfo ? $"{Multilingual.GetWord("overlay_position_win")}! {time:m\\:ss\\.fff}" : $"{time:m\\:ss\\.fff}"; + } else { + switch (type) { + case LevelType.CreativeSurvival: + case LevelType.Survival: + this.lblFinish.TextRight = record == BestRecordType.Fastest ? (this.StatsForm.CurrentSettings.DisplayGamePlayedInfo && this.lastRound.Position > 0) ? $"# {Multilingual.GetWord("overlay_position_prefix")}{this.lastRound.Position}{Multilingual.GetWord("overlay_position_suffix")} - {time:m\\:ss\\.fff}" : $"{time:m\\:ss\\.fff}" + : (this.StatsForm.CurrentSettings.DisplayGamePlayedInfo && this.lastRound.Position > 0) ? $"{this.lastRound.Position} {Multilingual.GetWord("overlay_position_survived")}! {time:m\\:ss\\.fff}" : $"{time:m\\:ss\\.fff}"; + break; + case LevelType.CreativeLogic: + case LevelType.Logic: + case LevelType.CreativeHunt: + case LevelType.Hunt: + case LevelType.CreativeTeam: + case LevelType.Team: + case LevelType.Invisibeans: + this.lblFinish.TextRight = (this.StatsForm.CurrentSettings.DisplayGamePlayedInfo && this.lastRound.Position > 0) ? $"{Multilingual.GetWord("overlay_position_qualified")}! {time:m\\:ss\\.fff}" : $"{time:m\\:ss\\.fff}"; + break; + case LevelType.CreativeRace: + case LevelType.Race: + default: + this.lblFinish.TextRight = (this.StatsForm.CurrentSettings.DisplayGamePlayedInfo && this.lastRound.Position > 0) ? $"# {Multilingual.GetWord("overlay_position_prefix")}{this.lastRound.Position}{Multilingual.GetWord("overlay_position_suffix")} - {time:m\\:ss\\.fff}" : $"{time:m\\:ss\\.fff}"; + break; + } + } + + if (record == BestRecordType.Fastest) { + if (time < summary.FastestFinish.GetValueOrDefault(TimeSpan.MaxValue) && time > summary.FastestFinishOverall.GetValueOrDefault(TimeSpan.MaxValue)) { + this.lblFinish.ForeColor = Color.LightGreen; + } else if (time < summary.FastestFinishOverall.GetValueOrDefault(TimeSpan.MaxValue)) { + this.lblFinish.ForeColor = Color.Gold; + } else { + this.lblFinish.ForeColor = this.ForeColor; + } + } else if (record == BestRecordType.Longest) { + if (time > summary.LongestFinish && time < summary.LongestFinishOverall) { + this.lblFinish.ForeColor = Color.LightGreen; + } else if (time > summary.LongestFinishOverall) { + this.lblFinish.ForeColor = Color.Gold; + } else { + this.lblFinish.ForeColor = this.ForeColor; + } + } else { + this.lblFinish.ForeColor = this.ForeColor; + } + } else if (end != DateTime.MinValue) { + TimeSpan time = end - start; + this.lblFinish.TextRight = (this.StatsForm.CurrentSettings.DisplayGamePlayedInfo && this.lastRound.Crown) ? $"{Multilingual.GetWord("overlay_position_win")}! {time:m\\:ss\\.fff}" : + (this.StatsForm.CurrentSettings.DisplayGamePlayedInfo && (!(Stats.InShow && !Stats.EndedShow) || this.lastRound.IsCasualShow)) ? $"{Multilingual.GetWord("overlay_position_eliminated")}! {time:m\\:ss\\.fff}" : + $"{time:m\\:ss\\.fff}"; + this.lblFinish.ForeColor = this.lastRound.Crown || (Stats.InShow && !Stats.EndedShow && !this.lastRound.IsCasualShow) ? this.ForeColor : Utils.GetColorBrightnessAdjustment(this.ForeColor, fBrightness); + } else if (this.lastRound.Playing) { + bool isOverRunningTime = runningTime.TotalMinutes >= maxRunningTime || !Stats.IsGameRunning; + this.lblFinish.TextRight = isOverRunningTime ? "-" : $"{runningTime:m\\:ss}"; + this.lblFinish.ForeColor = isOverRunningTime ? Utils.GetColorBrightnessAdjustment(this.ForeColor, fBrightness) : (!Stats.EndedShow ? this.ForeColor : Utils.GetColorBrightnessAdjustment(this.ForeColor, fBrightness)); + } else { + this.lblFinish.TextRight = "-"; + this.lblFinish.ForeColor = Stats.InShow && !Stats.EndedShow ? this.ForeColor : Utils.GetColorBrightnessAdjustment(this.ForeColor, fBrightness); + } + } + } + } + + private void LoadingTimer_Tick(object sender, EventArgs e) { + if (!Stats.IsQueuing) { + this.targetLabel.Image = null; + this.targetLabel = null; + this.tmrQueued.Stop(); + } else { + this.transitionCounter++; + + if (this.targetLabel != null) { + int ols = this.GetDisplaySetting(); + int labelX = this.targetLabel.Width - 63; + if (Stats.CurrentLanguage == Language.Japanese && string.Equals(this.targetLabel.Name, "lblFastest") && ols == 6) { + labelX = this.targetLabel.Width - 5; // animated image is placed after the number of queued players + } + + int sequence = (transitionCounter - 1) % 10 + 1; + switch (sequence) { + case 1: this.targetLabel.ImageX = labelX + 2; this.targetLabel.ImageY = 3; break; + case 2: this.targetLabel.ImageX = labelX + 2; this.targetLabel.ImageY = 1; break; + case 3: this.targetLabel.ImageX = labelX + 3; this.targetLabel.ImageY = 0; break; + case 4: this.targetLabel.ImageX = labelX + 4; this.targetLabel.ImageY = 0; break; + case 5: this.targetLabel.ImageX = labelX + 5; this.targetLabel.ImageY = 1; break; + case 6: this.targetLabel.ImageX = labelX + 6; this.targetLabel.ImageY = 3; break; + case 7: this.targetLabel.ImageX = labelX + 5; this.targetLabel.ImageY = 1; break; + case 8: this.targetLabel.ImageX = labelX + 4; this.targetLabel.ImageY = 0; break; + case 9: this.targetLabel.ImageX = labelX + 3; this.targetLabel.ImageY = 0; break; + case 10: this.targetLabel.ImageX = labelX + 2; this.targetLabel.ImageY = 1; break; + } + this.targetLabel.Image = (Image)Properties.Resources.ResourceManager.GetObject($"loading_{sequence}"); + } + + if (this.transitionCounter >= 100) { + this.transitionCounter = 0; + } + } + } + + private void UpdateInfo() { + if (this.StatsForm == null) return; + + lock (this.StatsForm.CurrentRound) { + bool hasCurrentRound = this.StatsForm.CurrentRound != null && this.StatsForm.CurrentRound.Count > 0; + if (hasCurrentRound) { + this.lastRound = this.StatsForm.CurrentRound[this.StatsForm.CurrentRound.Count - 1]; + } + + this.lblFilter.Text = this.StatsForm.GetCurrentFilterName(); + this.lblProfile.Text = this.StatsForm.GetCurrentProfileName(); + + if (this.lastRound != null && !string.IsNullOrEmpty(this.lastRound.Name)) { + bool isRoundInfoNeedRefresh = (string.Equals(this.savedSessionId, this.lastRound.SessionId) && this.savedRoundNum != this.lastRound.Round) + || !string.Equals(this.savedSessionId, this.lastRound.SessionId) + || this.lastRound.Round == -1 + || Stats.IsOverlayRoundInfoNeedRefresh; + if (isRoundInfoNeedRefresh) { + if (Stats.IsOverlayRoundInfoNeedRefresh) { + Stats.IsOverlayRoundInfoNeedRefresh = false; + } + this.savedSessionId = this.lastRound.SessionId; + this.savedRoundNum = this.lastRound.Round; + + this.levelId = this.lastRound.VerifiedName(); + + if (this.StatsForm.StatLookup.TryGetValue(this.levelId, out this.levelStats)) { + this.levelName = this.levelStats.Name.ToUpper(); + } else if (this.levelId.StartsWith("round_", StringComparison.OrdinalIgnoreCase)) { + this.levelName = this.levelId.Substring(6).Replace('_', ' ').ToUpper(); + } else if (this.lastRound.UseShareCode && this.StatsForm.StatLookup.TryGetValue(this.lastRound.ShowNameId, out this.levelStats)) { + this.levelName = !string.IsNullOrEmpty(this.lastRound.CreativeTitle) ? this.lastRound.CreativeTitle : this.StatsForm.GetUserCreativeLevelTitle(this.levelId); + } else { + this.levelName = this.levelId.Replace('_', ' ').ToUpper(); + } + + this.levelType = (this.levelStats?.Type).GetValueOrDefault(LevelType.Unknown); + this.recordType = (this.levelStats?.BestRecordType).GetValueOrDefault(BestRecordType.Fastest); + this.roundIcon = this.levelType != LevelType.Unknown ? this.levelStats.RoundBigIcon : Properties.Resources.round_unknown_big_icon; + this.levelSummary = this.StatsForm.GetLevelInfo(this.levelId, this.levelType, this.recordType, this.lastRound.UseShareCode); + } + + int overlaySetting = this.GetDisplaySetting(); + + this.SetWinsLabel(this.levelSummary, overlaySetting); + this.SetFinalsLabel(this.levelSummary, overlaySetting); + this.SetStreakLabel(this.levelSummary, overlaySetting); + this.SetRoundLabel(this.roundIcon, this.levelType, this.levelName, overlaySetting); + this.SetQualifyChanceLabel(this.levelSummary, overlaySetting); + this.SetFastestLabel(this.levelSummary, this.recordType, overlaySetting); + this.SetPlayersLabel(this.levelType, this.recordType, overlaySetting); + + if (this.isTimeToSwitch) { + this.frameCount = 0; + this.switchCount ^= 1; + } + + DateTime currentUtc = DateTime.UtcNow; + if (this.lastRound.Playing != this.startedPlaying) { + if (this.lastRound.Playing) { + this.startTime = currentUtc; + } + this.startedPlaying = this.lastRound.Playing; + } + + lock (this.StatsForm.LevelTimeLimitCache) { + this.levelTimeLimit = this.lastRound.IsCasualShow && (this.levelType == LevelType.CreativeRace || this.levelType == LevelType.CreativeHunt) ? 1800 : + this.lastRound.UseShareCode ? this.lastRound.CreativeTimeLimitSeconds : + this.StatsForm.LevelTimeLimitCache.Find(l => string.Equals(l.LevelId, this.lastRound.RoundId ?? this.lastRound.Name))?.Duration ?? 0; + } + + this.SetDurationLabel(this.levelTimeLimit, currentUtc, overlaySetting); + this.SetFinishLabel(this.levelSummary, this.levelType, this.levelId, this.recordType, currentUtc, overlaySetting); + } + this.Invalidate(); + } + } + + protected override void OnPaint(PaintEventArgs e) { + lock (DefaultFont) { + this.DrawGraphics.Clear(Color.Transparent); + this.DrawGraphics.DrawImage(this.Background, 0, 0); + + foreach (Control control in this.Controls) { + if (control is TransparentLabel label) { + this.DrawGraphics.TranslateTransform(label.Location.X, label.Location.Y); + label.Draw(this.DrawGraphics); + this.DrawGraphics.TranslateTransform(-label.Location.X, -label.Location.Y); + } + } + + e.Graphics.InterpolationMode = InterpolationMode.Default; + e.Graphics.PixelOffsetMode = PixelOffsetMode.None; + e.Graphics.SmoothingMode = SmoothingMode.None; + e.Graphics.DrawImage(this.DrawImage, new Rectangle(0, 0, this.ClientSize.Width, this.ClientSize.Height), new Rectangle(0, 0, this.DrawImage.Width, this.DrawImage.Height), GraphicsUnit.Pixel); + } + } + + private void Overlay_MouseWheel(object sender, MouseEventArgs e) { + if (this.shiftKeyToggle == false) return; + if (this.StatsForm.ProfileMenuItems.Count <= 1) return; + if ((e.Delta / 120) > 0) { + for (int i = 0; i < this.StatsForm.ProfileMenuItems.Count; i++) { + ToolStripItem item = this.StatsForm.ProfileMenuItems[i]; + if (!(item is ToolStripMenuItem menuItem)) continue; + if (menuItem.Checked && i > 0) { + this.StatsForm.menuStats_Click(this.StatsForm.ProfileMenuItems[i - 1], EventArgs.Empty); + break; + } else if (menuItem.Checked && i == 0) { + this.StatsForm.menuStats_Click(this.StatsForm.ProfileMenuItems[this.StatsForm.ProfileMenuItems.Count - 1], EventArgs.Empty); + break; + } + } + } else { + for (int i = 0; i < this.StatsForm.ProfileMenuItems.Count; i++) { + ToolStripItem item = this.StatsForm.ProfileMenuItems[i]; + if (!(item is ToolStripMenuItem menuItem)) continue; + if (menuItem.Checked && i + 1 < this.StatsForm.ProfileMenuItems.Count) { + this.StatsForm.menuStats_Click(this.StatsForm.ProfileMenuItems[i + 1], EventArgs.Empty); + break; + } else if (menuItem.Checked && i + 1 >= this.StatsForm.ProfileMenuItems.Count) { + this.StatsForm.menuStats_Click(this.StatsForm.ProfileMenuItems[0], EventArgs.Empty); + break; + } + } + } + } + + private void Overlay_KeyUp(object sender, KeyEventArgs e) { + switch (e.KeyCode) { + case Keys.ControlKey: + this.ctrlKeyToggle = false; + break; + case Keys.ShiftKey: + this.shiftKeyToggle = false; + break; + } + } + + private void Overlay_KeyDown(object sender, KeyEventArgs e) { + switch (e.KeyCode) { + case Keys.ControlKey: + this.ctrlKeyToggle = true; + break; + case Keys.ShiftKey: + this.shiftKeyToggle = true; + break; + } + + switch (e.Control) { + case true when e.KeyCode == Keys.M: + this.StatsForm.CurrentSettings.OverlayNotOnTop = !this.StatsForm.CurrentSettings.OverlayNotOnTop; + this.StatsForm.SetOverlayTopMost(!this.StatsForm.CurrentSettings.OverlayNotOnTop); + this.StatsForm.SaveUserSettings(); + break; + case true when e.Shift && e.KeyCode == Keys.Z: + this.StatsForm.SetAutoChangeProfile(!this.StatsForm.CurrentSettings.AutoChangeProfile); + break; + case true when e.Shift && e.KeyCode == Keys.X: + this.ResetOverlaySize(); + break; + case true when e.Shift && e.KeyCode == Keys.C: + this.ResetOverlayLocation(); + break; + case true when e.Shift && e.KeyCode == Keys.Up: + this.StatsForm.SetOverlayBackgroundOpacity(this.StatsForm.CurrentSettings.OverlayBackgroundOpacity + 5); + break; + case true when e.Shift && e.KeyCode == Keys.Down: + this.StatsForm.SetOverlayBackgroundOpacity(this.StatsForm.CurrentSettings.OverlayBackgroundOpacity - 5); + break; + case true when e.KeyCode == Keys.O: + this.StatsForm.ToggleOverlay(this); + break; + case true when e.KeyCode == Keys.T: + int colorOption = 0; + if (BackColor.ToArgb() == Color.FromArgb(224, 224, 224).ToArgb()) { + colorOption = 1; + } else if (BackColor.ToArgb() == Color.White.ToArgb()) { + colorOption = 2; + } else if (BackColor.ToArgb() == Color.Black.ToArgb()) { + colorOption = 3; + } else if (BackColor.ToArgb() == Color.Magenta.ToArgb()) { + colorOption = 4; + } else if (BackColor.ToArgb() == Color.Red.ToArgb()) { + colorOption = 5; + } else if (BackColor.ToArgb() == Color.Green.ToArgb()) { + colorOption = 6; + } else if (BackColor.ToArgb() == Color.Blue.ToArgb()) { + colorOption = 0; + } + this.SetBackgroundColor(colorOption); + this.StatsForm.CurrentSettings.OverlayColor = colorOption; + this.StatsForm.SaveUserSettings(); + break; + case true when e.KeyCode == Keys.F: + if (!this.IsFixed()) { + this.FlipDisplay(!this.flippedImage); + this.StatsForm.CurrentSettings.FlippedDisplay = this.flippedImage; + this.StatsForm.SaveUserSettings(); + this.UpdateDisplay(); + } + break; + case true when e.KeyCode == Keys.R: + this.StatsForm.CurrentSettings.ColorByRoundType = !this.StatsForm.CurrentSettings.ColorByRoundType; + this.StatsForm.SaveUserSettings(); + this.UpdateDisplay(); + break; + case true when e.KeyCode == Keys.C: + this.StatsForm.CurrentSettings.PlayerByConsoleType = !this.StatsForm.CurrentSettings.PlayerByConsoleType; + this.StatsForm.SaveUserSettings(); + this.UpdateDisplay(); + break; + case false when e.Shift && (e.KeyCode == Keys.Up || e.KeyCode == Keys.Left || e.KeyCode == Keys.P): + if (this.StatsForm.ProfileMenuItems.Count > 1) { + for (int i = 0; i < this.StatsForm.ProfileMenuItems.Count; i++) { + ToolStripItem item = this.StatsForm.ProfileMenuItems[i]; + if (!(item is ToolStripMenuItem menuItem)) continue; + if (menuItem.Checked && i > 0) { + this.StatsForm.menuStats_Click(this.StatsForm.ProfileMenuItems[i - 1], EventArgs.Empty); + break; + } else if (menuItem.Checked && i == 0) { + this.StatsForm.menuStats_Click(this.StatsForm.ProfileMenuItems[this.StatsForm.ProfileMenuItems.Count - 1], EventArgs.Empty); + break; + } + } + } + break; + case false when (e.Shift && (e.KeyCode == Keys.Down || e.KeyCode == Keys.Right)) || e.KeyCode == Keys.P: + if (this.StatsForm.ProfileMenuItems.Count > 1) { + for (int i = 0; i < this.StatsForm.ProfileMenuItems.Count; i++) { + ToolStripItem item = this.StatsForm.ProfileMenuItems[i]; + if (!(item is ToolStripMenuItem menuItem)) continue; + if (menuItem.Checked && i + 1 < this.StatsForm.ProfileMenuItems.Count) { + this.StatsForm.menuStats_Click(this.StatsForm.ProfileMenuItems[i + 1], EventArgs.Empty); + break; + } else if (menuItem.Checked && i + 1 >= this.StatsForm.ProfileMenuItems.Count) { + this.StatsForm.menuStats_Click(this.StatsForm.ProfileMenuItems[0], EventArgs.Empty); + break; + } + } + } + break; + case false when e.KeyCode == Keys.D1 || e.KeyCode == Keys.D2 || e.KeyCode == Keys.D3 || e.KeyCode == Keys.D4 || e.KeyCode == Keys.D5 || e.KeyCode == Keys.D6 || e.KeyCode == Keys.D7 || e.KeyCode == Keys.D8 || e.KeyCode == Keys.D9: + int index = Convert.ToInt32(((char)e.KeyValue).ToString()); + if (index <= this.StatsForm.ProfileMenuItems.Count) { + this.StatsForm.menuStats_Click(this.StatsForm.ProfileMenuItems[index - 1], EventArgs.Empty); + } + break; + } + e.SuppressKeyPress = true; + } + + public void ResetOverlaySize() { + this.StatsForm.CurrentSettings.OverlayWidth = this.DefaultSize.Width; + this.StatsForm.CurrentSettings.OverlayHeight = this.DefaultSize.Height; + this.StatsForm.SaveUserSettings(); + this.UpdateDisplay(); + } + + public void ResetOverlayLocation() { + this.Location = this.StatsForm.screenCenter; + this.StatsForm.CurrentSettings.OverlayLocationX = this.Location.X; + this.StatsForm.CurrentSettings.OverlayLocationY = this.Location.Y; + this.StatsForm.CurrentSettings.OverlayFixedPosition = string.Empty; + this.StatsForm.CurrentSettings.OverlayFixedPositionX = null; + this.StatsForm.CurrentSettings.OverlayFixedPositionY = null; + this.StatsForm.CurrentSettings.FixedFlippedDisplay = false; + this.StatsForm.SaveUserSettings(); + this.Cursor = Cursors.SizeAll; + this.SetFixedPosition(false, false, false, false, false); + this.SetBlurPositionMenu(); + this.picPositionLock.Image = this.positionUnlockBlur; + this.SetVisiblePositionMenu(true); + this.SetVisiblePositionLockButton(true); + this.UpdateDisplay(); + } + + public void SetBackgroundColor(int colorOption) { + switch (colorOption) { + case 0: this.BackColor = Color.FromArgb(224, 224, 224); break; + case 1: this.BackColor = Color.White; break; + case 2: this.BackColor = Color.Black; break; + case 3: this.BackColor = Color.Magenta; break; + case 4: this.BackColor = Color.Red; break; + case 5: this.BackColor = Color.Green; break; + case 6: this.BackColor = Color.Blue; break; + } + } + + public void ArrangeDisplay(bool initDisplay, bool flipDisplay, bool showTabs, bool hideWins, bool hideRound, bool hideTime, int colorOption, int lockButtonLocation, int? width, int? height, string serializedFont, string serializedFontColor) { + if (!this.IsFixed() || initDisplay) { + this.MaximumSize = new Size(0, 0); + this.MinimumSize = new Size(0, 0); + } + + this.FlipDisplay(false); + + int heightOffset = showTabs ? 35 : 0; + this.lblWins.Location = new Point(22, 9 + heightOffset); + this.lblFinals.Location = new Point(22, 32 + heightOffset); + this.lblStreak.Location = new Point(22, 55 + heightOffset); + + int spacerWidth = 6; + int firstColumnX = 22; + int firstColumnWidth = 242; + int secondColumnX = firstColumnX + firstColumnWidth + spacerWidth; + int secondColumnWidth = 281; + int thirdColumnX = secondColumnX + secondColumnWidth + spacerWidth; + int thirdColumnWidth = 225; + + this.lblWins.Size = new Size(firstColumnWidth, 22); + this.lblFinals.Size = new Size(firstColumnWidth, 22); + this.lblStreak.Size = new Size(firstColumnWidth, 22); + + this.drawWidth = firstColumnWidth + secondColumnWidth + thirdColumnWidth + (spacerWidth * 3) + firstColumnX - 2; + + int overlaySetting = (hideWins ? 4 : 0) + (hideRound ? 2 : 0) + (hideTime ? 1 : 0); + switch (overlaySetting) { + case 0: + this.DefaultSize = new Size(786, showTabs ? 134 : 99); + + this.lblWins.Location = new Point(firstColumnX, 9 + heightOffset); + this.lblWins.DrawVisible = true; + this.lblFinals.Location = new Point(firstColumnX, 32 + heightOffset); + this.lblFinals.DrawVisible = true; + this.lblStreak.Location = new Point(firstColumnX, 55 + heightOffset); + this.lblStreak.DrawVisible = true; + + this.lblRound.Location = new Point(secondColumnX, 9 + heightOffset); + this.lblRound.DrawVisible = true; + this.lblQualifyChance.Location = new Point(secondColumnX, 32 + heightOffset); + this.lblQualifyChance.DrawVisible = true; + this.lblFastest.Location = new Point(secondColumnX, 55 + heightOffset); + this.lblFastest.Size = new Size(secondColumnWidth, 22); + this.lblFastest.DrawVisible = true; + + this.lblPlayers.Location = new Point(thirdColumnX, 10 + heightOffset); + this.lblPlayers.Size = new Size(thirdColumnWidth, 22); + this.lblPlayers.DrawVisible = true; + this.lblCountryIcon.Location = new Point(thirdColumnX + 101, 9 + heightOffset); + this.lblCountryIcon.DrawVisible = true; + this.lblPingIcon.Location = new Point(thirdColumnX + 134, 14 + heightOffset); + this.lblPingIcon.DrawVisible = true; + + if (this.StatsForm.CurrentSettings.PlayerByConsoleType) { + this.lblPlayersPs.Location = new Point(thirdColumnX + 49, 12 + heightOffset); + this.lblPlayersPs.Size = new Size(25, 16); + this.lblPlayersPs.ImageWidth = 19; + this.lblPlayersPs.ImageHeight = 17; + this.lblPlayersPs.DrawVisible = true; + + this.lblPlayersXbox.Location = new Point(thirdColumnX + 86, 12 + heightOffset); + this.lblPlayersXbox.Size = new Size(25, 16); + this.lblPlayersXbox.ImageWidth = 17; + this.lblPlayersXbox.ImageHeight = 17; + this.lblPlayersXbox.DrawVisible = true; + + this.lblPlayersSwitch.Location = new Point(thirdColumnX + 123, 12 + heightOffset); + this.lblPlayersSwitch.Size = new Size(25, 16); + this.lblPlayersSwitch.ImageWidth = 17; + this.lblPlayersSwitch.ImageHeight = 17; + this.lblPlayersSwitch.DrawVisible = true; + + this.lblPlayersPc.Location = new Point(thirdColumnX + 160, 12 + heightOffset); + this.lblPlayersPc.Size = new Size(25, 16); + this.lblPlayersPc.ImageY = -1; + this.lblPlayersPc.ImageWidth = 17; + this.lblPlayersPc.ImageHeight = 18; + this.lblPlayersPc.DrawVisible = true; + + this.lblPlayersMobile.Location = new Point(thirdColumnX + 198, 12 + heightOffset); + this.lblPlayersMobile.Size = new Size(25, 16); + this.lblPlayersMobile.ImageY = -1; + this.lblPlayersMobile.ImageWidth = 11; + this.lblPlayersMobile.ImageHeight = 18; + this.lblPlayersMobile.DrawVisible = true; + } + + this.lblDuration.Location = new Point(thirdColumnX, 32 + heightOffset); + this.lblDuration.DrawVisible = true; + this.lblFinish.Location = new Point(thirdColumnX, 55 + heightOffset); + this.lblFinish.DrawVisible = true; + break; + case 1: + this.DefaultSize = new Size(555, showTabs ? 134 : 99); + + this.drawWidth -= thirdColumnWidth + spacerWidth; + + this.lblWins.Location = new Point(firstColumnX, 9 + heightOffset); + this.lblWins.DrawVisible = true; + this.lblFinals.Location = new Point(firstColumnX, 32 + heightOffset); + this.lblFinals.DrawVisible = true; + this.lblStreak.Location = new Point(firstColumnX, 55 + heightOffset); + this.lblStreak.DrawVisible = true; + + this.lblFastest.DrawVisible = false; + this.lblDuration.DrawVisible = false; + this.lblFinish.DrawVisible = false; + + this.lblRound.Location = new Point(secondColumnX, 9 + heightOffset); + this.lblRound.DrawVisible = true; + + this.lblPlayers.Location = new Point(secondColumnX, 32 + heightOffset); + this.lblPlayers.Size = new Size(secondColumnWidth, 22); + this.lblPlayers.DrawVisible = true; + this.lblCountryIcon.Location = new Point(secondColumnX + 159, 31 + heightOffset); + this.lblCountryIcon.DrawVisible = true; + this.lblPingIcon.Location = new Point(secondColumnX + 191, 36 + heightOffset); + this.lblPingIcon.DrawVisible = true; + + if (this.StatsForm.CurrentSettings.PlayerByConsoleType) { + this.lblPlayersPs.Location = new Point(secondColumnX + 56, 34 + heightOffset); + this.lblPlayersPs.Size = new Size(25, 16); + this.lblPlayersPs.ImageWidth = 19; + this.lblPlayersPs.ImageHeight = 17; + this.lblPlayersPs.DrawVisible = true; + + this.lblPlayersXbox.Location = new Point(secondColumnX + 100, 34 + heightOffset); + this.lblPlayersXbox.Size = new Size(25, 16); + this.lblPlayersXbox.ImageWidth = 17; + this.lblPlayersXbox.ImageHeight = 17; + this.lblPlayersXbox.DrawVisible = true; + + this.lblPlayersSwitch.Location = new Point(secondColumnX + 147, 34 + heightOffset); + this.lblPlayersSwitch.Size = new Size(25, 16); + this.lblPlayersSwitch.ImageWidth = 17; + this.lblPlayersSwitch.ImageHeight = 17; + this.lblPlayersSwitch.DrawVisible = true; + + this.lblPlayersPc.Location = new Point(secondColumnX + 194, 34 + heightOffset); + this.lblPlayersPc.Size = new Size(25, 16); + this.lblPlayersPc.ImageY = -1; + this.lblPlayersPc.ImageWidth = 17; + this.lblPlayersPc.ImageHeight = 18; + this.lblPlayersPc.DrawVisible = true; + + this.lblPlayersMobile.Location = new Point(secondColumnX + 241, 34 + heightOffset); + this.lblPlayersMobile.Size = new Size(25, 16); + this.lblPlayersMobile.ImageY = -1; + this.lblPlayersMobile.ImageWidth = 11; + this.lblPlayersMobile.ImageHeight = 18; + this.lblPlayersMobile.DrawVisible = true; + } + + this.lblQualifyChance.Location = new Point(secondColumnX, 55 + heightOffset); + this.lblQualifyChance.DrawVisible = true; + break; + case 2: + this.DefaultSize = new Size(499, showTabs ? 134 : 99); + + this.drawWidth -= secondColumnWidth + spacerWidth; + + this.lblWins.Location = new Point(firstColumnX, 9 + heightOffset); + this.lblWins.DrawVisible = true; + this.lblFinals.Location = new Point(firstColumnX, 32 + heightOffset); + this.lblFinals.DrawVisible = true; + this.lblStreak.Location = new Point(firstColumnX, 55 + heightOffset); + this.lblStreak.DrawVisible = true; + + this.lblRound.DrawVisible = false; + this.lblQualifyChance.DrawVisible = false; + this.lblPlayers.DrawVisible = false; + this.lblCountryIcon.DrawVisible = false; + this.lblCountryIcon.Location = new Point(999, 999); + this.lblPingIcon.DrawVisible = false; + this.lblPingIcon.Location = new Point(999, 999); + this.lblPlayersPs.DrawVisible = false; + this.lblPlayersPs.Location = new Point(999, 999); + this.lblPlayersXbox.DrawVisible = false; + this.lblPlayersXbox.Location = new Point(999, 999); + this.lblPlayersSwitch.DrawVisible = false; + this.lblPlayersSwitch.Location = new Point(999, 999); + this.lblPlayersPc.DrawVisible = false; + this.lblPlayersPc.Location = new Point(999, 999); + this.lblPlayersMobile.DrawVisible = false; + this.lblPlayersMobile.Location = new Point(999, 999); + + this.lblFastest.Location = new Point(secondColumnX, 9 + heightOffset); + this.lblFastest.Size = new Size(thirdColumnWidth, 22); + this.lblFastest.DrawVisible = true; + this.lblDuration.Location = new Point(secondColumnX, 32 + heightOffset); + this.lblDuration.DrawVisible = true; + this.lblFinish.Location = new Point(secondColumnX, 55 + heightOffset); + this.lblFinish.DrawVisible = true; + break; + case 3: + this.DefaultSize = new Size(268, showTabs ? 134 : 99); + + this.drawWidth -= secondColumnWidth + thirdColumnWidth + (spacerWidth * 2); + + this.lblWins.Location = new Point(firstColumnX, 9 + heightOffset); + this.lblWins.DrawVisible = true; + this.lblFinals.Location = new Point(firstColumnX, 32 + heightOffset); + this.lblFinals.DrawVisible = true; + this.lblStreak.Location = new Point(firstColumnX, 55 + heightOffset); + this.lblStreak.DrawVisible = true; + + this.lblRound.DrawVisible = false; + this.lblQualifyChance.DrawVisible = false; + this.lblPlayers.DrawVisible = false; + this.lblCountryIcon.DrawVisible = false; + this.lblCountryIcon.Location = new Point(999, 999); + this.lblPingIcon.DrawVisible = false; + this.lblPingIcon.Location = new Point(999, 999); + this.lblPlayersPs.DrawVisible = false; + this.lblPlayersPs.Location = new Point(999, 999); + this.lblPlayersXbox.DrawVisible = false; + this.lblPlayersXbox.Location = new Point(999, 999); + this.lblPlayersSwitch.DrawVisible = false; + this.lblPlayersSwitch.Location = new Point(999, 999); + this.lblPlayersPc.DrawVisible = false; + this.lblPlayersPc.Location = new Point(999, 999); + this.lblPlayersMobile.DrawVisible = false; + this.lblPlayersMobile.Location = new Point(999, 999); + + this.lblFastest.DrawVisible = false; + this.lblDuration.DrawVisible = false; + this.lblFinish.DrawVisible = false; + break; + case 4: + this.DefaultSize = new Size(538, showTabs ? 134 : 99); + + this.drawWidth -= firstColumnWidth + spacerWidth; + + this.lblWins.DrawVisible = false; + this.lblFinals.DrawVisible = false; + this.lblStreak.DrawVisible = false; + + this.lblRound.Location = new Point(firstColumnX, 9 + heightOffset); + this.lblRound.DrawVisible = true; + this.lblQualifyChance.Location = new Point(firstColumnX, 32 + heightOffset); + this.lblQualifyChance.DrawVisible = true; + this.lblFastest.Location = new Point(firstColumnX, 55 + heightOffset); + this.lblFastest.Size = new Size(secondColumnWidth, 22); + this.lblFastest.DrawVisible = true; + + this.lblPlayers.Location = new Point(firstColumnX + secondColumnWidth + 6, 9 + heightOffset); + this.lblPlayers.Size = new Size(thirdColumnWidth, 22); + this.lblPlayers.DrawVisible = true; + this.lblCountryIcon.Location = new Point(firstColumnX + secondColumnWidth + 108, 8 + heightOffset); + this.lblCountryIcon.DrawVisible = true; + this.lblPingIcon.Location = new Point(firstColumnX + secondColumnWidth + 140, 13 + heightOffset); + this.lblPingIcon.DrawVisible = true; + + if (this.StatsForm.CurrentSettings.PlayerByConsoleType) { + this.lblPlayersPs.Location = new Point(firstColumnX + secondColumnWidth + 55, 11 + heightOffset); + this.lblPlayersPs.Size = new Size(25, 16); + this.lblPlayersPs.ImageWidth = 19; + this.lblPlayersPs.ImageHeight = 17; + this.lblPlayersPs.DrawVisible = true; + + this.lblPlayersXbox.Location = new Point(firstColumnX + secondColumnWidth + 92, 11 + heightOffset); + this.lblPlayersXbox.Size = new Size(25, 16); + this.lblPlayersXbox.ImageWidth = 17; + this.lblPlayersXbox.ImageHeight = 17; + this.lblPlayersXbox.DrawVisible = true; + + this.lblPlayersSwitch.Location = new Point(firstColumnX + secondColumnWidth + 129, 11 + heightOffset); + this.lblPlayersSwitch.Size = new Size(25, 16); + this.lblPlayersSwitch.ImageWidth = 17; + this.lblPlayersSwitch.ImageHeight = 17; + this.lblPlayersSwitch.DrawVisible = true; + + this.lblPlayersPc.Location = new Point(firstColumnX + secondColumnWidth + 166, 11 + heightOffset); + this.lblPlayersPc.Size = new Size(25, 16); + this.lblPlayersPc.ImageY = -1; + this.lblPlayersPc.ImageWidth = 17; + this.lblPlayersPc.ImageHeight = 18; + this.lblPlayersPc.DrawVisible = true; + + this.lblPlayersMobile.Location = new Point(firstColumnX + secondColumnWidth + 204, 11 + heightOffset); + this.lblPlayersMobile.Size = new Size(25, 16); + this.lblPlayersMobile.ImageY = -1; + this.lblPlayersMobile.ImageWidth = 11; + this.lblPlayersMobile.ImageHeight = 18; + this.lblPlayersMobile.DrawVisible = true; + } + + this.lblDuration.Location = new Point(firstColumnX + secondColumnWidth + 6, 32 + heightOffset); + this.lblDuration.DrawVisible = true; + this.lblFinish.Location = new Point(firstColumnX + secondColumnWidth + 6, 55 + heightOffset); + this.lblFinish.DrawVisible = true; + break; + case 5: + this.DefaultSize = new Size(307, showTabs ? 134 : 99); + + this.drawWidth -= firstColumnWidth + thirdColumnWidth + (spacerWidth * 2); + + this.lblWins.DrawVisible = false; + this.lblFinals.DrawVisible = false; + this.lblStreak.DrawVisible = false; + + this.lblRound.Location = new Point(firstColumnX, 9 + heightOffset); + this.lblRound.DrawVisible = true; + + this.lblPlayers.Location = new Point(firstColumnX, 32 + heightOffset); + this.lblPlayers.Size = new Size(secondColumnWidth, 22); + this.lblPlayers.DrawVisible = true; + this.lblCountryIcon.Location = new Point(firstColumnX + 159, 31 + heightOffset); + this.lblCountryIcon.DrawVisible = true; + this.lblPingIcon.Location = new Point(firstColumnX + 191, 36 + heightOffset); + this.lblPingIcon.DrawVisible = true; + + if (this.StatsForm.CurrentSettings.PlayerByConsoleType) { + this.lblPlayersPs.Location = new Point(firstColumnX + 56, 34 + heightOffset); + this.lblPlayersPs.Size = new Size(25, 16); + this.lblPlayersPs.ImageWidth = 19; + this.lblPlayersPs.ImageHeight = 17; + this.lblPlayersPs.DrawVisible = true; + + this.lblPlayersXbox.Location = new Point(firstColumnX + 100, 34 + heightOffset); + this.lblPlayersXbox.Size = new Size(25, 16); + this.lblPlayersXbox.ImageWidth = 17; + this.lblPlayersXbox.ImageHeight = 17; + this.lblPlayersXbox.DrawVisible = true; + + this.lblPlayersSwitch.Location = new Point(firstColumnX + 147, 34 + heightOffset); + this.lblPlayersSwitch.Size = new Size(25, 16); + this.lblPlayersSwitch.ImageWidth = 17; + this.lblPlayersSwitch.ImageHeight = 17; + this.lblPlayersSwitch.DrawVisible = true; + + this.lblPlayersPc.Location = new Point(firstColumnX + 194, 34 + heightOffset); + this.lblPlayersPc.Size = new Size(25, 16); + this.lblPlayersPc.ImageY = -1; + this.lblPlayersPc.ImageWidth = 17; + this.lblPlayersPc.ImageHeight = 18; + this.lblPlayersPc.DrawVisible = true; + + this.lblPlayersMobile.Location = new Point(firstColumnX + 241, 34 + heightOffset); + this.lblPlayersMobile.Size = new Size(25, 16); + this.lblPlayersMobile.ImageY = -1; + this.lblPlayersMobile.ImageWidth = 11; + this.lblPlayersMobile.ImageHeight = 18; + this.lblPlayersMobile.DrawVisible = true; + } + + this.lblQualifyChance.Location = new Point(firstColumnX, 55 + heightOffset); + this.lblQualifyChance.DrawVisible = true; + + this.lblFastest.DrawVisible = false; + this.lblDuration.DrawVisible = false; + this.lblFinish.DrawVisible = false; + break; + case 6: + this.DefaultSize = new Size(251, showTabs ? 134 : 99); + + this.drawWidth -= firstColumnWidth + secondColumnWidth + (spacerWidth * 2); + + this.lblWins.DrawVisible = false; + this.lblFinals.DrawVisible = false; + this.lblStreak.DrawVisible = false; + + this.lblRound.DrawVisible = false; + this.lblQualifyChance.DrawVisible = false; + this.lblPlayers.DrawVisible = false; + this.lblCountryIcon.DrawVisible = false; + this.lblCountryIcon.Location = new Point(999, 999); + this.lblPingIcon.DrawVisible = false; + this.lblPingIcon.Location = new Point(999, 999); + this.lblPlayersPs.DrawVisible = false; + this.lblPlayersPs.Location = new Point(999, 999); + this.lblPlayersXbox.DrawVisible = false; + this.lblPlayersXbox.Location = new Point(999, 999); + this.lblPlayersSwitch.DrawVisible = false; + this.lblPlayersSwitch.Location = new Point(999, 999); + this.lblPlayersPc.DrawVisible = false; + this.lblPlayersPc.Location = new Point(999, 999); + this.lblPlayersMobile.DrawVisible = false; + this.lblPlayersMobile.Location = new Point(999, 999); + + this.lblFastest.Location = new Point(firstColumnX, 9 + heightOffset); + this.lblFastest.Size = new Size(thirdColumnWidth, 22); + this.lblFastest.DrawVisible = true; + this.lblDuration.Location = new Point(firstColumnX, 32 + heightOffset); + this.lblDuration.DrawVisible = true; + this.lblFinish.Location = new Point(firstColumnX, 55 + heightOffset); + this.lblFinish.DrawVisible = true; + break; + } + + if (!string.IsNullOrEmpty(serializedFont)) { + FontConverter fontConverter = new FontConverter(); + SetFonts(this, -1, fontConverter.ConvertFromString(serializedFont) as Font); + } else { + SetFonts(this); + } + + if (!string.IsNullOrEmpty(serializedFontColor)) { + ColorConverter colorConverter = new ColorConverter(); + this.SetFontColor((Color)colorConverter.ConvertFromString(serializedFontColor)); + } else { + this.SetDefaultFontColor(); + } + + if (width.HasValue) { + this.Width = width.Value; + } + if (height.HasValue) { + this.Height = height.Value; + } + + int lockButtonOffset = -6; + if (lockButtonLocation == 0) { + if (showTabs || this.Height < 62) { + lockButtonOffset = (this.Height / 2) - 8; + } else { + lockButtonOffset = this.Height - 40; + } + } + this.picPositionLock.Image = this.isPositionLock ? this.positionLockBlur : this.positionUnlockBlur; + this.SetBlurPositionMenu(); + this.SetLocationPositionMenu(showTabs, lockButtonOffset, flipDisplay); + + if (this.IsFixed()) { + if (this.isFixedPositionSe || this.isFixedPositionSw) { + this.saveDisplayChange = false; + if (this.isFixedPositionSe) { + Screen screen = Utils.GetCurrentScreen(this.Location); + Point screenLocation = screen != null ? screen.Bounds.Location : Screen.PrimaryScreen.Bounds.Location; + Size screenSize = screen != null ? screen.Bounds.Size : Screen.PrimaryScreen.Bounds.Size; + this.Location = new Point(screenLocation.X, screenLocation.Y + screenSize.Height - this.Height); + } else if (this.isFixedPositionSw) { + Screen screen = Utils.GetCurrentScreen(this.Location); + Point screenLocation = screen != null ? screen.Bounds.Location : Screen.PrimaryScreen.Bounds.Location; + Size screenSize = screen != null ? screen.Bounds.Size : Screen.PrimaryScreen.Bounds.Size; + this.Location = new Point(screenLocation.X + screenSize.Width - this.Width, screenLocation.Y + screenSize.Height - this.Height); + } + this.saveDisplayChange = true; + } + this.DisplayTabs(showTabs); + this.DisplayProfile(showTabs); + this.FlipDisplay(this.StatsForm.CurrentSettings.FixedFlippedDisplay); + this.SetBackgroundColor(colorOption); + } else { + this.DisplayTabs(showTabs); + this.DisplayProfile(showTabs); + this.FlipDisplay(flipDisplay); + this.SetBackgroundColor(colorOption); + } + + this.Background = this.RecreateBackground(); + + if (this.IsFixed()) { + this.MaximumSize = this.Size; + this.MinimumSize = this.Size; + } + + if (initDisplay) { + this.saveDisplayChange = true; + } + } + + public void FlipDisplay(bool flipped) { + if (flipped == this.flippedImage) return; + + this.flippedImage = flipped; + + foreach (Control ctr in Controls) { + if (ctr is TransparentLabel label && !label.Equals(this.lblFilter) && !label.Equals(this.lblProfile)) { + label.Location = new Point(label.Location.X + (this.flippedImage ? -18 : 18), label.Location.Y); + } + } + + // this.DisplayTabs(this.drawHeight > 99); + // this.DisplayProfile(this.drawHeight > 99); + this.DisplayTabs(this.StatsForm.CurrentSettings.ShowOverlayTabs); + this.DisplayProfile(this.StatsForm.CurrentSettings.ShowOverlayTabs); + this.picPositionLock.Location = new Point(flipped ? (this.Width - this.picPositionLock.Width - 14) : 14, this.picPositionLock.Location.Y); + } + + private int GetCountNumeric(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if (0x30 <= ch && ch <= 0x39) count++; + } + return count; + } + + private int GetCountSpace(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if (0x20 == ch) count++; + } + return count; + } + + private int GetCountBigSignCharacter(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0x23 <= ch && ch <= 0x26) + || 0x2B == ch + || (0x3C <= ch && ch <= 0x40) + || 0x5C == ch + || 0x7E == ch) count++; + } + return count; + } + + private int GetCountSmallSignCharacter(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0x21 <= ch && ch <= 0x22) + || (0x27 <= ch && ch <= 0x2A) + || (0x2C <= ch && ch <= 0x2F) + || (0x3A <= ch && ch <= 0x3B) + || (0x60 <= ch) + || (0x7B <= ch && ch <= 0x7D) + ) count++; + } + return count; + } + + private int GetCountKorAlphabet(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0xAC00 <= ch && ch <= 0xD7A3) //Korean + || (0x3131 <= ch && ch <= 0x318E) //Korean + ) count++; + } + return count; + } + + private int GetCountJpnAlphabet(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if ((0x3040 <= ch && ch <= 0x309F) //Japanese + || (0x30A0 <= ch && ch <= 0x30FF) //Japanese + || (0x3400 <= ch && ch <= 0x4DBF) //Japanese + || (0x4E00 <= ch && ch <= 0x9FBF) //Japanese + || (0xF900 <= ch && ch <= 0xFAFF) //Japanese + ) count++; + } + return count; + } + + private int GetCountEngLowercase(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if (0x61 <= ch && ch <= 0x7A) count++; + } + return count; + } + + private int GetCountAmpersand(string s) { + int count = 0; + char[] charArr = s.ToCharArray(); + foreach (char ch in charArr) { + if (0x26 == ch) count++; + } + return count; + } + + public void SetCurrentProfileForeColor(Color color) { + this.lblProfile.ForeColor = color; + } + + private int GetOverlayProfileOffset(string s) { + int sizeOfText = TextRenderer.MeasureText(s, new Font(this.lblProfile.Font.FontFamily, this.lblProfile.Font.Size, FontStyle.Regular, this.lblProfile.Font.Unit)).Width; + return sizeOfText + (this.GetCountAmpersand(s) * 14) - 22; + } + + private Bitmap RecreateBackground() { + lock (DefaultFont) { + this.Background?.Dispose(); + bool tabsDisplayed = this.StatsForm.CurrentSettings.ShowOverlayTabs; + bool overlayCustomized = this.StatsForm.CurrentSettings.IsOverlayBackgroundCustomized; + Bitmap newImage = new Bitmap(this.drawWidth, this.drawHeight, PixelFormat.Format32bppArgb); + using (Graphics g = Graphics.FromImage(newImage)) { + Bitmap background; + if (string.IsNullOrEmpty(this.BackgroundResourceName)) { + background = Properties.Resources.background; + } else { + if (overlayCustomized) { + if (!string.Equals(this.BackgroundResourceName, this.backgroundResourceNameCache) && File.Exists(Path.Combine($"{Stats.CURRENTDIR}Overlay", $"{this.BackgroundResourceName}.png"))) { + this.customizedBackground = new Bitmap(Path.Combine($"{Stats.CURRENTDIR}Overlay", $"{this.BackgroundResourceName}.png")); + this.backgroundResourceNameCache = this.BackgroundResourceName; + } + background = File.Exists(Path.Combine($"{Stats.CURRENTDIR}Overlay", $"{this.BackgroundResourceName}.png")) ? this.customizedBackground : Properties.Resources.background; + } else { + background = (Bitmap)Properties.Resources.ResourceManager.GetObject(this.BackgroundResourceName) ?? Properties.Resources.background; + } + } + g.DrawImage(background, 0, tabsDisplayed ? 35 : 0); + + if (tabsDisplayed) { + Bitmap tab; + if (string.IsNullOrEmpty(this.TabResourceName)) { + tab = Properties.Resources.tab_unselected; + } else { + if (overlayCustomized) { + if (!string.Equals(this.TabResourceName, this.tabResourceNameCache) && File.Exists(Path.Combine($"{Stats.CURRENTDIR}Overlay", $"{this.TabResourceName}.png"))) { + this.customizedTab = new Bitmap(Path.Combine($"{Stats.CURRENTDIR}Overlay", $"{this.TabResourceName}.png")); + this.tabResourceNameCache = this.TabResourceName; + } + tab = File.Exists(Path.Combine($"{Stats.CURRENTDIR}Overlay", $"{this.TabResourceName}.png")) ? this.customizedTab : Properties.Resources.tab_unselected; + } else { + tab = (Bitmap)Properties.Resources.ResourceManager.GetObject(this.TabResourceName) ?? Properties.Resources.tab_unselected; + } + } + g.DrawImage(tab, this.drawWidth - 170 - this.GetOverlayProfileOffset(this.StatsForm.GetCurrentProfileName()), 0); + g.DrawImage(tab, this.drawWidth - 110, 0); + } + } + + if (this.flippedImage) { + newImage.RotateFlip(RotateFlipType.RotateNoneFlipX); + } + + this.DrawGraphics?.Dispose(); + this.DrawImage?.Dispose(); + this.DrawImage = new Bitmap(newImage.Width, newImage.Height, PixelFormat.Format32bppArgb); + this.DrawGraphics = Graphics.FromImage(this.DrawImage); + + return newImage; + } + } + + private void DisplayTabs(bool showTabs) { + if (showTabs) { + this.drawHeight = 134; + this.lblFilter.Location = new Point(this.flippedImage ? -5 : this.drawWidth - 105, 9); + this.lblFilter.DrawVisible = true; + } else { + this.drawHeight = 99; + this.lblFilter.DrawVisible = false; + } + } + + private void DisplayProfile(bool showProfile) { + if (showProfile) { + this.drawHeight = 134; + this.lblProfile.Location = new Point(this.flippedImage ? 125 : this.drawWidth - (145 + this.GetOverlayProfileOffset(this.StatsForm.GetCurrentProfileName())), 9); + this.lblProfile.DrawVisible = true; + } else { + this.drawHeight = 99; + this.lblProfile.DrawVisible = false; + } + } + + public void ChangeLanguage() { + this.SuspendLayout(); + this.lblStreak.Text = $@"{Multilingual.GetWord("overlay_streak")} :"; + this.lblStreak.TextRight = $"0{Multilingual.GetWord("overlay_streak_suffix")} ({Multilingual.GetWord("overlay_best")} 0{Multilingual.GetWord("overlay_streak_suffix")})"; + this.lblFinals.Text = $@"{Multilingual.GetWord("overlay_finals")} :"; + this.lblFinals.TextRight = $"0{Multilingual.GetWord("overlay_inning")} - 0.0%"; + this.lblQualifyChance.Text = $@"{Multilingual.GetWord("overlay_qualify_chance")} :"; + this.lblFastest.Text = $@"{Multilingual.GetWord("overlay_fastest")} :"; + this.lblDuration.Text = $@"{Multilingual.GetWord("overlay_duration")} :"; + this.lblRound.Text = $@"{Multilingual.GetWord("overlay_round_prefix")}1{Multilingual.GetWord("overlay_round_suffix")} :"; + this.lblWins.Text = $@"{Multilingual.GetWord("overlay_wins")} :"; + this.lblWins.TextRight = $"0{Multilingual.GetWord("overlay_inning")} - 0.0%"; + this.lblFinish.Text = $@"{Multilingual.GetWord("overlay_finish")} :"; + this.lblPlayers.Text = $@"{Multilingual.GetWord("overlay_players")} :"; + this.ResumeLayout(); + } + } +} \ No newline at end of file diff --git a/Views/Overlay.resx b/Views/Overlay.resx new file mode 100644 index 000000000..1af7de150 --- /dev/null +++ b/Views/Overlay.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Views/Settings.Designer.cs b/Views/Settings.Designer.cs new file mode 100644 index 000000000..bbbbbd0f4 --- /dev/null +++ b/Views/Settings.Designer.cs @@ -0,0 +1,2588 @@ +namespace FallGuysStats { + partial class Settings { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Settings)); + // this.lblLogPath = new MetroFramework.Controls.MetroLabel(); + this.lblLogPathNote = new MetroFramework.Controls.MetroLabel(); + this.txtLogPath = new MetroFramework.Controls.MetroTextBox(); + this.btnSave = new MetroFramework.Controls.MetroButton(); + this.lblOverlayFont = new MetroFramework.Controls.MetroLabel(); + this.btnSelectFont = new MetroFramework.Controls.MetroButton(); + this.btnResetOverlayFont = new MetroFramework.Controls.MetroButton(); + this.grpOverlayFontExample = new System.Windows.Forms.GroupBox(); + this.lblOverlayFontExample = new System.Windows.Forms.Label(); + this.grpCycleQualifyGold = new System.Windows.Forms.GroupBox(); + this.rdoOnlyShowGold = new MetroFramework.Controls.MetroRadioButton(); + this.rdoOnlyShowQualify = new MetroFramework.Controls.MetroRadioButton(); + this.rdoCycleQualifyGold = new MetroFramework.Controls.MetroRadioButton(); + this.grpCycleFastestLongest = new System.Windows.Forms.GroupBox(); + this.rdoOnlyShowLongest = new MetroFramework.Controls.MetroRadioButton(); + this.rdoOnlyShowFastest = new MetroFramework.Controls.MetroRadioButton(); + this.rdoCycleFastestLongest = new MetroFramework.Controls.MetroRadioButton(); + this.chkHidePercentages = new MetroFramework.Controls.MetroCheckBox(); + this.chkHideWinsInfo = new MetroFramework.Controls.MetroCheckBox(); + this.lblOverlayBackground = new MetroFramework.Controls.MetroLabel(); + this.cboOverlayColor = new MetroFramework.Controls.MetroComboBox(); + this.lblOverlayColor = new MetroFramework.Controls.MetroLabel(); + this.lblOverlayOpacity = new MetroFramework.Controls.MetroLabel(); + this.trkOverlayOpacity = new MetroFramework.Controls.MetroTrackBar(); + this.cboLockButtonLocation = new MetroFramework.Controls.MetroComboBox(); + this.lblLockButtonLocation = new MetroFramework.Controls.MetroLabel(); + this.chkFlipped = new MetroFramework.Controls.MetroCheckBox(); + this.chkShowTabs = new MetroFramework.Controls.MetroCheckBox(); + this.chkHideTimeInfo = new MetroFramework.Controls.MetroCheckBox(); + this.chkHideRoundInfo = new MetroFramework.Controls.MetroCheckBox(); + this.cboFastestFilter = new MetroFramework.Controls.MetroComboBox(); + this.lblFastestFilter = new MetroFramework.Controls.MetroLabel(); + this.cboQualifyFilter = new MetroFramework.Controls.MetroComboBox(); + this.lblQualifyFilter = new MetroFramework.Controls.MetroLabel(); + this.cboWinsFilter = new MetroFramework.Controls.MetroComboBox(); + this.lblWinsFilter = new MetroFramework.Controls.MetroLabel(); + this.chkOverlayOnTop = new MetroFramework.Controls.MetroCheckBox(); + this.chkPlayerByConsoleType = new MetroFramework.Controls.MetroCheckBox(); + this.chkColorByRoundType = new MetroFramework.Controls.MetroCheckBox(); + this.chkAutoChangeProfile = new MetroFramework.Controls.MetroCheckBox(); + this.chkShadeTheFlagImage = new MetroFramework.Controls.MetroCheckBox(); + this.chkDisplayCurrentTime = new MetroFramework.Controls.MetroCheckBox(); + this.chkDisplayGamePlayedInfo = new MetroFramework.Controls.MetroCheckBox(); + this.chkCountPlayersDuringTheLevel = new MetroFramework.Controls.MetroCheckBox(); + this.lblCycleTimeSecondsTag = new MetroFramework.Controls.MetroLabel(); + this.lblCycleTimeSeconds = new MetroFramework.Controls.MetroLabel(); + this.txtCycleTimeSeconds = new MetroFramework.Controls.MetroTextBox(); + this.grpCycleWinFinalStreak = new System.Windows.Forms.GroupBox(); + this.rdoOnlyShowFinalStreak = new MetroFramework.Controls.MetroRadioButton(); + this.rdoOnlyShowWinStreak = new MetroFramework.Controls.MetroRadioButton(); + this.rdoCycleWinFinalStreak = new MetroFramework.Controls.MetroRadioButton(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.rdoOnlyShowPing = new MetroFramework.Controls.MetroRadioButton(); + this.rdoOnlyShowPlayers = new MetroFramework.Controls.MetroRadioButton(); + this.rdoCyclePlayersPing = new MetroFramework.Controls.MetroRadioButton(); + this.grpLaunchPlatform = new System.Windows.Forms.GroupBox(); + this.picPlatformCheck = new System.Windows.Forms.PictureBox(); + this.picEpicGames = new System.Windows.Forms.PictureBox(); + this.picSteam = new System.Windows.Forms.PictureBox(); + this.cboIpGeolocationService = new MetroFramework.Controls.MetroComboBox(); + this.lblIpGeolocationService = new MetroFramework.Controls.MetroLabel(); + this.linkIPinfoToken = new MetroFramework.Controls.MetroLink(); + this.txtIPinfoToken = new MetroFramework.Controls.MetroTextBox(); + this.cboMultilingual = new FallGuysStats.ImageComboBox(); + this.lblTheme = new MetroFramework.Controls.MetroLabel(); + this.chkChangeHoopsieLegends = new MetroFramework.Controls.MetroCheckBox(); + this.cboTheme = new MetroFramework.Controls.MetroComboBox(); + this.chkAutoUpdate = new MetroFramework.Controls.MetroCheckBox(); + this.chkSystemTrayIcon = new MetroFramework.Controls.MetroCheckBox(); + this.chkNotifyServerConnected = new MetroFramework.Controls.MetroCheckBox(); + this.chkNotifyPersonalBest = new MetroFramework.Controls.MetroCheckBox(); + this.chkMuteNotificationSounds = new MetroFramework.Controls.MetroCheckBox(); + this.cboNotificationSounds = new MetroFramework.Controls.MetroComboBox(); + this.cboNotificationWindowPosition = new MetroFramework.Controls.MetroComboBox(); + this.cboNotificationWindowAnimation = new MetroFramework.Controls.MetroComboBox(); + this.mlPlayNotificationSounds = new MetroFramework.Controls.MetroLink(); + this.chkPreventOverlayMouseClicks = new MetroFramework.Controls.MetroCheckBox(); + this.lblPreviousWinsNote = new MetroFramework.Controls.MetroLabel(); + this.lblPreviousWins = new MetroFramework.Controls.MetroLabel(); + this.txtPreviousWins = new MetroFramework.Controls.MetroTextBox(); + this.lblGameExeLocation = new MetroFramework.Controls.MetroLabel(); + this.txtGameExeLocation = new MetroFramework.Controls.MetroTextBox(); + this.txtGameShortcutLocation = new MetroFramework.Controls.MetroTextBox(); + this.btnGameExeLocationBrowse = new MetroFramework.Controls.MetroButton(); + this.chkLaunchGameOnStart = new MetroFramework.Controls.MetroCheckBox(); + this.picLanguageSelection = new System.Windows.Forms.PictureBox(); + this.chkIgnoreLevelTypeWhenSorting = new MetroFramework.Controls.MetroCheckBox(); + this.chkGroupingCreativeRoundLevels = new MetroFramework.Controls.MetroCheckBox(); + this.chkRecordEscapeDuringAGame = new MetroFramework.Controls.MetroCheckBox(); + this.btnCancel = new MetroFramework.Controls.MetroButton(); + this.dlgOverlayFont = new System.Windows.Forms.FontDialog(); + this.platformToolTip = new MetroFramework.Components.MetroToolTip(); + this.tileProgram = new MetroFramework.Controls.MetroTile(); + this.panelProgram = new MetroFramework.Controls.MetroPanel(); + this.panelDisplay = new MetroFramework.Controls.MetroPanel(); + this.tileDisplay = new MetroFramework.Controls.MetroTile(); + this.panelOverlay = new MetroFramework.Controls.MetroPanel(); + this.cboOverlayBackground = new FallGuysStats.ImageComboBox(); + this.tileOverlay = new MetroFramework.Controls.MetroTile(); + this.tileFallGuys = new MetroFramework.Controls.MetroTile(); + this.panelFallGuys = new MetroFramework.Controls.MetroPanel(); + this.tileAbout = new MetroFramework.Controls.MetroTile(); + this.panelAbout = new MetroFramework.Controls.MetroPanel(); + this.lblupdateNote = new MetroFramework.Controls.MetroLabel(); + this.lbltpl4 = new MetroFramework.Controls.MetroLink(); + this.lbltpl3 = new MetroFramework.Controls.MetroLink(); + this.lbltpl2 = new MetroFramework.Controls.MetroLink(); + this.lbltpl1 = new MetroFramework.Controls.MetroLink(); + this.lbltpl0 = new MetroFramework.Controls.MetroLink(); + this.lblthirdpartyLicences = new System.Windows.Forms.Label(); + this.fglink2 = new MetroFramework.Controls.MetroLink(); + this.fglink1 = new MetroFramework.Controls.MetroLink(); + this.btnCheckUpdates = new MetroFramework.Controls.MetroButton(); + this.lblVersion = new MetroFramework.Controls.MetroLabel(); + this.lblLicence = new MetroFramework.Controls.MetroLabel(); + this.panelFallalytics = new MetroFramework.Controls.MetroPanel(); + this.linkFallalytics = new MetroFramework.Controls.MetroLink(); + this.lblFallalyticsDesc = new MetroFramework.Controls.MetroLabel(); + // this.lblFallalyticsAPIKey = new MetroFramework.Controls.MetroLabel(); + this.txtFallalyticsAPIKey = new MetroFramework.Controls.MetroTextBox(); + this.chkFallalyticsAnonymous = new MetroFramework.Controls.MetroCheckBox(); + this.chkFallalyticsWeeklyCrownLeague = new MetroFramework.Controls.MetroCheckBox(); + this.chkFallalyticsReporting = new MetroFramework.Controls.MetroCheckBox(); + this.tileFallalytics = new MetroFramework.Controls.MetroTile(); + this.tileProxy = new MetroFramework.Controls.MetroTile(); + this.chkUseProxy = new MetroFramework.Controls.MetroCheckBox(); + this.lblProxyAddress = new MetroFramework.Controls.MetroLabel(); + this.lblProxyPort = new MetroFramework.Controls.MetroLabel(); + this.chkUseProxyLoginRequired = new MetroFramework.Controls.MetroCheckBox(); + this.txtProxyAddress = new MetroFramework.Controls.MetroTextBox(); + this.txtProxyPort = new MetroFramework.Controls.MetroTextBox(); + this.lblProxyUsername = new MetroFramework.Controls.MetroLabel(); + this.lblProxyPassword = new MetroFramework.Controls.MetroLabel(); + this.txtProxyUsername = new MetroFramework.Controls.MetroTextBox(); + this.txtProxyPassword = new MetroFramework.Controls.MetroTextBox(); + this.btnProxyTestConnection = new MetroFramework.Controls.MetroButton(); + this.mpsProxySpinner = new MetroFramework.Controls.MetroProgressSpinner(); + this.picProxyTextResult = new System.Windows.Forms.PictureBox(); + this.panelProxy = new MetroFramework.Controls.MetroPanel(); + this.grpOverlayFontExample.SuspendLayout(); + this.grpCycleQualifyGold.SuspendLayout(); + this.grpCycleFastestLongest.SuspendLayout(); + this.grpCycleWinFinalStreak.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.grpLaunchPlatform.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picPlatformCheck)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picEpicGames)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picSteam)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLanguageSelection)).BeginInit(); + this.panelProgram.SuspendLayout(); + this.panelDisplay.SuspendLayout(); + this.panelOverlay.SuspendLayout(); + this.panelFallGuys.SuspendLayout(); + this.panelAbout.SuspendLayout(); + this.panelFallalytics.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picProxyTextResult)).BeginInit(); + this.panelProxy.SuspendLayout(); + this.SuspendLayout(); + // + // lblLogPath + // + // this.lblLogPath.AutoSize = true; + // this.lblLogPath.FontSize = MetroFramework.MetroLabelSize.Medium; + // this.lblLogPath.FontWeight = MetroFramework.MetroLabelWeight.Regular; + // this.lblLogPath.Location = new System.Drawing.Point(15, 12); + // this.lblLogPath.Name = "lblLogPath"; + // this.lblLogPath.Size = new System.Drawing.Size(88, 19); + // this.lblLogPath.TabIndex = 0; + // this.lblLogPath.Text = "Log File Path"; + // + // lblLogPathNote + // + this.lblLogPathNote.AutoSize = true; + this.lblLogPathNote.FontSize = MetroFramework.MetroLabelSize.Small; + this.lblLogPathNote.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblLogPathNote.ForeColor = System.Drawing.Color.DimGray; + this.lblLogPathNote.Location = new System.Drawing.Point(15, 40); + this.lblLogPathNote.Name = "lblLogPathNote"; + this.lblLogPathNote.Size = new System.Drawing.Size(515, 15); + this.lblLogPathNote.TabIndex = 2; + this.lblLogPathNote.Text = "* You should not need to set this. Only use when the program is not reading the correct location."; + // + // txtLogPath + // + this.txtLogPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.txtLogPath.CustomButton.Image = null; + this.txtLogPath.CustomButton.Location = new System.Drawing.Point(15, 2); + this.txtLogPath.CustomButton.Name = ""; + this.txtLogPath.CustomButton.Size = new System.Drawing.Size(17, 17); + this.txtLogPath.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtLogPath.CustomButton.TabIndex = 1; + this.txtLogPath.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtLogPath.CustomButton.UseSelectable = true; + this.txtLogPath.CustomButton.Visible = false; + this.txtLogPath.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtLogPath.Lines = new string[0]; + this.txtLogPath.Location = new System.Drawing.Point(15, 12); + this.txtLogPath.MaxLength = 32767; + this.txtLogPath.Name = "txtLogPath"; + this.txtLogPath.PasswordChar = '\0'; + this.txtLogPath.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtLogPath.SelectedText = ""; + this.txtLogPath.SelectionLength = 0; + this.txtLogPath.SelectionStart = 0; + this.txtLogPath.ShortcutsEnabled = true; + this.txtLogPath.Size = new System.Drawing.Size(623, 25); + this.txtLogPath.TabIndex = 1; + this.txtLogPath.UseSelectable = true; + this.txtLogPath.WaterMark = "📁 Log File Path"; + this.txtLogPath.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtLogPath.WaterMarkFont = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.txtLogPath.Validating += new System.ComponentModel.CancelEventHandler(this.txtLogPath_Validating); + // + // btnSave + // + this.btnSave.Anchor = System.Windows.Forms.AnchorStyles.None; + this.btnSave.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSave.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnSave.Location = new System.Drawing.Point(685, 605); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(87, 26); + this.btnSave.TabIndex = 7; + this.btnSave.Text = "Save"; + this.btnSave.UseSelectable = true; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // grpCycleQualifyGold + // + this.grpCycleQualifyGold.Controls.Add(this.rdoOnlyShowGold); + this.grpCycleQualifyGold.Controls.Add(this.rdoOnlyShowQualify); + this.grpCycleQualifyGold.Controls.Add(this.rdoCycleQualifyGold); + this.grpCycleQualifyGold.Location = new System.Drawing.Point(21, 195); + this.grpCycleQualifyGold.Margin = new System.Windows.Forms.Padding(0); + this.grpCycleQualifyGold.Name = "grpCycleQualifyGold"; + this.grpCycleQualifyGold.Padding = new System.Windows.Forms.Padding(2); + this.grpCycleQualifyGold.Size = new System.Drawing.Size(603, 40); + this.grpCycleQualifyGold.TabIndex = 8; + this.grpCycleQualifyGold.TabStop = false; + // + // rdoOnlyShowGold + // + this.rdoOnlyShowGold.AutoSize = true; + this.rdoOnlyShowGold.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoOnlyShowGold.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoOnlyShowGold.Location = new System.Drawing.Point(385, 14); + this.rdoOnlyShowGold.Name = "rdoOnlyShowGold"; + this.rdoOnlyShowGold.Size = new System.Drawing.Size(87, 19); + this.rdoOnlyShowGold.TabIndex = 2; + this.rdoOnlyShowGold.Text = "Gold Only"; + this.rdoOnlyShowGold.UseSelectable = true; + // + // rdoOnlyShowQualify + // + this.rdoOnlyShowQualify.AutoSize = true; + this.rdoOnlyShowQualify.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoOnlyShowQualify.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoOnlyShowQualify.Location = new System.Drawing.Point(238, 14); + this.rdoOnlyShowQualify.Name = "rdoOnlyShowQualify"; + this.rdoOnlyShowQualify.Size = new System.Drawing.Size(101, 19); + this.rdoOnlyShowQualify.TabIndex = 1; + this.rdoOnlyShowQualify.Text = "Qualify Only"; + this.rdoOnlyShowQualify.UseSelectable = true; + // + // rdoCycleQualifyGold + // + this.rdoCycleQualifyGold.AutoSize = true; + this.rdoCycleQualifyGold.Checked = true; + this.rdoCycleQualifyGold.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoCycleQualifyGold.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoCycleQualifyGold.Location = new System.Drawing.Point(6, 14); + this.rdoCycleQualifyGold.Name = "rdoCycleQualifyGold"; + this.rdoCycleQualifyGold.Size = new System.Drawing.Size(146, 19); + this.rdoCycleQualifyGold.TabIndex = 0; + this.rdoCycleQualifyGold.TabStop = true; + this.rdoCycleQualifyGold.Text = "Cycle Qualify / Gold"; + this.rdoCycleQualifyGold.UseSelectable = true; + // + // grpCycleFastestLongest + // + this.grpCycleFastestLongest.Controls.Add(this.rdoOnlyShowLongest); + this.grpCycleFastestLongest.Controls.Add(this.rdoOnlyShowFastest); + this.grpCycleFastestLongest.Controls.Add(this.rdoCycleFastestLongest); + this.grpCycleFastestLongest.Location = new System.Drawing.Point(21, 225); + this.grpCycleFastestLongest.Margin = new System.Windows.Forms.Padding(0); + this.grpCycleFastestLongest.Name = "grpCycleFastestLongest"; + this.grpCycleFastestLongest.Padding = new System.Windows.Forms.Padding(2); + this.grpCycleFastestLongest.Size = new System.Drawing.Size(603, 40); + this.grpCycleFastestLongest.TabIndex = 9; + this.grpCycleFastestLongest.TabStop = false; + // + // rdoOnlyShowLongest + // + this.rdoOnlyShowLongest.AutoSize = true; + this.rdoOnlyShowLongest.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoOnlyShowLongest.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoOnlyShowLongest.Location = new System.Drawing.Point(385, 14); + this.rdoOnlyShowLongest.Name = "rdoOnlyShowLongest"; + this.rdoOnlyShowLongest.Size = new System.Drawing.Size(107, 19); + this.rdoOnlyShowLongest.TabIndex = 2; + this.rdoOnlyShowLongest.Text = "Longest Only"; + this.rdoOnlyShowLongest.UseSelectable = true; + // + // rdoOnlyShowFastest + // + this.rdoOnlyShowFastest.AutoSize = true; + this.rdoOnlyShowFastest.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoOnlyShowFastest.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoOnlyShowFastest.Location = new System.Drawing.Point(238, 14); + this.rdoOnlyShowFastest.Name = "rdoOnlyShowFastest"; + this.rdoOnlyShowFastest.Size = new System.Drawing.Size(101, 19); + this.rdoOnlyShowFastest.TabIndex = 1; + this.rdoOnlyShowFastest.Text = "Fastest Only"; + this.rdoOnlyShowFastest.UseSelectable = true; + // + // rdoCycleFastestLongest + // + this.rdoCycleFastestLongest.AutoSize = true; + this.rdoCycleFastestLongest.Checked = true; + this.rdoCycleFastestLongest.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoCycleFastestLongest.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoCycleFastestLongest.Location = new System.Drawing.Point(6, 14); + this.rdoCycleFastestLongest.Name = "rdoCycleFastestLongest"; + this.rdoCycleFastestLongest.Size = new System.Drawing.Size(166, 19); + this.rdoCycleFastestLongest.TabIndex = 0; + this.rdoCycleFastestLongest.TabStop = true; + this.rdoCycleFastestLongest.Text = "Cycle Fastest / Longest"; + this.rdoCycleFastestLongest.UseSelectable = true; + // + // chkHidePercentages + // + this.chkHidePercentages.AutoSize = true; + this.chkHidePercentages.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkHidePercentages.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkHidePercentages.Location = new System.Drawing.Point(21, 109); + this.chkHidePercentages.Name = "chkHidePercentages"; + this.chkHidePercentages.Size = new System.Drawing.Size(130, 19); + this.chkHidePercentages.TabIndex = 3; + this.chkHidePercentages.Text = "Hide Percentages"; + this.chkHidePercentages.UseCustomForeColor = true; + this.chkHidePercentages.UseSelectable = true; + this.chkHidePercentages.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkHidePercentages.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkHidePercentages.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkHidePercentages.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkHidePercentages.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkHideWinsInfo + // + this.chkHideWinsInfo.AutoSize = true; + this.chkHideWinsInfo.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkHideWinsInfo.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkHideWinsInfo.Location = new System.Drawing.Point(21, 19); + this.chkHideWinsInfo.Name = "chkHideWinsInfo"; + this.chkHideWinsInfo.Size = new System.Drawing.Size(114, 19); + this.chkHideWinsInfo.TabIndex = 0; + this.chkHideWinsInfo.Text = "Hide Wins info"; + this.chkHideWinsInfo.UseCustomForeColor = true; + this.chkHideWinsInfo.UseSelectable = true; + this.chkHideWinsInfo.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkHideWinsInfo.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkHideWinsInfo.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkHideWinsInfo.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkHideWinsInfo.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // cboOverlayBackground + // + this.cboOverlayBackground.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboOverlayBackground.DropDownHeight = 414; + this.cboOverlayBackground.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cboOverlayBackground.FormattingEnabled = true; + this.cboOverlayBackground.ItemHeight = 23; + this.cboOverlayBackground.Location = new System.Drawing.Point(203, 343); + this.cboOverlayBackground.Name = "cboOverlayBackground"; + this.cboOverlayBackground.Size = new System.Drawing.Size(310, 20); + this.cboOverlayBackground.TabIndex = 19; + // + // lblOverlayBackground + // + this.lblOverlayBackground.AutoSize = true; + this.lblOverlayBackground.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblOverlayBackground.Location = new System.Drawing.Point(15, 348); + this.lblOverlayBackground.Name = "lblOverlayBackground"; + this.lblOverlayBackground.Size = new System.Drawing.Size(124, 19); + this.lblOverlayBackground.TabIndex = 18; + this.lblOverlayBackground.Text = "Background Image"; + // + // cboOverlayColor + // + this.cboOverlayColor.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboOverlayColor.FormattingEnabled = true; + this.cboOverlayColor.ItemHeight = 23; + this.cboOverlayColor.Items.AddRange(new object[] { "Transparent", "Black", "Magenta", "Red", "Green", "Blue" }); + this.cboOverlayColor.Location = new System.Drawing.Point(203, 378); + this.cboOverlayColor.Name = "cboOverlayColor"; + this.cboOverlayColor.Size = new System.Drawing.Size(310, 29); + this.cboOverlayColor.TabIndex = 21; + this.cboOverlayColor.UseSelectable = true; + // + // lblOverlayColor + // + this.lblOverlayColor.AutoSize = true; + this.lblOverlayColor.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblOverlayColor.Location = new System.Drawing.Point(15, 383); + this.lblOverlayColor.Name = "lblOverlayColor"; + this.lblOverlayColor.Size = new System.Drawing.Size(82, 19); + this.lblOverlayColor.TabIndex = 20; + this.lblOverlayColor.Text = "Background"; + // + // lblOverlayOpacity + // + this.lblOverlayOpacity.AutoSize = true; + this.lblOverlayOpacity.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblOverlayOpacity.Location = new System.Drawing.Point(15, 418); + this.lblOverlayOpacity.Name = "lblOverlayOpacity"; + this.lblOverlayOpacity.Size = new System.Drawing.Size(133, 19); + this.lblOverlayOpacity.TabIndex = 22; + this.lblOverlayOpacity.Text = "Background Opacity"; + // + // trkOverlayOpacity + // + this.trkOverlayOpacity.BackColor = System.Drawing.Color.Transparent; + this.trkOverlayOpacity.Cursor = System.Windows.Forms.Cursors.Hand; + this.trkOverlayOpacity.Location = new System.Drawing.Point(203, 415); + this.trkOverlayOpacity.MouseWheelBarPartitions = 10000; + this.trkOverlayOpacity.Name = "trkOverlayOpacity"; + this.trkOverlayOpacity.Size = new System.Drawing.Size(310, 29); + this.trkOverlayOpacity.TabIndex = 23; + this.trkOverlayOpacity.Value = 100; + this.trkOverlayOpacity.ValueChanged += new System.EventHandler(this.trkOverlayOpacity_ValueChanged); + this.trkOverlayOpacity.MouseEnter += new System.EventHandler(this.trkOverlayOpacity_MouseEnter); + this.trkOverlayOpacity.MouseLeave += new System.EventHandler(this.trkOverlayOpacity_MouseLeave); + // + // cboLockButtonLocation + // + this.cboLockButtonLocation.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboLockButtonLocation.FormattingEnabled = true; + this.cboLockButtonLocation.ItemHeight = 23; + this.cboLockButtonLocation.Items.AddRange(new object[] { "Top", "Bottom" }); + this.cboLockButtonLocation.Location = new System.Drawing.Point(203, 450); + this.cboLockButtonLocation.Name = "cboLockButtonLocation"; + this.cboLockButtonLocation.Size = new System.Drawing.Size(79, 29); + this.cboLockButtonLocation.TabIndex = 25; + this.cboLockButtonLocation.UseSelectable = true; + // + // lblLockButtonLocation + // + this.lblLockButtonLocation.AutoSize = true; + this.lblLockButtonLocation.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblLockButtonLocation.Location = new System.Drawing.Point(15, 455); + this.lblLockButtonLocation.Name = "lblLockButtonLocation"; + this.lblLockButtonLocation.Size = new System.Drawing.Size(135, 19); + this.lblLockButtonLocation.TabIndex = 24; + this.lblLockButtonLocation.Text = "Lock Button Location"; + // + // chkShowTabs + // + this.chkShowTabs.AutoSize = true; + this.chkShowTabs.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkShowTabs.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkShowTabs.Location = new System.Drawing.Point(21, 139); + this.chkShowTabs.Name = "chkShowTabs"; + this.chkShowTabs.Size = new System.Drawing.Size(233, 19); + this.chkShowTabs.TabIndex = 4; + this.chkShowTabs.Text = "Show Tab for current filter / profile"; + this.chkShowTabs.UseCustomForeColor = true; + this.chkShowTabs.UseSelectable = true; + this.chkShowTabs.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkShowTabs.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkShowTabs.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkShowTabs.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkShowTabs.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkHideTimeInfo + // + this.chkHideTimeInfo.AutoSize = true; + this.chkHideTimeInfo.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkHideTimeInfo.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkHideTimeInfo.Location = new System.Drawing.Point(21, 79); + this.chkHideTimeInfo.Name = "chkHideTimeInfo"; + this.chkHideTimeInfo.Size = new System.Drawing.Size(113, 19); + this.chkHideTimeInfo.TabIndex = 2; + this.chkHideTimeInfo.Text = "Hide Time info"; + this.chkHideTimeInfo.UseCustomForeColor = true; + this.chkHideTimeInfo.UseSelectable = true; + this.chkHideTimeInfo.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkHideTimeInfo.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkHideTimeInfo.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkHideTimeInfo.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkHideTimeInfo.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkHideRoundInfo + // + this.chkHideRoundInfo.AutoSize = true; + this.chkHideRoundInfo.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkHideRoundInfo.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkHideRoundInfo.Location = new System.Drawing.Point(21, 49); + this.chkHideRoundInfo.Name = "chkHideRoundInfo"; + this.chkHideRoundInfo.Size = new System.Drawing.Size(124, 19); + this.chkHideRoundInfo.TabIndex = 1; + this.chkHideRoundInfo.Text = "Hide Round info"; + this.chkHideRoundInfo.UseCustomForeColor = true; + this.chkHideRoundInfo.UseSelectable = true; + this.chkHideRoundInfo.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkHideRoundInfo.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkHideRoundInfo.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkHideRoundInfo.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkHideRoundInfo.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // cboFastestFilter + // + this.cboFastestFilter.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboFastestFilter.FormattingEnabled = true; + this.cboFastestFilter.ItemHeight = 23; + this.cboFastestFilter.Items.AddRange(new object[] { "All Time Stats", "Stats and Party Filter", "Season Stats", "Week Stats", "Day Stats", "Session Stats" }); + this.cboFastestFilter.Location = new System.Drawing.Point(397, 155); + this.cboFastestFilter.Name = "cboFastestFilter"; + this.cboFastestFilter.Size = new System.Drawing.Size(227, 29); + this.cboFastestFilter.TabIndex = 17; + this.cboFastestFilter.UseSelectable = true; + // + // lblFastestFilter + // + this.lblFastestFilter.AutoSize = true; + this.lblFastestFilter.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblFastestFilter.Location = new System.Drawing.Point(393, 133); + this.lblFastestFilter.Name = "lblFastestFilter"; + this.lblFastestFilter.Size = new System.Drawing.Size(148, 19); + this.lblFastestFilter.TabIndex = 16; + this.lblFastestFilter.Text = "Fastest / Longest Filter"; + // + // cboQualifyFilter + // + this.cboQualifyFilter.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboQualifyFilter.FormattingEnabled = true; + this.cboQualifyFilter.ItemHeight = 23; + this.cboQualifyFilter.Items.AddRange(new object[] { "All Time Stats", "Stats and Party Filter", "Season Stats", "Week Stats", "Day Stats", "Session Stats" }); + this.cboQualifyFilter.Location = new System.Drawing.Point(397, 96); + this.cboQualifyFilter.Name = "cboQualifyFilter"; + this.cboQualifyFilter.Size = new System.Drawing.Size(227, 29); + this.cboQualifyFilter.TabIndex = 15; + this.cboQualifyFilter.UseSelectable = true; + // + // lblQualifyFilter + // + this.lblQualifyFilter.AutoSize = true; + this.lblQualifyFilter.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblQualifyFilter.Location = new System.Drawing.Point(393, 74); + this.lblQualifyFilter.Name = "lblQualifyFilter"; + this.lblQualifyFilter.Size = new System.Drawing.Size(128, 19); + this.lblQualifyFilter.TabIndex = 14; + this.lblQualifyFilter.Text = "Qualify / Gold Filter"; + // + // cboWinsFilter + // + this.cboWinsFilter.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboWinsFilter.FormattingEnabled = true; + this.cboWinsFilter.ItemHeight = 23; + this.cboWinsFilter.Items.AddRange(new object[] { "All Time Stats", "Stats and Party Filter", "Season Stats", "Week Stats", "Day Stats", "Session Stats" }); + this.cboWinsFilter.Location = new System.Drawing.Point(397, 36); + this.cboWinsFilter.Name = "cboWinsFilter"; + this.cboWinsFilter.Size = new System.Drawing.Size(227, 29); + this.cboWinsFilter.TabIndex = 13; + this.cboWinsFilter.UseSelectable = true; + // + // lblWinsFilter + // + this.lblWinsFilter.AutoSize = true; + this.lblWinsFilter.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblWinsFilter.Location = new System.Drawing.Point(393, 14); + this.lblWinsFilter.Name = "lblWinsFilter"; + this.lblWinsFilter.Size = new System.Drawing.Size(118, 19); + this.lblWinsFilter.TabIndex = 12; + this.lblWinsFilter.Text = "Wins / Final Filter "; + // + // chkFlipped + // + this.chkFlipped.AutoSize = true; + this.chkFlipped.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkFlipped.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkFlipped.Location = new System.Drawing.Point(21, 491); + this.chkFlipped.Name = "chkFlipped"; + this.chkFlipped.Size = new System.Drawing.Size(167, 19); + this.chkFlipped.TabIndex = 26; + this.chkFlipped.Text = "Flip display horizontally"; + this.chkFlipped.UseCustomForeColor = true; + this.chkFlipped.UseSelectable = true; + this.chkFlipped.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkFlipped.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkFlipped.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkFlipped.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkFlipped.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkOverlayOnTop + // + this.chkOverlayOnTop.AutoSize = true; + this.chkOverlayOnTop.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkOverlayOnTop.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkOverlayOnTop.Location = new System.Drawing.Point(21, 520); + this.chkOverlayOnTop.Name = "chkOverlayOnTop"; + this.chkOverlayOnTop.Size = new System.Drawing.Size(148, 19); + this.chkOverlayOnTop.TabIndex = 27; + this.chkOverlayOnTop.Text = "Always show on top"; + this.chkOverlayOnTop.UseCustomForeColor = true; + this.chkOverlayOnTop.UseSelectable = true; + this.chkOverlayOnTop.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkOverlayOnTop.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkOverlayOnTop.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkOverlayOnTop.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkOverlayOnTop.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkPlayerByConsoleType + // + this.chkPlayerByConsoleType.AutoSize = true; + this.chkPlayerByConsoleType.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkPlayerByConsoleType.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkPlayerByConsoleType.Location = new System.Drawing.Point(21, 549); + this.chkPlayerByConsoleType.Name = "chkPlayerByConsoleType"; + this.chkPlayerByConsoleType.Size = new System.Drawing.Size(234, 19); + this.chkPlayerByConsoleType.TabIndex = 28; + this.chkPlayerByConsoleType.Text = "Display the Player by console type"; + this.chkPlayerByConsoleType.UseCustomForeColor = true; + this.chkPlayerByConsoleType.UseSelectable = true; + this.chkPlayerByConsoleType.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkPlayerByConsoleType.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkPlayerByConsoleType.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkPlayerByConsoleType.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkPlayerByConsoleType.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkColorByRoundType + // + this.chkColorByRoundType.AutoSize = true; + this.chkColorByRoundType.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkColorByRoundType.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkColorByRoundType.Location = new System.Drawing.Point(21, 578); + this.chkColorByRoundType.Name = "chkColorByRoundType"; + this.chkColorByRoundType.Size = new System.Drawing.Size(269, 19); + this.chkColorByRoundType.TabIndex = 29; + this.chkColorByRoundType.Text = "Color round name based on round type"; + this.chkColorByRoundType.UseCustomForeColor = true; + this.chkColorByRoundType.UseSelectable = true; + this.chkColorByRoundType.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkColorByRoundType.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkColorByRoundType.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkColorByRoundType.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkColorByRoundType.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkAutoChangeProfile + // + this.chkAutoChangeProfile.AutoSize = true; + this.chkAutoChangeProfile.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkAutoChangeProfile.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkAutoChangeProfile.Location = new System.Drawing.Point(21, 607); + this.chkAutoChangeProfile.Name = "chkAutoChangeProfile"; + this.chkAutoChangeProfile.Size = new System.Drawing.Size(255, 19); + this.chkAutoChangeProfile.TabIndex = 30; + this.chkAutoChangeProfile.Text = "Automatically change to linked profile"; + this.chkAutoChangeProfile.UseCustomForeColor = true; + this.chkAutoChangeProfile.UseSelectable = true; + this.chkAutoChangeProfile.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkAutoChangeProfile.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkAutoChangeProfile.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkAutoChangeProfile.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkAutoChangeProfile.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkShadeTheFlagImage + // + this.chkShadeTheFlagImage.AutoSize = true; + this.chkShadeTheFlagImage.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkShadeTheFlagImage.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkShadeTheFlagImage.Location = new System.Drawing.Point(21, 636); + this.chkShadeTheFlagImage.Name = "chkShadeTheFlagImage"; + this.chkShadeTheFlagImage.Size = new System.Drawing.Size(153, 19); + this.chkShadeTheFlagImage.TabIndex = 31; + this.chkShadeTheFlagImage.Text = "Shade the flag image"; + this.chkShadeTheFlagImage.UseCustomForeColor = true; + this.chkShadeTheFlagImage.UseSelectable = true; + this.chkShadeTheFlagImage.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkShadeTheFlagImage.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkShadeTheFlagImage.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkShadeTheFlagImage.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkShadeTheFlagImage.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkDisplayCurrentTime + // + this.chkDisplayCurrentTime.AutoSize = true; + this.chkDisplayCurrentTime.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkDisplayCurrentTime.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkDisplayCurrentTime.Location = new System.Drawing.Point(21, 665); + this.chkDisplayCurrentTime.Name = "chkDisplayCurrentTime"; + this.chkDisplayCurrentTime.Size = new System.Drawing.Size(255, 19); + this.chkDisplayCurrentTime.TabIndex = 32; + this.chkDisplayCurrentTime.Text = "Display the current time while waiting"; + this.chkDisplayCurrentTime.UseCustomForeColor = true; + this.chkDisplayCurrentTime.UseSelectable = true; + this.chkDisplayCurrentTime.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkDisplayCurrentTime.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkDisplayCurrentTime.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkDisplayCurrentTime.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkDisplayCurrentTime.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkDisplayGamePlayedInfo + // + this.chkDisplayGamePlayedInfo.AutoSize = true; + this.chkDisplayGamePlayedInfo.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkDisplayGamePlayedInfo.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkDisplayGamePlayedInfo.Location = new System.Drawing.Point(21, 694); + this.chkDisplayGamePlayedInfo.Name = "chkDisplayGamePlayedInfo"; + this.chkDisplayGamePlayedInfo.Size = new System.Drawing.Size(255, 19); + this.chkDisplayGamePlayedInfo.TabIndex = 33; + this.chkDisplayGamePlayedInfo.Text = "Display game played information at the end of a round"; + this.chkDisplayGamePlayedInfo.UseCustomForeColor = true; + this.chkDisplayGamePlayedInfo.UseSelectable = true; + this.chkDisplayGamePlayedInfo.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkDisplayGamePlayedInfo.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkDisplayGamePlayedInfo.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkDisplayGamePlayedInfo.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkDisplayGamePlayedInfo.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkCountPlayersDuringTheLevel + // + this.chkCountPlayersDuringTheLevel.AutoSize = true; + this.chkCountPlayersDuringTheLevel.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkCountPlayersDuringTheLevel.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkCountPlayersDuringTheLevel.Location = new System.Drawing.Point(21, 722); + this.chkCountPlayersDuringTheLevel.Name = "chkCountPlayersDuringTheLevel"; + this.chkCountPlayersDuringTheLevel.Size = new System.Drawing.Size(255, 19); + this.chkCountPlayersDuringTheLevel.TabIndex = 34; + this.chkCountPlayersDuringTheLevel.Text = "Count players who pass or are eliminated during the game"; + this.chkCountPlayersDuringTheLevel.UseCustomForeColor = true; + this.chkCountPlayersDuringTheLevel.UseSelectable = true; + this.chkCountPlayersDuringTheLevel.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkCountPlayersDuringTheLevel.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkCountPlayersDuringTheLevel.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkCountPlayersDuringTheLevel.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkCountPlayersDuringTheLevel.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // lblCycleTimeSecondsTag + // + this.lblCycleTimeSecondsTag.AutoSize = true; + this.lblCycleTimeSecondsTag.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblCycleTimeSecondsTag.Location = new System.Drawing.Point(124, 170); + this.lblCycleTimeSecondsTag.Name = "lblCycleTimeSecondsTag"; + this.lblCycleTimeSecondsTag.Size = new System.Drawing.Size(29, 19); + this.lblCycleTimeSecondsTag.TabIndex = 7; + this.lblCycleTimeSecondsTag.Text = "Sec"; + // + // lblCycleTimeSeconds + // + this.lblCycleTimeSeconds.AutoSize = true; + this.lblCycleTimeSeconds.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblCycleTimeSeconds.Location = new System.Drawing.Point(21, 170); + this.lblCycleTimeSeconds.Name = "lblCycleTimeSeconds"; + this.lblCycleTimeSeconds.Size = new System.Drawing.Size(74, 19); + this.lblCycleTimeSeconds.TabIndex = 5; + this.lblCycleTimeSeconds.Text = "Cycle Time"; + // + // txtCycleTimeSeconds + // + this.txtCycleTimeSeconds.CustomButton.Image = null; + this.txtCycleTimeSeconds.CustomButton.Location = new System.Drawing.Point(4, 1); + this.txtCycleTimeSeconds.CustomButton.Name = ""; + this.txtCycleTimeSeconds.CustomButton.Size = new System.Drawing.Size(19, 19); + this.txtCycleTimeSeconds.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtCycleTimeSeconds.CustomButton.TabIndex = 1; + this.txtCycleTimeSeconds.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtCycleTimeSeconds.CustomButton.UseSelectable = true; + this.txtCycleTimeSeconds.CustomButton.Visible = false; + this.txtCycleTimeSeconds.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtCycleTimeSeconds.Lines = new string[] { "5" }; + this.txtCycleTimeSeconds.Location = new System.Drawing.Point(96, 167); + this.txtCycleTimeSeconds.MaxLength = 2; + this.txtCycleTimeSeconds.Name = "txtCycleTimeSeconds"; + this.txtCycleTimeSeconds.PasswordChar = '\0'; + this.txtCycleTimeSeconds.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtCycleTimeSeconds.SelectedText = ""; + this.txtCycleTimeSeconds.SelectionLength = 0; + this.txtCycleTimeSeconds.SelectionStart = 0; + this.txtCycleTimeSeconds.ShortcutsEnabled = true; + this.txtCycleTimeSeconds.Size = new System.Drawing.Size(22, 26); + this.txtCycleTimeSeconds.TabIndex = 6; + this.txtCycleTimeSeconds.Text = "5"; + this.txtCycleTimeSeconds.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.txtCycleTimeSeconds.UseSelectable = true; + this.txtCycleTimeSeconds.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtCycleTimeSeconds.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.txtCycleTimeSeconds.Validating += new System.ComponentModel.CancelEventHandler(this.txtCycleTimeSeconds_Validating); + // + // grpCycleWinFinalStreak + // + this.grpCycleWinFinalStreak.Controls.Add(this.rdoOnlyShowFinalStreak); + this.grpCycleWinFinalStreak.Controls.Add(this.rdoOnlyShowWinStreak); + this.grpCycleWinFinalStreak.Controls.Add(this.rdoCycleWinFinalStreak); + this.grpCycleWinFinalStreak.Location = new System.Drawing.Point(21, 255); + this.grpCycleWinFinalStreak.Margin = new System.Windows.Forms.Padding(0); + this.grpCycleWinFinalStreak.Name = "grpCycleWinFinalStreak"; + this.grpCycleWinFinalStreak.Padding = new System.Windows.Forms.Padding(2); + this.grpCycleWinFinalStreak.Size = new System.Drawing.Size(603, 40); + this.grpCycleWinFinalStreak.TabIndex = 10; + this.grpCycleWinFinalStreak.TabStop = false; + // + // rdoOnlyShowFinalStreak + // + this.rdoOnlyShowFinalStreak.AutoSize = true; + this.rdoOnlyShowFinalStreak.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoOnlyShowFinalStreak.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoOnlyShowFinalStreak.Location = new System.Drawing.Point(385, 14); + this.rdoOnlyShowFinalStreak.Name = "rdoOnlyShowFinalStreak"; + this.rdoOnlyShowFinalStreak.Size = new System.Drawing.Size(128, 19); + this.rdoOnlyShowFinalStreak.TabIndex = 2; + this.rdoOnlyShowFinalStreak.Text = "Final Streak Only"; + this.rdoOnlyShowFinalStreak.UseSelectable = true; + // + // rdoOnlyShowWinStreak + // + this.rdoOnlyShowWinStreak.AutoSize = true; + this.rdoOnlyShowWinStreak.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoOnlyShowWinStreak.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoOnlyShowWinStreak.Location = new System.Drawing.Point(238, 14); + this.rdoOnlyShowWinStreak.Name = "rdoOnlyShowWinStreak"; + this.rdoOnlyShowWinStreak.Size = new System.Drawing.Size(124, 19); + this.rdoOnlyShowWinStreak.TabIndex = 1; + this.rdoOnlyShowWinStreak.Text = "Win Streak Only"; + this.rdoOnlyShowWinStreak.UseSelectable = true; + // + // rdoCycleWinFinalStreak + // + this.rdoCycleWinFinalStreak.AutoSize = true; + this.rdoCycleWinFinalStreak.Checked = true; + this.rdoCycleWinFinalStreak.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoCycleWinFinalStreak.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoCycleWinFinalStreak.Location = new System.Drawing.Point(6, 14); + this.rdoCycleWinFinalStreak.Name = "rdoCycleWinFinalStreak"; + this.rdoCycleWinFinalStreak.Size = new System.Drawing.Size(168, 19); + this.rdoCycleWinFinalStreak.TabIndex = 0; + this.rdoCycleWinFinalStreak.TabStop = true; + this.rdoCycleWinFinalStreak.Text = "Cycle Win / Final Streak"; + this.rdoCycleWinFinalStreak.UseSelectable = true; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.rdoOnlyShowPing); + this.groupBox1.Controls.Add(this.rdoOnlyShowPlayers); + this.groupBox1.Controls.Add(this.rdoCyclePlayersPing); + this.groupBox1.Location = new System.Drawing.Point(21, 285); + this.groupBox1.Margin = new System.Windows.Forms.Padding(0); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(2); + this.groupBox1.Size = new System.Drawing.Size(603, 40); + this.groupBox1.TabIndex = 11; + this.groupBox1.TabStop = false; + // + // rdoOnlyShowPing + // + this.rdoOnlyShowPing.AutoSize = true; + this.rdoOnlyShowPing.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoOnlyShowPing.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoOnlyShowPing.Location = new System.Drawing.Point(385, 14); + this.rdoOnlyShowPing.Name = "rdoOnlyShowPing"; + this.rdoOnlyShowPing.Size = new System.Drawing.Size(85, 19); + this.rdoOnlyShowPing.TabIndex = 2; + this.rdoOnlyShowPing.Text = "Ping Only"; + this.rdoOnlyShowPing.UseSelectable = true; + // + // rdoOnlyShowPlayers + // + this.rdoOnlyShowPlayers.AutoSize = true; + this.rdoOnlyShowPlayers.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoOnlyShowPlayers.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoOnlyShowPlayers.Location = new System.Drawing.Point(238, 14); + this.rdoOnlyShowPlayers.Name = "rdoOnlyShowPlayers"; + this.rdoOnlyShowPlayers.Size = new System.Drawing.Size(101, 19); + this.rdoOnlyShowPlayers.TabIndex = 1; + this.rdoOnlyShowPlayers.Text = "Players Only"; + this.rdoOnlyShowPlayers.UseSelectable = true; + // + // rdoCyclePlayersPing + // + this.rdoCyclePlayersPing.AutoSize = true; + this.rdoCyclePlayersPing.Checked = true; + this.rdoCyclePlayersPing.Cursor = System.Windows.Forms.Cursors.Hand; + this.rdoCyclePlayersPing.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rdoCyclePlayersPing.Location = new System.Drawing.Point(6, 14); + this.rdoCyclePlayersPing.Name = "rdoCyclePlayersPing"; + this.rdoCyclePlayersPing.Size = new System.Drawing.Size(144, 19); + this.rdoCyclePlayersPing.TabIndex = 0; + this.rdoCyclePlayersPing.TabStop = true; + this.rdoCyclePlayersPing.Text = "Cycle Players / Ping"; + this.rdoCyclePlayersPing.UseSelectable = true; + // + // lblOverlayFont + // + this.lblOverlayFont.AutoSize = true; + this.lblOverlayFont.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblOverlayFont.Location = new System.Drawing.Point(21, 764); + this.lblOverlayFont.Name = "lblOverlayFont"; + this.lblOverlayFont.Size = new System.Drawing.Size(140, 19); + this.lblOverlayFont.TabIndex = 35; + this.lblOverlayFont.Text = "Custom Overlay Font"; + // + // btnSelectFont + // + this.btnSelectFont.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSelectFont.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnSelectFont.Location = new System.Drawing.Point(200, 761); + this.btnSelectFont.Name = "btnSelectFont"; + this.btnSelectFont.Size = new System.Drawing.Size(96, 26); + this.btnSelectFont.TabIndex = 36; + this.btnSelectFont.Text = "Select Font"; + this.btnSelectFont.UseSelectable = true; + this.btnSelectFont.Click += new System.EventHandler(this.btnSelectFont_Click); + // + // btnResetOverlayFont + // + this.btnResetOverlayFont.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnResetOverlayFont.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnResetOverlayFont.Location = new System.Drawing.Point(303, 761); + this.btnResetOverlayFont.Name = "btnResetOverlayFont"; + this.btnResetOverlayFont.Size = new System.Drawing.Size(96, 26); + this.btnResetOverlayFont.TabIndex = 37; + this.btnResetOverlayFont.Text = "Reset Font"; + this.btnResetOverlayFont.UseSelectable = true; + this.btnResetOverlayFont.Click += new System.EventHandler(this.btnResetOverlayFont_Click); + // + // grpOverlayFontExample + // + this.grpOverlayFontExample.Controls.Add(this.lblOverlayFontExample); + this.grpOverlayFontExample.Location = new System.Drawing.Point(21, 795); + this.grpOverlayFontExample.Margin = new System.Windows.Forms.Padding(2); + this.grpOverlayFontExample.Name = "grpOverlayFontExample"; + this.grpOverlayFontExample.Padding = new System.Windows.Forms.Padding(2); + this.grpOverlayFontExample.Size = new System.Drawing.Size(603, 65); + this.grpOverlayFontExample.TabIndex = 39; + this.grpOverlayFontExample.TabStop = false; + this.grpOverlayFontExample.Text = "Example"; + // + // lblOverlayFontExample + // + this.lblOverlayFontExample.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.lblOverlayFontExample.Location = new System.Drawing.Point(1, 15); + this.lblOverlayFontExample.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.lblOverlayFontExample.Name = "lblOverlayFontExample"; + this.lblOverlayFontExample.Size = new System.Drawing.Size(598, 38); + this.lblOverlayFontExample.TabIndex = 38; + this.lblOverlayFontExample.Text = "Round 3 : Freezy Peak"; + this.lblOverlayFontExample.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // grpLaunchPlatform + // + this.grpLaunchPlatform.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.grpLaunchPlatform.Controls.Add(this.picPlatformCheck); + this.grpLaunchPlatform.Controls.Add(this.picEpicGames); + this.grpLaunchPlatform.Controls.Add(this.picSteam); + this.grpLaunchPlatform.Location = new System.Drawing.Point(15, 12); + this.grpLaunchPlatform.Margin = new System.Windows.Forms.Padding(0); + this.grpLaunchPlatform.Name = "grpLaunchPlatform"; + this.grpLaunchPlatform.Padding = new System.Windows.Forms.Padding(2); + this.grpLaunchPlatform.Size = new System.Drawing.Size(95, 60); + this.grpLaunchPlatform.TabIndex = 36; + this.grpLaunchPlatform.TabStop = false; + this.grpLaunchPlatform.Text = "Platform"; + // + // picPlatformCheck + // + this.picPlatformCheck.BackColor = System.Drawing.Color.Transparent; + this.picPlatformCheck.Image = global::FallGuysStats.Properties.Resources.checkmark_icon; + this.picPlatformCheck.Location = new System.Drawing.Point(10, 0); + this.picPlatformCheck.Name = "picPlatformCheck"; + this.picPlatformCheck.Size = new System.Drawing.Size(17, 17); + this.picPlatformCheck.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picPlatformCheck.TabIndex = 0; + this.picPlatformCheck.TabStop = false; + // + // picEpicGames + // + this.picEpicGames.BackColor = System.Drawing.Color.Transparent; + this.picEpicGames.Cursor = System.Windows.Forms.Cursors.Hand; + this.picEpicGames.Image = global::FallGuysStats.Properties.Resources.epic_icon; + this.picEpicGames.Location = new System.Drawing.Point(3, 17); + this.picEpicGames.Name = "picEpicGames"; + this.picEpicGames.Size = new System.Drawing.Size(46, 38); + this.picEpicGames.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picEpicGames.TabIndex = 1; + this.picEpicGames.TabStop = false; + this.platformToolTip.SetToolTip(this.picEpicGames, "Epic Games"); + this.picEpicGames.Click += new System.EventHandler(this.launchPlatform_Click); + // + // picSteam + // + this.picSteam.BackColor = System.Drawing.Color.Transparent; + this.picSteam.Cursor = System.Windows.Forms.Cursors.Hand; + this.picSteam.Image = global::FallGuysStats.Properties.Resources.steam_icon; + this.picSteam.Location = new System.Drawing.Point(45, 19); + this.picSteam.Name = "picSteam"; + this.picSteam.Size = new System.Drawing.Size(45, 34); + this.picSteam.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picSteam.TabIndex = 2; + this.picSteam.TabStop = false; + this.platformToolTip.SetToolTip(this.picSteam, "Steam"); + this.picSteam.Click += new System.EventHandler(this.launchPlatform_Click); + // + // cboIpGeolocationService + // + this.cboIpGeolocationService.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboIpGeolocationService.FormattingEnabled = true; + this.cboIpGeolocationService.IntegralHeight = false; + this.cboIpGeolocationService.ItemHeight = 23; + this.cboIpGeolocationService.Items.AddRange(new object[] { "Auto", "IPinfo.io" }); + this.cboIpGeolocationService.Location = new System.Drawing.Point(462, 370); + this.cboIpGeolocationService.Name = "cboIpGeolocationService"; + this.cboIpGeolocationService.Size = new System.Drawing.Size(84, 29); + this.cboIpGeolocationService.TabIndex = 36; + this.cboIpGeolocationService.UseSelectable = true; + this.cboIpGeolocationService.SelectedIndexChanged += new System.EventHandler(this.cboIpGeolocationService_SelectedIndexChanged); + // + // lblIpGeolocationService + // + this.lblIpGeolocationService.AutoSize = true; + this.lblIpGeolocationService.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblIpGeolocationService.Location = new System.Drawing.Point(258, 375); + this.lblIpGeolocationService.Name = "lblIpGeolocationService"; + this.lblIpGeolocationService.Size = new System.Drawing.Size(203, 19); + this.lblIpGeolocationService.TabIndex = 40; + this.lblIpGeolocationService.Text = "Preferred IP geolocation service"; + // + // linkIPinfoToken + // + this.linkIPinfoToken.AutoSize = true; + this.linkIPinfoToken.Cursor = System.Windows.Forms.Cursors.Hand; + this.linkIPinfoToken.FontSize = MetroFramework.MetroLinkSize.Medium; + this.linkIPinfoToken.ForeColor = System.Drawing.Color.Black; + this.linkIPinfoToken.Location = new System.Drawing.Point(414, 411); + this.linkIPinfoToken.Name = "linkIPinfoToken"; + this.linkIPinfoToken.Size = new System.Drawing.Size(45, 19); + this.linkIPinfoToken.TabIndex = 44; + this.linkIPinfoToken.Text = "Token"; + this.linkIPinfoToken.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.linkIPinfoToken.UseSelectable = true; + this.linkIPinfoToken.UseStyleColors = true; + this.linkIPinfoToken.Visible = false; + this.linkIPinfoToken.Click += new System.EventHandler(this.link_Click); + this.linkIPinfoToken.MouseEnter += new System.EventHandler(this.linkIPinfoToken_MouseEnter); + this.linkIPinfoToken.MouseLeave += new System.EventHandler(this.linkIPinfoToken_MouseLeave); + // + // txtIPinfoToken + // + this.txtIPinfoToken.CustomButton.Image = null; + this.txtIPinfoToken.CustomButton.Location = new System.Drawing.Point(202, 1); + this.txtIPinfoToken.CustomButton.Name = ""; + this.txtIPinfoToken.CustomButton.Size = new System.Drawing.Size(23, 23); + this.txtIPinfoToken.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtIPinfoToken.CustomButton.TabIndex = 1; + this.txtIPinfoToken.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtIPinfoToken.CustomButton.UseSelectable = true; + this.txtIPinfoToken.CustomButton.Visible = false; + this.txtIPinfoToken.Visible = false; + this.txtIPinfoToken.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtIPinfoToken.Lines = new string[0]; + this.txtIPinfoToken.Location = new System.Drawing.Point(462, 412); + this.txtIPinfoToken.MaxLength = 32767; + this.txtIPinfoToken.Name = "txtIPinfoToken"; + this.txtIPinfoToken.PasswordChar = '\0'; + this.txtIPinfoToken.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtIPinfoToken.SelectedText = ""; + this.txtIPinfoToken.SelectionLength = 0; + this.txtIPinfoToken.SelectionStart = 0; + this.txtIPinfoToken.ShortcutsEnabled = true; + this.txtIPinfoToken.Size = new System.Drawing.Size(120, 26); + this.txtIPinfoToken.TabIndex = 48; + this.txtIPinfoToken.UseSelectable = true; + this.txtIPinfoToken.WaterMark = "(Optional)"; + this.txtIPinfoToken.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtIPinfoToken.WaterMarkFont = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + // + // cboMultilingual + // + this.cboMultilingual.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboMultilingual.DropDownHeight = 414; + this.cboMultilingual.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cboMultilingual.FormattingEnabled = true; + this.cboMultilingual.ItemHeight = 23; + this.cboMultilingual.Location = new System.Drawing.Point(53, 412); + this.cboMultilingual.Name = "cboMultilingual"; + this.cboMultilingual.Size = new System.Drawing.Size(120, 29); + this.cboMultilingual.TabIndex = 19; + this.cboMultilingual.SelectedIndexChanged += new System.EventHandler(this.cboMultilingual_SelectedIndexChanged); + // + // lblTheme + // + this.lblTheme.AutoSize = true; + this.lblTheme.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblTheme.Location = new System.Drawing.Point(12, 375); + this.lblTheme.Name = "lblTheme"; + this.lblTheme.Size = new System.Drawing.Size(50, 19); + this.lblTheme.TabIndex = 5; + this.lblTheme.Text = "Theme"; + // + // chkChangeHoopsieLegends + // + this.chkChangeHoopsieLegends.AutoSize = true; + this.chkChangeHoopsieLegends.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkChangeHoopsieLegends.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkChangeHoopsieLegends.Location = new System.Drawing.Point(15, 46); + this.chkChangeHoopsieLegends.Name = "chkChangeHoopsieLegends"; + this.chkChangeHoopsieLegends.Size = new System.Drawing.Size(301, 19); + this.chkChangeHoopsieLegends.TabIndex = 4; + this.chkChangeHoopsieLegends.Text = "Rename Hoopsie Legends to Hoopsie Heroes"; + this.chkChangeHoopsieLegends.UseCustomForeColor = true; + this.chkChangeHoopsieLegends.UseSelectable = true; + this.chkChangeHoopsieLegends.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkChangeHoopsieLegends.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkChangeHoopsieLegends.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkChangeHoopsieLegends.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkChangeHoopsieLegends.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // cboTheme + // + this.cboTheme.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboTheme.FormattingEnabled = true; + this.cboTheme.IntegralHeight = false; + this.cboTheme.ItemHeight = 23; + this.cboTheme.Items.AddRange(new object[] { "Light", "Dark" }); + this.cboTheme.Location = new System.Drawing.Point(67, 370); + this.cboTheme.Name = "cboTheme"; + this.cboTheme.Size = new System.Drawing.Size(85, 29); + this.cboTheme.TabIndex = 1; + this.cboTheme.UseSelectable = true; + this.cboTheme.SelectedIndexChanged += new System.EventHandler(this.cboTheme_SelectedIndexChanged); + // + // chkAutoUpdate + // + this.chkAutoUpdate.AutoSize = true; + this.chkAutoUpdate.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkAutoUpdate.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkAutoUpdate.Location = new System.Drawing.Point(15, 90); + this.chkAutoUpdate.Name = "chkAutoUpdate"; + this.chkAutoUpdate.Size = new System.Drawing.Size(161, 19); + this.chkAutoUpdate.TabIndex = 4; + this.chkAutoUpdate.Text = "Auto Update Program"; + this.chkAutoUpdate.UseCustomForeColor = true; + this.chkAutoUpdate.UseSelectable = true; + this.chkAutoUpdate.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkAutoUpdate.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkAutoUpdate.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkAutoUpdate.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkAutoUpdate.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkSystemTrayIcon + // + this.chkSystemTrayIcon.AutoSize = true; + this.chkSystemTrayIcon.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkSystemTrayIcon.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkSystemTrayIcon.Location = new System.Drawing.Point(15, 120); + this.chkSystemTrayIcon.Name = "chkSystemTrayIcon"; + this.chkSystemTrayIcon.Size = new System.Drawing.Size(176, 19); + this.chkSystemTrayIcon.TabIndex = 5; + this.chkSystemTrayIcon.Text = "Use the system tray icon"; + this.chkSystemTrayIcon.UseCustomForeColor = true; + this.chkSystemTrayIcon.UseSelectable = true; + this.chkSystemTrayIcon.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkSystemTrayIcon.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkSystemTrayIcon.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkSystemTrayIcon.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkSystemTrayIcon.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkNotifyServerConnected + // + this.chkNotifyServerConnected.AutoSize = true; + this.chkNotifyServerConnected.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkNotifyServerConnected.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkNotifyServerConnected.Location = new System.Drawing.Point(15, 210); + this.chkNotifyServerConnected.Name = "chkNotifyServerConnected"; + this.chkNotifyServerConnected.Size = new System.Drawing.Size(420, 19); + this.chkNotifyServerConnected.TabIndex = 5; + this.chkNotifyServerConnected.Text = "Windows notification with server name when server is connected"; + this.chkNotifyServerConnected.UseCustomForeColor = true; + this.chkNotifyServerConnected.UseSelectable = true; + // this.chkNotifyServerConnected.CheckedChanged += new System.EventHandler(this.chkNotify_CheckedChanged); + this.chkNotifyServerConnected.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkNotifyServerConnected.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkNotifyServerConnected.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkNotifyServerConnected.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkNotifyServerConnected.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkNotifyPersonalBest + // + this.chkNotifyPersonalBest.AutoSize = true; + this.chkNotifyPersonalBest.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkNotifyPersonalBest.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkNotifyPersonalBest.Location = new System.Drawing.Point(15, 240); + this.chkNotifyPersonalBest.Name = "chkNotifyPersonalBest"; + this.chkNotifyPersonalBest.Size = new System.Drawing.Size(420, 19); + this.chkNotifyPersonalBest.TabIndex = 5; + this.chkNotifyPersonalBest.Text = "Windows notification when you break your personal best during a race round"; + this.chkNotifyPersonalBest.UseCustomForeColor = true; + this.chkNotifyPersonalBest.UseSelectable = true; + // this.chkNotifyPersonalBest.CheckedChanged += new System.EventHandler(this.chkNotify_CheckedChanged); + this.chkNotifyPersonalBest.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkNotifyPersonalBest.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkNotifyPersonalBest.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkNotifyPersonalBest.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkNotifyPersonalBest.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkMuteNotificationSounds + // + this.chkMuteNotificationSounds.AutoSize = true; + this.chkMuteNotificationSounds.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkMuteNotificationSounds.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkMuteNotificationSounds.Location = new System.Drawing.Point(15, 270); + this.chkMuteNotificationSounds.Name = "chkMuteNotificationSounds"; + this.chkMuteNotificationSounds.Size = new System.Drawing.Size(420, 19); + this.chkMuteNotificationSounds.TabIndex = 5; + this.chkMuteNotificationSounds.Text = "Mute notification sounds"; + this.chkMuteNotificationSounds.UseCustomForeColor = true; + this.chkMuteNotificationSounds.UseSelectable = true; + this.chkMuteNotificationSounds.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkMuteNotificationSounds.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkMuteNotificationSounds.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkMuteNotificationSounds.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkMuteNotificationSounds.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // cboNotificationSounds + // + this.cboNotificationSounds.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboNotificationSounds.FormattingEnabled = true; + this.cboNotificationSounds.IntegralHeight = false; + this.cboNotificationSounds.ItemHeight = 23; + this.cboNotificationSounds.Items.AddRange(new object[] { "Notification Sounds 01", "Notification Sounds 02", "Notification Sounds 03", "Notification Sounds 04" }); + this.cboNotificationSounds.Location = new System.Drawing.Point(15, 300); + this.cboNotificationSounds.Name = "cboNotificationSounds"; + this.cboNotificationSounds.Size = new System.Drawing.Size(72, 29); + this.cboNotificationSounds.TabIndex = 1; + this.cboNotificationSounds.UseSelectable = true; + // + // cboNotificationWindowPosition + // + this.cboNotificationWindowPosition.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboNotificationWindowPosition.FormattingEnabled = true; + this.cboNotificationWindowPosition.IntegralHeight = false; + this.cboNotificationWindowPosition.ItemHeight = 24; + this.cboNotificationWindowPosition.Items.AddRange(new object[] { "Top Left", "Top Right", "Bottom Left", "Bottom Right" }); + this.cboNotificationWindowPosition.Location = new System.Drawing.Point(15, 300); + this.cboNotificationWindowPosition.Name = "cboNotificationWindowPosition"; + this.cboNotificationWindowPosition.Size = new System.Drawing.Size(116, 29); + this.cboNotificationWindowPosition.TabIndex = 1; + this.cboNotificationWindowPosition.UseSelectable = true; + // + // cboNotificationWindowAnimation + // + this.cboNotificationWindowAnimation.Cursor = System.Windows.Forms.Cursors.Hand; + this.cboNotificationWindowAnimation.FormattingEnabled = true; + this.cboNotificationWindowAnimation.IntegralHeight = false; + this.cboNotificationWindowAnimation.ItemHeight = 25; + this.cboNotificationWindowAnimation.Items.AddRange(new object[] { "FADE", "SLIDE" }); + this.cboNotificationWindowAnimation.Location = new System.Drawing.Point(15, 300); + this.cboNotificationWindowAnimation.Name = "cboNotificationWindowAnimation"; + this.cboNotificationWindowAnimation.Size = new System.Drawing.Size(70, 29); + this.cboNotificationWindowAnimation.TabIndex = 1; + this.cboNotificationWindowAnimation.UseSelectable = true; + // + // mlPlayNotificationSounds + // + this.mlPlayNotificationSounds.AutoSize = true; + this.mlPlayNotificationSounds.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlPlayNotificationSounds.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlPlayNotificationSounds.Image = global::FallGuysStats.Properties.Resources.right_button_icon; + this.mlPlayNotificationSounds.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.mlPlayNotificationSounds.ImageSize = 29; + this.mlPlayNotificationSounds.Location = new System.Drawing.Point(300, 299); + this.mlPlayNotificationSounds.Name = "mlPlayNotificationSounds"; + this.mlPlayNotificationSounds.Size = new System.Drawing.Size(29, 30); + this.mlPlayNotificationSounds.TabIndex = 3; + this.mlPlayNotificationSounds.Text = ""; + this.mlPlayNotificationSounds.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.mlPlayNotificationSounds.UseSelectable = true; + this.mlPlayNotificationSounds.UseStyleColors = true; + this.mlPlayNotificationSounds.Click += new System.EventHandler(this.mlPlayNotificationSounds_Click); + // + // chkPreventOverlayMouseClicks + // + this.chkPreventOverlayMouseClicks.AutoSize = true; + this.chkPreventOverlayMouseClicks.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkPreventOverlayMouseClicks.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkPreventOverlayMouseClicks.Location = new System.Drawing.Point(15, 480); + this.chkPreventOverlayMouseClicks.Name = "chkPreventOverlayMouseClicks"; + this.chkPreventOverlayMouseClicks.Size = new System.Drawing.Size(200, 19); + this.chkPreventOverlayMouseClicks.TabIndex = 6; + this.chkPreventOverlayMouseClicks.Text = "Prevent overlay mouse clicks"; + this.chkPreventOverlayMouseClicks.UseCustomForeColor = true; + this.chkPreventOverlayMouseClicks.UseSelectable = true; + this.chkPreventOverlayMouseClicks.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkPreventOverlayMouseClicks.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkPreventOverlayMouseClicks.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkPreventOverlayMouseClicks.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkPreventOverlayMouseClicks.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // lblPreviousWinsNote + // + this.lblPreviousWinsNote.AutoSize = true; + this.lblPreviousWinsNote.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPreviousWinsNote.ForeColor = System.Drawing.Color.DimGray; + this.lblPreviousWinsNote.Location = new System.Drawing.Point(145, 12); + this.lblPreviousWinsNote.Name = "lblPreviousWinsNote"; + this.lblPreviousWinsNote.Size = new System.Drawing.Size(139, 19); + this.lblPreviousWinsNote.TabIndex = 2; + this.lblPreviousWinsNote.Text = "(before using tracker)"; + // + // lblPreviousWins + // + this.lblPreviousWins.AutoSize = true; + this.lblPreviousWins.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblPreviousWins.Location = new System.Drawing.Point(12, 12); + this.lblPreviousWins.Name = "lblPreviousWins"; + this.lblPreviousWins.Size = new System.Drawing.Size(103, 19); + this.lblPreviousWins.TabIndex = 0; + this.lblPreviousWins.Text = "Previous Win(s)"; + // + // txtPreviousWins + // + this.txtPreviousWins.CustomButton.Image = null; + this.txtPreviousWins.CustomButton.Location = new System.Drawing.Point(20, 1); + this.txtPreviousWins.CustomButton.Name = ""; + this.txtPreviousWins.CustomButton.Size = new System.Drawing.Size(19, 19); + this.txtPreviousWins.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtPreviousWins.CustomButton.TabIndex = 1; + this.txtPreviousWins.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtPreviousWins.CustomButton.UseSelectable = true; + this.txtPreviousWins.CustomButton.Visible = false; + this.txtPreviousWins.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtPreviousWins.Lines = new string[] { "0" }; + this.txtPreviousWins.Location = new System.Drawing.Point(99, 10); + this.txtPreviousWins.MaxLength = 5; + this.txtPreviousWins.Name = "txtPreviousWins"; + this.txtPreviousWins.PasswordChar = '\0'; + this.txtPreviousWins.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtPreviousWins.SelectedText = ""; + this.txtPreviousWins.SelectionLength = 0; + this.txtPreviousWins.SelectionStart = 0; + this.txtPreviousWins.ShortcutsEnabled = true; + this.txtPreviousWins.Size = new System.Drawing.Size(50, 24); + this.txtPreviousWins.TabIndex = 1; + this.txtPreviousWins.Text = "0"; + this.txtPreviousWins.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.txtPreviousWins.UseSelectable = true; + this.txtPreviousWins.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtPreviousWins.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.txtPreviousWins.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.enterOnlyDigitInTextBox_KeyPress); + this.txtPreviousWins.Validating += new System.ComponentModel.CancelEventHandler(this.txtPreviousWins_Validating); + // + // lblGameExeLocation + // + this.lblGameExeLocation.AutoSize = true; + this.lblGameExeLocation.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblGameExeLocation.Location = new System.Drawing.Point(107, 20); + this.lblGameExeLocation.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.lblGameExeLocation.Name = "lblGameExeLocation"; + this.lblGameExeLocation.Size = new System.Drawing.Size(157, 19); + this.lblGameExeLocation.TabIndex = 0; + this.lblGameExeLocation.Text = "Game Shortcut Location"; + // + // txtGameExeLocation + // + this.txtGameExeLocation.CustomButton.Image = null; + this.txtGameExeLocation.CustomButton.Location = new System.Drawing.Point(369, 1); + this.txtGameExeLocation.CustomButton.Name = ""; + this.txtGameExeLocation.CustomButton.Size = new System.Drawing.Size(23, 23); + this.txtGameExeLocation.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtGameExeLocation.CustomButton.TabIndex = 1; + this.txtGameExeLocation.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtGameExeLocation.CustomButton.UseSelectable = true; + this.txtGameExeLocation.CustomButton.Visible = false; + this.txtGameExeLocation.Enabled = false; + this.txtGameExeLocation.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtGameExeLocation.Lines = new string[0]; + this.txtGameExeLocation.Location = new System.Drawing.Point(162, 46); + this.txtGameExeLocation.Margin = new System.Windows.Forms.Padding(2); + this.txtGameExeLocation.MaxLength = 32767; + this.txtGameExeLocation.Name = "txtGameExeLocation"; + this.txtGameExeLocation.PasswordChar = '\0'; + this.txtGameExeLocation.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtGameExeLocation.SelectedText = ""; + this.txtGameExeLocation.SelectionLength = 0; + this.txtGameExeLocation.SelectionStart = 0; + this.txtGameExeLocation.ShortcutsEnabled = true; + this.txtGameExeLocation.Size = new System.Drawing.Size(393, 25); + this.txtGameExeLocation.TabIndex = 37; + this.txtGameExeLocation.UseSelectable = true; + this.txtGameExeLocation.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtGameExeLocation.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // txtGameShortcutLocation + // + this.txtGameShortcutLocation.CustomButton.Image = null; + this.txtGameShortcutLocation.CustomButton.Location = new System.Drawing.Point(381, 1); + this.txtGameShortcutLocation.CustomButton.Name = ""; + this.txtGameShortcutLocation.CustomButton.Size = new System.Drawing.Size(23, 23); + this.txtGameShortcutLocation.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtGameShortcutLocation.CustomButton.TabIndex = 1; + this.txtGameShortcutLocation.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtGameShortcutLocation.CustomButton.UseSelectable = true; + this.txtGameShortcutLocation.CustomButton.Visible = false; + this.txtGameShortcutLocation.Enabled = false; + this.txtGameShortcutLocation.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtGameShortcutLocation.Lines = new string[0]; + this.txtGameShortcutLocation.Location = new System.Drawing.Point(162, 46); + this.txtGameShortcutLocation.Margin = new System.Windows.Forms.Padding(2); + this.txtGameShortcutLocation.MaxLength = 32767; + this.txtGameShortcutLocation.Name = "txtGameShortcutLocation"; + this.txtGameShortcutLocation.PasswordChar = '\0'; + this.txtGameShortcutLocation.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtGameShortcutLocation.SelectedText = ""; + this.txtGameShortcutLocation.SelectionLength = 0; + this.txtGameShortcutLocation.SelectionStart = 0; + this.txtGameShortcutLocation.ShortcutsEnabled = true; + this.txtGameShortcutLocation.Size = new System.Drawing.Size(405, 25); + this.txtGameShortcutLocation.TabIndex = 38; + this.txtGameShortcutLocation.UseSelectable = true; + this.txtGameShortcutLocation.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtGameShortcutLocation.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // btnGameExeLocationBrowse + // + this.btnGameExeLocationBrowse.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnGameExeLocationBrowse.Location = new System.Drawing.Point(571, 46); + this.btnGameExeLocationBrowse.Margin = new System.Windows.Forms.Padding(14, 11, 14, 11); + this.btnGameExeLocationBrowse.Name = "btnGameExeLocationBrowse"; + this.btnGameExeLocationBrowse.Size = new System.Drawing.Size(62, 25); + this.btnGameExeLocationBrowse.TabIndex = 2; + this.btnGameExeLocationBrowse.Text = "Browse"; + this.btnGameExeLocationBrowse.UseSelectable = true; + this.btnGameExeLocationBrowse.Click += new System.EventHandler(this.btnGameExeLocationBrowse_Click); + // + // chkLaunchGameOnStart + // + this.chkLaunchGameOnStart.AutoSize = true; + this.chkLaunchGameOnStart.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkLaunchGameOnStart.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkLaunchGameOnStart.Location = new System.Drawing.Point(15, 90); + this.chkLaunchGameOnStart.Margin = new System.Windows.Forms.Padding(2); + this.chkLaunchGameOnStart.Name = "chkLaunchGameOnStart"; + this.chkLaunchGameOnStart.Size = new System.Drawing.Size(226, 19); + this.chkLaunchGameOnStart.TabIndex = 3; + this.chkLaunchGameOnStart.Text = "Auto-launch Fall Guys on tracker"; + this.chkLaunchGameOnStart.UseCustomForeColor = true; + this.chkLaunchGameOnStart.UseSelectable = true; + this.chkLaunchGameOnStart.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkLaunchGameOnStart.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkLaunchGameOnStart.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkLaunchGameOnStart.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkLaunchGameOnStart.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // picLanguageSelection + // + this.picLanguageSelection.Image = global::FallGuysStats.Properties.Resources.language_icon; + this.picLanguageSelection.Location = new System.Drawing.Point(15, 412); + this.picLanguageSelection.Name = "picLanguageSelection"; + this.picLanguageSelection.Size = new System.Drawing.Size(30, 30); + this.picLanguageSelection.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picLanguageSelection.TabIndex = 39; + this.picLanguageSelection.TabStop = false; + // + // chkIgnoreLevelTypeWhenSorting + // + this.chkIgnoreLevelTypeWhenSorting.AutoSize = true; + this.chkIgnoreLevelTypeWhenSorting.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkIgnoreLevelTypeWhenSorting.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkIgnoreLevelTypeWhenSorting.Location = new System.Drawing.Point(15, 100); + this.chkIgnoreLevelTypeWhenSorting.Margin = new System.Windows.Forms.Padding(2); + this.chkIgnoreLevelTypeWhenSorting.Name = "chkIgnoreLevelTypeWhenSorting"; + this.chkIgnoreLevelTypeWhenSorting.Size = new System.Drawing.Size(216, 19); + this.chkIgnoreLevelTypeWhenSorting.TabIndex = 0; + this.chkIgnoreLevelTypeWhenSorting.Text = "Ignore Level Type when sorting"; + this.chkIgnoreLevelTypeWhenSorting.UseCustomForeColor = true; + this.chkIgnoreLevelTypeWhenSorting.UseSelectable = true; + this.chkIgnoreLevelTypeWhenSorting.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkIgnoreLevelTypeWhenSorting.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkIgnoreLevelTypeWhenSorting.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkIgnoreLevelTypeWhenSorting.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkIgnoreLevelTypeWhenSorting.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkGroupingCreativeRoundLevels + // + this.chkGroupingCreativeRoundLevels.AutoSize = true; + this.chkGroupingCreativeRoundLevels.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkGroupingCreativeRoundLevels.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkGroupingCreativeRoundLevels.Location = new System.Drawing.Point(15, 131); + this.chkGroupingCreativeRoundLevels.Margin = new System.Windows.Forms.Padding(2); + this.chkGroupingCreativeRoundLevels.Name = "chkGroupingCreativeRoundLevels"; + this.chkGroupingCreativeRoundLevels.Size = new System.Drawing.Size(324, 19); + this.chkGroupingCreativeRoundLevels.TabIndex = 1; + this.chkGroupingCreativeRoundLevels.Text = "Grouping creative round levels into one category"; + this.chkGroupingCreativeRoundLevels.UseCustomForeColor = true; + this.chkGroupingCreativeRoundLevels.UseSelectable = true; + this.chkGroupingCreativeRoundLevels.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkGroupingCreativeRoundLevels.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkGroupingCreativeRoundLevels.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkGroupingCreativeRoundLevels.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkGroupingCreativeRoundLevels.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkRecordEscapeDuringAGame + // + this.chkRecordEscapeDuringAGame.AutoSize = true; + this.chkRecordEscapeDuringAGame.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkRecordEscapeDuringAGame.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkRecordEscapeDuringAGame.Location = new System.Drawing.Point(15, 150); + this.chkRecordEscapeDuringAGame.Margin = new System.Windows.Forms.Padding(2); + this.chkRecordEscapeDuringAGame.Name = "chkRecordEscapeDuringAGame"; + this.chkRecordEscapeDuringAGame.Size = new System.Drawing.Size(311, 19); + this.chkRecordEscapeDuringAGame.TabIndex = 5; + this.chkRecordEscapeDuringAGame.Text = "If you escape during a game, record it as a loss"; + this.chkRecordEscapeDuringAGame.UseCustomForeColor = true; + this.chkRecordEscapeDuringAGame.UseSelectable = true; + this.chkRecordEscapeDuringAGame.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkRecordEscapeDuringAGame.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkRecordEscapeDuringAGame.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkRecordEscapeDuringAGame.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkRecordEscapeDuringAGame.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // btnCancel + // + this.btnCancel.Anchor = System.Windows.Forms.AnchorStyles.None; + this.btnCancel.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnCancel.Location = new System.Drawing.Point(788, 605); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(87, 26); + this.btnCancel.TabIndex = 8; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseSelectable = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // platformToolTip + // + this.platformToolTip.Style = MetroFramework.MetroColorStyle.Blue; + this.platformToolTip.StyleManager = null; + this.platformToolTip.Theme = MetroFramework.MetroThemeStyle.Light; + // + // tileProgram + // + this.tileProgram.ActiveControl = null; + this.tileProgram.BackColor = System.Drawing.Color.LightGray; + this.tileProgram.Location = new System.Drawing.Point(12, 73); + this.tileProgram.Name = "tileProgram"; + this.tileProgram.Size = new System.Drawing.Size(193, 45); + this.tileProgram.TabIndex = 9; + this.tileProgram.Text = "Program"; + this.tileProgram.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.tileProgram.TileTextFontWeight = MetroFramework.MetroTileTextWeight.Bold; + this.tileProgram.UseSelectable = true; + this.tileProgram.Click += new System.EventHandler(this.ChangeTab); + // + // panelProgram + // + this.panelProgram.Controls.Add(this.linkIPinfoToken); + this.panelProgram.Controls.Add(this.txtIPinfoToken); + this.panelProgram.Controls.Add(this.lblIpGeolocationService); + this.panelProgram.Controls.Add(this.cboIpGeolocationService); + this.panelProgram.Controls.Add(this.lblTheme); + this.panelProgram.Controls.Add(this.cboTheme); + this.panelProgram.Controls.Add(this.picLanguageSelection); + this.panelProgram.Controls.Add(this.cboMultilingual); + this.panelProgram.Controls.Add(this.chkAutoUpdate); + this.panelProgram.Controls.Add(this.chkSystemTrayIcon); + this.panelProgram.Controls.Add(this.chkRecordEscapeDuringAGame); + this.panelProgram.Controls.Add(this.chkNotifyServerConnected); + this.panelProgram.Controls.Add(this.chkNotifyPersonalBest); + this.panelProgram.Controls.Add(this.chkMuteNotificationSounds); + this.panelProgram.Controls.Add(this.cboNotificationSounds); + this.panelProgram.Controls.Add(this.cboNotificationWindowPosition); + this.panelProgram.Controls.Add(this.cboNotificationWindowAnimation); + this.panelProgram.Controls.Add(this.mlPlayNotificationSounds); + this.panelProgram.Controls.Add(this.chkPreventOverlayMouseClicks); + // this.panelProgram.Controls.Add(this.lblLogPath); + this.panelProgram.Controls.Add(this.txtLogPath); + this.panelProgram.Controls.Add(this.lblLogPathNote); + this.panelProgram.HorizontalScrollbarBarColor = true; + this.panelProgram.HorizontalScrollbarHighlightOnWheel = false; + this.panelProgram.HorizontalScrollbarSize = 10; + this.panelProgram.Location = new System.Drawing.Point(22, 119); + this.panelProgram.Name = "panelProgram"; + this.panelProgram.Size = new System.Drawing.Size(667, 500); + this.panelProgram.TabIndex = 10; + this.panelProgram.VerticalScrollbarBarColor = true; + this.panelProgram.VerticalScrollbarHighlightOnWheel = false; + this.panelProgram.VerticalScrollbarSize = 15; + // + // panelDisplay + // + this.panelDisplay.Controls.Add(this.lblPreviousWins); + this.panelDisplay.Controls.Add(this.chkIgnoreLevelTypeWhenSorting); + this.panelDisplay.Controls.Add(this.chkGroupingCreativeRoundLevels); + this.panelDisplay.Controls.Add(this.txtPreviousWins); + this.panelDisplay.Controls.Add(this.chkChangeHoopsieLegends); + this.panelDisplay.Controls.Add(this.lblPreviousWinsNote); + this.panelDisplay.HorizontalScrollbarBarColor = true; + this.panelDisplay.HorizontalScrollbarHighlightOnWheel = false; + this.panelDisplay.HorizontalScrollbarSize = 10; + this.panelDisplay.Location = new System.Drawing.Point(22, 119); + this.panelDisplay.Name = "panelDisplay"; + this.panelDisplay.Size = new System.Drawing.Size(667, 195); + this.panelDisplay.TabIndex = 11; + this.panelDisplay.VerticalScrollbarBarColor = true; + this.panelDisplay.VerticalScrollbarHighlightOnWheel = false; + this.panelDisplay.VerticalScrollbarSize = 15; + // + // tileDisplay + // + this.tileDisplay.ActiveControl = null; + this.tileDisplay.BackColor = System.Drawing.Color.LightGray; + this.tileDisplay.Location = new System.Drawing.Point(12, 124); + this.tileDisplay.Name = "tileDisplay"; + this.tileDisplay.Size = new System.Drawing.Size(193, 45); + this.tileDisplay.TabIndex = 12; + this.tileDisplay.Text = "Display"; + this.tileDisplay.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.tileDisplay.TileTextFontWeight = MetroFramework.MetroTileTextWeight.Bold; + this.tileDisplay.UseSelectable = true; + this.tileDisplay.Click += new System.EventHandler(this.ChangeTab); + // + // panelOverlay + // + this.panelOverlay.AutoScroll = true; + this.panelOverlay.Controls.Add(this.grpOverlayFontExample); + this.panelOverlay.Controls.Add(this.lblOverlayFont); + this.panelOverlay.Controls.Add(this.btnSelectFont); + this.panelOverlay.Controls.Add(this.btnResetOverlayFont); + this.panelOverlay.Controls.Add(this.chkAutoChangeProfile); + this.panelOverlay.Controls.Add(this.chkShadeTheFlagImage); + this.panelOverlay.Controls.Add(this.chkDisplayCurrentTime); + this.panelOverlay.Controls.Add(this.chkDisplayGamePlayedInfo); + this.panelOverlay.Controls.Add(this.chkCountPlayersDuringTheLevel); + this.panelOverlay.Controls.Add(this.chkColorByRoundType); + this.panelOverlay.Controls.Add(this.chkPlayerByConsoleType); + this.panelOverlay.Controls.Add(this.chkOverlayOnTop); + this.panelOverlay.Controls.Add(this.chkFlipped); + this.panelOverlay.Controls.Add(this.lblLockButtonLocation); + this.panelOverlay.Controls.Add(this.cboLockButtonLocation); + this.panelOverlay.Controls.Add(this.lblOverlayColor); + this.panelOverlay.Controls.Add(this.lblOverlayOpacity); + this.panelOverlay.Controls.Add(this.cboOverlayColor); + this.panelOverlay.Controls.Add(this.lblOverlayBackground); + this.panelOverlay.Controls.Add(this.cboOverlayBackground); + this.panelOverlay.Controls.Add(this.grpCycleQualifyGold); + this.panelOverlay.Controls.Add(this.chkHidePercentages); + this.panelOverlay.Controls.Add(this.grpCycleFastestLongest); + this.panelOverlay.Controls.Add(this.chkHideWinsInfo); + this.panelOverlay.Controls.Add(this.chkHideRoundInfo); + this.panelOverlay.Controls.Add(this.chkHideTimeInfo); + this.panelOverlay.Controls.Add(this.chkShowTabs); + this.panelOverlay.Controls.Add(this.cboFastestFilter); + this.panelOverlay.Controls.Add(this.lblWinsFilter); + this.panelOverlay.Controls.Add(this.cboQualifyFilter); + this.panelOverlay.Controls.Add(this.lblFastestFilter); + this.panelOverlay.Controls.Add(this.lblCycleTimeSecondsTag); + this.panelOverlay.Controls.Add(this.cboWinsFilter); + this.panelOverlay.Controls.Add(this.lblCycleTimeSeconds); + this.panelOverlay.Controls.Add(this.txtCycleTimeSeconds); + this.panelOverlay.Controls.Add(this.lblQualifyFilter); + this.panelOverlay.Controls.Add(this.grpCycleWinFinalStreak); + this.panelOverlay.Controls.Add(this.groupBox1); + this.panelOverlay.Controls.Add(this.trkOverlayOpacity); + this.panelOverlay.HorizontalScrollbar = true; + this.panelOverlay.HorizontalScrollbarBarColor = true; + this.panelOverlay.HorizontalScrollbarHighlightOnWheel = false; + this.panelOverlay.HorizontalScrollbarSize = 10; + this.panelOverlay.Location = new System.Drawing.Point(22, 6); + this.panelOverlay.Name = "panelOverlay"; + this.panelOverlay.Size = new System.Drawing.Size(667, 500); + this.panelOverlay.TabIndex = 13; + this.panelOverlay.VerticalScrollbar = true; + this.panelOverlay.VerticalScrollbarBarColor = true; + this.panelOverlay.VerticalScrollbarHighlightOnWheel = false; + this.panelOverlay.VerticalScrollbarSize = 15; + // + // tileOverlay + // + this.tileOverlay.ActiveControl = null; + this.tileOverlay.BackColor = System.Drawing.Color.LightGray; + this.tileOverlay.Location = new System.Drawing.Point(12, 175); + this.tileOverlay.Name = "tileOverlay"; + this.tileOverlay.Size = new System.Drawing.Size(193, 45); + this.tileOverlay.TabIndex = 14; + this.tileOverlay.Text = "Overlay"; + this.tileOverlay.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.tileOverlay.TileTextFontWeight = MetroFramework.MetroTileTextWeight.Bold; + this.tileOverlay.UseSelectable = true; + this.tileOverlay.Click += new System.EventHandler(this.ChangeTab); + // + // tileFallGuys + // + this.tileFallGuys.ActiveControl = null; + this.tileFallGuys.BackColor = System.Drawing.Color.LightGray; + this.tileFallGuys.Location = new System.Drawing.Point(12, 226); + this.tileFallGuys.Name = "tileFallGuys"; + this.tileFallGuys.Size = new System.Drawing.Size(193, 45); + this.tileFallGuys.TabIndex = 15; + this.tileFallGuys.Text = "Launch FallGuys"; + this.tileFallGuys.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.tileFallGuys.TileTextFontWeight = MetroFramework.MetroTileTextWeight.Bold; + this.tileFallGuys.UseSelectable = true; + this.tileFallGuys.Click += new System.EventHandler(this.ChangeTab); + // + // panelFallGuys + // + this.panelFallGuys.Controls.Add(this.chkLaunchGameOnStart); + this.panelFallGuys.Controls.Add(this.btnGameExeLocationBrowse); + this.panelFallGuys.Controls.Add(this.txtGameShortcutLocation); + this.panelFallGuys.Controls.Add(this.txtGameExeLocation); + this.panelFallGuys.Controls.Add(this.lblGameExeLocation); + this.panelFallGuys.Controls.Add(this.grpLaunchPlatform); + this.panelFallGuys.HorizontalScrollbarBarColor = true; + this.panelFallGuys.HorizontalScrollbarHighlightOnWheel = false; + this.panelFallGuys.HorizontalScrollbarSize = 10; + this.panelFallGuys.Location = new System.Drawing.Point(22, 286); + this.panelFallGuys.Name = "panelFallGuys"; + this.panelFallGuys.Size = new System.Drawing.Size(667, 136); + this.panelFallGuys.TabIndex = 16; + this.panelFallGuys.VerticalScrollbarBarColor = true; + this.panelFallGuys.VerticalScrollbarHighlightOnWheel = false; + this.panelFallGuys.VerticalScrollbarSize = 15; + // + // tileAbout + // + this.tileAbout.ActiveControl = null; + this.tileAbout.BackColor = System.Drawing.Color.LightGray; + this.tileAbout.Location = new System.Drawing.Point(12, 379); + this.tileAbout.Name = "tileAbout"; + this.tileAbout.Size = new System.Drawing.Size(193, 45); + this.tileAbout.TabIndex = 17; + this.tileAbout.Text = "About"; + this.tileAbout.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.tileAbout.TileTextFontWeight = MetroFramework.MetroTileTextWeight.Bold; + this.tileAbout.UseSelectable = true; + this.tileAbout.Click += new System.EventHandler(this.ChangeTab); + // + // panelAbout + // + this.panelAbout.AutoScroll = true; + this.panelAbout.Controls.Add(this.lblupdateNote); + this.panelAbout.Controls.Add(this.lbltpl4); + this.panelAbout.Controls.Add(this.lbltpl3); + this.panelAbout.Controls.Add(this.lbltpl2); + this.panelAbout.Controls.Add(this.lbltpl1); + this.panelAbout.Controls.Add(this.lbltpl0); + this.panelAbout.Controls.Add(this.lblthirdpartyLicences); + this.panelAbout.Controls.Add(this.fglink2); + this.panelAbout.Controls.Add(this.fglink1); + this.panelAbout.Controls.Add(this.btnCheckUpdates); + this.panelAbout.Controls.Add(this.lblVersion); + this.panelAbout.Controls.Add(this.lblLicence); + this.panelAbout.HorizontalScrollbar = true; + this.panelAbout.HorizontalScrollbarBarColor = true; + this.panelAbout.HorizontalScrollbarHighlightOnWheel = false; + this.panelAbout.HorizontalScrollbarSize = 10; + this.panelAbout.Location = new System.Drawing.Point(22, 428); + this.panelAbout.Name = "panelAbout"; + this.panelAbout.Size = new System.Drawing.Size(667, 500); + this.panelAbout.TabIndex = 18; + this.panelAbout.VerticalScrollbar = true; + this.panelAbout.VerticalScrollbarBarColor = true; + this.panelAbout.VerticalScrollbarHighlightOnWheel = false; + this.panelAbout.VerticalScrollbarSize = 15; + // + // lblupdateNote + // + this.lblupdateNote.AutoSize = true; + this.lblupdateNote.FontWeight = MetroFramework.MetroLabelWeight.Bold; + this.lblupdateNote.Location = new System.Drawing.Point(9, 90); + this.lblupdateNote.Name = "lblupdateNote"; + this.lblupdateNote.Size = new System.Drawing.Size(0, 0); + this.lblupdateNote.TabIndex = 14; + this.lblupdateNote.UseCustomForeColor = true; + // + // lbltpl4 + // + this.lbltpl4.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbltpl4.FontSize = MetroFramework.MetroLinkSize.Medium; + this.lbltpl4.Location = new System.Drawing.Point(12, 836); + this.lbltpl4.Name = "lbltpl4"; + this.lbltpl4.Size = new System.Drawing.Size(121, 23); + this.lbltpl4.TabIndex = 13; + this.lbltpl4.Text = "ScottPlot"; + this.lbltpl4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbltpl4.UseSelectable = true; + this.lbltpl4.Click += new System.EventHandler(this.link_Click); + // + // lbltpl3 + // + this.lbltpl3.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbltpl3.FontSize = MetroFramework.MetroLinkSize.Medium; + this.lbltpl3.Location = new System.Drawing.Point(12, 807); + this.lbltpl3.Name = "lbltpl3"; + this.lbltpl3.Size = new System.Drawing.Size(121, 23); + this.lbltpl3.TabIndex = 12; + this.lbltpl3.Text = "MetroModernUI"; + this.lbltpl3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbltpl3.UseSelectable = true; + this.lbltpl3.Click += new System.EventHandler(this.link_Click); + // + // lbltpl2 + // + this.lbltpl2.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbltpl2.FontSize = MetroFramework.MetroLinkSize.Medium; + this.lbltpl2.Location = new System.Drawing.Point(12, 778); + this.lbltpl2.Name = "lbltpl2"; + this.lbltpl2.Size = new System.Drawing.Size(121, 23); + this.lbltpl2.TabIndex = 11; + this.lbltpl2.Text = "Fody"; + this.lbltpl2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbltpl2.UseSelectable = true; + this.lbltpl2.Click += new System.EventHandler(this.link_Click); + // + // lbltpl1 + // + this.lbltpl1.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbltpl1.FontSize = MetroFramework.MetroLinkSize.Medium; + this.lbltpl1.Location = new System.Drawing.Point(12, 751); + this.lbltpl1.Name = "lbltpl1"; + this.lbltpl1.Size = new System.Drawing.Size(121, 23); + this.lbltpl1.TabIndex = 8; + this.lbltpl1.Text = "Costura.Fody"; + this.lbltpl1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbltpl1.UseSelectable = true; + this.lbltpl1.Click += new System.EventHandler(this.link_Click); + // + // lbltpl0 + // + this.lbltpl0.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbltpl0.FontSize = MetroFramework.MetroLinkSize.Medium; + this.lbltpl0.Location = new System.Drawing.Point(12, 724); + this.lbltpl0.Name = "lbltpl0"; + this.lbltpl0.Size = new System.Drawing.Size(121, 23); + this.lbltpl0.TabIndex = 8; + this.lbltpl0.Text = "LiteDB"; + this.lbltpl0.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbltpl0.UseSelectable = true; + this.lbltpl0.Click += new System.EventHandler(this.link_Click); + // + // lblthirdpartyLicences + // + this.lblthirdpartyLicences.AutoSize = true; + this.lblthirdpartyLicences.ForeColor = System.Drawing.Color.Teal; + this.lblthirdpartyLicences.Location = new System.Drawing.Point(8, 687); + this.lblthirdpartyLicences.Name = "lblthirdpartyLicences"; + this.lblthirdpartyLicences.Size = new System.Drawing.Size(126, 19); + this.lblthirdpartyLicences.TabIndex = 9; + this.lblthirdpartyLicences.Text = "Thirdparty Licences"; + // + // fglink2 + // + this.fglink2.AutoSize = true; + this.fglink2.Cursor = System.Windows.Forms.Cursors.Hand; + this.fglink2.Location = new System.Drawing.Point(12, 57); + this.fglink2.Name = "fglink2"; + this.fglink2.Size = new System.Drawing.Size(164, 22); + this.fglink2.TabIndex = 7; + this.fglink2.Text = "Issue Tracker & Translation"; + this.fglink2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.fglink2.UseSelectable = true; + this.fglink2.Click += new System.EventHandler(this.link_Click); + // + // fglink1 + // + this.fglink1.AutoSize = true; + this.fglink1.Cursor = System.Windows.Forms.Cursors.Hand; + this.fglink1.Location = new System.Drawing.Point(12, 37); + this.fglink1.Name = "fglink1"; + this.fglink1.Size = new System.Drawing.Size(200, 22); + this.fglink1.TabIndex = 6; + this.fglink1.Text = "GitHub (ShootMe/FallGuysStats)"; + this.fglink1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.fglink1.UseSelectable = true; + this.fglink1.Click += new System.EventHandler(this.link_Click); + // + // btnCheckUpdates + // + this.btnCheckUpdates.AutoSize = true; + this.btnCheckUpdates.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnCheckUpdates.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnCheckUpdates.Location = new System.Drawing.Point(13, 90); + this.btnCheckUpdates.Name = "btnCheckUpdates"; + this.btnCheckUpdates.Size = new System.Drawing.Size(54, 26); + this.btnCheckUpdates.TabIndex = 3; + this.btnCheckUpdates.Text = "Update"; + this.btnCheckUpdates.UseSelectable = true; + this.btnCheckUpdates.Visible = false; + this.btnCheckUpdates.Click += new System.EventHandler(this.btnCheckUpdates_Click); + // + // lblVersion + // + this.lblVersion.FontSize = MetroFramework.MetroLabelSize.Tall; + this.lblVersion.FontWeight = MetroFramework.MetroLabelWeight.Bold; + this.lblVersion.ForeColor = System.Drawing.Color.Teal; + this.lblVersion.Location = new System.Drawing.Point(8, 12); + this.lblVersion.Name = "lblVersion"; + this.lblVersion.Size = new System.Drawing.Size(500, 28); + this.lblVersion.TabIndex = 2; + this.lblVersion.Text = "Fall Guys Stats"; + this.lblVersion.UseCustomForeColor = true; + // + // lblLicence + // + this.lblLicence.AutoSize = true; + this.lblLicence.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblLicence.Location = new System.Drawing.Point(9, 225); + this.lblLicence.Name = "lblLicence"; + this.lblLicence.Size = new System.Drawing.Size(592, 418); + this.lblLicence.TabIndex = 5; + this.lblLicence.Text = resources.GetString("lblLicence.Text"); + // + // panelFallalytics + // + this.panelFallalytics.Controls.Add(this.linkFallalytics); + this.panelFallalytics.Controls.Add(this.lblFallalyticsDesc); + // this.panelFallalytics.Controls.Add(this.lblFallalyticsAPIKey); + this.panelFallalytics.Controls.Add(this.txtFallalyticsAPIKey); + this.panelFallalytics.Controls.Add(this.chkFallalyticsAnonymous); + this.panelFallalytics.Controls.Add(this.chkFallalyticsWeeklyCrownLeague); + this.panelFallalytics.Controls.Add(this.chkFallalyticsReporting); + this.panelFallalytics.HorizontalScrollbarBarColor = true; + this.panelFallalytics.HorizontalScrollbarHighlightOnWheel = false; + this.panelFallalytics.HorizontalScrollbarSize = 10; + this.panelFallalytics.Location = new System.Drawing.Point(22, 7); + this.panelFallalytics.Name = "panelFallalytics"; + this.panelFallalytics.Size = new System.Drawing.Size(667, 498); + this.panelFallalytics.TabIndex = 19; + this.panelFallalytics.VerticalScrollbarBarColor = true; + this.panelFallalytics.VerticalScrollbarHighlightOnWheel = false; + this.panelFallalytics.VerticalScrollbarSize = 15; + // + // linkFallalytics + // + this.linkFallalytics.AutoSize = true; + this.linkFallalytics.Cursor = System.Windows.Forms.Cursors.Hand; + this.linkFallalytics.FontSize = MetroFramework.MetroLinkSize.Medium; + this.linkFallalytics.ForeColor = System.Drawing.Color.Black; + this.linkFallalytics.Image = global::FallGuysStats.Properties.Resources.fallalytics_icon; + this.linkFallalytics.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.linkFallalytics.ImageSize = 17; + this.linkFallalytics.Location = new System.Drawing.Point(12, 200); + this.linkFallalytics.Name = "linkFallalytics"; + this.linkFallalytics.Size = new System.Drawing.Size(124, 22); + this.linkFallalytics.TabIndex = 7; + this.linkFallalytics.Text = "Visit Fallalytics"; + this.linkFallalytics.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.linkFallalytics.UseSelectable = true; + this.linkFallalytics.UseStyleColors = true; + this.linkFallalytics.Click += new System.EventHandler(this.link_Click); + // + // lblFallalyticsDesc + // + this.lblFallalyticsDesc.AutoSize = true; + this.lblFallalyticsDesc.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblFallalyticsDesc.Location = new System.Drawing.Point(7, 230); + this.lblFallalyticsDesc.Name = "lblFallalyticsDesc"; + this.lblFallalyticsDesc.Size = new System.Drawing.Size(503, 19); + this.lblFallalyticsDesc.TabIndex = 5; + this.lblFallalyticsDesc.Text = "Fallalytics is a tool to explore data collected about round distribution in Fall " + "Guys."; + // + // lblFallalyticsAPIKey + // + // this.lblFallalyticsAPIKey.AutoSize = true; + // this.lblFallalyticsAPIKey.FontWeight = MetroFramework.MetroLabelWeight.Regular; + // this.lblFallalyticsAPIKey.Location = new System.Drawing.Point(11, 80); + // this.lblFallalyticsAPIKey.Name = "lblFallalyticsAPIKey"; + // this.lblFallalyticsAPIKey.Size = new System.Drawing.Size(217, 19); + // this.lblFallalyticsAPIKey.TabIndex = 5; + // this.lblFallalyticsAPIKey.Text = "(Optional) Enter Fallalytics API key"; + // + // txtFallalyticsAPIKey + // + this.txtFallalyticsAPIKey.CustomButton.Image = null; + this.txtFallalyticsAPIKey.CustomButton.Location = new System.Drawing.Point(281, 1); + this.txtFallalyticsAPIKey.CustomButton.Name = ""; + this.txtFallalyticsAPIKey.CustomButton.Size = new System.Drawing.Size(21, 20); + this.txtFallalyticsAPIKey.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtFallalyticsAPIKey.CustomButton.TabIndex = 1; + this.txtFallalyticsAPIKey.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtFallalyticsAPIKey.CustomButton.UseSelectable = true; + this.txtFallalyticsAPIKey.CustomButton.Visible = false; + this.txtFallalyticsAPIKey.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtFallalyticsAPIKey.Lines = new string[] { "4d328236-b3c2-4449-a158-d07128671920" }; + this.txtFallalyticsAPIKey.Location = new System.Drawing.Point(15, 110); + this.txtFallalyticsAPIKey.MaxLength = 32767; + this.txtFallalyticsAPIKey.Name = "txtFallalyticsAPIKey"; + this.txtFallalyticsAPIKey.PasswordChar = '\0'; + this.txtFallalyticsAPIKey.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtFallalyticsAPIKey.SelectedText = ""; + this.txtFallalyticsAPIKey.SelectionLength = 0; + this.txtFallalyticsAPIKey.SelectionStart = 0; + this.txtFallalyticsAPIKey.ShortcutsEnabled = true; + this.txtFallalyticsAPIKey.Size = new System.Drawing.Size(303, 29); + this.txtFallalyticsAPIKey.TabIndex = 4; + this.txtFallalyticsAPIKey.Text = "4d328236-b3c2-4449-a158-d07128671920"; + this.txtFallalyticsAPIKey.UseSelectable = true; + this.txtFallalyticsAPIKey.WaterMark = "(Optional) Enter Fallalytics API key"; + this.txtFallalyticsAPIKey.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtFallalyticsAPIKey.WaterMarkFont = new System.Drawing.Font("Segoe UI", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + // + // chkFallalyticsAnonymous + // + this.chkFallalyticsAnonymous.AutoSize = true; + this.chkFallalyticsAnonymous.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkFallalyticsAnonymous.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkFallalyticsAnonymous.Location = new System.Drawing.Point(15, 75); + this.chkFallalyticsAnonymous.Name = "chkFallalyticsAnonymous"; + this.chkFallalyticsAnonymous.Size = new System.Drawing.Size(266, 15); + this.chkFallalyticsAnonymous.TabIndex = 3; + this.chkFallalyticsAnonymous.Text = "Send anonymously"; + this.chkFallalyticsAnonymous.UseCustomForeColor = true; + this.chkFallalyticsAnonymous.UseSelectable = true; + this.chkFallalyticsAnonymous.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkFallalyticsAnonymous.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkFallalyticsAnonymous.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkFallalyticsAnonymous.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkFallalyticsAnonymous.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkFallalyticsWeeklyCrownLeague + // + this.chkFallalyticsWeeklyCrownLeague.AutoSize = true; + this.chkFallalyticsWeeklyCrownLeague.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkFallalyticsWeeklyCrownLeague.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkFallalyticsWeeklyCrownLeague.Location = new System.Drawing.Point(15, 46); + this.chkFallalyticsWeeklyCrownLeague.Name = "chkFallalyticsWeeklyCrownLeague"; + this.chkFallalyticsWeeklyCrownLeague.Size = new System.Drawing.Size(266, 15); + this.chkFallalyticsWeeklyCrownLeague.TabIndex = 3; + this.chkFallalyticsWeeklyCrownLeague.Text = "Join a weekly crown league"; + this.chkFallalyticsWeeklyCrownLeague.UseCustomForeColor = true; + this.chkFallalyticsWeeklyCrownLeague.UseSelectable = true; + this.chkFallalyticsWeeklyCrownLeague.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkFallalyticsWeeklyCrownLeague.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkFallalyticsWeeklyCrownLeague.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkFallalyticsWeeklyCrownLeague.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkFallalyticsWeeklyCrownLeague.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // chkFallalyticsReporting + // + this.chkFallalyticsReporting.AutoSize = true; + this.chkFallalyticsReporting.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkFallalyticsReporting.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkFallalyticsReporting.Location = new System.Drawing.Point(15, 17); + this.chkFallalyticsReporting.Name = "chkFallalyticsReporting"; + this.chkFallalyticsReporting.Size = new System.Drawing.Size(266, 15); + this.chkFallalyticsReporting.TabIndex = 2; + this.chkFallalyticsReporting.Text = "Sends rounds played information to Fallalytics"; + this.chkFallalyticsReporting.UseCustomForeColor = true; + this.chkFallalyticsReporting.UseSelectable = true; + // this.chkFallalyticsReporting.CheckedChanged += new System.EventHandler(this.chkFallalyticsReporting_CheckedChanged); + this.chkFallalyticsReporting.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkFallalyticsReporting.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkFallalyticsReporting.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkFallalyticsReporting.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkFallalyticsReporting.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // tileFallalytics + // + this.tileFallalytics.ActiveControl = null; + this.tileFallalytics.BackColor = System.Drawing.Color.LightGray; + this.tileFallalytics.Location = new System.Drawing.Point(12, 277); + this.tileFallalytics.Name = "tileFallalytics"; + this.tileFallalytics.Size = new System.Drawing.Size(193, 45); + this.tileFallalytics.TabIndex = 20; + this.tileFallalytics.Text = "Fallalytics"; + this.tileFallalytics.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.tileFallalytics.TileTextFontWeight = MetroFramework.MetroTileTextWeight.Bold; + this.tileFallalytics.UseSelectable = true; + this.tileFallalytics.Click += new System.EventHandler(this.ChangeTab); + // + // tileProxy + // + this.tileProxy.ActiveControl = null; + this.tileProxy.BackColor = System.Drawing.Color.LightGray; + this.tileProxy.Location = new System.Drawing.Point(12, 328); + this.tileProxy.Name = "tileProxy"; + this.tileProxy.Size = new System.Drawing.Size(193, 45); + this.tileProxy.TabIndex = 21; + this.tileProxy.Text = "Proxy Settings"; + this.tileProxy.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.tileProxy.TileTextFontWeight = MetroFramework.MetroTileTextWeight.Bold; + this.tileProxy.UseSelectable = true; + this.tileProxy.Click += new System.EventHandler(this.ChangeTab); + // + // chkUseProxy + // + this.chkUseProxy.AutoSize = true; + this.chkUseProxy.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkUseProxy.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkUseProxy.Location = new System.Drawing.Point(15, 17); + this.chkUseProxy.Name = "chkUseProxy"; + this.chkUseProxy.Size = new System.Drawing.Size(266, 15); + this.chkUseProxy.TabIndex = 2; + this.chkUseProxy.Text = "Use a proxy server"; + this.chkUseProxy.UseCustomForeColor = true; + this.chkUseProxy.UseSelectable = true; + this.chkUseProxy.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkUseProxy.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkUseProxy.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkUseProxy.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkUseProxy.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // lblProxyAddress + // + this.lblProxyAddress.AutoSize = true; + this.lblProxyAddress.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblProxyAddress.Location = new System.Drawing.Point(19, 50); + this.lblProxyAddress.Name = "lblProxyAddress"; + this.lblProxyAddress.Size = new System.Drawing.Size(100, 19); + this.lblProxyAddress.TabIndex = 27; + this.lblProxyAddress.Text = "Address"; + // + // lblProxyPort + // + this.lblProxyPort.AutoSize = true; + this.lblProxyPort.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblProxyPort.Location = new System.Drawing.Point(356, 50); + this.lblProxyPort.Name = "lblProxyPort"; + this.lblProxyPort.Size = new System.Drawing.Size(100, 19); + this.lblProxyPort.TabIndex = 27; + this.lblProxyPort.Text = "Port"; + // + // chkUseProxyLoginRequired + // + this.chkUseProxyLoginRequired.AutoSize = true; + this.chkUseProxyLoginRequired.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkUseProxyLoginRequired.Enabled = false; + this.chkUseProxyLoginRequired.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chkUseProxyLoginRequired.Location = new System.Drawing.Point(23, 130); + this.chkUseProxyLoginRequired.Name = "chkUseProxyLoginRequired"; + this.chkUseProxyLoginRequired.Size = new System.Drawing.Size(195, 19); + this.chkUseProxyLoginRequired.TabIndex = 2; + this.chkUseProxyLoginRequired.Text = "Enable Proxy authentication"; + this.chkUseProxyLoginRequired.UseCustomForeColor = true; + this.chkUseProxyLoginRequired.UseSelectable = true; + this.chkUseProxyLoginRequired.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); + this.chkUseProxyLoginRequired.Enter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkUseProxyLoginRequired.Leave += new System.EventHandler(this.CheckBox_MouseLeave); + this.chkUseProxyLoginRequired.MouseEnter += new System.EventHandler(this.CheckBox_MouseEnter); + this.chkUseProxyLoginRequired.MouseLeave += new System.EventHandler(this.CheckBox_MouseLeave); + // + // txtProxyAddress + // + this.txtProxyAddress.CustomButton.Image = null; + this.txtProxyAddress.CustomButton.Location = new System.Drawing.Point(369, 1); + this.txtProxyAddress.CustomButton.Name = ""; + this.txtProxyAddress.CustomButton.Size = new System.Drawing.Size(23, 23); + this.txtProxyAddress.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtProxyAddress.CustomButton.TabIndex = 1; + this.txtProxyAddress.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtProxyAddress.CustomButton.UseSelectable = true; + this.txtProxyAddress.CustomButton.Visible = false; + this.txtProxyAddress.Enabled = false; + this.txtProxyAddress.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtProxyAddress.Lines = new string[0]; + this.txtProxyAddress.Location = new System.Drawing.Point(23, 72); + this.txtProxyAddress.Margin = new System.Windows.Forms.Padding(2); + this.txtProxyAddress.MaxLength = 32767; + this.txtProxyAddress.Name = "txtProxyAddress"; + this.txtProxyAddress.PasswordChar = '\0'; + this.txtProxyAddress.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtProxyAddress.SelectedText = ""; + this.txtProxyAddress.SelectionLength = 0; + this.txtProxyAddress.SelectionStart = 0; + this.txtProxyAddress.ShortcutsEnabled = true; + this.txtProxyAddress.Size = new System.Drawing.Size(320, 27); + this.txtProxyAddress.TabIndex = 37; + this.txtProxyAddress.UseSelectable = true; + this.txtProxyAddress.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtProxyAddress.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.txtProxyAddress.TextChanged += new System.EventHandler(this.proxyInfoChanged_TextChanged); + // + // txtProxyPort + // + this.txtProxyPort.CustomButton.Image = null; + this.txtProxyPort.CustomButton.Location = new System.Drawing.Point(372, 1); + this.txtProxyPort.CustomButton.Name = ""; + this.txtProxyPort.CustomButton.Size = new System.Drawing.Size(23, 23); + this.txtProxyPort.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtProxyPort.CustomButton.TabIndex = 1; + this.txtProxyPort.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtProxyPort.CustomButton.UseSelectable = true; + this.txtProxyPort.CustomButton.Visible = false; + this.txtProxyPort.Enabled = false; + this.txtProxyPort.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtProxyPort.Lines = new string[0]; + this.txtProxyPort.Location = new System.Drawing.Point(360, 72); + this.txtProxyPort.Margin = new System.Windows.Forms.Padding(2); + this.txtProxyPort.MaxLength = 5; + this.txtProxyPort.Name = "txtProxyPort"; + this.txtProxyPort.PasswordChar = '\0'; + this.txtProxyPort.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtProxyPort.SelectedText = ""; + this.txtProxyPort.SelectionLength = 0; + this.txtProxyPort.SelectionStart = 0; + this.txtProxyPort.ShortcutsEnabled = true; + this.txtProxyPort.Size = new System.Drawing.Size(120, 27); + this.txtProxyPort.TabIndex = 37; + this.txtProxyPort.UseSelectable = true; + this.txtProxyPort.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtProxyPort.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.txtProxyPort.TextChanged += new System.EventHandler(this.proxyInfoChanged_TextChanged); + this.txtProxyPort.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.enterOnlyDigitInTextBox_KeyPress); + // + // lblProxyUsername + // + this.lblProxyUsername.AutoSize = true; + this.lblProxyUsername.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblProxyUsername.Location = new System.Drawing.Point(27, 160); + this.lblProxyUsername.Name = "lblProxyUsername"; + this.lblProxyUsername.Size = new System.Drawing.Size(100, 19); + this.lblProxyUsername.TabIndex = 27; + this.lblProxyUsername.Text = "User name"; + // + // lblProxyPassword + // + this.lblProxyPassword.AutoSize = true; + this.lblProxyPassword.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.lblProxyPassword.Location = new System.Drawing.Point(27, 220); + this.lblProxyPassword.Name = "lblProxyPassword"; + this.lblProxyPassword.Size = new System.Drawing.Size(100, 19); + this.lblProxyPassword.TabIndex = 27; + this.lblProxyPassword.Text = "Password"; + // + // txtProxyUsername + // + this.txtProxyUsername.CustomButton.Image = null; + this.txtProxyUsername.CustomButton.Location = new System.Drawing.Point(369, 1); + this.txtProxyUsername.CustomButton.Name = ""; + this.txtProxyUsername.CustomButton.Size = new System.Drawing.Size(23, 23); + this.txtProxyUsername.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtProxyUsername.CustomButton.TabIndex = 1; + this.txtProxyUsername.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtProxyUsername.CustomButton.UseSelectable = true; + this.txtProxyUsername.CustomButton.Visible = false; + this.txtProxyUsername.Enabled = false; + this.txtProxyUsername.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtProxyUsername.Lines = new string[0]; + this.txtProxyUsername.Location = new System.Drawing.Point(30, 185); + this.txtProxyUsername.Margin = new System.Windows.Forms.Padding(2); + this.txtProxyUsername.MaxLength = 32767; + this.txtProxyUsername.Name = "txtProxyUsername"; + this.txtProxyUsername.PasswordChar = '\0'; + this.txtProxyUsername.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtProxyUsername.SelectedText = ""; + this.txtProxyUsername.SelectionLength = 0; + this.txtProxyUsername.SelectionStart = 0; + this.txtProxyUsername.ShortcutsEnabled = true; + this.txtProxyUsername.Size = new System.Drawing.Size(275, 27); + this.txtProxyUsername.TabIndex = 37; + this.txtProxyUsername.UseSelectable = true; + this.txtProxyUsername.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtProxyUsername.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.txtProxyUsername.TextChanged += new System.EventHandler(this.proxyInfoChanged_TextChanged); + // + // txtProxyPassword + // + this.txtProxyPassword.CustomButton.Image = null; + this.txtProxyPassword.CustomButton.Location = new System.Drawing.Point(369, 1); + this.txtProxyPassword.CustomButton.Name = ""; + this.txtProxyPassword.CustomButton.Size = new System.Drawing.Size(23, 23); + this.txtProxyPassword.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.txtProxyPassword.CustomButton.TabIndex = 1; + this.txtProxyPassword.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.txtProxyPassword.CustomButton.UseSelectable = true; + this.txtProxyPassword.CustomButton.Visible = false; + this.txtProxyPassword.Enabled = false; + this.txtProxyPassword.FontSize = MetroFramework.MetroTextBoxSize.Medium; + this.txtProxyPassword.Lines = new string[0]; + this.txtProxyPassword.Location = new System.Drawing.Point(30, 245); + this.txtProxyPassword.Margin = new System.Windows.Forms.Padding(2); + this.txtProxyPassword.MaxLength = 32767; + this.txtProxyPassword.Name = "txtProxyPassword"; + this.txtProxyPassword.PasswordChar = '•'; + this.txtProxyPassword.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.txtProxyPassword.SelectedText = ""; + this.txtProxyPassword.SelectionLength = 0; + this.txtProxyPassword.SelectionStart = 0; + this.txtProxyPassword.ShortcutsEnabled = true; + this.txtProxyPassword.Size = new System.Drawing.Size(275, 27); + this.txtProxyPassword.TabIndex = 37; + this.txtProxyPassword.UseSelectable = true; + this.txtProxyPassword.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.txtProxyPassword.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.txtProxyPassword.TextChanged += new System.EventHandler(this.proxyInfoChanged_TextChanged); + // + // btnProxyTestConnection + // + this.btnProxyTestConnection.Anchor = System.Windows.Forms.AnchorStyles.None; + this.btnProxyTestConnection.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnProxyTestConnection.Enabled = false; + this.btnProxyTestConnection.FontSize = MetroFramework.MetroButtonSize.Medium; + this.btnProxyTestConnection.Location = new System.Drawing.Point(15, 310); + this.btnProxyTestConnection.Name = "btnProxyTestConnection"; + this.btnProxyTestConnection.Size = new System.Drawing.Size(160, 29); + this.btnProxyTestConnection.TabIndex = 7; + this.btnProxyTestConnection.Text = "Test Proxy Connection"; + this.btnProxyTestConnection.UseSelectable = true; + this.btnProxyTestConnection.Click += new System.EventHandler(this.btnTestProxyConnection_Click); + // + // mpsProxySpinner + // + this.mpsProxySpinner.BackColor = System.Drawing.Color.White; + this.mpsProxySpinner.Location = new System.Drawing.Point(190, 310); + this.mpsProxySpinner.Margin = new System.Windows.Forms.Padding(0); + this.mpsProxySpinner.Maximum = 100; + this.mpsProxySpinner.MaximumSize = new System.Drawing.Size(28, 28); + this.mpsProxySpinner.MinimumSize = new System.Drawing.Size(28, 28); + this.mpsProxySpinner.Name = "mpsProxySpinner"; + this.mpsProxySpinner.Size = new System.Drawing.Size(28, 28); + this.mpsProxySpinner.Speed = 2F; + this.mpsProxySpinner.Style = MetroFramework.MetroColorStyle.Teal; + this.mpsProxySpinner.TabIndex = 4; + this.mpsProxySpinner.UseCustomBackColor = true; + this.mpsProxySpinner.UseSelectable = true; + this.mpsProxySpinner.Value = 85; + this.mpsProxySpinner.Visible = false; + // + // picProxyTextResult + // + this.picProxyTextResult.Image = global::FallGuysStats.Properties.Resources.checkmark_icon; + this.picProxyTextResult.Location = new System.Drawing.Point(190, 310); + this.picProxyTextResult.Name = "picProxyTextResult"; + this.picProxyTextResult.Size = new System.Drawing.Size(29, 29); + this.picProxyTextResult.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picProxyTextResult.TabIndex = 39; + this.picProxyTextResult.TabStop = false; + this.picProxyTextResult.Visible = false; + // + // panelProxy + // + this.panelProxy.Controls.Add(this.chkUseProxy); + this.panelProxy.Controls.Add(this.lblProxyAddress); + this.panelProxy.Controls.Add(this.lblProxyPort); + this.panelProxy.Controls.Add(this.txtProxyAddress); + this.panelProxy.Controls.Add(this.txtProxyPort); + this.panelProxy.Controls.Add(this.chkUseProxyLoginRequired); + this.panelProxy.Controls.Add(this.lblProxyUsername); + this.panelProxy.Controls.Add(this.lblProxyPassword); + this.panelProxy.Controls.Add(this.txtProxyUsername); + this.panelProxy.Controls.Add(this.txtProxyPassword); + this.panelProxy.Controls.Add(this.btnProxyTestConnection); + this.panelProxy.Controls.Add(this.mpsProxySpinner); + this.panelProxy.Controls.Add(this.picProxyTextResult); + this.panelProxy.HorizontalScrollbarBarColor = true; + this.panelProxy.HorizontalScrollbarHighlightOnWheel = false; + this.panelProxy.HorizontalScrollbarSize = 10; + this.panelProxy.Location = new System.Drawing.Point(22, 7); + this.panelProxy.Name = "panelProxy"; + this.panelProxy.Size = new System.Drawing.Size(667, 498); + this.panelProxy.TabIndex = 19; + this.panelProxy.VerticalScrollbarBarColor = true; + this.panelProxy.VerticalScrollbarHighlightOnWheel = false; + this.panelProxy.VerticalScrollbarSize = 15; + // + // Settings + // + this.AcceptButton = this.btnSave; + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.CancelButton = this.btnCancel; + this.ClientSize = new System.Drawing.Size(895, 650); + this.Controls.Add(this.tileProgram); + this.Controls.Add(this.tileDisplay); + this.Controls.Add(this.tileOverlay); + this.Controls.Add(this.tileFallGuys); + this.Controls.Add(this.tileFallalytics); + this.Controls.Add(this.tileProxy); + this.Controls.Add(this.tileAbout); + this.Controls.Add(this.panelProgram); + this.Controls.Add(this.panelDisplay); + this.Controls.Add(this.panelOverlay); + this.Controls.Add(this.panelFallGuys); + this.Controls.Add(this.panelFallalytics); + this.Controls.Add(this.panelProxy); + this.Controls.Add(this.panelAbout); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnSave); + this.ForeColor = System.Drawing.Color.Black; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Settings"; + this.Padding = new System.Windows.Forms.Padding(23, 60, 23, 18); + this.Resizable = false; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.Style = MetroFramework.MetroColorStyle.Teal; + this.Text = "Settings"; + this.Load += new System.EventHandler(this.Settings_Load); + this.Shown += new System.EventHandler(this.Settings_Shown); + this.grpOverlayFontExample.ResumeLayout(false); + this.grpCycleQualifyGold.ResumeLayout(false); + this.grpCycleQualifyGold.PerformLayout(); + this.grpCycleFastestLongest.ResumeLayout(false); + this.grpCycleFastestLongest.PerformLayout(); + this.grpCycleWinFinalStreak.ResumeLayout(false); + this.grpCycleWinFinalStreak.PerformLayout(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.grpLaunchPlatform.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.picPlatformCheck)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picEpicGames)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picSteam)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLanguageSelection)).EndInit(); + this.panelProgram.ResumeLayout(false); + this.panelProgram.PerformLayout(); + this.panelDisplay.ResumeLayout(false); + this.panelDisplay.PerformLayout(); + this.panelOverlay.ResumeLayout(false); + this.panelOverlay.PerformLayout(); + this.panelFallGuys.ResumeLayout(false); + this.panelFallGuys.PerformLayout(); + this.panelAbout.ResumeLayout(false); + this.panelAbout.PerformLayout(); + this.panelFallalytics.ResumeLayout(false); + this.panelFallalytics.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picProxyTextResult)).EndInit(); + this.panelProxy.ResumeLayout(false); + this.panelProxy.PerformLayout(); + this.ResumeLayout(false); + } + + #endregion + + // private MetroFramework.Controls.MetroLabel lblLogPath; + private MetroFramework.Controls.MetroLabel lblLogPathNote; + private MetroFramework.Controls.MetroTextBox txtLogPath; + private MetroFramework.Controls.MetroButton btnSave; + private MetroFramework.Controls.MetroLabel lblCycleTimeSecondsTag; + private MetroFramework.Controls.MetroLabel lblCycleTimeSeconds; + private MetroFramework.Controls.MetroTextBox txtCycleTimeSeconds; + private MetroFramework.Controls.MetroLabel lblPreviousWinsNote; + private MetroFramework.Controls.MetroLabel lblPreviousWins; + private MetroFramework.Controls.MetroTextBox txtPreviousWins; + private MetroFramework.Controls.MetroCheckBox chkOverlayOnTop; + private MetroFramework.Controls.MetroCheckBox chkPlayerByConsoleType; + private MetroFramework.Controls.MetroCheckBox chkColorByRoundType; + private MetroFramework.Controls.MetroCheckBox chkAutoChangeProfile; + private MetroFramework.Controls.MetroCheckBox chkShadeTheFlagImage; + private MetroFramework.Controls.MetroCheckBox chkDisplayCurrentTime; + private MetroFramework.Controls.MetroCheckBox chkDisplayGamePlayedInfo; + private MetroFramework.Controls.MetroCheckBox chkCountPlayersDuringTheLevel; + private MetroFramework.Controls.MetroComboBox cboFastestFilter; + private MetroFramework.Controls.MetroLabel lblFastestFilter; + private MetroFramework.Controls.MetroComboBox cboQualifyFilter; + private MetroFramework.Controls.MetroLabel lblQualifyFilter; + private MetroFramework.Controls.MetroComboBox cboWinsFilter; + private FallGuysStats.ImageComboBox cboMultilingual; + private MetroFramework.Controls.MetroLabel lblWinsFilter; + private MetroFramework.Controls.MetroCheckBox chkHideTimeInfo; + private MetroFramework.Controls.MetroCheckBox chkHideRoundInfo; + private MetroFramework.Controls.MetroCheckBox chkShowTabs; + private MetroFramework.Controls.MetroLabel lblTheme; + private MetroFramework.Controls.MetroComboBox cboTheme; + private MetroFramework.Controls.MetroCheckBox chkAutoUpdate; + private MetroFramework.Controls.MetroCheckBox chkSystemTrayIcon; + private MetroFramework.Controls.MetroCheckBox chkNotifyServerConnected; + private MetroFramework.Controls.MetroCheckBox chkNotifyPersonalBest; + private MetroFramework.Controls.MetroCheckBox chkMuteNotificationSounds; + private MetroFramework.Controls.MetroComboBox cboNotificationSounds; + private MetroFramework.Controls.MetroComboBox cboNotificationWindowPosition; + private MetroFramework.Controls.MetroComboBox cboNotificationWindowAnimation; + private MetroFramework.Controls.MetroLink mlPlayNotificationSounds; + private MetroFramework.Controls.MetroCheckBox chkPreventOverlayMouseClicks; + private FallGuysStats.ImageComboBox cboOverlayBackground; + private MetroFramework.Controls.MetroLabel lblOverlayBackground; + private MetroFramework.Controls.MetroComboBox cboOverlayColor; + private MetroFramework.Controls.MetroLabel lblOverlayColor; + private MetroFramework.Controls.MetroLabel lblOverlayOpacity; + private MetroFramework.Controls.MetroTrackBar trkOverlayOpacity; + private MetroFramework.Controls.MetroComboBox cboLockButtonLocation; + private MetroFramework.Controls.MetroLabel lblLockButtonLocation; + private MetroFramework.Controls.MetroCheckBox chkFlipped; + private MetroFramework.Controls.MetroCheckBox chkHideWinsInfo; + private MetroFramework.Controls.MetroCheckBox chkHidePercentages; + private MetroFramework.Controls.MetroCheckBox chkChangeHoopsieLegends; + private MetroFramework.Controls.MetroLabel lblGameExeLocation; + private System.Windows.Forms.PictureBox picLanguageSelection; + private MetroFramework.Controls.MetroTextBox txtGameExeLocation; + private MetroFramework.Controls.MetroTextBox txtGameShortcutLocation; + private MetroFramework.Controls.MetroButton btnGameExeLocationBrowse; + private MetroFramework.Controls.MetroCheckBox chkLaunchGameOnStart; + private MetroFramework.Controls.MetroCheckBox chkIgnoreLevelTypeWhenSorting; + private MetroFramework.Controls.MetroCheckBox chkGroupingCreativeRoundLevels; + private MetroFramework.Controls.MetroCheckBox chkRecordEscapeDuringAGame; + private MetroFramework.Controls.MetroButton btnCancel; + private System.Windows.Forms.GroupBox grpCycleQualifyGold; + private MetroFramework.Controls.MetroRadioButton rdoOnlyShowGold; + private MetroFramework.Controls.MetroRadioButton rdoOnlyShowQualify; + private MetroFramework.Controls.MetroRadioButton rdoCycleQualifyGold; + private System.Windows.Forms.GroupBox grpCycleFastestLongest; + private MetroFramework.Controls.MetroRadioButton rdoOnlyShowLongest; + private MetroFramework.Controls.MetroRadioButton rdoOnlyShowFastest; + private MetroFramework.Controls.MetroRadioButton rdoCycleFastestLongest; + private System.Windows.Forms.GroupBox grpCycleWinFinalStreak; + private MetroFramework.Controls.MetroRadioButton rdoOnlyShowFinalStreak; + private MetroFramework.Controls.MetroRadioButton rdoOnlyShowWinStreak; + private MetroFramework.Controls.MetroRadioButton rdoCycleWinFinalStreak; + private System.Windows.Forms.GroupBox groupBox1; + private MetroFramework.Controls.MetroRadioButton rdoOnlyShowPing; + private MetroFramework.Controls.MetroRadioButton rdoOnlyShowPlayers; + private MetroFramework.Controls.MetroRadioButton rdoCyclePlayersPing; + private MetroFramework.Controls.MetroLabel lblOverlayFont; + private MetroFramework.Controls.MetroButton btnSelectFont; + private System.Windows.Forms.FontDialog dlgOverlayFont; + private System.Windows.Forms.Label lblOverlayFontExample; + private System.Windows.Forms.GroupBox grpOverlayFontExample; + private System.Windows.Forms.GroupBox grpLaunchPlatform; + private System.Windows.Forms.PictureBox picSteam; + private System.Windows.Forms.PictureBox picEpicGames; + private System.Windows.Forms.PictureBox picPlatformCheck; + private MetroFramework.Controls.MetroButton btnResetOverlayFont; + private MetroFramework.Components.MetroToolTip platformToolTip; + private MetroFramework.Controls.MetroTile tileProgram; + private MetroFramework.Controls.MetroPanel panelProgram; + private MetroFramework.Controls.MetroPanel panelDisplay; + private MetroFramework.Controls.MetroTile tileDisplay; + private MetroFramework.Controls.MetroPanel panelOverlay; + private MetroFramework.Controls.MetroTile tileOverlay; + private MetroFramework.Controls.MetroTile tileFallGuys; + private MetroFramework.Controls.MetroPanel panelFallGuys; + private MetroFramework.Controls.MetroTile tileAbout; + private MetroFramework.Controls.MetroPanel panelAbout; + private MetroFramework.Controls.MetroLabel lblVersion; + private MetroFramework.Controls.MetroButton btnCheckUpdates; + private MetroFramework.Controls.MetroLabel lblLicence; + private MetroFramework.Controls.MetroLink fglink1; + private System.Windows.Forms.Label lblthirdpartyLicences; + private MetroFramework.Controls.MetroLink lbltpl0; + private MetroFramework.Controls.MetroLink lbltpl1; + private MetroFramework.Controls.MetroLink fglink2; + private MetroFramework.Controls.MetroLink lbltpl2; + private MetroFramework.Controls.MetroLink lbltpl4; + private MetroFramework.Controls.MetroLink lbltpl3; + private MetroFramework.Controls.MetroLabel lblupdateNote; + private MetroFramework.Controls.MetroPanel panelFallalytics; + private MetroFramework.Controls.MetroLabel lblFallalyticsDesc; + // private MetroFramework.Controls.MetroLabel lblFallalyticsAPIKey; + private MetroFramework.Controls.MetroLink linkFallalytics; + private MetroFramework.Controls.MetroTextBox txtFallalyticsAPIKey; + private MetroFramework.Controls.MetroCheckBox chkFallalyticsAnonymous; + private MetroFramework.Controls.MetroCheckBox chkFallalyticsWeeklyCrownLeague; + private MetroFramework.Controls.MetroCheckBox chkFallalyticsReporting; + private MetroFramework.Controls.MetroTile tileFallalytics; + private MetroFramework.Controls.MetroPanel panelProxy; + private MetroFramework.Controls.MetroCheckBox chkUseProxy; + private MetroFramework.Controls.MetroLabel lblProxyAddress; + private MetroFramework.Controls.MetroLabel lblProxyPort; + private MetroFramework.Controls.MetroCheckBox chkUseProxyLoginRequired; + private MetroFramework.Controls.MetroTextBox txtProxyAddress; + private MetroFramework.Controls.MetroTextBox txtProxyPort; + private MetroFramework.Controls.MetroLabel lblProxyUsername; + private MetroFramework.Controls.MetroLabel lblProxyPassword; + private MetroFramework.Controls.MetroTextBox txtProxyUsername; + private MetroFramework.Controls.MetroTextBox txtProxyPassword; + private MetroFramework.Controls.MetroButton btnProxyTestConnection; + private MetroFramework.Controls.MetroProgressSpinner mpsProxySpinner; + private System.Windows.Forms.PictureBox picProxyTextResult; + private MetroFramework.Controls.MetroTile tileProxy; + private MetroFramework.Controls.MetroLabel lblIpGeolocationService; + private MetroFramework.Controls.MetroComboBox cboIpGeolocationService; + private MetroFramework.Controls.MetroLink linkIPinfoToken; + private MetroFramework.Controls.MetroTextBox txtIPinfoToken; + } +} diff --git a/Views/Settings.cs b/Views/Settings.cs new file mode 100644 index 000000000..6197cab0d --- /dev/null +++ b/Views/Settings.cs @@ -0,0 +1,1481 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Net; +using System.Reflection; +using System.Threading.Tasks; +using System.Windows.Forms; +using MetroFramework; +using MetroFramework.Controls; + +namespace FallGuysStats { + public partial class Settings : MetroFramework.Forms.MetroForm { + private string overlayFontSerialized = string.Empty; + private string overlayFontColorSerialized = string.Empty; + public UserSettings CurrentSettings { get; set; } + public Stats StatsForm { get; set; } + public Overlay Overlay { get; set; } + private int LaunchPlatform; + private Language DisplayLang; + private int IpGeolocationService; + // private bool CboMultilingualIsFocus, CboOverlayBackgroundIsFocus; + private bool TrkOverlayOpacityIsEnter; + private string PrevTabName; + private bool IsSucceededTestProxy; + private string IPinfoToken; + + public Settings() { + this.InitializeComponent(); + this.Opacity = 0; + this.cboNotificationSounds.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboNotificationWindowPosition.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboNotificationWindowAnimation.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboMultilingual.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboTheme.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboIpGeolocationService.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboWinsFilter.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboQualifyFilter.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboFastestFilter.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboOverlayBackground.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboOverlayColor.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + this.cboLockButtonLocation.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; + } + + private void Settings_Load(object sender, EventArgs e) { + this.SetTheme(Stats.CurrentTheme); + + this.ChangeTab(this.tileProgram, null); + + this.LaunchPlatform = this.CurrentSettings.LaunchPlatform; + this.DisplayLang = Stats.CurrentLanguage; + this.ChangeLanguage(Stats.CurrentLanguage); + + List flagItemArray = new List { + new ImageItem(Properties.Resources.country_us_shiny_icon, "English", Overlay.GetMainFont(14f)), + new ImageItem(Properties.Resources.country_fr_shiny_icon, "Français", Overlay.GetMainFont(14f)), + new ImageItem(Properties.Resources.country_es_shiny_icon, "Español", Overlay.GetMainFont(14f)), + new ImageItem(Properties.Resources.country_kr_shiny_icon, "한국어", Overlay.GetMainFont(14f)), + new ImageItem(Properties.Resources.country_jp_shiny_icon, "日本語", Overlay.GetMainFont(14f)), + new ImageItem(Properties.Resources.country_cn_shiny_icon, "简体中文", Overlay.GetMainFont(14f)), + new ImageItem(Properties.Resources.country_cn_shiny_icon, "繁體中文", Overlay.GetMainFont(14f)), + }; + this.cboMultilingual.SetImageItemData(flagItemArray); + this.cboMultilingual.SelectedIndex = (int)Stats.CurrentLanguage; + + this.IpGeolocationService = this.CurrentSettings.IpGeolocationService; + this.cboIpGeolocationService.SelectedIndex = this.IpGeolocationService; + if (File.Exists($"{Stats.CURRENTDIR}{Stats.IPinfoTokenFileName}")) { + try { + StreamReader sr = new StreamReader($"{Stats.CURRENTDIR}{Stats.IPinfoTokenFileName}"); + this.IPinfoToken = sr.ReadLine(); + sr.Close(); + } catch { + this.IPinfoToken = string.Empty; + } + } else { + this.IPinfoToken = string.Empty; + } + this.txtIPinfoToken.Text = this.IPinfoToken; + + if (this.IpGeolocationService == 1) { + this.linkIPinfoToken.Visible = true; + this.txtIPinfoToken.Visible = true; + } + + this.txtLogPath.Text = this.CurrentSettings.LogPath; + + if (this.CurrentSettings.SwitchBetweenLongest) { + this.rdoCycleFastestLongest.Checked = true; + } else if (this.CurrentSettings.OnlyShowLongest) { + this.rdoOnlyShowLongest.Checked = true; + } else { + this.rdoOnlyShowFastest.Checked = true; + } + + if (this.CurrentSettings.SwitchBetweenQualify) { + this.rdoCycleQualifyGold.Checked = true; + } else if (this.CurrentSettings.OnlyShowGold) { + this.rdoOnlyShowGold.Checked = true; + } else { + this.rdoOnlyShowQualify.Checked = true; + } + + if (this.CurrentSettings.SwitchBetweenPlayers) { + this.rdoCyclePlayersPing.Checked = true; + } else if (this.CurrentSettings.OnlyShowPing) { + this.rdoOnlyShowPing.Checked = true; + } else { + this.rdoOnlyShowPlayers.Checked = true; + } + + if (this.CurrentSettings.SwitchBetweenStreaks) { + this.rdoCycleWinFinalStreak.Checked = true; + } else if (this.CurrentSettings.OnlyShowFinalStreak) { + this.rdoOnlyShowFinalStreak.Checked = true; + } else { + this.rdoOnlyShowWinStreak.Checked = true; + } + + this.txtCycleTimeSeconds.Text = this.CurrentSettings.CycleTimeSeconds.ToString(); + this.txtPreviousWins.Text = this.CurrentSettings.PreviousWins.ToString(); + this.chkOverlayOnTop.Checked = !this.CurrentSettings.OverlayNotOnTop; + this.chkPlayerByConsoleType.Checked = this.CurrentSettings.PlayerByConsoleType; + this.chkColorByRoundType.Checked = this.CurrentSettings.ColorByRoundType; + this.chkAutoChangeProfile.Checked = this.CurrentSettings.AutoChangeProfile; + this.chkShadeTheFlagImage.Checked = this.CurrentSettings.ShadeTheFlagImage; + this.chkDisplayCurrentTime.Checked = this.CurrentSettings.DisplayCurrentTime; + this.chkDisplayGamePlayedInfo.Checked = this.CurrentSettings.DisplayGamePlayedInfo; + this.chkCountPlayersDuringTheLevel.Checked = this.CurrentSettings.CountPlayersDuringTheLevel; + this.chkHideWinsInfo.Checked = this.CurrentSettings.HideWinsInfo; + this.chkHideRoundInfo.Checked = this.CurrentSettings.HideRoundInfo; + this.chkHideTimeInfo.Checked = this.CurrentSettings.HideTimeInfo; + this.chkShowTabs.Checked = this.CurrentSettings.ShowOverlayTabs; + //this.chkShowProfile.Checked = this.CurrentSettings.ShowOverlayProfile; + this.chkAutoUpdate.Checked = this.CurrentSettings.AutoUpdate; + this.chkSystemTrayIcon.Checked = this.CurrentSettings.SystemTrayIcon; + + this.chkNotifyServerConnected.Checked = this.CurrentSettings.NotifyServerConnected; + this.chkNotifyPersonalBest.Checked = this.CurrentSettings.NotifyPersonalBest; + this.cboNotificationSounds.SelectedIndex = this.CurrentSettings.NotificationSounds; + this.cboNotificationSounds.Enabled = this.chkNotifyServerConnected.Checked || this.chkNotifyPersonalBest.Checked; + this.cboNotificationWindowPosition.SelectedIndex = this.CurrentSettings.NotificationWindowPosition; + this.cboNotificationWindowPosition.Enabled = this.chkNotifyServerConnected.Checked || this.chkNotifyPersonalBest.Checked; + this.cboNotificationWindowAnimation.SelectedIndex = this.CurrentSettings.NotificationWindowAnimation; + this.cboNotificationWindowAnimation.Enabled = this.chkNotifyServerConnected.Checked || this.chkNotifyPersonalBest.Checked; + this.mlPlayNotificationSounds.Enabled = this.chkNotifyServerConnected.Checked || this.chkNotifyPersonalBest.Checked; + this.chkMuteNotificationSounds.Enabled = this.chkNotifyServerConnected.Checked || this.chkNotifyPersonalBest.Checked; + if (this.chkNotifyServerConnected.Checked || this.chkNotifyPersonalBest.Checked) { + this.chkMuteNotificationSounds.Checked = this.CurrentSettings.MuteNotificationSounds; + } + + this.chkPreventOverlayMouseClicks.Checked = this.CurrentSettings.PreventOverlayMouseClicks; + this.chkFlipped.Checked = this.CurrentSettings.FlippedDisplay; + this.chkHidePercentages.Checked = this.CurrentSettings.HideOverlayPercentages; + this.chkChangeHoopsieLegends.Checked = this.CurrentSettings.HoopsieHeros; + this.chkFallalyticsReporting.Checked = this.CurrentSettings.EnableFallalyticsReporting; + this.chkFallalyticsWeeklyCrownLeague.Checked = this.CurrentSettings.EnableFallalyticsWeeklyCrownLeague; + this.chkFallalyticsAnonymous.Enabled = this.chkFallalyticsReporting.Checked || this.chkFallalyticsWeeklyCrownLeague.Checked; + if (this.chkFallalyticsReporting.Checked || this.chkFallalyticsWeeklyCrownLeague.Checked) { + this.chkFallalyticsAnonymous.Checked = this.CurrentSettings.EnableFallalyticsAnonymous; + } + this.txtFallalyticsAPIKey.Text = this.CurrentSettings.FallalyticsAPIKey; + + this.chkUseProxy.Checked = this.CurrentSettings.UseProxyServer; + this.txtProxyAddress.Text = this.CurrentSettings.ProxyAddress; + this.txtProxyPort.Text = this.CurrentSettings.ProxyPort; + this.chkUseProxyLoginRequired.Checked = this.CurrentSettings.EnableProxyAuthentication; + this.txtProxyUsername.Text = this.CurrentSettings.ProxyUsername; + this.txtProxyPassword.Text = this.CurrentSettings.ProxyPassword; + this.IsSucceededTestProxy = this.CurrentSettings.SucceededTestProxy; + + List overlayItemArray = new List(); + if (Directory.Exists($"{Stats.CURRENTDIR}Overlay")) { + DirectoryInfo di = new DirectoryInfo($"{Stats.CURRENTDIR}Overlay"); + foreach (FileInfo file in di.GetFiles()) { + if (string.Equals(file.Name, "background.png") || string.Equals(file.Name, "tab.png")) continue; + if (file.Name.StartsWith("background_") && file.Name.EndsWith(".png")) { + string backgroundName = file.Name.Substring(11); + backgroundName = backgroundName.Remove(backgroundName.Length - 4); + Bitmap background = new Bitmap(file.FullName); + if (background.Width == 786 && background.Height == 99) { + overlayItemArray.Add(new ImageItem(background, backgroundName, this.Font, new[] { $"background_{backgroundName}", $"tab_{backgroundName}" }, true)); + } + } + } + } + + int customizedBacgroundCount = overlayItemArray.Count; + ImageItem[] overlayItems = { + new ImageItem(Properties.Resources.background, "Default", this.Font, new[] { "background", "tab_unselected" }), + new ImageItem(Properties.Resources.background_monarch, "Monarch", this.Font, new[] { "background_monarch", "tab_unselected_monarch" }), + new ImageItem(Properties.Resources.background_candycane, "Candy Cane", this.Font, new[] { "background_candycane", "tab_unselected_candycane" }), + new ImageItem(Properties.Resources.background_coffee, "Coffee", this.Font, new[] { "background_coffee", "tab_unselected_coffee" }), + new ImageItem(Properties.Resources.background_dove, "Dove", this.Font, new[] { "background_dove", "tab_unselected_dove" }), + new ImageItem(Properties.Resources.background_fall_guys_logo, "Fall Guys Logo", this.Font, new[] { "background_fall_guys_logo", "tab_unselected_fall_guys_logo" }), + new ImageItem(Properties.Resources.background_helter_skelter, "Helter Skelter", this.Font, new[] { "background_helter_skelter", "tab_unselected_helter_skelter" }), + new ImageItem(Properties.Resources.background_hex_a_thon, "Hex A Thon", this.Font, new[] { "background_hex_a_thon", "tab_unselected_hex_a_thon" }), + new ImageItem(Properties.Resources.background_ill_be_slime, "I'll Be Slime", this.Font, new[] { "background_ill_be_slime", "tab_unselected_ill_be_slime" }), + new ImageItem(Properties.Resources.background_mockingbird, "Mocking Bird", this.Font, new[] { "background_mockingbird", "tab_unselected_mockingbird" }), + new ImageItem(Properties.Resources.background_newlove, "New Love", this.Font, new[] { "background_newlove", "tab_unselected_newlove" }), + new ImageItem(Properties.Resources.background_parade_guy, "Parade Guy", this.Font, new[] { "background_parade_guy", "tab_unselected_parade_guy" }), + new ImageItem(Properties.Resources.background_party_pegwin, "Party Pegwin", this.Font, new[] { "background_party_pegwin", "tab_unselected_party_pegwin" }), + new ImageItem(Properties.Resources.background_penguin, "Penguin", this.Font, new[] { "background_penguin", "tab_unselected_penguin" }), + new ImageItem(Properties.Resources.background_suits_you, "Suits You", this.Font, new[] { "background_suits_you", "tab_unselected_suits_you" }), + new ImageItem(Properties.Resources.background_sunny_guys, "Sunny Guys", this.Font, new[] { "background_sunny_guys", "tab_unselected_sunny_guys" }), + new ImageItem(Properties.Resources.background_ta_da, "Ta Da", this.Font, new[] { "background_ta_da", "tab_unselected_ta_da" }), + new ImageItem(Properties.Resources.background_timeattack, "Time Attack", this.Font, new[] { "background_timeattack", "tab_unselected_timeattack" }), + new ImageItem(Properties.Resources.background_watermelon, "Watermelon", this.Font, new[] { "background_watermelon", "tab_unselected_watermelon" }), + new ImageItem(Properties.Resources.background_super_mario_bros, "Super Mario Bros.", this.Font, new[] { "background_super_mario_bros", "tab_unselected_super_mario_bros" }), + new ImageItem(Properties.Resources.background_super_mario_bros_3, "Super Mario Bros. 3", this.Font, new[] { "background_super_mario_bros_3", "tab_unselected_super_mario_bros_3" }), + new ImageItem(Properties.Resources.background_wallpaper_01, "Wallpaper 01", this.Font, new[] { "background_wallpaper_01", "tab_unselected_wallpaper_01" }), + new ImageItem(Properties.Resources.background_wallpaper_02, "Wallpaper 02", this.Font, new[] { "background_wallpaper_02", "tab_unselected_wallpaper_02" }), + new ImageItem(Properties.Resources.background_wallpaper_03, "Wallpaper 03", this.Font, new[] { "background_wallpaper_03", "tab_unselected_wallpaper_03" }) + }; + overlayItemArray.AddRange(overlayItems); + this.cboOverlayBackground.SetImageItemData(overlayItemArray); + bool isSelected = false; + if (this.CurrentSettings.IsOverlayBackgroundCustomized) { + for (int i = 0; i < overlayItemArray.Count; i++) { + if (!string.Equals(overlayItemArray[i].Data[0], this.CurrentSettings.OverlayBackgroundResourceName)) continue; + this.cboOverlayBackground.SelectedIndex = i; + isSelected = true; + break; + } + } else { + for (int i = overlayItemArray.Count - 1; i >= 0; i--) { + if (!string.Equals(overlayItemArray[i].Data[0], this.CurrentSettings.OverlayBackgroundResourceName)) continue; + this.cboOverlayBackground.SelectedIndex = i; + isSelected = true; + break; + } + } + if (!isSelected) { this.cboOverlayBackground.SelectedIndex = customizedBacgroundCount; } + + switch (this.CurrentSettings.OverlayColor) { + case 0: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_transparent"); break; + case 1: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_white"); break; + case 2: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_black"); break; + case 3: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_magenta"); break; + case 4: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_red"); break; + case 5: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_green"); break; + case 6: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_blue"); break; + } + switch (this.CurrentSettings.LockButtonLocation) { + case 0: this.cboLockButtonLocation.SelectedItem = Multilingual.GetWord("settings_lock_button_location_top"); break; + case 1: this.cboLockButtonLocation.SelectedItem = Multilingual.GetWord("settings_lock_button_location_bottom"); break; + } + switch (this.CurrentSettings.WinsFilter) { + case 0: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_all_time_stats"); break; + case 1: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_stats_and_party_filter"); break; + case 2: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_season_stats"); break; + case 3: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_week_stats"); break; + case 4: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_day_stats"); break; + case 5: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_session_stats"); break; + } + switch (this.CurrentSettings.QualifyFilter) { + case 0: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_all_time_stats"); break; + case 1: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_stats_and_party_filter"); break; + case 2: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_season_stats"); break; + case 3: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_week_stats"); break; + case 4: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_day_stats"); break; + case 5: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_session_stats"); break; + } + switch (this.CurrentSettings.FastestFilter) { + case 0: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_all_time_stats"); break; + case 1: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_stats_and_party_filter"); break; + case 2: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_season_stats"); break; + case 3: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_week_stats"); break; + case 4: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_day_stats"); break; + case 5: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_session_stats"); break; + } + + this.txtGameExeLocation.Text = this.CurrentSettings.GameExeLocation; + this.txtGameShortcutLocation.Text = this.CurrentSettings.GameShortcutLocation; + this.chkLaunchGameOnStart.Checked = this.CurrentSettings.AutoLaunchGameOnStartup; + this.chkIgnoreLevelTypeWhenSorting.Checked = this.CurrentSettings.IgnoreLevelTypeWhenSorting; + this.chkGroupingCreativeRoundLevels.Checked = this.CurrentSettings.GroupingCreativeRoundLevels; + this.chkRecordEscapeDuringAGame.Checked = this.CurrentSettings.RecordEscapeDuringAGame; + + //this.picPlatformCheck.Image = Stats.ImageOpacity(this.picPlatformCheck.Image, 0.8F); + if (this.LaunchPlatform == 0) { // Epic Games + this.picPlatformCheck.Parent = this.picEpicGames; + this.platformToolTip.SetToolTip(this.picPlatformCheck, "Epic Games"); + this.lblGameExeLocation.Text = Multilingual.GetWord("settings_fall_guys_shortcut_location"); + this.txtGameExeLocation.Visible = false; + } else { // Steam + this.picPlatformCheck.Parent = this.picSteam; + this.platformToolTip.SetToolTip(this.picPlatformCheck, "Steam"); + this.lblGameExeLocation.Text = Multilingual.GetWord("settings_fall_guys_exe_location"); + this.txtGameShortcutLocation.Visible = false; + } + + if (!string.IsNullOrEmpty(this.CurrentSettings.OverlayFontSerialized)) { + this.overlayFontSerialized = this.CurrentSettings.OverlayFontSerialized; + FontConverter fontConverter = new FontConverter(); + this.lblOverlayFontExample.Font = fontConverter.ConvertFromString(this.CurrentSettings.OverlayFontSerialized) as Font; + } else { + this.lblOverlayFontExample.Font = Overlay.DefaultFont; + } + + if (!string.IsNullOrEmpty(this.CurrentSettings.OverlayFontColorSerialized)) { + this.overlayFontColorSerialized = this.CurrentSettings.OverlayFontColorSerialized; + ColorConverter colorConverter = new ColorConverter(); + this.lblOverlayFontExample.ForeColor = (Color)colorConverter.ConvertFromString(this.CurrentSettings.OverlayFontColorSerialized); + } else { + this.lblOverlayFontExample.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + + this.trkOverlayOpacity.Value = this.CurrentSettings.OverlayBackgroundOpacity; + } + + private void Settings_Shown(object sender, EventArgs e) { + this.Opacity = 1; + } + + private void SetTheme(MetroThemeStyle theme) { + this.SuspendLayout(); + this.BackImage = theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; + foreach (Control c1 in Controls) { + if (c1 is MetroLabel ml1) { + ml1.Theme = theme; + } else if (c1 is MetroTextBox mtb1) { + mtb1.Theme = theme; + } else if (c1 is MetroButton mb1) { + mb1.Theme = theme; + } else if (c1 is MetroCheckBox mcb1) { + mcb1.Theme = theme; + if (mcb1.UseCustomForeColor && !mcb1.Checked) { + mcb1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + } else if (c1 is MetroRadioButton mrb1) { + mrb1.Theme = theme; + } else if (c1 is MetroComboBox mcbo1) { + mcbo1.Theme = theme; + } else if (c1 is MetroPanel mp1) { + mp1.Theme = theme; + foreach (Control c2 in mp1.Controls) { + if (c2 is MetroLabel ml2) { + ml2.Theme = theme; + } else if (c2 is MetroTextBox mtb2) { + mtb2.Theme = theme; + } else if (c2 is MetroButton mb2) { + mb2.Theme = theme; + } else if (c2 is MetroCheckBox mcb2) { + mcb2.Theme = theme; + if (mcb2.UseCustomForeColor && mcb2.Checked) { + mcb2.ForeColor = theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow; + } else { + mcb2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + } else if (c2 is MetroRadioButton mrb2) { + mrb2.Theme = theme; + } else if (c2 is MetroComboBox mcbo2) { + mcbo2.Theme = theme; + } else if (c2 is ImageComboBox icbo2) { + icbo2.Theme = theme; + } else if (c2 is MetroLink mlnk2) { + mlnk2.Theme = theme; + } else if (c2 is MetroTrackBar mtrb2) { + mtrb2.Theme = theme; + } else if (c2 is MetroProgressSpinner mps2) { + mps2.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + } else if (c2 is GroupBox gb2) { + gb2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + foreach (Control c3 in gb2.Controls) { + if (c3 is MetroRadioButton mrb3) { + mrb3.Theme = theme; + } else if (c3 is Label lb3) { //lblOverlayFontExample + if (!string.IsNullOrEmpty(this.overlayFontColorSerialized)) { + ColorConverter colorConverter = new ColorConverter(); + lb3.ForeColor = (Color)colorConverter.ConvertFromString(this.overlayFontColorSerialized); + } else { + lb3.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + } + } + } + } + } + } + this.Theme = theme; + this.ResumeLayout(); + this.Refresh(); + } + + private void mlPlayNotificationSounds_Click(object sender, EventArgs e) { + this.BeginInvoke((MethodInvoker)delegate { + Image flagImage = (Image)Properties.Resources.ResourceManager.GetObject($"country_kr{(this.CurrentSettings.ShadeTheFlagImage ? "_shiny" : "")}_icon"); + ToastPosition toastPosition = Enum.TryParse(this.cboNotificationWindowPosition.SelectedIndex.ToString(), out ToastPosition position) ? position : ToastPosition.BottomRight; + ToastAnimation toastAnimation = this.cboNotificationWindowAnimation.SelectedIndex == 0 ? ToastAnimation.FADE : ToastAnimation.SLIDE; + ToastTheme toastTheme = this.Theme == MetroThemeStyle.Light ? ToastTheme.Light : ToastTheme.Dark; + ToastSound toastSound = Enum.TryParse(this.cboNotificationSounds.SelectedIndex.ToString(), out ToastSound sound) ? sound : ToastSound.Generic01; + + this.StatsForm.ShowToastNotification(this.StatsForm, null, Multilingual.GetWord("message_test_notifications_caption", this.DisplayLang), "MADE BY Qubit Guy@eunma A.K.A. 제임스 웹 우주 망원경", + Overlay.GetMainFont(16, FontStyle.Bold, this.DisplayLang), flagImage, ToastDuration.VERY_SHORT, toastPosition, toastAnimation, toastTheme, toastSound, this.chkMuteNotificationSounds.Checked, true); + }); + } + + private void cboTheme_SelectedIndexChanged(object sender, EventArgs e) { + this.SetTheme(((ComboBox)sender).SelectedIndex == 0 ? MetroThemeStyle.Light : ((ComboBox)sender).SelectedIndex == 1 ? MetroThemeStyle.Dark : MetroThemeStyle.Default); + } + + // private void chkFallalyticsReporting_CheckedChanged(object sender, EventArgs e) { + // this.chkFallalyticsAnonymous.Enabled = ((MetroCheckBox)sender).Checked; + // if (!((MetroCheckBox)sender).Checked) { + // this.chkFallalyticsAnonymous.Checked = ((MetroCheckBox)sender).Checked; + // } + // } + + // private void chkNotify_CheckedChanged(object sender, EventArgs e) { + // this.chkMuteNotificationSounds.Enabled = this.chkNotifyPersonalBest.Checked || this.chkNotifyServerConnected.Checked; + // this.cboNotificationSounds.Enabled = this.chkNotifyPersonalBest.Checked || this.chkNotifyServerConnected.Checked; + // this.cboNotificationWindowPosition.Enabled = this.chkNotifyPersonalBest.Checked || this.chkNotifyServerConnected.Checked; + // this.cboNotificationWindowAnimation.Enabled = this.chkNotifyPersonalBest.Checked || this.chkNotifyServerConnected.Checked; + // this.mlPlayNotificationSounds.Enabled = this.chkNotifyPersonalBest.Checked || this.chkNotifyServerConnected.Checked; + // if (!this.chkNotifyPersonalBest.Checked && !this.chkNotifyServerConnected.Checked) { + // this.chkMuteNotificationSounds.Checked = false; + // } + // } + + private void CheckBox_CheckedChanged(object sender, EventArgs e) { + ((MetroCheckBox)sender).ForeColor = ((MetroCheckBox)sender).Checked ? (this.Theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow) : Color.DimGray; + + if (sender.Equals(this.chkNotifyPersonalBest) || sender.Equals(this.chkNotifyServerConnected)) { + this.chkMuteNotificationSounds.Enabled = this.chkNotifyPersonalBest.Checked || this.chkNotifyServerConnected.Checked; + this.cboNotificationSounds.Enabled = this.chkNotifyPersonalBest.Checked || this.chkNotifyServerConnected.Checked; + this.cboNotificationWindowPosition.Enabled = this.chkNotifyPersonalBest.Checked || this.chkNotifyServerConnected.Checked; + this.cboNotificationWindowAnimation.Enabled = this.chkNotifyPersonalBest.Checked || this.chkNotifyServerConnected.Checked; + this.mlPlayNotificationSounds.Enabled = this.chkNotifyPersonalBest.Checked || this.chkNotifyServerConnected.Checked; + if (!this.chkNotifyPersonalBest.Checked && !this.chkNotifyServerConnected.Checked) { + this.chkMuteNotificationSounds.Checked = false; + } + } else if (sender.Equals(this.chkFallalyticsReporting) || sender.Equals(this.chkFallalyticsWeeklyCrownLeague)) { + this.chkFallalyticsAnonymous.Enabled = this.chkFallalyticsReporting.Checked || this.chkFallalyticsWeeklyCrownLeague.Checked; + this.txtFallalyticsAPIKey.Enabled = this.chkFallalyticsReporting.Checked || this.chkFallalyticsWeeklyCrownLeague.Checked; + if (!this.chkFallalyticsReporting.Checked && !this.chkFallalyticsWeeklyCrownLeague.Checked) { + this.chkFallalyticsAnonymous.Checked = false; + } + } else if (sender.Equals(this.chkUseProxy)) { + this.IsSucceededTestProxy = false; + this.mpsProxySpinner.Visible = false; + this.picProxyTextResult.Visible = false; + this.txtProxyAddress.Enabled = this.chkUseProxy.Checked; + this.txtProxyPort.Enabled = this.chkUseProxy.Checked; + this.chkUseProxyLoginRequired.Enabled = this.chkUseProxy.Checked; + this.txtProxyUsername.Enabled = this.chkUseProxyLoginRequired.Checked; + this.txtProxyPassword.Enabled = this.chkUseProxyLoginRequired.Checked; + this.btnProxyTestConnection.Enabled = this.chkUseProxy.Checked; + } else if (sender.Equals(this.chkUseProxyLoginRequired)) { + this.IsSucceededTestProxy = false; + this.mpsProxySpinner.Visible = false; + this.picProxyTextResult.Visible = false; + this.txtProxyUsername.Enabled = this.chkUseProxyLoginRequired.Checked; + this.txtProxyPassword.Enabled = this.chkUseProxyLoginRequired.Checked; + } + } + + private void CheckBox_MouseEnter(object sender, EventArgs e) { + if (!((MetroCheckBox)sender).Checked) ((MetroCheckBox)sender).ForeColor = Color.DimGray; + } + + private void CheckBox_MouseLeave(object sender, EventArgs e) { + if (!((MetroCheckBox)sender).Checked) ((MetroCheckBox)sender).ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + + private void btnSave_Click(object sender, EventArgs e) { + this.CurrentSettings.LogPath = this.txtLogPath.Text; + Stats.CurrentLanguage = (Language)this.cboMultilingual.SelectedIndex; + this.CurrentSettings.Multilingual = this.cboMultilingual.SelectedIndex; + this.CurrentSettings.Theme = this.cboTheme.SelectedIndex; + Stats.CurrentTheme = this.cboTheme.SelectedIndex == 0 ? MetroThemeStyle.Light : + this.cboTheme.SelectedIndex == 1 ? MetroThemeStyle.Dark : MetroThemeStyle.Default; + + this.CurrentSettings.IpGeolocationService = this.IpGeolocationService; + if (string.IsNullOrEmpty(this.txtIPinfoToken.Text)) { + if (File.Exists($"{Stats.CURRENTDIR}{Stats.IPinfoTokenFileName}")) { + try { + File.SetAttributes($"{Stats.CURRENTDIR}{Stats.IPinfoTokenFileName}", FileAttributes.Normal); + File.Delete($"{Stats.CURRENTDIR}{Stats.IPinfoTokenFileName}"); + } catch { + // ignored + } + } + Stats.IPinfoToken = string.Empty; + } else if (!this.IPinfoToken.Equals(this.txtIPinfoToken.Text)) { + try { + StreamWriter sw = new StreamWriter($"{Stats.CURRENTDIR}{Stats.IPinfoTokenFileName}"); + sw.WriteLine(this.txtIPinfoToken.Text); + sw.Close(); + } catch { + // ignored + } + Stats.IPinfoToken = this.txtIPinfoToken.Text; + } + + if (string.IsNullOrEmpty(this.txtCycleTimeSeconds.Text)) { + this.CurrentSettings.CycleTimeSeconds = 5; + } else { + this.CurrentSettings.CycleTimeSeconds = int.TryParse(this.txtCycleTimeSeconds.Text, out int cycleTimeSeconds) ? cycleTimeSeconds : 5; + if (this.CurrentSettings.CycleTimeSeconds <= 0) { + this.CurrentSettings.CycleTimeSeconds = 5; + } + } + + if (string.IsNullOrEmpty(this.txtPreviousWins.Text)) { + this.CurrentSettings.PreviousWins = 0; + } else { + this.CurrentSettings.PreviousWins = int.TryParse(this.txtPreviousWins.Text, out int previousWins) ? previousWins : 0; + if (this.CurrentSettings.PreviousWins < 0) { + this.CurrentSettings.PreviousWins = 0; + } + } + + if (this.rdoCycleFastestLongest.Checked) { + this.CurrentSettings.SwitchBetweenLongest = true; + this.CurrentSettings.OnlyShowLongest = false; + } else if (this.rdoOnlyShowLongest.Checked) { + this.CurrentSettings.SwitchBetweenLongest = false; + this.CurrentSettings.OnlyShowLongest = true; + } else { + this.CurrentSettings.SwitchBetweenLongest = false; + this.CurrentSettings.OnlyShowLongest = false; + } + + if (this.rdoCycleQualifyGold.Checked) { + this.CurrentSettings.SwitchBetweenQualify = true; + this.CurrentSettings.OnlyShowGold = false; + } else if (this.rdoOnlyShowGold.Checked) { + this.CurrentSettings.SwitchBetweenQualify = false; + this.CurrentSettings.OnlyShowGold = true; + } else { + this.CurrentSettings.SwitchBetweenQualify = false; + this.CurrentSettings.OnlyShowGold = false; + } + + if (this.rdoCyclePlayersPing.Checked) { + this.CurrentSettings.SwitchBetweenPlayers = true; + this.CurrentSettings.OnlyShowPing = false; + } else if (this.rdoOnlyShowPing.Checked) { + this.CurrentSettings.SwitchBetweenPlayers = false; + this.CurrentSettings.OnlyShowPing = true; + } else { + this.CurrentSettings.SwitchBetweenPlayers = false; + this.CurrentSettings.OnlyShowPing = false; + } + + if (this.rdoCycleWinFinalStreak.Checked) { + this.CurrentSettings.SwitchBetweenStreaks = true; + this.CurrentSettings.OnlyShowFinalStreak = false; + } else if (this.rdoOnlyShowFinalStreak.Checked) { + this.CurrentSettings.SwitchBetweenStreaks = false; + this.CurrentSettings.OnlyShowFinalStreak = true; + } else { + this.CurrentSettings.SwitchBetweenStreaks = false; + this.CurrentSettings.OnlyShowFinalStreak = false; + } + + this.CurrentSettings.OverlayNotOnTop = !this.chkOverlayOnTop.Checked; + this.CurrentSettings.PlayerByConsoleType = this.chkPlayerByConsoleType.Checked; + this.CurrentSettings.ColorByRoundType = this.chkColorByRoundType.Checked; + this.CurrentSettings.AutoChangeProfile = this.chkAutoChangeProfile.Checked; + this.CurrentSettings.ShadeTheFlagImage = this.chkShadeTheFlagImage.Checked; + this.CurrentSettings.DisplayCurrentTime = this.chkDisplayCurrentTime.Checked; + this.CurrentSettings.DisplayGamePlayedInfo = this.chkDisplayGamePlayedInfo.Checked; + this.CurrentSettings.CountPlayersDuringTheLevel = this.chkCountPlayersDuringTheLevel.Checked; + if (this.chkHideRoundInfo.Checked && this.chkHideTimeInfo.Checked && this.chkHideWinsInfo.Checked) { + this.chkHideWinsInfo.Checked = false; + } + + bool resizeOverlay = this.CurrentSettings.HideWinsInfo != this.chkHideWinsInfo.Checked || + this.CurrentSettings.HideRoundInfo != this.chkHideRoundInfo.Checked || + this.CurrentSettings.HideTimeInfo != this.chkHideTimeInfo.Checked || + this.CurrentSettings.ShowOverlayTabs != this.chkShowTabs.Checked; + + this.CurrentSettings.HideWinsInfo = this.chkHideWinsInfo.Checked; + this.CurrentSettings.HideRoundInfo = this.chkHideRoundInfo.Checked; + this.CurrentSettings.HideTimeInfo = this.chkHideTimeInfo.Checked; + this.CurrentSettings.ShowOverlayTabs = this.chkShowTabs.Checked; + + if (resizeOverlay) { + int overlaySetting = this.Overlay.GetDisplaySetting(); + switch (overlaySetting) { + case 0: this.CurrentSettings.OverlayWidth = 786; this.CurrentSettings.OverlayFixedWidth = 786; break; + case 1: this.CurrentSettings.OverlayWidth = 786 - 225 - 6; this.CurrentSettings.OverlayFixedWidth = 786 - 225 - 6; break; + case 2: this.CurrentSettings.OverlayWidth = 786 - 281 - 6; this.CurrentSettings.OverlayFixedWidth = 786 - 281 - 6; break; + case 3: this.CurrentSettings.OverlayWidth = 786 - 281 - 225 - 12; this.CurrentSettings.OverlayFixedWidth = 786 - 281 - 225 - 12; break; + case 4: this.CurrentSettings.OverlayWidth = 786 - 242 - 6; this.CurrentSettings.OverlayFixedWidth = 786 - 242 - 6; break; + case 5: this.CurrentSettings.OverlayWidth = 786 - 242 - 225 - 12; this.CurrentSettings.OverlayFixedWidth = 786 - 242 - 225 - 12; break; + case 6: this.CurrentSettings.OverlayWidth = 786 - 242 - 281 - 12; this.CurrentSettings.OverlayFixedWidth = 786 - 242 - 281 - 12; break; + } + } + + this.CurrentSettings.AutoUpdate = this.chkAutoUpdate.Checked; + this.CurrentSettings.SystemTrayIcon = this.chkSystemTrayIcon.Checked; + this.CurrentSettings.NotifyServerConnected = this.chkNotifyServerConnected.Checked; + this.CurrentSettings.NotifyPersonalBest = this.chkNotifyPersonalBest.Checked; + this.CurrentSettings.MuteNotificationSounds = this.chkMuteNotificationSounds.Checked; + this.CurrentSettings.NotificationSounds = this.cboNotificationSounds.SelectedIndex; + this.CurrentSettings.NotificationWindowPosition = this.cboNotificationWindowPosition.SelectedIndex; + this.CurrentSettings.NotificationWindowAnimation = this.cboNotificationWindowAnimation.SelectedIndex; + this.CurrentSettings.PreventOverlayMouseClicks = this.chkPreventOverlayMouseClicks.Checked; + + this.CurrentSettings.FlippedDisplay = this.chkFlipped.Checked; + this.CurrentSettings.HideOverlayPercentages = this.chkHidePercentages.Checked; + this.CurrentSettings.HoopsieHeros = this.chkChangeHoopsieLegends.Checked; + + this.CurrentSettings.OverlayBackgroundResourceName = ((ImageItem)this.cboOverlayBackground.SelectedItem).Data[0]; + this.CurrentSettings.OverlayTabResourceName = ((ImageItem)this.cboOverlayBackground.SelectedItem).Data[1]; + this.CurrentSettings.OverlayBackground = this.cboOverlayBackground.SelectedIndex; + this.CurrentSettings.IsOverlayBackgroundCustomized = ((ImageItem)this.cboOverlayBackground.SelectedItem).IsCustomized; + + if ((string)this.cboOverlayColor.SelectedItem == $"{Multilingual.GetWord("settings_transparent")}") { + this.CurrentSettings.OverlayColor = 0; + } else if ((string)this.cboOverlayColor.SelectedItem == $"{Multilingual.GetWord("settings_white")}") { + this.CurrentSettings.OverlayColor = 1; + } else if ((string)this.cboOverlayColor.SelectedItem == $"{Multilingual.GetWord("settings_black")}") { + this.CurrentSettings.OverlayColor = 2; + } else if ((string)this.cboOverlayColor.SelectedItem == $"{Multilingual.GetWord("settings_magenta")}") { + this.CurrentSettings.OverlayColor = 3; + } else if ((string)this.cboOverlayColor.SelectedItem == $"{Multilingual.GetWord("settings_red")}") { + this.CurrentSettings.OverlayColor = 4; + } else if ((string)this.cboOverlayColor.SelectedItem == $"{Multilingual.GetWord("settings_green")}") { + this.CurrentSettings.OverlayColor = 5; + } else if ((string)this.cboOverlayColor.SelectedItem == $"{Multilingual.GetWord("settings_blue")}") { + this.CurrentSettings.OverlayColor = 6; + } + + if ((string)this.cboLockButtonLocation.SelectedItem == $"{Multilingual.GetWord("settings_lock_button_location_top")}") { + this.CurrentSettings.LockButtonLocation = 0; + } else if ((string)this.cboLockButtonLocation.SelectedItem == $"{Multilingual.GetWord("settings_lock_button_location_bottom")}") { + this.CurrentSettings.LockButtonLocation = 1; + } + + if ((string)this.cboWinsFilter.SelectedItem == $"{Multilingual.GetWord("settings_all_time_stats")}") { + this.CurrentSettings.WinsFilter = 0; + } else if ((string)this.cboWinsFilter.SelectedItem == $"{Multilingual.GetWord("settings_stats_and_party_filter")}") { + this.CurrentSettings.WinsFilter = 1; + } else if ((string)this.cboWinsFilter.SelectedItem == $"{Multilingual.GetWord("settings_season_stats")}") { + this.CurrentSettings.WinsFilter = 2; + } else if ((string)this.cboWinsFilter.SelectedItem == $"{Multilingual.GetWord("settings_week_stats")}") { + this.CurrentSettings.WinsFilter = 3; + } else if ((string)this.cboWinsFilter.SelectedItem == $"{Multilingual.GetWord("settings_day_stats")}") { + this.CurrentSettings.WinsFilter = 4; + } else if ((string)this.cboWinsFilter.SelectedItem == $"{Multilingual.GetWord("settings_session_stats")}") { + this.CurrentSettings.WinsFilter = 5; + } + + if ((string)this.cboQualifyFilter.SelectedItem == $"{Multilingual.GetWord("settings_all_time_stats")}") { + this.CurrentSettings.QualifyFilter = 0; + } else if ((string)this.cboQualifyFilter.SelectedItem == $"{Multilingual.GetWord("settings_stats_and_party_filter")}") { + this.CurrentSettings.QualifyFilter = 1; + } else if ((string)this.cboQualifyFilter.SelectedItem == $"{Multilingual.GetWord("settings_season_stats")}") { + this.CurrentSettings.QualifyFilter = 2; + } else if ((string)this.cboQualifyFilter.SelectedItem == $"{Multilingual.GetWord("settings_week_stats")}") { + this.CurrentSettings.QualifyFilter = 3; + } else if ((string)this.cboQualifyFilter.SelectedItem == $"{Multilingual.GetWord("settings_day_stats")}") { + this.CurrentSettings.QualifyFilter = 4; + } else if ((string)this.cboQualifyFilter.SelectedItem == $"{Multilingual.GetWord("settings_session_stats")}") { + this.CurrentSettings.QualifyFilter = 5; + } + + if ((string)this.cboFastestFilter.SelectedItem == $"{Multilingual.GetWord("settings_all_time_stats")}") { + this.CurrentSettings.FastestFilter = 0; + } else if ((string)this.cboFastestFilter.SelectedItem == $"{Multilingual.GetWord("settings_stats_and_party_filter")}") { + this.CurrentSettings.FastestFilter = 1; + } else if ((string)this.cboFastestFilter.SelectedItem == $"{Multilingual.GetWord("settings_season_stats")}") { + this.CurrentSettings.FastestFilter = 2; + } else if ((string)this.cboFastestFilter.SelectedItem == $"{Multilingual.GetWord("settings_week_stats")}") { + this.CurrentSettings.FastestFilter = 3; + } else if ((string)this.cboFastestFilter.SelectedItem == $"{Multilingual.GetWord("settings_day_stats")}") { + this.CurrentSettings.FastestFilter = 4; + } else if ((string)this.cboFastestFilter.SelectedItem == $"{Multilingual.GetWord("settings_session_stats")}") { + this.CurrentSettings.FastestFilter = 5; + } + + this.CurrentSettings.IgnoreLevelTypeWhenSorting = this.chkIgnoreLevelTypeWhenSorting.Checked; + this.CurrentSettings.GroupingCreativeRoundLevels = this.chkGroupingCreativeRoundLevels.Checked; + this.CurrentSettings.RecordEscapeDuringAGame = this.chkRecordEscapeDuringAGame.Checked; + this.CurrentSettings.LaunchPlatform = this.LaunchPlatform; + this.CurrentSettings.GameExeLocation = this.txtGameExeLocation.Text; + this.CurrentSettings.GameShortcutLocation = this.txtGameShortcutLocation.Text; + this.CurrentSettings.AutoLaunchGameOnStartup = this.chkLaunchGameOnStart.Checked; + + if (!string.IsNullOrEmpty(this.overlayFontSerialized)) { + FontConverter fontConverter = new FontConverter(); + this.CurrentSettings.OverlayFontSerialized = fontConverter.ConvertToString(this.lblOverlayFontExample.Font); + } else { + this.CurrentSettings.OverlayFontSerialized = string.Empty; + Overlay.SetDefaultFont(18, Stats.CurrentLanguage); + } + + if (!string.IsNullOrEmpty(this.overlayFontColorSerialized)) { + ColorConverter colorConverter = new ColorConverter(); + this.CurrentSettings.OverlayFontColorSerialized = colorConverter.ConvertToString(this.lblOverlayFontExample.ForeColor); + } else { + this.CurrentSettings.OverlayFontColorSerialized = string.Empty; + } + + this.CurrentSettings.OverlayBackgroundOpacity = this.trkOverlayOpacity.Value; + + this.CurrentSettings.EnableFallalyticsReporting = this.chkFallalyticsReporting.Checked; + this.CurrentSettings.EnableFallalyticsWeeklyCrownLeague = this.chkFallalyticsWeeklyCrownLeague.Checked; + this.CurrentSettings.EnableFallalyticsAnonymous = this.chkFallalyticsAnonymous.Checked; + this.CurrentSettings.FallalyticsAPIKey = this.txtFallalyticsAPIKey.Text; + + this.CurrentSettings.UseProxyServer = this.chkUseProxy.Checked; + this.CurrentSettings.ProxyAddress = this.txtProxyAddress.Text; + this.CurrentSettings.ProxyPort = this.txtProxyPort.Text; + this.CurrentSettings.EnableProxyAuthentication = this.chkUseProxyLoginRequired.Checked; + this.CurrentSettings.ProxyUsername = this.txtProxyUsername.Text; + this.CurrentSettings.ProxyPassword = this.txtProxyPassword.Text; + this.CurrentSettings.SucceededTestProxy = this.IsSucceededTestProxy; + + this.DialogResult = DialogResult.OK; + this.Close(); + } + + private void txtCycleTimeSeconds_Validating(object sender, System.ComponentModel.CancelEventArgs e) { + if (!string.IsNullOrEmpty(this.txtCycleTimeSeconds.Text) && !int.TryParse(this.txtCycleTimeSeconds.Text, out _)) { + this.txtCycleTimeSeconds.Text = "5"; + } + } + + private void txtLogPath_Validating(object sender, System.ComponentModel.CancelEventArgs e) { + try { + this.txtLogPath.Text = this.txtLogPath.Text.Trim(); + if (this.txtLogPath.Text.EndsWith(".log", StringComparison.OrdinalIgnoreCase)) { + this.txtLogPath.Text = Path.GetDirectoryName(this.txtLogPath.Text); + } + this.txtLogPath.Text = Path.GetFullPath(this.txtLogPath.Text).TrimEnd('\\').TrimEnd(); + if (string.Equals(this.txtLogPath.Text, Stats.LOGPATH, StringComparison.OrdinalIgnoreCase)) { + this.txtLogPath.Text = string.Empty; + } + } catch { + this.txtLogPath.Text = string.Empty; + } + } + + private void txtPreviousWins_Validating(object sender, System.ComponentModel.CancelEventArgs e) { + if (!string.IsNullOrEmpty(this.txtPreviousWins.Text) && !int.TryParse(this.txtPreviousWins.Text, out _)) { + this.txtPreviousWins.Text = @"0"; + } + } + + private void enterOnlyDigitInTextBox_KeyPress(object sender, KeyPressEventArgs e) { + if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Back) { + e.Handled = true; + } + } + + private void btnGameExeLocationBrowse_Click(object sender, EventArgs e) { + this.BeginInvoke((MethodInvoker)delegate { + try { + using (OpenFileDialog openFile = new OpenFileDialog()) { + if (this.LaunchPlatform == 0) { // Epic Games + if (string.IsNullOrEmpty(this.StatsForm.FindEpicGamesShortcutLocation())) { + MetroMessageBox.Show(this, Multilingual.GetWord("message_not_installed_epicGames", this.DisplayLang), Multilingual.GetWord("message_not_installed_epicGames_caption", this.DisplayLang), MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + openFile.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); + openFile.Filter = Multilingual.GetWord("settings_fall_guys_shortcut_openfile_filter", this.DisplayLang); + openFile.FileName = Multilingual.GetWord("settings_fall_guys_shortcut_openfile_name", this.DisplayLang); + openFile.Title = Multilingual.GetWord("settings_fall_guys_shortcut_openfile_title", this.DisplayLang); + + if (openFile.ShowDialog(this) == DialogResult.OK) { + string fileContent; + string epicGamesFallGuysApp = "50118b7f954e450f8823df1614b24e80%3A38ec4849ea4f4de6aa7b6fb0f2d278e1%3A0a2d9f6403244d12969e11da6713137b"; + FileStream fileStream = new FileStream(openFile.FileName, FileMode.Open); + using (StreamReader reader = new StreamReader(fileStream)) { + fileContent = reader.ReadToEnd(); + } + + string[] splitContent = fileContent.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); + string url = string.Empty; + + foreach (string content in splitContent) { + if (content.ToLower().StartsWith("url=")) { + url = content.Substring(4); + break; + } + } + + if (url.ToLower().StartsWith("com.epicgames.launcher://apps/") && url.IndexOf(epicGamesFallGuysApp, StringComparison.OrdinalIgnoreCase) != -1) { + this.txtGameShortcutLocation.Text = url; + } else { + MetroMessageBox.Show(this, Multilingual.GetWord("message_wrong_selected_file_epicgames", this.DisplayLang), Multilingual.GetWord("message_wrong_selected_file_caption", this.DisplayLang), MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } else { // Steam + if (string.IsNullOrEmpty(this.StatsForm.FindSteamExeLocation())) { + MetroMessageBox.Show(this, Multilingual.GetWord("message_not_installed_steam", this.DisplayLang), Multilingual.GetWord("message_not_installed_steam_caption", this.DisplayLang), MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + FileInfo currentExeLocation = new FileInfo(this.txtGameExeLocation.Text); + if (currentExeLocation.Directory.Exists) { + openFile.InitialDirectory = currentExeLocation.Directory.FullName; + } + openFile.Filter = Multilingual.GetWord("settings_fall_guys_exe_openfile_filter", this.DisplayLang); + openFile.FileName = Multilingual.GetWord("settings_fall_guys_exe_openfile_name", this.DisplayLang); + openFile.Title = Multilingual.GetWord("settings_fall_guys_exe_openfile_title", this.DisplayLang); + + if (openFile.ShowDialog(this) == DialogResult.OK) { + if (openFile.FileName.IndexOf("FallGuys_client", StringComparison.OrdinalIgnoreCase) >= 0) { + txtGameExeLocation.Text = openFile.FileName; + } else { + MetroMessageBox.Show(this, Multilingual.GetWord("message_wrong_selected_file_steam", this.DisplayLang), Multilingual.GetWord("message_wrong_selected_file_caption", this.DisplayLang), MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + } + } catch (Exception ex) { + ControlErrors.HandleException(this, ex, false); + } + }); + } + + private void launchPlatform_Click(object sender, EventArgs e) { + this.StatsForm.UpdateGameExeLocation(); + switch (((PictureBox)sender).Name) { + case "picEpicGames": // Epic Games + this.picPlatformCheck.Parent = this.picEpicGames; + this.platformToolTip.SetToolTip(this.picPlatformCheck, "Epic Games"); + this.txtGameShortcutLocation.Visible = true; + this.txtGameExeLocation.Visible = false; + + this.lblGameExeLocation.Location = new Point(this.grpLaunchPlatform.Location.X + this.grpLaunchPlatform.Width + 3, 20); + this.lblGameExeLocation.Text = Multilingual.GetWord("settings_fall_guys_shortcut_location", this.DisplayLang); + this.txtGameShortcutLocation.Location = new Point(this.grpLaunchPlatform.Location.X + this.grpLaunchPlatform.Width + 8, 46); + this.txtGameShortcutLocation.Size = new Size(567 - this.txtGameShortcutLocation.Location.X, 25); + + this.LaunchPlatform = 0; + break; + case "picSteam": // Steam + this.txtGameExeLocation.Text = this.CurrentSettings.GameExeLocation; + this.picPlatformCheck.Parent = this.picSteam; + this.platformToolTip.SetToolTip(this.picPlatformCheck, "Steam"); + this.txtGameShortcutLocation.Visible = false; + this.txtGameExeLocation.Visible = true; + + this.lblGameExeLocation.Location = new Point(this.grpLaunchPlatform.Location.X + this.grpLaunchPlatform.Width + 3, 20); + this.lblGameExeLocation.Text = Multilingual.GetWord("settings_fall_guys_exe_location", this.DisplayLang); + this.txtGameExeLocation.Location = new Point(this.grpLaunchPlatform.Location.X + this.grpLaunchPlatform.Width + 8, 46); + this.txtGameExeLocation.Size = new Size(567 - this.txtGameExeLocation.Location.X, 25); + + this.LaunchPlatform = 1; + break; + } + this.picPlatformCheck.Location = this.LaunchPlatform == 0 ? new Point(20, 16) : new Point(19, 14); + } + + private void btnCancel_Click(object sender, EventArgs e) { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + private void btnSelectFont_Click(object sender, EventArgs e) { + this.BeginInvoke((MethodInvoker)delegate { + this.dlgOverlayFont.Font = string.IsNullOrEmpty(this.overlayFontSerialized) + ? Overlay.GetDefaultFont(24, this.DisplayLang) + : new Font(this.lblOverlayFontExample.Font.FontFamily, lblOverlayFontExample.Font.Size, lblOverlayFontExample.Font.Style, GraphicsUnit.Point, (byte)1); + + this.dlgOverlayFont.ShowColor = true; + this.dlgOverlayFont.Color = string.IsNullOrEmpty(this.overlayFontColorSerialized) ? Color.White : this.lblOverlayFontExample.ForeColor; + + try { + if (this.dlgOverlayFont.ShowDialog(this) == DialogResult.OK) { + if (this.dlgOverlayFont.Color == Color.White) { + this.lblOverlayFontExample.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.overlayFontColorSerialized = string.Empty; + } else { + this.lblOverlayFontExample.ForeColor = this.dlgOverlayFont.Color; + this.overlayFontColorSerialized = new ColorConverter().ConvertToString(this.lblOverlayFontExample.ForeColor); + } + + this.lblOverlayFontExample.Font = new Font(this.dlgOverlayFont.Font.FontFamily, this.dlgOverlayFont.Font.Size, this.dlgOverlayFont.Font.Style, GraphicsUnit.Pixel, ((byte)(1))); + this.overlayFontSerialized = new FontConverter().ConvertToString(this.lblOverlayFontExample.Font); + } + } catch { + MetroMessageBox.Show(this, $"{Multilingual.GetWord("settings_font_need_to_be_installed_message")}", $"{Multilingual.GetWord("settings_font_need_to_be_installed_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + }); + } + + private void btnResetOverlayFont_Click(object sender, EventArgs e) { + this.lblOverlayFontExample.Font = Overlay.GetDefaultFont(18, this.DisplayLang); + this.lblOverlayFontExample.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.overlayFontColorSerialized = string.Empty; + this.overlayFontSerialized = string.Empty; + } + + private void cboMultilingual_SelectedIndexChanged(object sender, EventArgs e) { + if (this.DisplayLang == (Language)((ImageComboBox)sender).SelectedIndex) return; + + this.BeginInvoke((MethodInvoker)delegate { + this.panelOverlay.VerticalScroll.Value = 0; + this.panelAbout.VerticalScroll.Value = 0; + this.ChangeLanguage((Language)((ImageComboBox)sender).SelectedIndex); + }); + } + + private void cboIpGeolocationService_SelectedIndexChanged(object sender, EventArgs e) { + if (this.IpGeolocationService == ((MetroComboBox)sender).SelectedIndex) return; + if (((MetroComboBox)sender).SelectedIndex == 1) { + this.IpGeolocationService = 1; + this.linkIPinfoToken.Visible = true; + this.txtIPinfoToken.Visible = true; + } else { + this.IpGeolocationService = 0; + this.linkIPinfoToken.Visible = false; + this.txtIPinfoToken.Visible = false; + } + } + + private void trkOverlayOpacity_ValueChanged(object sender, EventArgs e) { + if (((MetroTrackBar)sender).Value == (int)(this.Overlay.Opacity * 100)) return; + + this.Overlay.Opacity = ((MetroTrackBar)sender).Value / 100d; + if (this.TrkOverlayOpacityIsEnter) { + Point cursorPosition = this.PointToClient(Cursor.Position); + Point position = new Point(cursorPosition.X + 4, cursorPosition.Y - 20); + this.StatsForm.ShowTooltip(((MetroTrackBar)sender).Value.ToString(), this, position); + } else { + Point position = new Point(this.trkOverlayOpacity.Location.X + 220 + (this.trkOverlayOpacity.Width * ((MetroTrackBar)sender).Value / 102), this.trkOverlayOpacity.Location.Y + 74); + this.StatsForm.ShowTooltip(((MetroTrackBar)sender).Value.ToString(), this, position, 1500); + } + } + + private void trkOverlayOpacity_MouseEnter(object sender, EventArgs e) { + this.TrkOverlayOpacityIsEnter = true; + } + + private void trkOverlayOpacity_MouseLeave(object sender, EventArgs e) { + this.TrkOverlayOpacityIsEnter = false; + this.StatsForm.HideTooltip(this); + } + + private void proxyInfoChanged_TextChanged(object sender, EventArgs e) { + this.IsSucceededTestProxy = false; + this.mpsProxySpinner.Visible = false; + this.picProxyTextResult.Visible = false; + } + + private void btnTestProxyConnection_Click(object sender, EventArgs e) { + if (!this.chkUseProxy.Checked || string.IsNullOrEmpty(this.txtProxyAddress.Text)) { + return; + } + ((MetroButton)sender).Enabled = false; + this.chkUseProxy.Enabled = false; + this.txtProxyAddress.Enabled = false; + this.txtProxyPort.Enabled = false; + this.chkUseProxyLoginRequired.Enabled = false; + this.txtProxyUsername.Enabled = false; + this.txtProxyPassword.Enabled = false; + + WebProxy webproxy = new WebProxy($"{this.txtProxyAddress.Text}:{(!string.IsNullOrEmpty(this.txtProxyPort.Text) ? this.txtProxyPort.Text : "80")}", false) { + BypassProxyOnLocal = false + }; + + if (this.chkUseProxyLoginRequired.Checked) { + if (string.IsNullOrEmpty(this.txtProxyUsername.Text) || string.IsNullOrEmpty(this.txtProxyPassword.Text)) { + ((MetroButton)sender).Enabled = true; + this.chkUseProxy.Enabled = true; + this.txtProxyAddress.Enabled = this.chkUseProxy.Checked; + this.txtProxyPort.Enabled = this.chkUseProxy.Checked; + this.chkUseProxyLoginRequired.Enabled = this.chkUseProxy.Checked; + this.txtProxyUsername.Enabled = this.chkUseProxyLoginRequired.Checked; + this.txtProxyPassword.Enabled = this.chkUseProxyLoginRequired.Checked; + return; + } + webproxy.Credentials = new NetworkCredential(this.txtProxyUsername.Text, this.txtProxyPassword.Text); + } + + this.mpsProxySpinner.Visible = true; + Task.Run(() => { + try { + HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://fallalytics.com"); + request.Proxy = webproxy; + request.Timeout = 5000; + + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { + bool isOk = response.StatusCode == HttpStatusCode.OK; + this.IsSucceededTestProxy = isOk; + this.BeginInvoke((MethodInvoker)delegate { + this.mpsProxySpinner.Visible = false; + this.picProxyTextResult.Image = isOk ? Properties.Resources.checkmark_icon : Properties.Resources.uncheckmark_icon; + this.picProxyTextResult.Visible = true; + ((MetroButton)sender).Enabled = true; + this.chkUseProxy.Enabled = true; + this.txtProxyAddress.Enabled = this.chkUseProxy.Checked; + this.txtProxyPort.Enabled = this.chkUseProxy.Checked; + this.chkUseProxyLoginRequired.Enabled = this.chkUseProxy.Checked; + this.txtProxyUsername.Enabled = this.chkUseProxyLoginRequired.Checked; + this.txtProxyPassword.Enabled = this.chkUseProxyLoginRequired.Checked; + }); + } + } catch { + this.IsSucceededTestProxy = false; + this.BeginInvoke((MethodInvoker)delegate { + this.mpsProxySpinner.Visible = false; + this.picProxyTextResult.Image = Properties.Resources.uncheckmark_icon; + this.picProxyTextResult.Visible = true; + ((MetroButton)sender).Enabled = true; + this.chkUseProxy.Enabled = true; + this.txtProxyAddress.Enabled = this.chkUseProxy.Checked; + this.txtProxyPort.Enabled = this.chkUseProxy.Checked; + this.chkUseProxyLoginRequired.Enabled = this.chkUseProxy.Checked; + this.txtProxyUsername.Enabled = this.chkUseProxyLoginRequired.Checked; + this.txtProxyPassword.Enabled = this.chkUseProxyLoginRequired.Checked; + }); + } + }); + } + + private void linkIPinfoToken_MouseEnter(object sender, EventArgs e) { + Point position = new Point(((MetroLink)sender).Right + (this.DisplayLang == Language.English ? 120 : this.DisplayLang == Language.French ? 85 : this.DisplayLang == Language.Spanish ? 100 : this.DisplayLang == Language.Korean ? 119 : this.DisplayLang == Language.Japanese ? 0 : this.DisplayLang == Language.SimplifiedChinese ? 192 : this.DisplayLang == Language.TraditionalChinese ? 196 : 120), ((MetroLink)sender).Top + 110); + this.StatsForm.AllocTooltip(); + this.StatsForm.ShowTooltip(Multilingual.GetWord("settings_link_to_get_ipinfo_token", this.DisplayLang), this, position); + } + + private void linkIPinfoToken_MouseLeave(object sender, EventArgs e) { + this.StatsForm.HideTooltip(this); + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { + if (keyData == Keys.Tab) { SendKeys.Send("%"); } + return base.ProcessCmdKey(ref msg, keyData); + } + + private void ChangeLanguage(Language lang) { + this.SuspendLayout(); + this.DisplayLang = lang; + this.Font = Overlay.GetMainFont(12, FontStyle.Regular, this.DisplayLang); + Language tempLanguage = Stats.CurrentLanguage; + Stats.CurrentLanguage = lang; + + this.Text = $@" {Multilingual.GetWord("settings_title")}"; + this.lblOverlayFontExample.Font = Overlay.GetDefaultFont(18, this.DisplayLang); + this.overlayFontSerialized = string.Empty; + this.lblOverlayFontExample.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.overlayFontColorSerialized = string.Empty; + this.chkChangeHoopsieLegends.Visible = true; + this.chkChangeHoopsieLegends.Checked = this.CurrentSettings.HoopsieHeros; + + this.tileProgram.Text = Multilingual.GetWord("settings_program"); + this.tileDisplay.Text = Multilingual.GetWord("settings_display"); + this.tileOverlay.Text = Multilingual.GetWord("settings_overlay"); + this.tileFallGuys.Text = Multilingual.GetWord("settings_launch_fallguys"); + this.tileFallalytics.Text = Multilingual.GetWord("settings_fallalytics"); + this.tileProxy.Text = Multilingual.GetWord("settings_proxy_settings"); + this.tileAbout.Text = Multilingual.GetWord("settings_about"); + + this.btnCancel.Text = Multilingual.GetWord("settings_cancel"); + this.btnCancel.Width = TextRenderer.MeasureText(this.btnCancel.Text, this.btnCancel.Font).Width + 45; + this.btnCancel.Left = this.Width - this.btnCancel.Width - 25; + this.btnSave.Text = Multilingual.GetWord("settings_save"); + this.btnSave.Width = TextRenderer.MeasureText(this.btnSave.Text, this.btnSave.Font).Width + 45; + this.btnSave.Left = this.btnCancel.Left - this.btnSave.Width - 15; + + this.picPlatformCheck.Location = this.LaunchPlatform == 0 ? new Point(20, 16) : new Point(19, 14); + + this.cboIpGeolocationService.Items.Clear(); + this.cboIpGeolocationService.Items.AddRange(new object[] { + Multilingual.GetWord("settings_auto_selected"), + "IPinfo.io" + }); + switch (this.IpGeolocationService) { + case 0: this.cboIpGeolocationService.SelectedItem = Multilingual.GetWord("settings_auto_selected"); break; + case 1: this.cboIpGeolocationService.SelectedItem = "IPinfo.io"; break; + } + + this.lblIpGeolocationService.Text = Multilingual.GetWord("settings_preferred_ip_geolocation_service"); + this.lblIpGeolocationService.Left = this.cboIpGeolocationService.Left - this.lblIpGeolocationService.Width - 5; + this.linkIPinfoToken.Text = Multilingual.GetWord("settings_ipinfo_token"); + this.linkIPinfoToken.Width = TextRenderer.MeasureText(this.linkIPinfoToken.Text, this.linkIPinfoToken.Font).Width + (lang == Language.French ? 11 : 0); + this.linkIPinfoToken.Left = this.txtIPinfoToken.Left - this.linkIPinfoToken.Width - 5; + this.txtIPinfoToken.WaterMark = Multilingual.GetWord("settings_enter_ipinfo_token"); + // this.linkIPinfoToken.Text = Multilingual.GetWord("settings_link_to_get_ipinfo_token"); + // this.linkIPinfoToken.Width = TextRenderer.MeasureText(this.linkIPinfoToken.Text, this.linkIPinfoToken.Font).Width + (lang == Language.English ? 34 : lang == Language.French ? 45 : lang == Language.Korean ? 46 : lang == Language.Japanese ? 64 : lang == Language.SimplifiedChinese ? 32 : lang == Language.TraditionalChinese ? 29 : 34); + // this.linkIPinfoToken.Left = this.txtIPinfoToken.Right - this.linkIPinfoToken.Width + 6; + + this.lblTheme.Text = Multilingual.GetWord("settings_theme"); + this.cboTheme.Items.Clear(); + this.cboTheme.Items.AddRange(new object[] { + Multilingual.GetWord("settings_theme_light"), + Multilingual.GetWord("settings_theme_dark"), + }); + this.cboTheme.SelectedItem = this.Theme == MetroThemeStyle.Light + ? Multilingual.GetWord("settings_theme_light") + : Multilingual.GetWord("settings_theme_dark"); + + // this.lblLogPath.Text = Multilingual.GetWord("settings_log_path"); + this.lblLogPathNote.Text = Multilingual.GetWord("settings_log_path_description"); + + this.rdoOnlyShowGold.Text = Multilingual.GetWord("settings_gold_only"); + this.rdoOnlyShowQualify.Text = Multilingual.GetWord("settings_qualify_only"); + this.rdoCycleQualifyGold.Text = Multilingual.GetWord("settings_cycle_qualify__gold"); + this.rdoOnlyShowLongest.Text = Multilingual.GetWord("settings_personal_lowest_only"); + this.rdoOnlyShowFastest.Text = Multilingual.GetWord("settings_personal_best_only"); + this.rdoCycleFastestLongest.Text = Multilingual.GetWord("settings_cycle_best__lowest"); + this.chkHidePercentages.Text = Multilingual.GetWord("settings_hide_percentages"); + this.chkHideWinsInfo.Text = Multilingual.GetWord("settings_hide_wins_info"); + + this.cboOverlayColor.Items.Clear(); + this.cboOverlayColor.Items.AddRange(new object[] { + Multilingual.GetWord("settings_transparent"), + Multilingual.GetWord("settings_white"), + Multilingual.GetWord("settings_black"), + Multilingual.GetWord("settings_magenta"), + Multilingual.GetWord("settings_red"), + Multilingual.GetWord("settings_green"), + Multilingual.GetWord("settings_blue") + }); + switch (this.CurrentSettings.OverlayColor) { + case 0: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_transparent"); break; + case 1: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_white"); break; + case 2: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_black"); break; + case 3: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_magenta"); break; + case 4: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_red"); break; + case 5: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_green"); break; + case 6: this.cboOverlayColor.SelectedItem = Multilingual.GetWord("settings_blue"); break; + } + + this.cboLockButtonLocation.Items.Clear(); + this.cboLockButtonLocation.Items.AddRange(new object[] { + Multilingual.GetWord("settings_lock_button_location_top"), + Multilingual.GetWord("settings_lock_button_location_bottom") + }); + switch (this.CurrentSettings.LockButtonLocation) { + case 0: this.cboLockButtonLocation.SelectedItem = Multilingual.GetWord("settings_lock_button_location_top"); break; + case 1: this.cboLockButtonLocation.SelectedItem = Multilingual.GetWord("settings_lock_button_location_bottom"); break; + } + + this.lblOverlayBackground.Text = Multilingual.GetWord("settings_background_image"); + this.lblOverlayColor.Text = Multilingual.GetWord("settings_background"); + this.lblOverlayOpacity.Text = Multilingual.GetWord("settings_background_opacity"); + this.lblLockButtonLocation.Text = Multilingual.GetWord("settings_lock_button_location"); + this.chkFlipped.Text = Multilingual.GetWord("settings_flip_display_horizontally"); + this.chkShowTabs.Text = Multilingual.GetWord("settings_show_tab_for_currnet_filter__profile"); + this.chkHideTimeInfo.Text = Multilingual.GetWord("settings_hide_time_info"); + this.chkHideRoundInfo.Text = Multilingual.GetWord("settings_hide_round_info"); + + this.cboFastestFilter.Items.Clear(); + this.cboFastestFilter.Items.AddRange(new object[] { + Multilingual.GetWord("settings_all_time_stats"), + Multilingual.GetWord("settings_stats_and_party_filter"), + Multilingual.GetWord("settings_season_stats"), + Multilingual.GetWord("settings_week_stats"), + Multilingual.GetWord("settings_day_stats"), + Multilingual.GetWord("settings_session_stats") + }); + switch (this.CurrentSettings.FastestFilter) { + case 0: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_all_time_stats"); break; + case 1: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_stats_and_party_filter"); break; + case 2: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_season_stats"); break; + case 3: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_week_stats"); break; + case 4: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_day_stats"); break; + case 5: this.cboFastestFilter.SelectedItem = Multilingual.GetWord("settings_session_stats"); break; + } + + this.lblFastestFilter.Text = Multilingual.GetWord("settings_fastest__longest_filter"); + + this.cboQualifyFilter.Items.Clear(); + this.cboQualifyFilter.Items.AddRange(new object[] { + Multilingual.GetWord("settings_all_time_stats"), + Multilingual.GetWord("settings_stats_and_party_filter"), + Multilingual.GetWord("settings_season_stats"), + Multilingual.GetWord("settings_week_stats"), + Multilingual.GetWord("settings_day_stats"), + Multilingual.GetWord("settings_session_stats") + }); + switch (this.CurrentSettings.QualifyFilter) { + case 0: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_all_time_stats"); break; + case 1: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_stats_and_party_filter"); break; + case 2: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_season_stats"); break; + case 3: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_week_stats"); break; + case 4: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_day_stats"); break; + case 5: this.cboQualifyFilter.SelectedItem = Multilingual.GetWord("settings_session_stats"); break; + } + + this.lblQualifyFilter.Text = Multilingual.GetWord("settings_qualify__gold_filter"); + + this.cboWinsFilter.Items.Clear(); + this.cboWinsFilter.Items.AddRange(new object[] { + Multilingual.GetWord("settings_all_time_stats"), + Multilingual.GetWord("settings_stats_and_party_filter"), + Multilingual.GetWord("settings_season_stats"), + Multilingual.GetWord("settings_week_stats"), + Multilingual.GetWord("settings_day_stats"), + Multilingual.GetWord("settings_session_stats") + }); + switch (this.CurrentSettings.WinsFilter) { + case 0: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_all_time_stats"); break; + case 1: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_stats_and_party_filter"); break; + case 2: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_season_stats"); break; + case 3: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_week_stats"); break; + case 4: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_day_stats"); break; + case 5: this.cboWinsFilter.SelectedItem = Multilingual.GetWord("settings_session_stats"); break; + } + + this.lblWinsFilter.Text = Multilingual.GetWord("settings_wins__final_filter"); + this.chkOverlayOnTop.Text = Multilingual.GetWord("settings_always_show_on_top"); + this.chkPlayerByConsoleType.Text = Multilingual.GetWord("settings_display_players_based_on_platform"); + this.chkColorByRoundType.Text = Multilingual.GetWord("settings_color_round_name_based_on_round_type"); + this.chkAutoChangeProfile.Text = Multilingual.GetWord("settings_auto_change_profile"); + this.chkShadeTheFlagImage.Text = Multilingual.GetWord("settings_shade_the_flag_image"); + this.chkDisplayCurrentTime.Text = Multilingual.GetWord("settings_diaplay_current_time"); + this.chkDisplayGamePlayedInfo.Text = Multilingual.GetWord("settings_diaplay_game_played_info"); + this.chkCountPlayersDuringTheLevel.Text = Multilingual.GetWord("settings_count_players_during_the_level"); + this.lblCycleTimeSecondsTag.Text = Multilingual.GetWord("settings_sec"); + this.lblCycleTimeSeconds.Text = Multilingual.GetWord("settings_cycle_time"); + this.rdoOnlyShowFinalStreak.Text = Multilingual.GetWord("settings_final_streak_only"); + this.rdoOnlyShowWinStreak.Text = Multilingual.GetWord("settings_win_streak_only"); + this.rdoCycleWinFinalStreak.Text = Multilingual.GetWord("settings_cycle_win__final_streak"); + this.rdoOnlyShowPing.Text = Multilingual.GetWord("settings_ping_only"); + this.rdoOnlyShowPlayers.Text = Multilingual.GetWord("settings_players_only"); + this.rdoCyclePlayersPing.Text = Multilingual.GetWord("settings_cycle_players__ping"); + this.lblOverlayFont.Text = Multilingual.GetWord("settings_custom_overlay_font"); + this.btnSelectFont.Text = Multilingual.GetWord("settings_select_font"); + this.btnSelectFont.Width = TextRenderer.MeasureText(this.btnSelectFont.Text, this.btnSelectFont.Font).Width + 40; + this.btnSelectFont.Left = this.lblOverlayFont.Right + 15; + this.btnResetOverlayFont.Text = Multilingual.GetWord("settings_reset_font"); + this.btnResetOverlayFont.Width = TextRenderer.MeasureText(this.btnResetOverlayFont.Text, this.btnResetOverlayFont.Font).Width + 40; + this.btnResetOverlayFont.Left = this.btnSelectFont.Right + 10; + this.grpOverlayFontExample.Text = Multilingual.GetWord("settings_font_example"); + this.lblOverlayFontExample.Text = Multilingual.GetWord("settings_round_example"); + this.chkChangeHoopsieLegends.Text = Multilingual.GetWord("settings_rename_hoopsie_legends_to_hoopsie_heroes"); + this.chkAutoUpdate.Text = Multilingual.GetWord("settings_auto_update_program"); + this.chkSystemTrayIcon.Text = Multilingual.GetWord("settings_system_tray_icon"); + this.chkNotifyServerConnected.Text = Multilingual.GetWord("settings_notify_server_connected"); + this.chkNotifyPersonalBest.Text = Multilingual.GetWord("settings_notify_personal_best"); + this.chkMuteNotificationSounds.Text = Multilingual.GetWord("settings_mute_notification_sounds"); + this.cboNotificationSounds.Items.Clear(); + this.cboNotificationSounds.Items.AddRange(new object[] { + Multilingual.GetWord("settings_notification_sounds_01"), + Multilingual.GetWord("settings_notification_sounds_02"), + Multilingual.GetWord("settings_notification_sounds_03"), + Multilingual.GetWord("settings_notification_sounds_04"), + }); + this.cboNotificationSounds.SelectedIndex = this.CurrentSettings.NotificationSounds; + // this.cboNotificationSounds.Width = (lang == Language.English || lang == Language.French) ? 172 : lang == Language.Korean ? 115 : lang == Language.Japanese ? 95 : 110; + this.cboNotificationWindowPosition.Items.Clear(); + this.cboNotificationWindowPosition.Items.AddRange(new object[] { + Multilingual.GetWord("settings_notification_window_top_left"), + Multilingual.GetWord("settings_notification_window_top_right"), + Multilingual.GetWord("settings_notification_window_bottom_left"), + Multilingual.GetWord("settings_notification_window_bottom_right"), + }); + this.cboNotificationWindowPosition.SelectedIndex = this.CurrentSettings.NotificationWindowPosition; + this.cboNotificationWindowPosition.Width = lang == Language.English ? 116 : lang == Language.French ? 140 : lang == Language.Spanish ? 140 : lang == Language.Korean ? 108 : lang == Language.Japanese ? 62 : lang == Language.SimplifiedChinese ? 77 : lang == Language.TraditionalChinese ? 77 : 120; + this.cboNotificationWindowPosition.Location = new Point(this.cboNotificationSounds.Location.X + this.cboNotificationSounds.Width + 5, this.cboNotificationWindowPosition.Location.Y); + this.cboNotificationWindowAnimation.Location = new Point(this.cboNotificationWindowPosition.Location.X + this.cboNotificationWindowPosition.Width + 5, this.cboNotificationWindowAnimation.Location.Y); + this.mlPlayNotificationSounds.Location = new Point(this.cboNotificationWindowAnimation.Location.X + this.cboNotificationWindowAnimation.Width + 5, this.mlPlayNotificationSounds.Location.Y); + this.chkPreventOverlayMouseClicks.Text = Multilingual.GetWord("settings_prevent_overlay_mouse_clicks"); + this.lblPreviousWinsNote.Text = Multilingual.GetWord("settings_before_using_tracker"); + this.lblPreviousWins.Text = Multilingual.GetWord("settings_previous_win"); + this.grpLaunchPlatform.Text = Multilingual.GetWord("settings_game_options_platform"); + this.grpLaunchPlatform.Width = lang == Language.Japanese ? 120 : 95; + this.btnGameExeLocationBrowse.Text = Multilingual.GetWord("settings_browse"); + this.chkLaunchGameOnStart.Text = Multilingual.GetWord("settings_launch_fall_guys_on_tracker_launch"); + this.chkIgnoreLevelTypeWhenSorting.Text = Multilingual.GetWord("settings_ignore_level_type_when_sorting"); + this.chkGroupingCreativeRoundLevels.Text = Multilingual.GetWord("settings_grouping_creative_round_levels"); + this.chkRecordEscapeDuringAGame.Text = Multilingual.GetWord("settings_record_escape_during_a_game"); + + this.txtLogPath.WaterMark = Multilingual.GetWord("settings_log_path"); + // this.txtLogPath.Location = new Point(this.lblLogPath.Location.X + this.lblLogPath.Width + 4, 12); + // this.txtLogPath.Size = new Size(630 - this.lblLogPath.Width - 4, 25); + this.txtPreviousWins.Location = new Point(this.lblPreviousWins.Location.X + this.lblPreviousWins.Width + 4, 10); + this.lblPreviousWinsNote.Location = new Point(this.txtPreviousWins.Location.X + this.txtPreviousWins.Width + 4, 12); + this.cboTheme.Location = new Point(this.lblTheme.Location.X + this.lblTheme.Width + 4, this.cboTheme.Location.Y); + this.cboTheme.Width = lang == Language.English ? 90 : lang == Language.French ? 105 : lang == Language.Spanish ? 105 : lang == Language.Korean ? 100 : lang == Language.Japanese ? 100 : 85; + this.txtCycleTimeSeconds.Location = new Point(this.lblCycleTimeSeconds.Location.X + this.lblCycleTimeSeconds.Width + 4, 167); + this.lblCycleTimeSecondsTag.Location = new Point(this.txtCycleTimeSeconds.Location.X + this.txtCycleTimeSeconds.Width + 4, 170); + this.cboLockButtonLocation.Location = new Point(lang == Language.French ? 280 : 203, 450); + this.cboLockButtonLocation.Width = lang == Language.English ? 79 : lang == Language.French ? 81 : lang == Language.Japanese ? 47 : 63; + if (this.LaunchPlatform == 0) { + this.lblGameExeLocation.Location = new Point(this.grpLaunchPlatform.Location.X + this.grpLaunchPlatform.Width + 3, 20); + this.lblGameExeLocation.Text = Multilingual.GetWord("settings_fall_guys_shortcut_location"); + this.txtGameShortcutLocation.Location = new Point(this.grpLaunchPlatform.Location.X + this.grpLaunchPlatform.Width + 8, 46); + this.txtGameShortcutLocation.Size = new Size(567 - this.txtGameShortcutLocation.Location.X, 25); + } else { + this.lblGameExeLocation.Location = new Point(this.grpLaunchPlatform.Location.X + this.grpLaunchPlatform.Width + 3, 20); + this.lblGameExeLocation.Text = Multilingual.GetWord("settings_fall_guys_exe_location"); + this.txtGameExeLocation.Location = new Point(this.grpLaunchPlatform.Location.X + this.grpLaunchPlatform.Width + 8, 46); + this.txtGameExeLocation.Size = new Size(567 - this.txtGameExeLocation.Location.X, 25); + } + this.chkFallalyticsReporting.Text = Multilingual.GetWord("settings_sends_info_about_rounds_played_to_fallalytics"); + this.chkFallalyticsWeeklyCrownLeague.Text = Multilingual.GetWord("settings_join_a_weekly_crown_league"); + this.chkFallalyticsAnonymous.Text = Multilingual.GetWord("settings_sends_anonymously_to_fallalytics"); + // this.lblFallalyticsAPIKey.Text = Multilingual.GetWord("settings_enter_fallalytics_api_key"); + this.txtFallalyticsAPIKey.WaterMark = Multilingual.GetWord("settings_enter_fallalytics_api_key"); + this.lblFallalyticsDesc.Text = Multilingual.GetWord("settings_fallalytics_desc"); + this.linkFallalytics.Text = Multilingual.GetWord("settings_visit_fallalytics"); + + this.chkUseProxy.Text = Multilingual.GetWord("settings_use_a_proxy_server"); + this.lblProxyAddress.Text = Multilingual.GetWord("settings_proxy_address"); + this.lblProxyPort.Text = Multilingual.GetWord("settings_proxy_port"); + this.chkUseProxyLoginRequired.Text = Multilingual.GetWord("settings_enable_proxy_authentication"); + this.lblProxyUsername.Text = Multilingual.GetWord("settings_proxy_user_name"); + this.lblProxyPassword.Text = Multilingual.GetWord("settings_proxy_password"); + this.btnProxyTestConnection.Text = Multilingual.GetWord("settings_test_proxy_connection"); + this.btnProxyTestConnection.Width = TextRenderer.MeasureText(this.btnProxyTestConnection.Text, this.btnProxyTestConnection.Font).Width + 30; + this.mpsProxySpinner.Left = this.btnProxyTestConnection.Right + 10; + this.picProxyTextResult.Left = this.btnProxyTestConnection.Right + 10; + + this.fglink1.Text = Multilingual.GetWord("settings_github"); + this.fglink1.Width = TextRenderer.MeasureText(this.fglink1.Text, this.fglink1.Font).Width; + this.fglink2.Text = $"{Multilingual.GetWord("settings_issue_traker")} && {Multilingual.GetWord("settings_translation")}"; + this.fglink2.Width = TextRenderer.MeasureText(this.fglink2.Text, this.fglink2.Font).Width + (lang == Language.French ? 13 : lang == Language.Korean ? 17 : 0); + this.btnCheckUpdates.Text = Multilingual.GetWord("main_update"); + this.btnCheckUpdates.Width = TextRenderer.MeasureText(this.btnCheckUpdates.Text, this.btnCheckUpdates.Font).Width + 30; + this.lblthirdpartyLicences.Font = Overlay.GetMainFont(18); +#if AllowUpdate + this.lblVersion.Text = $"{Multilingual.GetWord("main_fall_guys_stats")} v{Assembly.GetExecutingAssembly().GetName().Version.ToString(3)}"; +#else + this.lblVersion.Text = $"{Multilingual.GetWord("main_fall_guys_stats")} v{Assembly.GetExecutingAssembly().GetName().Version.ToString(3)} ({Multilingual.GetWord("main_manual_update_version")})"; + this.chkAutoUpdate.Visible = false; +#endif + Stats.CurrentLanguage = tempLanguage; + this.ResumeLayout(); + } + + private void ChangeTab(object sender, EventArgs e) { + if (!(sender is MetroTile tile) || string.Equals(tile.Name, this.PrevTabName)) { + return; + } + this.PrevTabName = tile.Name; + this.BeginInvoke((MethodInvoker)delegate { + this.panelProgram.Location = new Point(211, 75); + this.panelDisplay.Location = new Point(211, 75); + this.panelOverlay.Location = new Point(211, 75); + this.panelFallGuys.Location = new Point(211, 75); + this.panelAbout.Location = new Point(211, 75); + this.panelFallalytics.Location = new Point(211, 75); + this.panelProxy.Location = new Point(211, 75); + this.panelProgram.Visible = false; + this.panelDisplay.Visible = false; + this.panelOverlay.Visible = false; + this.panelFallGuys.Visible = false; + this.panelAbout.Visible = false; + this.panelFallalytics.Visible = false; + this.panelProxy.Visible = false; + this.tileProgram.Style = MetroColorStyle.Silver; + this.tileDisplay.Style = MetroColorStyle.Silver; + this.tileOverlay.Style = MetroColorStyle.Silver; + this.tileFallGuys.Style = MetroColorStyle.Silver; + this.tileAbout.Style = MetroColorStyle.Silver; + this.tileFallalytics.Style = MetroColorStyle.Silver; + this.tileProxy.Style = MetroColorStyle.Silver; + if (sender.Equals(this.tileProgram)) { + this.tileProgram.Style = MetroColorStyle.Teal; + this.panelProgram.Visible = true; + } else if (sender.Equals(this.tileDisplay)) { + this.tileDisplay.Style = MetroColorStyle.Teal; + this.panelDisplay.Visible = true; + } else if (sender.Equals(this.tileOverlay)) { + this.tileOverlay.Style = MetroColorStyle.Teal; + this.panelOverlay.Visible = true; + } else if (sender.Equals(this.tileFallGuys)) { + this.tileFallGuys.Style = MetroColorStyle.Teal; + this.panelFallGuys.Visible = true; + } else if (sender.Equals(this.tileAbout)) { + this.tileAbout.Style = MetroColorStyle.Teal; +#if AllowUpdate + this.lblupdateNote.Text = Multilingual.GetWord("settings_checking_for_updates"); + using (ZipWebClient web = new ZipWebClient()) { + string assemblyInfo = web.DownloadString(@"https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/AssemblyInfo.cs"); + + int index = assemblyInfo.IndexOf("AssemblyVersion("); + if (index > 0) { + int indexEnd = assemblyInfo.IndexOf("\")", index); + Version currentVersion = Assembly.GetEntryAssembly().GetName().Version; + Version newVersion = new Version(assemblyInfo.Substring(index + 17, indexEnd - index - 17)); + if (newVersion > currentVersion) { + this.btnCheckUpdates.Visible = true; + this.lblupdateNote.Text = $"{Multilingual.GetWord("settings_new_update_prefix", this.DisplayLang)} v{newVersion.ToString(2)} {Multilingual.GetWord("settings_new_update_suffix", this.DisplayLang)}"; + this.lblupdateNote.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.LimeGreen : Color.LightGreen; + this.lblupdateNote.Location = new Point(this.btnCheckUpdates.Location.X + this.btnCheckUpdates.Width + 8, this.btnCheckUpdates.Location.Y + 4); + this.StatsForm.ChangeStateForAvailableNewVersion(newVersion.ToString(2)); + } else { + this.lblupdateNote.Text = $"{Multilingual.GetWord("message_update_latest_version", this.DisplayLang)}{Environment.NewLine}{Environment.NewLine}{Multilingual.GetWord("main_update_prefix_tooltip", this.DisplayLang).Trim()}{Environment.NewLine}{Multilingual.GetWord("main_update_suffix_tooltip", this.DisplayLang).Trim()}"; + this.lblupdateNote.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.WhiteSmoke; + } + } else { + this.lblupdateNote.Text = Multilingual.GetWord("message_update_not_determine_version", this.DisplayLang); + this.lblupdateNote.ForeColor = Color.Crimson; + } + } +#else + this.lblupdateNote.Text = $"{Multilingual.GetWord("main_update_prefix_tooltip", this.DisplayLang).Trim()}{Environment.NewLine}{Multilingual.GetWord("main_update_suffix_tooltip", this.DisplayLang).Trim()}"; + this.lblupdateNote.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.WhiteSmoke; +#endif + this.panelAbout.Visible = true; + } else if (sender.Equals(this.tileFallalytics)) { + this.tileFallalytics.Style = MetroColorStyle.Teal; + this.panelFallalytics.Visible = true; + } else if (sender.Equals(this.tileProxy)) { + this.tileProxy.Style = MetroColorStyle.Teal; + this.panelProxy.Visible = true; + } + this.Refresh(); + }); + } + + private void link_Click(object sender, EventArgs e) { + if (sender.Equals(this.fglink1)) { + this.OpenLink(@"https://github.com/ShootMe/FallGuysStats"); + } + if (sender.Equals(this.fglink2)) { + this.OpenLink(@"https://github.com/ShootMe/FallGuysStats/issues"); + } + if (sender.Equals(this.lbltpl0)) { + this.OpenLink(@"https://github.com/mbdavid/LiteDB/blob/master/LICENSE"); + } + if (sender.Equals(this.lbltpl1)) { + this.OpenLink(@"https://github.com/Fody/Costura/blob/develop/LICENSE"); + } + if (sender.Equals(this.lbltpl2)) { + this.OpenLink(@"https://github.com/Fody/Home/blob/master/license.txt"); + } + if (sender.Equals(this.lbltpl3)) { + this.OpenLink(@"https://github.com/dennismagno/metroframework-modern-ui/blob/master/LICENSE.md"); + } + if (sender.Equals(this.lbltpl4)) { + this.OpenLink(@"https://github.com/ScottPlot/ScottPlot/blob/main/LICENSE"); + } + if (sender.Equals(this.linkFallalytics)) { + this.OpenLink(@"https://fallalytics.com/"); + } + if (sender.Equals(this.linkIPinfoToken)) { + this.OpenLink(@"https://ipinfo.io/missingauth"); + } + } + + private void OpenLink(string link) { + try { + Process.Start(link); + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.Message, $"{Multilingual.GetWord("message_program_error_caption")}", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void btnCheckUpdates_Click(object sender, EventArgs e) { +#if AllowUpdate + using (ZipWebClient web = new ZipWebClient()) { + string assemblyInfo = web.DownloadString(@"https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/AssemblyInfo.cs"); + int index = assemblyInfo.IndexOf("AssemblyVersion("); + if (index > 0) { + int indexEnd = assemblyInfo.IndexOf("\")", index); + Version currentVersion = Assembly.GetEntryAssembly().GetName().Version; + Version newVersion = new Version(assemblyInfo.Substring(index + 17, indexEnd - index - 17)); + if (newVersion > currentVersion) { + if (MetroMessageBox.Show(this, + $"{Multilingual.GetWord("message_update_question_prefix")} [ v{newVersion.ToString(2)} ] {Multilingual.GetWord("message_update_question_suffix")}", + $"{Multilingual.GetWord("message_update_question_caption")}", + MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + this.Hide(); + Stats.IsExitingForUpdate = true; + this.StatsForm.Stats_ExitProgram(this, null); + this.StatsForm.UpdateProgram(web); + } + } else { + MetroMessageBox.Show(this, + $"{Multilingual.GetWord("message_update_latest_version")}" + + $"{Environment.NewLine}{Environment.NewLine}{Environment.NewLine}{Environment.NewLine}" + + $"{Multilingual.GetWord("main_update_prefix_tooltip").Trim()}{Environment.NewLine}{Multilingual.GetWord("main_update_suffix_tooltip").Trim()}", + $"{Multilingual.GetWord("message_update_question_caption")}", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } else { + MetroMessageBox.Show(this, $"{Multilingual.GetWord("message_update_not_determine_version")}", $"{Multilingual.GetWord("message_update_error_caption")}", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } +#endif + } + } +} diff --git a/Views/Settings.resx b/Views/Settings.resx new file mode 100644 index 000000000..43ab08480 --- /dev/null +++ b/Views/Settings.resx @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 159, 17 + + + FallGuysStats is licensed under the MIT License: +The MIT License (MIT) + +Copyright (c) 2023 DevilSquirrel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + + AAABAAEAQEAAAAEAIAB7GgAAFgAAAIlQTkcNChoKAAAADUlIRFIAAABAAAAAQAgGAAAAqmlx3gAAGkJJ + REFUeJy1W3mwleV5/33L2c89d+deWS6LIJFguIhUXKIGNDFoXNrGJGpTs9jkj6SSzjSTJtNpO9NpZzJx + grVOm2lTbTpZihq1WdRoopIUFxREBQOiIiAXLhfucvZv7e95v+8792z3QiJ9mY9zzre9z/78nud9r4nW + sYjHHTyu6Eoaw3+2Oo7emI1UrguVcgm6psH3fViVErr9Xnzi5KfRk+/g7T58XYPbmQYMHVrVhZ85Af2S + +6B1jPGy1jiLzyPD+9bzM+sFv5vGpKfj4VISRT0OQ4upeyrOODzPhrxtHGfj36b+HSPOApiaj2xMR9nx + kIubmLIdZKc8bHiigI5J72UXeBpw7rrv4YsO1M9h1v/Qdf3bnudtin5r6pyBWCqGSqmIRDrD3yaZLwc8 + cDKtYtee1zwfms2p+EkqAYvXfK+NjE93+HC9KmVnwPEcmEaCr3VrV12es7zg/ZQ9krqOeMJAgcyb8l33 + I1kPU2/DZHfTbTds33zfw2u/0iIATdN2kvnhxvlJgF2FU9HIk48qhQBNV+dnGnqxGgqDMtCc98C8eouI + AFV7it802A7nR3uBisyLjguXtNnygxxbrqesteGNGjZ95sbtV9z70NrV8jsSwGbeOEwLUA9ED6n/ybBu + GjDNmAgJrutSIGWe5nnDaCW5NqHWcu29DV/9ax60eiVsYdzlnDFaLMmFzd+a1uhaojv5zUvDn7nxxc33 + PnTBJhHAIgQ+j2QyCcuy4DhOOCUl6zqwKxa/lxsZJfNmPKFEOn1SC1ydn5rrt/XrBpY0Q82iNWg1pLLh + YY0mbgQiUAKOzD5gWGQtp0uOV7sm5+Jevch8GKRZlGhb4kb+Hbfd8OxmEUDN58vlcovJRC9rZkYEYzml + BnfwSbuXiMHnIUEQqfi0HVD8viFWxM9YAlp5CkhkeU70lhfygnm0JDVaCiYUJswsGdHo0zG6QIWartRI + Ebcs0exn8cgGJhzba9JXTFnA5TUGmv2Fh2iZ9NYCX8Oou10ygE/b0+RcmRYTj6vfNSeRYBhqT4unqX1O + zQAngdPXMyJRXrfkYdS06IuWKTQat+2UlfYMI64C42zBVehOxRi89VbJNLLoXy4CGG65K3qRrimzcSn5 + Uw3l+8KMOKWEZB6a1RgENdcKLKFSUAxrqCqB+T7J8G3FaLOlCbO6WIUhr3f5mGQdj9komKZBpRFbPCxJ + h0JDW2rlDnVl2Gx7PbqNDFnM/V6iUdpGLB6kI7v+ZqgUKIcnlmDy1XHeE0uhISCK5siEJozEJWboinEV + O4Qjzw/VRJ/Xk3BcZiFKyfMsXnKUUspTCYwd1jFWpVSINRJ9QyISRv9pOh2+QzBBe++YpqetALQQ7AT/ + 2kjY84KILMEnZgbEyuSCA/ic7ohwPHjELvBs1Ek8GGReBUDDJEO8SXdxbBT47VvA0KCNgX7ylXLIEhnW + aP5uKQgPnGffC0k8832eO8R3uIdQzX0d5tW3wtnwh+QmibaRVwsMpV2saCuAzq4uVKsWEoaDWFyicqML + SAD0AweFR5Dk00/VbwlITJO6G6Yfpe3IDUIqRKQEMERRFJJYQlkAA/7jwQQeeBxYOmSipxNYNmRg/uI4 + jvQx3Xa7SGV8HHw9ice+XcXNMQ0fX8bMkEzhkXcP4Z7vfxMTFKZ+1ceVAUUjaepMiRqzG92Oc1fKdqMi + 2gnAjMWUNpPJBHpynURWZN6utBWskqhYi5iu+LucIAyG25jC/JjA47jSPEMxrcRB/QsnCzFsfcnHVz7b + gY9c6uHYmIGjYxrePVHBW7tpB3S5bM7Atp+WcQnf/bX3ecgKyCLkHVroY6xYxneefADGhVfCy/UoOoJA + aCLbwYxDQQtpOoVRByRnEACDnph/qVRGiSnK4YQac61oVl1PJJUirWpFmbuCvqJ5pjyBv5qYv9Y0iwAm + IxYIiNHZp0BVDJBBee3eb+LEuI11q3zM6XMwp9fHecurmGLk96Z8jFs6KlNplE/oWJNj6aC5gYyrZaTJ + 6qqcjvTYUZQKk7A7e9U8hiBB4pkq07FOGg0GZ10s1m3UZIsAJOqbEsAYnGzbglulucemg4tYhwqAfgB0 + 9BKjtC0BygtqAbEETu4lY8rsBMwKs76RDF/AQOlF0dNXJDz1vI/Bfh3zBuhI4j6MDxqDn3wXv4/FKcCO + ChJdBt55m5CcETMe4sKiq+Eos6JjxsV8a4YlQbBKZl2+IyZxShCj1gyw2gigVCqhWCwGykkI9OWT5vRD + rm01PxLcW1cUiXB0CkIFQRmsJ8QMg9w97YPyrVCM4dcverj0fGoxPhHGDIk7wb0+BeZS4MLfORcY+NkO + HxeO6risW1NWsH1Kx0+OU9Nr18Lt6muIdI5kMaK+ctEPXtlmmIL/Reu2bYe0+yoOOPZ7LGT8emn7dcCl + TgM0yTcPmzjwbhlf/WyqznWiezVEuUhed/4GF+/ui+NrT1kYpkExFuL1io+3Fq+DdsPn4MRTbQGS1AAa + /d91puc2Y8FvkxUgMpmMSn1SB8iIxyJTciI6VBnsuU3ARqqOJFXjBDnGZwBUsUBQIV/uM0jNIPjwBRqe + 20WfTut4/1IbDSE8HAZBUJwuaXD+eI+DG75k49XVSex/2UHZ7sThebfAXXcD7P65inmxKoPzO3WWYBhB + BnJD4Utmk3jgMDYoFxDtixAiAYgbKAUxYBkUhknAEk9nVDkcZ+qx+GmLWQsPrtdgdp4IRM1HYgy9LVLT + wv8c18S2nQ7WvF9Hf48TpZWGG8VCdZAGPaEaIfF0ARd82MeaDTrG/R78a/F6TDrzkTZ8xMWSSU+Sn3kG + wAQZ18MawNf8SOaIM6ZUQpc1xdzjxO3VarWNinzVEJH0USkUkMx2BG8ImfIk+te7CifXq3yxnBPI6wdM + aQGK4VcdVc9kAUMQTJR2bNzAq/td3P6nKVQtCpmR2jBD4CTCcIKGCKMAma+EAM1TlzSVCcqqPI/SXkxq + BVplnoE7ZoZxpLkR5Qt5EhgNFV9Ml5LK5/Ntq0Cf0VZKY9f2VRUnmheteq7bcm+kWS0fFk1k1mfKqvgx + vHMygZePmdh1xMXb4xpO0sBK5LPsWBjJe/ju94Gf/MJE/4CO5YsTWH2uifPoEule4dQiwXbIR7M1Tf+W + JkhUGYp5S6co4UXlc6NlWRW3ZphmPeNaeHa6IRI8KExr9EHVECExkgalGaI57UoNTZXFR/w8npx6A4/9 + vII3mMvTtKKzO7NY1RnD/ME4ehImUqoU1ki4jlESdeBwFa/stvCT+wm8sj7OWWWg66IUzlphI5W1Vfnb + mMV8VT4I2SIAUyxA3AZak0JDBFrjb9prG9JgKpVS8SDKCCqwMYc7FbelJpCCKGFmWhoiI1oRD5R248HS + K3AzeXxwTgafX96DFVkPvbAQJ7iBMxkWPV7olDxSJGUgiTLfOep14+VxH7/YncfTvynAXajjgo1prFhH + v04Tc4TBUqdVZhggJ2wNtjRE3LoMID3CJnkZdAslLMut3dQgAIkDbp15h2EDOgGG6zRmALtSgUUfjCKa + pXv4hb0f90xtQzl7Ep9Y04FrBroxDyUYlRF4k5YCNm6kkHajkEecKh3ifAuzGWw8P4c3rU786PWTuH/z + FF5h8br+ljTmnyO1iavkVyRddlP2iDKB1nRWNUT0RgIaBOC28W1ph6czGvInx1quSRCUtttJvYK7C8/i + EXsnrntfCp9Z1Ikhdwp+vkgiXdTeeqo2obJUlr4Ctnjo+UksZ4D+xpCG63Ia/nmvgwf/Frjo1iTWXkUh + GF67zKlGH7ORGWsN7M0wYdZ+gMoAPMr58RY61Sft6QhNfvPEr7EnsR9/T6B+VaYEszAGz5u5Y3Pag9R6 + rDlEaavpbZvPNfDDEQPf/k4V48diWPWJeBh5a2kmeIzHeMXCWaT9VDKfvSFCAoqTJ4l1AvOXgGOrVBYE + FYva/avxJ1FNn8Tdw2ms0sfgFyx4Z7ohjCBkSBH0uQUa5qdj+MaPqzguRvAxi5F8Mqj3Eym4ZlDNVvnA + pGWf8r2zNkSCIBDk8YqnY+9JHftO0FWrQUQtuUUsSVZx98okVvrUut2ad1vefQqCZutvyjU9ncPG3gwB + zCT+/NERTL32dwx2ntS6sAYXwVh3JdzzLiQsTtRN2gSw6kZbAUg2EK6TMZ91eJr1+jiePKCxqPBwZZ+B + lYOGQuvv8PfGQR0r9CkCllObvBQvlhdUcFVpILlBV0kClvRdUoKsdYG/M4vBK+WVW244y8Q/EkfsHNuO + szvIPAPNzt0v4NGXHsPRKz4J/Y9uR3eqm4CopBoiDgOwbbe+t205LEMm6ehIs/QEfvmOhg4itbvOMzCc + sQlMg0rNk3LXt8n8LJ03ZT0aTjAejfFlRU7pJtIw01loTKVKMITgbqkAg1Vohmbexyq0nwpMaG2WQohD + 3Inj6r3Xdmk8JO+7aqLqWTpunCji67+6F3vihM83fhlJ6VgJ7CWtuu6jWU8tAtANPZyH+Z+ReN94DMUC + cOdKHWszVrgCIyPo/7XirDpaeRwrazhcYZrsHkTHmgswuHItkguWQe8eUC0tedorl+GdHEH5nb2YfG07 + 3n59B0Ymj2MBL/cn/JaCKvTMsFZEjR6KFuu7Pfz14hi+8Kv7oa38EOldqnBDFCebR4sAaiCDRUiZkfS1 + Q2Vcztp7ddZRzLcQ0ua7DGInvFnUMNE5F70br0fPZdchvmAp1ZpWy2oCrQWySizx1HLcSqTWrEf3R/8E + 1oE9GHvqYezb+jO633EsygjObwPV2whd6L+ky8Pqg8exY/tWuP2Lg5iG9itVZmTyEQYQwFOKQI9D+Ev0 + tLwPyuyjRSlbOjJaqzAiARfo4/uKfO/w5Vj6yS8hsXyN1KCqzE4kkvRLM4DSmjbdgRbL4rxWJotYZw8S + S1eha92H8e4P78befc9jWcarzRnNFX0KTQ7dLKEHFpGmGy2iCz3/7kHYtFqrorWszsuKmuhT1QIS9KQE + 9v0gusdIaFQai+mUXFWYKXMZs02VkubEW0GTH2p+X5nMXvVJzLtlE/TeQTKdQIbltFSemtZqh9E5UUac + 96o0RprMCz+M5LwlOHjfN/HGs/+DZWlHNUHqRR+59OGqiYGEiw4i0jKFUVS9zNB5tKAB4oRBUNCgVINW + 1Q0aIjKxEFmpVCKK1CFLS51pDS+zmDlm65gT87C7GMP7s9OLp6jTvAhpf9lE/MpPYf5tX4XR2YcsIW2S + vt6O8ZmGEC7PxJnKSvEVWPiFv8E7PH/wuYexOO21LFUKPhG49EZZZ5C28HpRx+tE6cbQ2fBNU5XO0w/4 + fK9ZK4jChoiDdDqtBKB2f4S9gUTMxAVL+vDcnlE8ftJUHdlDlNG6rvYp70jZhz28HkuoebOrH525HC0/ + ftqMNw+JQ9lsFsbCZVj42a/hzbERnHhrG/qTWmP84Y9uk7XIWEyVNz8ecbE/twiD6z4E/VVNwd+oQySK + MKn9atQQSSSTPGGiGHaB6odUTwtSZRydY+KeAxYu7kvg0k5fpafmzFeiURzvWoihT30ZZv/c98x8/UiR + Rm3pSsy9eROO3LkfOXeU1tloUV3ELCMEF9sOgWV4GvYtn0Z57iJorxVbhGVVHQIpQ3WoTdF2tdJ+8VPW + CAymlg/OAx6vGnh0pIKbB4Wp1gB4lC7Ssf7jSC1fjawEsjPEfDREUXPWbcDEJdfh+BPfxdxU4/xJVmX9 + rH/vHEnAu+lLwJV/TKBlqEXUZpexicbsMHo0NESCXSCo9QNKpSq/J9CVBBZ16bDyOuYn3GhJoOb7FQac + qe4hLLjsWma5LMFH8owyj3CuFLPDwEduwuFnf4o59lGYDVbgYyUzRbYji/yay+AkCeImWSoTnkegWAKh + FyHQ6Fz9JIlEvBb9ZThMjXa1DIeR9XjBwLyEjlwb8JyXhd7zLkaKeV7B6DO+PSYYwm/vuefjyPILUNz5 + U3Qm6lIiv8yjBQw4BUwcPYTqwuWouk3lsgQ9urVVV/Y3sBOlwmioVR1ZvGYSnaCXLOMENLDa0l9055SW + QAcLkEQ2p1Lo/+eId/Wic9UlmHrpUXSEDVLVheZH1mSlaFjYPXKwgb5oOJKmnMb03SCA1saopvYCEdeg + bFG6WcHdfsPap6A4K9WFzqHlzOFn1u/bDWE0t/wDGElkOfdkcCZ0yQTjwHwGQ4weQUwC3GkY4qz9gEQy + gUQqQT8q0Wx89CXl9kYJKhPL5BDvmaNiSLvhqfVEL1hzPI0h94oyjDa70GSkB4egpTpYGU6iPgwwuxOg + aTBYLGlElSmiz5iqbdp3sYNnZhkSDC3mN5OSlX5jd0xXGvfqsKjakseAEyNw0bXWdaCjR4/i/vvvx+jo + KNavX4/LL79c5feZxttvH8CDDzyg1ic3XrMRa9eubSU628E5k/CKdSdDNxggRogXJlBhIVe0jRkr1VkF + oCSv6WopzPMNhfAEhnca0xmgYf+dNE51vWURSLS4ZcsWPPLIIwrQpFNpLFy4EEuWLGlLjM0A/L3v/Se2 + bt2Knp4edOQ6MDQ0hIGBgcYbCeQNtWETtXgb0OVjkIE6Vi6gZBHMaSmlMEPWAV3/9HeIJFMBDNWrU8rE + yk5gXl1m654bVWVaZWKK1sVUWV4/cOBACD4s7Ni5E5fRAmYSQIll8aFDh9V3sYAdO3bg6quvbhGAWylB + dypBG6zuvHzvNV0kK1OYtHid1iA7RFIpAxXi/qAdPssOEfHRnp5e5YP5Qh49SfFpi2mO2Jx4Oqm3lpQi + ILM0AWfyRAtDauMYTVCgtnxWKAT/FHuHZW7bdqkxgnl/vO2KlUVIbJTzrdsX+SMj+6aqBej5Cfips9Sy + XrVM2lMm6wsThbzVYAktbfFo1ceQPTe0e9knODbuMP9TknprahFsHS9Pwjr4BnD+pS3XfCUAG1HRNeuQ + +CJbcR0nWIVKtA9e1QN7kKzmWxZeVSYgwzm7iNixQ0jOPU+9R6FB2SHaZlNlSxos0PTi8QDuyhaTw1MG + 9o662NgtVuC0bGKVkXErKOx+Ht61t6pFlHoByN4+cQXZC6iEO0sAlCpQwJdF/432LOhNTHp2FZVX/hdp + j1ZltOY56SkuMat4+ZcPAX3LqYA+ebMyf4HAzcOMmhJRH79CP5RDhkX7fnyfjnUdOq4f0KYzQLPUOenE + K8+gfORtZIbOqV0TULRixQo89dTTyqfPWbYMCxYsmFEAskS/fPk5eOmlHYoeuX9gcLDhnsrBvSxwfqPW + AJu1KT+lXXvr/Bje3b8Vu+46ir2DG7G4dx2ydAeDgE0Ld0zLh7il2vwivQApiiIhiKF2M3Ku7DBx7Rwd + 1/R7al+P47d4nRqipczR/Tjx9CPIfPovG67dfPMtyHXkcGRkBFdu2DCrAETrX/ziFzE4eBaKhQI+uvGj + KhvUGGT8mPrlFiTGDs2ItiVjvS9l4+5zTfz3kX34+ev7sdXYglzvKgz2rUZPbhlymUFihAzfZ8BMyyKi + Y6GPVj+QMLE0rWMlEd/qTg3npDx0G7aaeNQNNhtEfdrmtlTGdzDx2H0ofPAaZBevqBHU2ZnDLbfeMiPT + zaO/vx+33/75ttfKe3fAfvIHah3A0yIZTOdC1SANU/ZQzMJfLDJw01zZRzSCZ08exp59T2CXRwSZHEQ8 + NZdArw/mv3wgxfzuoY/po4fu28FUl0Sw6UD1AH21vVlpP9rcjnDPTs0W5BRNKn14D8Z+8C0kN22GSXR4 + Joc7dQL5H32Lwe3tGg7xwkUbP9yEEdAZkCP06ow/QzEXC/s0XNdnYIIx7UhlAm9VJnGwtAejBbrARzpL + 0zv0w66ni0ZDZ0xG2dWRUouRbdBEKAyJqN4zW3CClVj/TXdAj5+ZstivlpB/4J/g/uaR2v6x2jV/+tNT + dYpsjpDNlR5k/6pCqgKGyEUvH+7LAKsyUlZKgidOkL8xaBNMG4ZsNyvykNUbEU5zMqu3hHilCGfLnZhk + Jun82O3QU9n3xnxpCsWH7kH5gbugE9zMVmmHG9Yx5WgYlNI3QolN90wv/MtawmlUTLIYWnB05BQU1sK1 + thmG7NBgMVL5r38AJsfQcf0XYM5ZgN+5RyBt8pE3UXzwbhR/fh+h4dQpX+EGG+5Rcny1BJc4BezwyIvp + 1wW2GfiBxRvznvzJiqt2YpzKYtRDZL5y/2bgzV1IbbwN8Q9cBr2zD2hTMDVSRTA2fgz2S0+i+LN7UX11 + G03QiqreWYf4vdxToAtY9X/3NMMQXar+sK9NC7f+gXBnDcZpUkVvOsigKRM0f48e9onZy88+CmvfDiRW + XoTkmg0wlg5D718APZ1V2+XVcIkUqWHv2EE4v30RlRefQGXPdvhTJ6YJmZEL1CpBJ4xFkzSDCdLcbbbS + 10CnWhiBtotRdFWzpITZYN+NhqOWhkqIgJwmMNRcjLQSSGx/fAT2Mw+h/MITMHrPQnzOXBhdcwAVH2SS + PJyT1ProYfXpyZ/nRNvrZnxxHWMh47YfKKxElx2l0eQMPdg/qAWNHL/1dbtMMvi0oWurgrSCcHuer5a/ + rPDFstJihW0gOe/VgshpjrBp5xbJKA/r4L5gI7XsKI3ST61vX/fM7Lw3CMGvWWfwJ3NCc4kMiTBEANJG + j4VpU6FfX2GGp81xz9sMR7+jHuPV7wiTak/W3ZyaBQTX9dMirVUQ0/wFIVuruxYx007xft1t7VxPrVmG + +zPkM9oKIGRX5PCCvkXD0L3N5kXP4cC2tbiLir1jJro91RidFoBCW3VYPNJa8+9TjZn+3K3ldN37anm/ + 6X7Hn8YHXlPVHgmtqXS+62LyrqLQxdu9Tc/+gX4Fb1jVjiBd86cl7Qe7PIy6YN5SlPwexjHrOI33WSEG + ECIFDNVbaBvr2XXR9uBvpGvl8EUveMPb1uqb0cYS0oYXrrFPB5szv/Tx3oYdpkBhUvw9HeD21kHNR8zL + aOgHKEtYh82+q28iv8oiRJsZXXZooQZ5rdpkZ1rVv9+IMpb6zs8ca5qk/H1QjUJ/F3z9ac1wNovZ1z/7 + f1mjsGWG6Wp/AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Views/SplashForm.Designer.cs b/Views/SplashForm.Designer.cs new file mode 100644 index 000000000..5d7bda259 --- /dev/null +++ b/Views/SplashForm.Designer.cs @@ -0,0 +1,47 @@ +namespace FallGuysStats { + partial class SplashForm { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SplashForm)); + this.SuspendLayout(); + // + // SplashForm + // + this.ClientSize = new System.Drawing.Size(399, 224); + this.ControlBox = false; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SplashForm"; + this.ShowIcon = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + + } +} \ No newline at end of file diff --git a/Views/SplashForm.cs b/Views/SplashForm.cs new file mode 100644 index 000000000..5fff63d4c --- /dev/null +++ b/Views/SplashForm.cs @@ -0,0 +1,29 @@ +using System.Drawing; +using System.Windows.Forms; + +namespace FallGuysStats { + public partial class SplashForm : Form { + private PictureBox pBox; + + public SplashForm() { + InitializeComponent(); + this.FormBorderStyle = FormBorderStyle.None; + this.StartPosition = FormStartPosition.Manual; + this.ShowInTaskbar = false; + + Image splashImage = Properties.Resources.splash_image; + int factor = 5; + Size splashSize = new Size(splashImage.Width / factor, splashImage.Height / factor); + + pBox = new PictureBox { + Image = splashImage, + SizeMode = PictureBoxSizeMode.Zoom, + Location = new Point(0, 0), + Size = splashSize + }; + + this.ClientSize = splashSize; + this.Controls.Add(pBox); + } + } +} \ No newline at end of file diff --git a/Views/SplashForm.resx b/Views/SplashForm.resx new file mode 100644 index 000000000..d98d3484a --- /dev/null +++ b/Views/SplashForm.resx @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAB7GgAAFgAAAIlQTkcNChoKAAAADUlIRFIAAABAAAAAQAgGAAAAqmlx3gAAGkJJ + REFUeJy1W3mwleV5/33L2c89d+deWS6LIJFguIhUXKIGNDFoXNrGJGpTs9jkj6SSzjSTJtNpO9NpZzJx + grVOm2lTbTpZihq1WdRoopIUFxREBQOiIiAXLhfucvZv7e95v+8792z3QiJ9mY9zzre9z/78nud9r4nW + sYjHHTyu6Eoaw3+2Oo7emI1UrguVcgm6psH3fViVErr9Xnzi5KfRk+/g7T58XYPbmQYMHVrVhZ85Af2S + +6B1jPGy1jiLzyPD+9bzM+sFv5vGpKfj4VISRT0OQ4upeyrOODzPhrxtHGfj36b+HSPOApiaj2xMR9nx + kIubmLIdZKc8bHiigI5J72UXeBpw7rrv4YsO1M9h1v/Qdf3bnudtin5r6pyBWCqGSqmIRDrD3yaZLwc8 + cDKtYtee1zwfms2p+EkqAYvXfK+NjE93+HC9KmVnwPEcmEaCr3VrV12es7zg/ZQ9krqOeMJAgcyb8l33 + I1kPU2/DZHfTbTds33zfw2u/0iIATdN2kvnhxvlJgF2FU9HIk48qhQBNV+dnGnqxGgqDMtCc98C8eouI + AFV7it802A7nR3uBisyLjguXtNnygxxbrqesteGNGjZ95sbtV9z70NrV8jsSwGbeOEwLUA9ED6n/ybBu + GjDNmAgJrutSIGWe5nnDaCW5NqHWcu29DV/9ax60eiVsYdzlnDFaLMmFzd+a1uhaojv5zUvDn7nxxc33 + PnTBJhHAIgQ+j2QyCcuy4DhOOCUl6zqwKxa/lxsZJfNmPKFEOn1SC1ydn5rrt/XrBpY0Q82iNWg1pLLh + YY0mbgQiUAKOzD5gWGQtp0uOV7sm5+Jevch8GKRZlGhb4kb+Hbfd8OxmEUDN58vlcovJRC9rZkYEYzml + BnfwSbuXiMHnIUEQqfi0HVD8viFWxM9YAlp5CkhkeU70lhfygnm0JDVaCiYUJswsGdHo0zG6QIWartRI + Ebcs0exn8cgGJhzba9JXTFnA5TUGmv2Fh2iZ9NYCX8Oou10ygE/b0+RcmRYTj6vfNSeRYBhqT4unqX1O + zQAngdPXMyJRXrfkYdS06IuWKTQat+2UlfYMI64C42zBVehOxRi89VbJNLLoXy4CGG65K3qRrimzcSn5 + Uw3l+8KMOKWEZB6a1RgENdcKLKFSUAxrqCqB+T7J8G3FaLOlCbO6WIUhr3f5mGQdj9komKZBpRFbPCxJ + h0JDW2rlDnVl2Gx7PbqNDFnM/V6iUdpGLB6kI7v+ZqgUKIcnlmDy1XHeE0uhISCK5siEJozEJWboinEV + O4Qjzw/VRJ/Xk3BcZiFKyfMsXnKUUspTCYwd1jFWpVSINRJ9QyISRv9pOh2+QzBBe++YpqetALQQ7AT/ + 2kjY84KILMEnZgbEyuSCA/ic7ohwPHjELvBs1Ek8GGReBUDDJEO8SXdxbBT47VvA0KCNgX7ylXLIEhnW + aP5uKQgPnGffC0k8832eO8R3uIdQzX0d5tW3wtnwh+QmibaRVwsMpV2saCuAzq4uVKsWEoaDWFyicqML + SAD0AweFR5Dk00/VbwlITJO6G6Yfpe3IDUIqRKQEMERRFJJYQlkAA/7jwQQeeBxYOmSipxNYNmRg/uI4 + jvQx3Xa7SGV8HHw9ice+XcXNMQ0fX8bMkEzhkXcP4Z7vfxMTFKZ+1ceVAUUjaepMiRqzG92Oc1fKdqMi + 2gnAjMWUNpPJBHpynURWZN6utBWskqhYi5iu+LucIAyG25jC/JjA47jSPEMxrcRB/QsnCzFsfcnHVz7b + gY9c6uHYmIGjYxrePVHBW7tpB3S5bM7Atp+WcQnf/bX3ecgKyCLkHVroY6xYxneefADGhVfCy/UoOoJA + aCLbwYxDQQtpOoVRByRnEACDnph/qVRGiSnK4YQac61oVl1PJJUirWpFmbuCvqJ5pjyBv5qYv9Y0iwAm + IxYIiNHZp0BVDJBBee3eb+LEuI11q3zM6XMwp9fHecurmGLk96Z8jFs6KlNplE/oWJNj6aC5gYyrZaTJ + 6qqcjvTYUZQKk7A7e9U8hiBB4pkq07FOGg0GZ10s1m3UZIsAJOqbEsAYnGzbglulucemg4tYhwqAfgB0 + 9BKjtC0BygtqAbEETu4lY8rsBMwKs76RDF/AQOlF0dNXJDz1vI/Bfh3zBuhI4j6MDxqDn3wXv4/FKcCO + ChJdBt55m5CcETMe4sKiq+Eos6JjxsV8a4YlQbBKZl2+IyZxShCj1gyw2gigVCqhWCwGykkI9OWT5vRD + rm01PxLcW1cUiXB0CkIFQRmsJ8QMg9w97YPyrVCM4dcverj0fGoxPhHGDIk7wb0+BeZS4MLfORcY+NkO + HxeO6risW1NWsH1Kx0+OU9Nr18Lt6muIdI5kMaK+ctEPXtlmmIL/Reu2bYe0+yoOOPZ7LGT8emn7dcCl + TgM0yTcPmzjwbhlf/WyqznWiezVEuUhed/4GF+/ui+NrT1kYpkExFuL1io+3Fq+DdsPn4MRTbQGS1AAa + /d91puc2Y8FvkxUgMpmMSn1SB8iIxyJTciI6VBnsuU3ARqqOJFXjBDnGZwBUsUBQIV/uM0jNIPjwBRqe + 20WfTut4/1IbDSE8HAZBUJwuaXD+eI+DG75k49XVSex/2UHZ7sThebfAXXcD7P65inmxKoPzO3WWYBhB + BnJD4Utmk3jgMDYoFxDtixAiAYgbKAUxYBkUhknAEk9nVDkcZ+qx+GmLWQsPrtdgdp4IRM1HYgy9LVLT + wv8c18S2nQ7WvF9Hf48TpZWGG8VCdZAGPaEaIfF0ARd82MeaDTrG/R78a/F6TDrzkTZ8xMWSSU+Sn3kG + wAQZ18MawNf8SOaIM6ZUQpc1xdzjxO3VarWNinzVEJH0USkUkMx2BG8ImfIk+te7CifXq3yxnBPI6wdM + aQGK4VcdVc9kAUMQTJR2bNzAq/td3P6nKVQtCpmR2jBD4CTCcIKGCKMAma+EAM1TlzSVCcqqPI/SXkxq + BVplnoE7ZoZxpLkR5Qt5EhgNFV9Ml5LK5/Ntq0Cf0VZKY9f2VRUnmheteq7bcm+kWS0fFk1k1mfKqvgx + vHMygZePmdh1xMXb4xpO0sBK5LPsWBjJe/ju94Gf/MJE/4CO5YsTWH2uifPoEule4dQiwXbIR7M1Tf+W + JkhUGYp5S6co4UXlc6NlWRW3ZphmPeNaeHa6IRI8KExr9EHVECExkgalGaI57UoNTZXFR/w8npx6A4/9 + vII3mMvTtKKzO7NY1RnD/ME4ehImUqoU1ki4jlESdeBwFa/stvCT+wm8sj7OWWWg66IUzlphI5W1Vfnb + mMV8VT4I2SIAUyxA3AZak0JDBFrjb9prG9JgKpVS8SDKCCqwMYc7FbelJpCCKGFmWhoiI1oRD5R248HS + K3AzeXxwTgafX96DFVkPvbAQJ7iBMxkWPV7olDxSJGUgiTLfOep14+VxH7/YncfTvynAXajjgo1prFhH + v04Tc4TBUqdVZhggJ2wNtjRE3LoMID3CJnkZdAslLMut3dQgAIkDbp15h2EDOgGG6zRmALtSgUUfjCKa + pXv4hb0f90xtQzl7Ep9Y04FrBroxDyUYlRF4k5YCNm6kkHajkEecKh3ifAuzGWw8P4c3rU786PWTuH/z + FF5h8br+ljTmnyO1iavkVyRddlP2iDKB1nRWNUT0RgIaBOC28W1ph6czGvInx1quSRCUtttJvYK7C8/i + EXsnrntfCp9Z1Ikhdwp+vkgiXdTeeqo2obJUlr4Ctnjo+UksZ4D+xpCG63Ia/nmvgwf/Frjo1iTWXkUh + GF67zKlGH7ORGWsN7M0wYdZ+gMoAPMr58RY61Sft6QhNfvPEr7EnsR9/T6B+VaYEszAGz5u5Y3Pag9R6 + rDlEaavpbZvPNfDDEQPf/k4V48diWPWJeBh5a2kmeIzHeMXCWaT9VDKfvSFCAoqTJ4l1AvOXgGOrVBYE + FYva/avxJ1FNn8Tdw2ms0sfgFyx4Z7ohjCBkSBH0uQUa5qdj+MaPqzguRvAxi5F8Mqj3Eym4ZlDNVvnA + pGWf8r2zNkSCIBDk8YqnY+9JHftO0FWrQUQtuUUsSVZx98okVvrUut2ad1vefQqCZutvyjU9ncPG3gwB + zCT+/NERTL32dwx2ntS6sAYXwVh3JdzzLiQsTtRN2gSw6kZbAUg2EK6TMZ91eJr1+jiePKCxqPBwZZ+B + lYOGQuvv8PfGQR0r9CkCllObvBQvlhdUcFVpILlBV0kClvRdUoKsdYG/M4vBK+WVW244y8Q/EkfsHNuO + szvIPAPNzt0v4NGXHsPRKz4J/Y9uR3eqm4CopBoiDgOwbbe+t205LEMm6ehIs/QEfvmOhg4itbvOMzCc + sQlMg0rNk3LXt8n8LJ03ZT0aTjAejfFlRU7pJtIw01loTKVKMITgbqkAg1Vohmbexyq0nwpMaG2WQohD + 3Inj6r3Xdmk8JO+7aqLqWTpunCji67+6F3vihM83fhlJ6VgJ7CWtuu6jWU8tAtANPZyH+Z+ReN94DMUC + cOdKHWszVrgCIyPo/7XirDpaeRwrazhcYZrsHkTHmgswuHItkguWQe8eUC0tedorl+GdHEH5nb2YfG07 + 3n59B0Ymj2MBL/cn/JaCKvTMsFZEjR6KFuu7Pfz14hi+8Kv7oa38EOldqnBDFCebR4sAaiCDRUiZkfS1 + Q2Vcztp7ddZRzLcQ0ua7DGInvFnUMNE5F70br0fPZdchvmAp1ZpWy2oCrQWySizx1HLcSqTWrEf3R/8E + 1oE9GHvqYezb+jO633EsygjObwPV2whd6L+ky8Pqg8exY/tWuP2Lg5iG9itVZmTyEQYQwFOKQI9D+Ev0 + tLwPyuyjRSlbOjJaqzAiARfo4/uKfO/w5Vj6yS8hsXyN1KCqzE4kkvRLM4DSmjbdgRbL4rxWJotYZw8S + S1eha92H8e4P78befc9jWcarzRnNFX0KTQ7dLKEHFpGmGy2iCz3/7kHYtFqrorWszsuKmuhT1QIS9KQE + 9v0gusdIaFQai+mUXFWYKXMZs02VkubEW0GTH2p+X5nMXvVJzLtlE/TeQTKdQIbltFSemtZqh9E5UUac + 96o0RprMCz+M5LwlOHjfN/HGs/+DZWlHNUHqRR+59OGqiYGEiw4i0jKFUVS9zNB5tKAB4oRBUNCgVINW + 1Q0aIjKxEFmpVCKK1CFLS51pDS+zmDlm65gT87C7GMP7s9OLp6jTvAhpf9lE/MpPYf5tX4XR2YcsIW2S + vt6O8ZmGEC7PxJnKSvEVWPiFv8E7PH/wuYexOO21LFUKPhG49EZZZ5C28HpRx+tE6cbQ2fBNU5XO0w/4 + fK9ZK4jChoiDdDqtBKB2f4S9gUTMxAVL+vDcnlE8ftJUHdlDlNG6rvYp70jZhz28HkuoebOrH525HC0/ + ftqMNw+JQ9lsFsbCZVj42a/hzbERnHhrG/qTWmP84Y9uk7XIWEyVNz8ecbE/twiD6z4E/VVNwd+oQySK + MKn9atQQSSSTPGGiGHaB6odUTwtSZRydY+KeAxYu7kvg0k5fpafmzFeiURzvWoihT30ZZv/c98x8/UiR + Rm3pSsy9eROO3LkfOXeU1tloUV3ELCMEF9sOgWV4GvYtn0Z57iJorxVbhGVVHQIpQ3WoTdF2tdJ+8VPW + CAymlg/OAx6vGnh0pIKbB4Wp1gB4lC7Ssf7jSC1fjawEsjPEfDREUXPWbcDEJdfh+BPfxdxU4/xJVmX9 + rH/vHEnAu+lLwJV/TKBlqEXUZpexicbsMHo0NESCXSCo9QNKpSq/J9CVBBZ16bDyOuYn3GhJoOb7FQac + qe4hLLjsWma5LMFH8owyj3CuFLPDwEduwuFnf4o59lGYDVbgYyUzRbYji/yay+AkCeImWSoTnkegWAKh + FyHQ6Fz9JIlEvBb9ZThMjXa1DIeR9XjBwLyEjlwb8JyXhd7zLkaKeV7B6DO+PSYYwm/vuefjyPILUNz5 + U3Qm6lIiv8yjBQw4BUwcPYTqwuWouk3lsgQ9urVVV/Y3sBOlwmioVR1ZvGYSnaCXLOMENLDa0l9055SW + QAcLkEQ2p1Lo/+eId/Wic9UlmHrpUXSEDVLVheZH1mSlaFjYPXKwgb5oOJKmnMb03SCA1saopvYCEdeg + bFG6WcHdfsPap6A4K9WFzqHlzOFn1u/bDWE0t/wDGElkOfdkcCZ0yQTjwHwGQ4weQUwC3GkY4qz9gEQy + gUQqQT8q0Wx89CXl9kYJKhPL5BDvmaNiSLvhqfVEL1hzPI0h94oyjDa70GSkB4egpTpYGU6iPgwwuxOg + aTBYLGlElSmiz5iqbdp3sYNnZhkSDC3mN5OSlX5jd0xXGvfqsKjakseAEyNw0bXWdaCjR4/i/vvvx+jo + KNavX4/LL79c5feZxttvH8CDDzyg1ic3XrMRa9eubSU628E5k/CKdSdDNxggRogXJlBhIVe0jRkr1VkF + oCSv6WopzPMNhfAEhnca0xmgYf+dNE51vWURSLS4ZcsWPPLIIwrQpFNpLFy4EEuWLGlLjM0A/L3v/Se2 + bt2Knp4edOQ6MDQ0hIGBgcYbCeQNtWETtXgb0OVjkIE6Vi6gZBHMaSmlMEPWAV3/9HeIJFMBDNWrU8rE + yk5gXl1m654bVWVaZWKK1sVUWV4/cOBACD4s7Ni5E5fRAmYSQIll8aFDh9V3sYAdO3bg6quvbhGAWylB + dypBG6zuvHzvNV0kK1OYtHid1iA7RFIpAxXi/qAdPssOEfHRnp5e5YP5Qh49SfFpi2mO2Jx4Oqm3lpQi + ILM0AWfyRAtDauMYTVCgtnxWKAT/FHuHZW7bdqkxgnl/vO2KlUVIbJTzrdsX+SMj+6aqBej5Cfips9Sy + XrVM2lMm6wsThbzVYAktbfFo1ceQPTe0e9knODbuMP9TknprahFsHS9Pwjr4BnD+pS3XfCUAG1HRNeuQ + +CJbcR0nWIVKtA9e1QN7kKzmWxZeVSYgwzm7iNixQ0jOPU+9R6FB2SHaZlNlSxos0PTi8QDuyhaTw1MG + 9o662NgtVuC0bGKVkXErKOx+Ht61t6pFlHoByN4+cQXZC6iEO0sAlCpQwJdF/432LOhNTHp2FZVX/hdp + j1ZltOY56SkuMat4+ZcPAX3LqYA+ebMyf4HAzcOMmhJRH79CP5RDhkX7fnyfjnUdOq4f0KYzQLPUOenE + K8+gfORtZIbOqV0TULRixQo89dTTyqfPWbYMCxYsmFEAskS/fPk5eOmlHYoeuX9gcLDhnsrBvSxwfqPW + AJu1KT+lXXvr/Bje3b8Vu+46ir2DG7G4dx2ydAeDgE0Ld0zLh7il2vwivQApiiIhiKF2M3Ku7DBx7Rwd + 1/R7al+P47d4nRqipczR/Tjx9CPIfPovG67dfPMtyHXkcGRkBFdu2DCrAETrX/ziFzE4eBaKhQI+uvGj + KhvUGGT8mPrlFiTGDs2ItiVjvS9l4+5zTfz3kX34+ev7sdXYglzvKgz2rUZPbhlymUFihAzfZ8BMyyKi + Y6GPVj+QMLE0rWMlEd/qTg3npDx0G7aaeNQNNhtEfdrmtlTGdzDx2H0ofPAaZBevqBHU2ZnDLbfeMiPT + zaO/vx+33/75ttfKe3fAfvIHah3A0yIZTOdC1SANU/ZQzMJfLDJw01zZRzSCZ08exp59T2CXRwSZHEQ8 + NZdArw/mv3wgxfzuoY/po4fu28FUl0Sw6UD1AH21vVlpP9rcjnDPTs0W5BRNKn14D8Z+8C0kN22GSXR4 + Joc7dQL5H32Lwe3tGg7xwkUbP9yEEdAZkCP06ow/QzEXC/s0XNdnYIIx7UhlAm9VJnGwtAejBbrARzpL + 0zv0w66ni0ZDZ0xG2dWRUouRbdBEKAyJqN4zW3CClVj/TXdAj5+ZstivlpB/4J/g/uaR2v6x2jV/+tNT + dYpsjpDNlR5k/6pCqgKGyEUvH+7LAKsyUlZKgidOkL8xaBNMG4ZsNyvykNUbEU5zMqu3hHilCGfLnZhk + Jun82O3QU9n3xnxpCsWH7kH5gbugE9zMVmmHG9Yx5WgYlNI3QolN90wv/MtawmlUTLIYWnB05BQU1sK1 + thmG7NBgMVL5r38AJsfQcf0XYM5ZgN+5RyBt8pE3UXzwbhR/fh+h4dQpX+EGG+5Rcny1BJc4BezwyIvp + 1wW2GfiBxRvznvzJiqt2YpzKYtRDZL5y/2bgzV1IbbwN8Q9cBr2zD2hTMDVSRTA2fgz2S0+i+LN7UX11 + G03QiqreWYf4vdxToAtY9X/3NMMQXar+sK9NC7f+gXBnDcZpUkVvOsigKRM0f48e9onZy88+CmvfDiRW + XoTkmg0wlg5D718APZ1V2+XVcIkUqWHv2EE4v30RlRefQGXPdvhTJ6YJmZEL1CpBJ4xFkzSDCdLcbbbS + 10CnWhiBtotRdFWzpITZYN+NhqOWhkqIgJwmMNRcjLQSSGx/fAT2Mw+h/MITMHrPQnzOXBhdcwAVH2SS + PJyT1ProYfXpyZ/nRNvrZnxxHWMh47YfKKxElx2l0eQMPdg/qAWNHL/1dbtMMvi0oWurgrSCcHuer5a/ + rPDFstJihW0gOe/VgshpjrBp5xbJKA/r4L5gI7XsKI3ST61vX/fM7Lw3CMGvWWfwJ3NCc4kMiTBEANJG + j4VpU6FfX2GGp81xz9sMR7+jHuPV7wiTak/W3ZyaBQTX9dMirVUQ0/wFIVuruxYx007xft1t7VxPrVmG + +zPkM9oKIGRX5PCCvkXD0L3N5kXP4cC2tbiLir1jJro91RidFoBCW3VYPNJa8+9TjZn+3K3ldN37anm/ + 6X7Hn8YHXlPVHgmtqXS+62LyrqLQxdu9Tc/+gX4Fb1jVjiBd86cl7Qe7PIy6YN5SlPwexjHrOI33WSEG + ECIFDNVbaBvr2XXR9uBvpGvl8EUveMPb1uqb0cYS0oYXrrFPB5szv/Tx3oYdpkBhUvw9HeD21kHNR8zL + aOgHKEtYh82+q28iv8oiRJsZXXZooQZ5rdpkZ1rVv9+IMpb6zs8ca5qk/H1QjUJ/F3z9ac1wNovZ1z/7 + f1mjsGWG6Wp/AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Views/Stats.Designer.cs b/Views/Stats.Designer.cs new file mode 100644 index 000000000..35a899b7a --- /dev/null +++ b/Views/Stats.Designer.cs @@ -0,0 +1,1869 @@ +namespace FallGuysStats { + partial class Stats { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Stats)); + this.mtgCreativeLevel = new MetroFramework.Controls.MetroToggle(); + this.lblCreativeLevel = new System.Windows.Forms.Label(); + this.mtgIgnoreLevelTypeWhenSorting = new MetroFramework.Controls.MetroToggle(); + this.lblIgnoreLevelTypeWhenSorting = new System.Windows.Forms.Label(); + this.mlLeaderboard = new MetroFramework.Controls.MetroLink(); + this.mlReportCheater = new MetroFramework.Controls.MetroLink(); + this.menu = new System.Windows.Forms.MenuStrip(); + this.menuSettings = new System.Windows.Forms.ToolStripMenuItem(); + this.menuFilters = new System.Windows.Forms.ToolStripMenuItem(); + this.menuStatsFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.menuCustomRangeStats = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.menuAllStats = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeasonStats = new System.Windows.Forms.ToolStripMenuItem(); + this.menuWeekStats = new System.Windows.Forms.ToolStripMenuItem(); + this.menuDayStats = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSessionStats = new System.Windows.Forms.ToolStripMenuItem(); + this.menuPartyFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.menuAllPartyStats = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSoloStats = new System.Windows.Forms.ToolStripMenuItem(); + this.menuPartyStats = new System.Windows.Forms.ToolStripMenuItem(); + this.menuProfile = new System.Windows.Forms.ToolStripMenuItem(); + this.menuEditProfiles = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.menuOverlay = new System.Windows.Forms.ToolStripMenuItem(); + this.menuUpdate = new System.Windows.Forms.ToolStripMenuItem(); + this.menuHelp = new System.Windows.Forms.ToolStripMenuItem(); + this.menuLaunchFallGuys = new System.Windows.Forms.ToolStripMenuItem(); + this.menuUsefulThings = new System.Windows.Forms.ToolStripMenuItem(); + this.menuFallGuysDB = new System.Windows.Forms.ToolStripMenuItem(); + this.menuFallGuysDBMain = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator9 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBShows = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator10 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBDiscovery = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator11 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBShop = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator12 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBNewsfeeds = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator13 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBStrings = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator14 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBCosmetics = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator15 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBCrownRanks = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator16 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBLiveEvents = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator17 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBDailyShop = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator18 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBCreative = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator19 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysDBFaq = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallalytics = new System.Windows.Forms.ToolStripMenuItem(); + this.menuFallalyticsMain = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator20 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallalyticsFindPlayer = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator21 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallalyticsOverallRankings = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator22 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallalyticsLevelRankings = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator23 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallalyticsWeeklyCrownLeague = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator24 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallalyticsRoundStatistics = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator25 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallalyticsShowStatistics = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator26 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallalyticsNews = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.menuRollOffClub = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.menuLostTempleAnalyzer = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator6 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysReddit = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator7 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysWiki = new System.Windows.Forms.ToolStripMenuItem(); + this.menuSeparator8 = new System.Windows.Forms.ToolStripSeparator(); + this.menuFallGuysOfficial = new System.Windows.Forms.ToolStripMenuItem(); + this.infoStrip = new System.Windows.Forms.ToolStrip(); + this.lblCurrentProfileIcon = new System.Windows.Forms.ToolStripLabel(); + this.lblCurrentProfile = new System.Windows.Forms.ToolStripLabel(); + this.lblTotalShows = new System.Windows.Forms.ToolStripLabel(); + this.lblTotalRounds = new System.Windows.Forms.ToolStripLabel(); + this.lblTotalFinals = new System.Windows.Forms.ToolStripLabel(); + this.lblTotalWins = new System.Windows.Forms.ToolStripLabel(); + this.infoStrip2 = new System.Windows.Forms.ToolStrip(); + this.lblTotalTime = new System.Windows.Forms.ToolStripLabel(); + this.lblGoldMedal = new System.Windows.Forms.ToolStripLabel(); + this.lblSilverMedal = new System.Windows.Forms.ToolStripLabel(); + this.lblBronzeMedal = new System.Windows.Forms.ToolStripLabel(); + this.lblPinkMedal = new System.Windows.Forms.ToolStripLabel(); + this.lblEliminatedMedal = new System.Windows.Forms.ToolStripLabel(); + this.lblKudos = new System.Windows.Forms.ToolStripLabel(); + this.gridDetails = new FallGuysStats.Grid(); + this.trayIcon = new System.Windows.Forms.NotifyIcon(this.components); + this.trayCMenu = new System.Windows.Forms.ContextMenuStrip(this.components); + this.trayOverlay = new System.Windows.Forms.ToolStripMenuItem(); + this.traySeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.traySettings = new System.Windows.Forms.ToolStripMenuItem(); + this.traySeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFilters = new System.Windows.Forms.ToolStripMenuItem(); + this.trayStatsFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.trayCustomRangeStats = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.trayAllStats = new System.Windows.Forms.ToolStripMenuItem(); + this.traySeasonStats = new System.Windows.Forms.ToolStripMenuItem(); + this.trayWeekStats = new System.Windows.Forms.ToolStripMenuItem(); + this.trayDayStats = new System.Windows.Forms.ToolStripMenuItem(); + this.traySessionStats = new System.Windows.Forms.ToolStripMenuItem(); + this.trayPartyFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.trayAllPartyStats = new System.Windows.Forms.ToolStripMenuItem(); + this.traySoloStats = new System.Windows.Forms.ToolStripMenuItem(); + this.trayPartyStats = new System.Windows.Forms.ToolStripMenuItem(); + this.trayProfile = new System.Windows.Forms.ToolStripMenuItem(); + this.trayEditProfiles = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.traySeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.trayUsefulThings = new System.Windows.Forms.ToolStripMenuItem(); + this.trayFallGuysDB = new System.Windows.Forms.ToolStripMenuItem(); + this.trayFallGuysDBMain = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator9 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBShows = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator10 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBDiscovery = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator11 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBShop = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator12 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBNewsfeeds = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator13 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBStrings = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator14 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBCosmetics = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator15 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBCrownRanks = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator16 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBLiveEvents = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator17 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBDailyShop = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator18 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBCreative = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator19 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysDBFaq = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallalytics = new System.Windows.Forms.ToolStripMenuItem(); + this.trayFallalyticsMain = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator20 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallalyticsFindPlayer = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator21 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallalyticsOverallRankings = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator22 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallalyticsLevelRankings = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator23 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallalyticsWeeklyCrownLeague = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator24 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallalyticsRoundStatistics = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator25 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallalyticsShowStatistics = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator26 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallalyticsNews = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.trayRollOffClub = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.trayLostTempleAnalyzer = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator6 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysReddit = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator7 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysWiki = new System.Windows.Forms.ToolStripMenuItem(); + this.traySubSeparator8 = new System.Windows.Forms.ToolStripSeparator(); + this.trayFallGuysOfficial = new System.Windows.Forms.ToolStripMenuItem(); + this.trayUpdate = new System.Windows.Forms.ToolStripMenuItem(); + this.trayHelp = new System.Windows.Forms.ToolStripMenuItem(); + this.trayLaunchFallGuys = new System.Windows.Forms.ToolStripMenuItem(); + this.traySeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.trayExitProgram = new System.Windows.Forms.ToolStripMenuItem(); + this.menu.SuspendLayout(); + this.infoStrip.SuspendLayout(); + this.infoStrip2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gridDetails)).BeginInit(); + this.trayCMenu.SuspendLayout(); + this.SuspendLayout(); + // + // mtgCreativeLevel + // + this.mtgCreativeLevel.Cursor = System.Windows.Forms.Cursors.Hand; + this.mtgCreativeLevel.DisplayStatus = false; + this.mtgCreativeLevel.Location = new System.Drawing.Point(15, 178); + this.mtgCreativeLevel.Name = "mtgCreativeLevel"; + this.mtgCreativeLevel.Size = new System.Drawing.Size(21, 15); + this.mtgCreativeLevel.TabIndex = 3; + this.mtgCreativeLevel.Text = "Off"; + this.mtgCreativeLevel.UseSelectable = true; + this.mtgCreativeLevel.CheckedChanged += new System.EventHandler(this.mtgCreativeLevel_CheckedChanged); + this.mtgCreativeLevel.MouseEnter += new System.EventHandler(this.Toggle_MouseEnter); + this.mtgCreativeLevel.MouseLeave += new System.EventHandler(this.Toggle_MouseLeave); + // + // lblCreativeLevel + // + this.lblCreativeLevel.AutoSize = true; + this.lblCreativeLevel.Cursor = System.Windows.Forms.Cursors.Hand; + this.lblCreativeLevel.Location = new System.Drawing.Point(38, 176); + this.lblCreativeLevel.Name = "lblCreativeLevel"; + this.lblCreativeLevel.Size = new System.Drawing.Size(0, 12); + this.lblCreativeLevel.TabIndex = 6; + this.lblCreativeLevel.Click += new System.EventHandler(this.lblCreativeLevel_Click); + this.lblCreativeLevel.MouseEnter += new System.EventHandler(this.Toggle_MouseEnter); + this.lblCreativeLevel.MouseLeave += new System.EventHandler(this.Toggle_MouseLeave); + // + // mtgIgnoreLevelTypeWhenSorting + // + this.mtgIgnoreLevelTypeWhenSorting.Cursor = System.Windows.Forms.Cursors.Hand; + this.mtgIgnoreLevelTypeWhenSorting.DisplayStatus = false; + this.mtgIgnoreLevelTypeWhenSorting.Location = new System.Drawing.Point(15, 156); + this.mtgIgnoreLevelTypeWhenSorting.Name = "mtgIgnoreLevelTypeWhenSorting"; + this.mtgIgnoreLevelTypeWhenSorting.Size = new System.Drawing.Size(21, 15); + this.mtgIgnoreLevelTypeWhenSorting.TabIndex = 3; + this.mtgIgnoreLevelTypeWhenSorting.Text = "Off"; + this.mtgIgnoreLevelTypeWhenSorting.UseSelectable = true; + this.mtgIgnoreLevelTypeWhenSorting.CheckedChanged += new System.EventHandler(this.mtgIgnoreLevelTypeWhenSorting_CheckedChanged); + this.mtgIgnoreLevelTypeWhenSorting.MouseEnter += new System.EventHandler(this.Toggle_MouseEnter); + this.mtgIgnoreLevelTypeWhenSorting.MouseLeave += new System.EventHandler(this.Toggle_MouseLeave); + // + // lblIgnoreLevelTypeWhenSorting + // + this.lblIgnoreLevelTypeWhenSorting.AutoSize = true; + this.lblIgnoreLevelTypeWhenSorting.Cursor = System.Windows.Forms.Cursors.Hand; + this.lblIgnoreLevelTypeWhenSorting.Location = new System.Drawing.Point(38, 154); + this.lblIgnoreLevelTypeWhenSorting.Name = "lblIgnoreLevelTypeWhenSorting"; + this.lblIgnoreLevelTypeWhenSorting.Size = new System.Drawing.Size(0, 12); + this.lblIgnoreLevelTypeWhenSorting.TabIndex = 6; + this.lblIgnoreLevelTypeWhenSorting.Click += new System.EventHandler(this.lblIgnoreLevelTypeWhenSorting_Click); + this.lblIgnoreLevelTypeWhenSorting.MouseEnter += new System.EventHandler(this.Toggle_MouseEnter); + this.lblIgnoreLevelTypeWhenSorting.MouseLeave += new System.EventHandler(this.Toggle_MouseLeave); + // + // mlLeaderboard + // + this.mlLeaderboard.Anchor = ((System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)); + this.mlLeaderboard.AutoSize = true; + this.mlLeaderboard.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlLeaderboard.Enabled = false; + this.mlLeaderboard.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlLeaderboard.FontWeight = MetroFramework.MetroLinkWeight.Bold; + this.mlLeaderboard.Image = global::FallGuysStats.Properties.Resources.leaderboard_icon; + this.mlLeaderboard.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.mlLeaderboard.ImageSize = 16; + this.mlLeaderboard.Location = new System.Drawing.Point(826, 174); + this.mlLeaderboard.Name = "mlLeaderboard"; + this.mlLeaderboard.Size = new System.Drawing.Size(100, 16); + this.mlLeaderboard.TabIndex = 7; + this.mlLeaderboard.Text = "Leaderboard"; + this.mlLeaderboard.TextAlign = System.Drawing.ContentAlignment.BottomRight; + this.mlLeaderboard.UseSelectable = true; + this.mlLeaderboard.UseStyleColors = true; + this.mlLeaderboard.Click += new System.EventHandler(this.mlLeaderboard_Click); + // + // mlReportCheater + // + this.mlReportCheater.Anchor = ((System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)); + this.mlReportCheater.AutoSize = true; + this.mlReportCheater.Cursor = System.Windows.Forms.Cursors.Hand; + this.mlReportCheater.FontSize = MetroFramework.MetroLinkSize.Medium; + this.mlReportCheater.FontWeight = MetroFramework.MetroLinkWeight.Bold; + this.mlReportCheater.Image = global::FallGuysStats.Properties.Resources.report_icon; + this.mlReportCheater.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.mlReportCheater.ImageSize = 16; + this.mlReportCheater.Location = new System.Drawing.Point(826, 151); + this.mlReportCheater.Name = "mlReportCheater"; + this.mlReportCheater.Size = new System.Drawing.Size(100, 16); + this.mlReportCheater.TabIndex = 7; + this.mlReportCheater.Text = "Leaderboard"; + this.mlReportCheater.TextAlign = System.Drawing.ContentAlignment.BottomRight; + this.mlReportCheater.UseSelectable = true; + this.mlReportCheater.UseStyleColors = true; + this.mlReportCheater.Click += new System.EventHandler(this.mlReportCheater_Click); + // + // menu + // + this.menu.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.menu.AutoSize = false; + this.menu.BackColor = System.Drawing.Color.Transparent; + this.menu.Dock = System.Windows.Forms.DockStyle.None; + this.menu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuSettings, this.menuFilters, this.menuProfile, this.menuOverlay, this.menuUpdate, this.menuHelp, this.menuLaunchFallGuys, this.menuUsefulThings }); + this.menu.Location = new System.Drawing.Point(0, 65); + this.menu.Name = "menu"; + this.menu.Size = new System.Drawing.Size(940, 27); + this.menu.TabIndex = 12; + this.menu.Text = "menuStrip1"; + // + // menuSettings + // + this.menuSettings.Image = global::FallGuysStats.Properties.Resources.setting_icon; + this.menuSettings.Name = "menuSettings"; + this.menuSettings.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); + this.menuSettings.Size = new System.Drawing.Size(78, 23); + this.menuSettings.Text = "Settings"; + this.menuSettings.Click += new System.EventHandler(this.menuSettings_Click); + this.menuSettings.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuSettings.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuFilters + // + this.menuFilters.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuStatsFilter, this.menuPartyFilter }); + this.menuFilters.Image = global::FallGuysStats.Properties.Resources.filter_icon; + this.menuFilters.Name = "menuFilters"; + this.menuFilters.Size = new System.Drawing.Size(66, 23); + this.menuFilters.Text = "Filters"; + // + // menuStatsFilter + // + this.menuStatsFilter.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuCustomRangeStats, this.menuSeparator1, this.menuAllStats, this.menuSeasonStats, this.menuWeekStats, this.menuDayStats, this.menuSessionStats }); + this.menuStatsFilter.Image = global::FallGuysStats.Properties.Resources.stat_icon; + this.menuStatsFilter.Name = "menuStatsFilter"; + this.menuStatsFilter.Size = new System.Drawing.Size(101, 22); + this.menuStatsFilter.Text = "Stats"; + // + // menuCustomRangeStats + // + this.menuCustomRangeStats.Image = global::FallGuysStats.Properties.Resources.calendar_icon; + this.menuCustomRangeStats.Name = "menuCustomRangeStats"; + this.menuCustomRangeStats.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.Q))); + this.menuCustomRangeStats.Size = new System.Drawing.Size(229, 22); + this.menuCustomRangeStats.Text = "Custom Range"; + this.menuCustomRangeStats.Click += new System.EventHandler(this.menuStats_Click); + this.menuCustomRangeStats.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuCustomRangeStats.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator1 + // + this.menuSeparator1.Name = "menuSeparator1"; + this.menuSeparator1.Size = new System.Drawing.Size(226, 6); + // + // menuAllStats + // + this.menuAllStats.Checked = true; + this.menuAllStats.CheckOnClick = true; + this.menuAllStats.CheckState = System.Windows.Forms.CheckState.Checked; + this.menuAllStats.Name = "menuAllStats"; + this.menuAllStats.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.A))); + this.menuAllStats.Size = new System.Drawing.Size(229, 22); + this.menuAllStats.Text = "All"; + this.menuAllStats.Click += new System.EventHandler(this.menuStats_Click); + this.menuAllStats.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuAllStats.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeasonStats + // + this.menuSeasonStats.CheckOnClick = true; + this.menuSeasonStats.Name = "menuSeasonStats"; + this.menuSeasonStats.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.S))); + this.menuSeasonStats.Size = new System.Drawing.Size(229, 22); + this.menuSeasonStats.Text = "Season"; + this.menuSeasonStats.Click += new System.EventHandler(this.menuStats_Click); + this.menuSeasonStats.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuSeasonStats.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuWeekStats + // + this.menuWeekStats.CheckOnClick = true; + this.menuWeekStats.Name = "menuWeekStats"; + this.menuWeekStats.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.W))); + this.menuWeekStats.Size = new System.Drawing.Size(229, 22); + this.menuWeekStats.Text = "Week"; + this.menuWeekStats.Click += new System.EventHandler(this.menuStats_Click); + this.menuWeekStats.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuWeekStats.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuDayStats + // + this.menuDayStats.CheckOnClick = true; + this.menuDayStats.Name = "menuDayStats"; + this.menuDayStats.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.D))); + this.menuDayStats.Size = new System.Drawing.Size(229, 22); + this.menuDayStats.Text = "Day"; + this.menuDayStats.Click += new System.EventHandler(this.menuStats_Click); + this.menuDayStats.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuDayStats.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSessionStats + // + this.menuSessionStats.CheckOnClick = true; + this.menuSessionStats.Name = "menuSessionStats"; + this.menuSessionStats.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.G))); + this.menuSessionStats.Size = new System.Drawing.Size(229, 22); + this.menuSessionStats.Text = "Session"; + this.menuSessionStats.Click += new System.EventHandler(this.menuStats_Click); + this.menuSessionStats.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuSessionStats.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuPartyFilter + // + this.menuPartyFilter.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuAllPartyStats, this.menuSoloStats, this.menuPartyStats }); + this.menuPartyFilter.Image = global::FallGuysStats.Properties.Resources.player_icon; + this.menuPartyFilter.Name = "menuPartyFilter"; + this.menuPartyFilter.Size = new System.Drawing.Size(101, 22); + this.menuPartyFilter.Text = "Party"; + // + // menuAllPartyStats + // + this.menuAllPartyStats.Checked = true; + this.menuAllPartyStats.CheckOnClick = true; + this.menuAllPartyStats.CheckState = System.Windows.Forms.CheckState.Checked; + this.menuAllPartyStats.Name = "menuAllPartyStats"; + this.menuAllPartyStats.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.F))); + this.menuAllPartyStats.Size = new System.Drawing.Size(175, 22); + this.menuAllPartyStats.Text = "All"; + this.menuAllPartyStats.Click += new System.EventHandler(this.menuStats_Click); + this.menuAllPartyStats.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuAllPartyStats.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSoloStats + // + this.menuSoloStats.CheckOnClick = true; + this.menuSoloStats.Name = "menuSoloStats"; + this.menuSoloStats.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.O))); + this.menuSoloStats.Size = new System.Drawing.Size(175, 22); + this.menuSoloStats.Text = "Solo"; + this.menuSoloStats.Click += new System.EventHandler(this.menuStats_Click); + this.menuSoloStats.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuSoloStats.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuPartyStats + // + this.menuPartyStats.CheckOnClick = true; + this.menuPartyStats.Name = "menuPartyStats"; + this.menuPartyStats.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.P))); + this.menuPartyStats.Size = new System.Drawing.Size(175, 22); + this.menuPartyStats.Text = "Party"; + this.menuPartyStats.Click += new System.EventHandler(this.menuStats_Click); + this.menuPartyStats.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuPartyStats.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuProfile + // + this.menuProfile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuEditProfiles, this.menuSeparator2 }); + this.menuProfile.Image = global::FallGuysStats.Properties.Resources.profile_icon; + this.menuProfile.Name = "menuProfile"; + this.menuProfile.Size = new System.Drawing.Size(69, 23); + this.menuProfile.Text = "Profile"; + // + // menuEditProfiles + // + this.menuEditProfiles.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.menuEditProfiles.Image = global::FallGuysStats.Properties.Resources.setting_icon; + this.menuEditProfiles.Name = "menuEditProfiles"; + this.menuEditProfiles.Size = new System.Drawing.Size(155, 22); + this.menuEditProfiles.Text = "Profile Settings"; + this.menuEditProfiles.Click += new System.EventHandler(this.menuEditProfiles_Click); + this.menuEditProfiles.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuEditProfiles.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator2 + // + this.menuSeparator2.Name = "menuSeparator2"; + this.menuSeparator2.Size = new System.Drawing.Size(152, 6); + // + // menuOverlay + // + this.menuOverlay.Image = global::FallGuysStats.Properties.Resources.stat_gray_icon; + this.menuOverlay.Name = "menuOverlay"; + this.menuOverlay.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); + this.menuOverlay.Size = new System.Drawing.Size(109, 23); + this.menuOverlay.Text = "Show Overlay"; + this.menuOverlay.Click += new System.EventHandler(this.menuOverlay_Click); + this.menuOverlay.MouseEnter += new System.EventHandler(this.menuOverlay_MouseEnter); + this.menuOverlay.MouseLeave += new System.EventHandler(this.menuOverlay_MouseLeave); + this.menuOverlay.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuUpdate + // + this.menuUpdate.Image = global::FallGuysStats.Properties.Resources.github_icon; + this.menuUpdate.Name = "menuUpdate"; + this.menuUpdate.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.U))); + this.menuUpdate.Size = new System.Drawing.Size(73, 23); + this.menuUpdate.Text = "Update"; + this.menuUpdate.Click += new System.EventHandler(this.menuUpdate_Click); + this.menuUpdate.MouseEnter += new System.EventHandler(this.menuUpdate_MouseEnter); + this.menuUpdate.MouseLeave += new System.EventHandler(this.menuUpdate_MouseLeave); + this.menuUpdate.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuHelp + // + this.menuHelp.Image = global::FallGuysStats.Properties.Resources.github_icon; + this.menuHelp.Name = "menuHelp"; + this.menuHelp.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.H))); + this.menuHelp.Size = new System.Drawing.Size(60, 23); + this.menuHelp.Text = "Help"; + this.menuHelp.Click += new System.EventHandler(this.menuHelp_Click); + this.menuHelp.MouseEnter += new System.EventHandler(this.menuUpdate_MouseEnter); + this.menuHelp.MouseLeave += new System.EventHandler(this.menuUpdate_MouseLeave); + this.menuHelp.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuLaunchFallGuys + // + this.menuLaunchFallGuys.Image = global::FallGuysStats.Properties.Resources.fallguys_icon; + this.menuLaunchFallGuys.Name = "menuLaunchFallGuys"; + this.menuLaunchFallGuys.Size = new System.Drawing.Size(126, 23); + this.menuLaunchFallGuys.Text = "Launch Fall Guys"; + this.menuLaunchFallGuys.Click += new System.EventHandler(this.menuLaunchFallGuys_Click); + this.menuLaunchFallGuys.MouseLeave += new System.EventHandler(this.setCursor_MouseLeave); + this.menuLaunchFallGuys.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuUsefulThings + // + this.menuUsefulThings.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuFallGuysDB, this.menuSeparator3, this.menuFallalytics, this.menuSeparator4, this.menuFallGuysWiki, this.menuSeparator5, this.menuRollOffClub, this.menuSeparator6, this.menuLostTempleAnalyzer, this.menuSeparator7, this.menuFallGuysReddit, this.menuSeparator8, this.menuFallGuysOfficial }); + this.menuUsefulThings.Image = global::FallGuysStats.Properties.Resources.main_icon; + this.menuUsefulThings.Name = "menuUsefulThings"; + this.menuUsefulThings.Size = new System.Drawing.Size(91, 23); + this.menuUsefulThings.Text = "Useful things!"; + + this.menuFallGuysDB.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuFallGuysDBMain, this.menuSeparator9, this.menuFallGuysDBShows, this.menuSeparator10, this.menuFallGuysDBDiscovery, this.menuSeparator11, this.menuFallGuysDBShop, this.menuSeparator12, this.menuFallGuysDBNewsfeeds, this.menuSeparator13, this.menuFallGuysDBStrings, this.menuSeparator14, this.menuFallGuysDBCosmetics, this.menuSeparator15, this.menuFallGuysDBCrownRanks, this.menuSeparator16, this.menuFallGuysDBLiveEvents, this.menuSeparator17, this.menuFallGuysDBDailyShop, this.menuSeparator18, this.menuFallGuysDBCreative, this.menuSeparator19, this.menuFallGuysDBFaq }); + this.menuFallGuysDB.Image = global::FallGuysStats.Properties.Resources.fallguys_db_logo; + this.menuFallGuysDB.Name = "menuFallGuysDB"; + this.menuFallGuysDB.Size = new System.Drawing.Size(162, 22); + this.menuFallGuysDB.Text = "FallGuysDB"; + this.menuFallGuysDB.MouseEnter += new System.EventHandler(this.menuUsefulThings_MouseEnter); + this.menuFallGuysDB.MouseLeave += new System.EventHandler(this.menuUsefulThings_MouseLeave); + // + // menuFallGuysDBMain + // + this.menuFallGuysDBMain.Image = global::FallGuysStats.Properties.Resources.fallguys_db_logo; + this.menuFallGuysDBMain.Name = "menuFallGuysDBMain"; + this.menuFallGuysDBMain.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBMain.Text = "Main"; + this.menuFallGuysDBMain.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBMain.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator9 + // + this.menuSeparator9.Name = "menuSeparator9"; + this.menuSeparator9.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBShows + // + this.menuFallGuysDBShows.Name = "menuFallGuysDBShows"; + this.menuFallGuysDBShows.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBShows.Text = "Shows"; + this.menuFallGuysDBShows.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBShows.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator10 + // + this.menuSeparator10.Name = "menuSeparator10"; + this.menuSeparator10.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBDiscovery + // + this.menuFallGuysDBDiscovery.Name = "menuFallGuysDBDiscovery"; + this.menuFallGuysDBDiscovery.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBDiscovery.Text = "Discovery"; + this.menuFallGuysDBDiscovery.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBDiscovery.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator11 + // + this.menuSeparator11.Name = "menuSeparator11"; + this.menuSeparator11.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBShop + // + this.menuFallGuysDBShop.Name = "menuFallGuysDBShop"; + this.menuFallGuysDBShop.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBShop.Text = "Shop"; + this.menuFallGuysDBShop.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBShop.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator12 + // + this.menuSeparator12.Name = "menuSeparator12"; + this.menuSeparator12.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBNewsfeeds + // + this.menuFallGuysDBNewsfeeds.Name = "menuFallGuysDBNewsfeeds"; + this.menuFallGuysDBNewsfeeds.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBNewsfeeds.Text = "Newsfeeds"; + this.menuFallGuysDBNewsfeeds.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBNewsfeeds.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator13 + // + this.menuSeparator13.Name = "menuSeparator13"; + this.menuSeparator13.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBStrings + // + this.menuFallGuysDBStrings.Name = "menuFallGuysDBStrings"; + this.menuFallGuysDBStrings.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBStrings.Text = "Strings"; + this.menuFallGuysDBStrings.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBStrings.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator14 + // + this.menuSeparator14.Name = "menuSeparator14"; + this.menuSeparator14.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBCosmetics + // + this.menuFallGuysDBCosmetics.Name = "menuFallGuysDBCosmetics"; + this.menuFallGuysDBCosmetics.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBCosmetics.Text = "Cosmetics"; + this.menuFallGuysDBCosmetics.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBCosmetics.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator15 + // + this.menuSeparator15.Name = "menuSeparator15"; + this.menuSeparator15.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBCrownRanks + // + this.menuFallGuysDBCrownRanks.Name = "menuFallGuysDBCrownRanks"; + this.menuFallGuysDBCrownRanks.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBCrownRanks.Text = "Crown Ranks"; + this.menuFallGuysDBCrownRanks.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBCrownRanks.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator16 + // + this.menuSeparator16.Name = "menuSeparator16"; + this.menuSeparator16.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBLiveEvents + // + this.menuFallGuysDBLiveEvents.Name = "menuFallGuysDBLiveEvents"; + this.menuFallGuysDBLiveEvents.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBLiveEvents.Text = "Live Events"; + this.menuFallGuysDBLiveEvents.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBLiveEvents.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator17 + // + this.menuSeparator17.Name = "menuSeparator17"; + this.menuSeparator17.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBDailyShop + // + this.menuFallGuysDBDailyShop.Name = "menuFallGuysDBDailyShop"; + this.menuFallGuysDBDailyShop.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBDailyShop.Text = "Daily Shop"; + this.menuFallGuysDBDailyShop.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBDailyShop.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator18 + // + this.menuSeparator18.Name = "menuSeparator18"; + this.menuSeparator18.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBCreative + // + this.menuFallGuysDBCreative.Name = "menuFallGuysDBCreative"; + this.menuFallGuysDBCreative.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBCreative.Text = "Creative"; + this.menuFallGuysDBCreative.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBCreative.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator19 + // + this.menuSeparator19.Name = "menuSeparator19"; + this.menuSeparator19.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysDBFaq + // + this.menuFallGuysDBFaq.Name = "menuFallGuysDBFaq"; + this.menuFallGuysDBFaq.Size = new System.Drawing.Size(175, 22); + this.menuFallGuysDBFaq.Text = "FAQ"; + this.menuFallGuysDBFaq.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysDBFaq.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator3 + // + this.menuSeparator3.Name = "menuSeparator3"; + this.menuSeparator3.Size = new System.Drawing.Size(159, 6); + // + // menuFallalytics + // + this.menuFallalytics.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuFallalyticsMain, this.menuSeparator20, this.menuFallalyticsFindPlayer, this.menuSeparator21, this.menuFallalyticsOverallRankings, this.menuSeparator22, this.menuFallalyticsLevelRankings, this.menuSeparator23, this.menuFallalyticsWeeklyCrownLeague, this.menuSeparator24, this.menuFallalyticsRoundStatistics, this.menuSeparator25, this.menuFallalyticsShowStatistics, this.menuSeparator26, this.menuFallalyticsNews }); + this.menuFallalytics.Image = global::FallGuysStats.Properties.Resources.fallalytics_icon; + this.menuFallalytics.Name = "menuFallalytics"; + this.menuFallalytics.Size = new System.Drawing.Size(162, 22); + this.menuFallalytics.Text = "Fallalytics"; + this.menuFallalytics.MouseEnter += new System.EventHandler(this.menuUsefulThings_MouseEnter); + this.menuFallalytics.MouseLeave += new System.EventHandler(this.menuUsefulThings_MouseLeave); + // + // menuFallalyticsMain + // + this.menuFallalyticsMain.Image = global::FallGuysStats.Properties.Resources.fallalytics_icon; + this.menuFallalyticsMain.Name = "menuFallalyticsMain"; + this.menuFallalyticsMain.Size = new System.Drawing.Size(175, 22); + this.menuFallalyticsMain.Text = "Main"; + this.menuFallalyticsMain.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallalyticsMain.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator20 + // + this.menuSeparator20.Name = "menuSeparator20"; + this.menuSeparator20.Size = new System.Drawing.Size(159, 6); + // + // menuFallalyticsFindPlayer + // + this.menuFallalyticsFindPlayer.Name = "menuFallalyticsFindPlayer"; + this.menuFallalyticsFindPlayer.Size = new System.Drawing.Size(175, 22); + this.menuFallalyticsFindPlayer.Text = "Find Player"; + this.menuFallalyticsFindPlayer.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallalyticsFindPlayer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator21 + // + this.menuSeparator21.Name = "menuSeparator21"; + this.menuSeparator21.Size = new System.Drawing.Size(159, 6); + // + // menuFallalyticsOverallRankings + // + this.menuFallalyticsOverallRankings.Name = "menuFallalyticsOverallRankings"; + this.menuFallalyticsOverallRankings.Size = new System.Drawing.Size(175, 22); + this.menuFallalyticsOverallRankings.Text = "Overall Rankings"; + this.menuFallalyticsOverallRankings.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallalyticsOverallRankings.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator22 + // + this.menuSeparator22.Name = "menuSeparator22"; + this.menuSeparator22.Size = new System.Drawing.Size(159, 6); + // + // menuFallalyticsLevelRankings + // + this.menuFallalyticsLevelRankings.Name = "menuFallalyticsLevelRankings"; + this.menuFallalyticsLevelRankings.Size = new System.Drawing.Size(175, 22); + this.menuFallalyticsLevelRankings.Text = "Level Rankings"; + this.menuFallalyticsLevelRankings.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallalyticsLevelRankings.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator23 + // + this.menuSeparator23.Name = "menuSeparator23"; + this.menuSeparator23.Size = new System.Drawing.Size(159, 6); + // + // menuFallalyticsWeeklyCrownLeague + // + this.menuFallalyticsWeeklyCrownLeague.Name = "menuFallalyticsWeeklyCrownLeague"; + this.menuFallalyticsWeeklyCrownLeague.Size = new System.Drawing.Size(175, 22); + this.menuFallalyticsWeeklyCrownLeague.Text = "Weekly Crown League"; + this.menuFallalyticsWeeklyCrownLeague.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallalyticsWeeklyCrownLeague.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator24 + // + this.menuSeparator24.Name = "menuSeparator24"; + this.menuSeparator24.Size = new System.Drawing.Size(159, 6); + // + // menuFallalyticsRoundStatistics + // + this.menuFallalyticsRoundStatistics.Name = "menuFallalyticsRoundStatistics"; + this.menuFallalyticsRoundStatistics.Size = new System.Drawing.Size(175, 22); + this.menuFallalyticsRoundStatistics.Text = "Round Statistics"; + this.menuFallalyticsRoundStatistics.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallalyticsRoundStatistics.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator25 + // + this.menuSeparator25.Name = "menuSeparator25"; + this.menuSeparator25.Size = new System.Drawing.Size(159, 6); + // + // menuFallalyticsShowStatistics + // + this.menuFallalyticsShowStatistics.Name = "menuFallalyticsShowStatistics"; + this.menuFallalyticsShowStatistics.Size = new System.Drawing.Size(175, 22); + this.menuFallalyticsShowStatistics.Text = "Show Statistics"; + this.menuFallalyticsShowStatistics.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallalyticsShowStatistics.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator26 + // + this.menuSeparator26.Name = "menuSeparator26"; + this.menuSeparator26.Size = new System.Drawing.Size(159, 6); + // + // menuFallalyticsNews + // + this.menuFallalyticsNews.Name = "menuFallalyticsNews"; + this.menuFallalyticsNews.Size = new System.Drawing.Size(175, 22); + this.menuFallalyticsNews.Text = "News"; + this.menuFallalyticsNews.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallalyticsNews.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator4 + // + this.menuSeparator4.Name = "menuSeparator4"; + this.menuSeparator4.Size = new System.Drawing.Size(159, 6); + // + // menuRollOffClub + // + this.menuRollOffClub.Image = global::FallGuysStats.Properties.Resources.roll_off_club_icon; + this.menuRollOffClub.Name = "menuRollOffClub"; + this.menuRollOffClub.Size = new System.Drawing.Size(162, 22); + this.menuRollOffClub.Text = "Roll Off Club"; + this.menuRollOffClub.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuRollOffClub.MouseEnter += new System.EventHandler(this.menuUsefulThings_MouseEnter); + this.menuRollOffClub.MouseLeave += new System.EventHandler(this.menuUsefulThings_MouseLeave); + this.menuRollOffClub.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator5 + // + this.menuSeparator5.Name = "menuSeparator5"; + this.menuSeparator5.Size = new System.Drawing.Size(159, 6); + // + // menuLostTempleAnalyzer + // + this.menuLostTempleAnalyzer.Image = global::FallGuysStats.Properties.Resources.lost_temple_analyzer_icon; + this.menuLostTempleAnalyzer.Name = "menuLostTempleAnalyzer"; + this.menuLostTempleAnalyzer.Size = new System.Drawing.Size(162, 22); + this.menuLostTempleAnalyzer.Text = "Lost Temple Analyzer"; + this.menuLostTempleAnalyzer.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuLostTempleAnalyzer.MouseEnter += new System.EventHandler(this.menuUsefulThings_MouseEnter); + this.menuLostTempleAnalyzer.MouseLeave += new System.EventHandler(this.menuUsefulThings_MouseLeave); + this.menuLostTempleAnalyzer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator6 + // + this.menuSeparator6.Name = "menuSeparator6"; + this.menuSeparator6.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysReddit + // + this.menuFallGuysReddit.Image = global::FallGuysStats.Properties.Resources.reddit_icon; + this.menuFallGuysReddit.Name = "menuFallGuysReddit"; + this.menuFallGuysReddit.Size = new System.Drawing.Size(162, 22); + this.menuFallGuysReddit.Text = "Fall Guys Reddit"; + this.menuFallGuysReddit.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysReddit.MouseEnter += new System.EventHandler(this.menuUsefulThings_MouseEnter); + this.menuFallGuysReddit.MouseLeave += new System.EventHandler(this.menuUsefulThings_MouseLeave); + this.menuFallGuysReddit.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator7 + // + this.menuSeparator7.Name = "menuSeparator7"; + this.menuSeparator7.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysWiki + // + this.menuFallGuysWiki.Image = global::FallGuysStats.Properties.Resources.fandom_icon; + this.menuFallGuysWiki.Name = "menuFallGuysWiki"; + this.menuFallGuysWiki.Size = new System.Drawing.Size(162, 22); + this.menuFallGuysWiki.Text = "Fall Guys Wiki"; + this.menuFallGuysWiki.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysWiki.MouseEnter += new System.EventHandler(this.menuUsefulThings_MouseEnter); + this.menuFallGuysWiki.MouseLeave += new System.EventHandler(this.menuUsefulThings_MouseLeave); + this.menuFallGuysWiki.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // menuSeparator8 + // + this.menuSeparator8.Name = "menuSeparator8"; + this.menuSeparator8.Size = new System.Drawing.Size(159, 6); + // + // menuFallGuysOfficial + // + this.menuFallGuysOfficial.Image = global::FallGuysStats.Properties.Resources.fallGuys_official_icon; + this.menuFallGuysOfficial.Name = "menuFallGuysOfficial"; + this.menuFallGuysOfficial.Size = new System.Drawing.Size(162, 22); + this.menuFallGuysOfficial.Text = "Fall Guys official"; + this.menuFallGuysOfficial.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.menuFallGuysOfficial.MouseEnter += new System.EventHandler(this.menuUsefulThings_MouseEnter); + this.menuFallGuysOfficial.MouseLeave += new System.EventHandler(this.menuUsefulThings_MouseLeave); + this.menuFallGuysOfficial.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // infoStrip + // + this.infoStrip.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.infoStrip.AutoSize = false; + this.infoStrip.BackColor = System.Drawing.Color.Transparent; + this.infoStrip.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.infoStrip.Dock = System.Windows.Forms.DockStyle.None; + this.infoStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.infoStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.lblCurrentProfileIcon, this.lblCurrentProfile, this.lblTotalShows, this.lblTotalRounds, this.lblTotalFinals, this.lblTotalWins }); + this.infoStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow; + this.infoStrip.Location = new System.Drawing.Point(0, 93); + this.infoStrip.Name = "infoStrip"; + this.infoStrip.Padding = new System.Windows.Forms.Padding(20, 6, 20, 1); + this.infoStrip.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; + this.infoStrip.Size = new System.Drawing.Size(1050, 27); + this.infoStrip.TabIndex = 13; + // + // lblCurrentProfileIcon + // + this.lblCurrentProfileIcon.ForeColor = System.Drawing.Color.Crimson; + this.lblCurrentProfileIcon.Image = global::FallGuysStats.Properties.Resources.profile2_icon; + this.lblCurrentProfileIcon.Margin = new System.Windows.Forms.Padding(4, 3, 1, 3); + this.lblCurrentProfileIcon.Name = "lblCurrentProfileIcon"; + this.lblCurrentProfileIcon.Size = new System.Drawing.Size(47, 16); + this.lblCurrentProfileIcon.Text = ""; + this.lblCurrentProfileIcon.Click += new System.EventHandler(this.lblCurrentProfileIcon_Click); + this.lblCurrentProfileIcon.MouseEnter += new System.EventHandler(this.infoStrip_MouseEnter); + this.lblCurrentProfileIcon.MouseLeave += new System.EventHandler(this.infoStrip_MouseLeave); + // + // lblCurrentProfile + // + this.lblCurrentProfile.Margin = new System.Windows.Forms.Padding(1, 1, 17, 2); + this.lblCurrentProfile.Name = "lblCurrentProfile"; + this.lblCurrentProfile.Size = new System.Drawing.Size(47, 16); + this.lblCurrentProfile.Text = "Solo"; + this.lblCurrentProfile.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lblCurrentProfile_MouseDown); + this.lblCurrentProfile.MouseEnter += new System.EventHandler(this.infoStrip_MouseEnter); + this.lblCurrentProfile.MouseLeave += new System.EventHandler(this.infoStrip_MouseLeave); + // + // lblTotalShows + // + this.lblTotalShows.ForeColor = System.Drawing.Color.Blue; + this.lblTotalShows.Image = global::FallGuysStats.Properties.Resources.show_icon; + this.lblTotalShows.Margin = new System.Windows.Forms.Padding(10, 1, 5, 2); + this.lblTotalShows.Name = "lblTotalShows"; + this.lblTotalShows.Size = new System.Drawing.Size(30, 16); + this.lblTotalShows.Text = "0"; + this.lblTotalShows.Click += new System.EventHandler(this.lblTotalShows_Click); + this.lblTotalShows.MouseEnter += new System.EventHandler(this.infoStrip_MouseEnter); + this.lblTotalShows.MouseLeave += new System.EventHandler(this.infoStrip_MouseLeave); + // + // lblTotalRounds + // + this.lblTotalRounds.ForeColor = System.Drawing.Color.Blue; + this.lblTotalRounds.Image = global::FallGuysStats.Properties.Resources.round_icon; + this.lblTotalRounds.Margin = new System.Windows.Forms.Padding(10, 1, 5, 2); + this.lblTotalRounds.Name = "lblTotalRounds"; + this.lblTotalRounds.Size = new System.Drawing.Size(30, 16); + this.lblTotalRounds.Text = "0"; + this.lblTotalRounds.Click += new System.EventHandler(this.lblTotalRounds_Click); + this.lblTotalRounds.MouseEnter += new System.EventHandler(this.infoStrip_MouseEnter); + this.lblTotalRounds.MouseLeave += new System.EventHandler(this.infoStrip_MouseLeave); + // + // lblTotalFinals + // + this.lblTotalFinals.ForeColor = System.Drawing.Color.Blue; + this.lblTotalFinals.Image = global::FallGuysStats.Properties.Resources.final_icon; + this.lblTotalFinals.Margin = new System.Windows.Forms.Padding(10, 1, 5, 2); + this.lblTotalFinals.Name = "lblTotalFinals"; + this.lblTotalFinals.Size = new System.Drawing.Size(69, 16); + this.lblTotalFinals.Text = "0 (0.0%)"; + this.lblTotalFinals.Click += new System.EventHandler(this.lblTotalFinals_Click); + this.lblTotalFinals.MouseEnter += new System.EventHandler(this.infoStrip_MouseEnter); + this.lblTotalFinals.MouseLeave += new System.EventHandler(this.infoStrip_MouseLeave); + // + // lblTotalWins + // + this.lblTotalWins.ForeColor = System.Drawing.Color.Blue; + this.lblTotalWins.Image = global::FallGuysStats.Properties.Resources.crown_icon; + this.lblTotalWins.Margin = new System.Windows.Forms.Padding(10, 1, 0, 2); + this.lblTotalWins.Name = "lblTotalWins"; + this.lblTotalWins.Size = new System.Drawing.Size(69, 16); + this.lblTotalWins.Text = "0 (0.0%)"; + this.lblTotalWins.Click += new System.EventHandler(this.lblTotalWins_Click); + this.lblTotalWins.MouseEnter += new System.EventHandler(this.infoStrip_MouseEnter); + this.lblTotalWins.MouseLeave += new System.EventHandler(this.infoStrip_MouseLeave); + // + // infoStrip2 + // + this.infoStrip2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.infoStrip2.AutoSize = false; + this.infoStrip2.BackColor = System.Drawing.Color.Transparent; + this.infoStrip2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.infoStrip2.Dock = System.Windows.Forms.DockStyle.None; + this.infoStrip2.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.infoStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.lblTotalTime, this.lblGoldMedal, this.lblSilverMedal, this.lblBronzeMedal, this.lblPinkMedal, this.lblEliminatedMedal, this.lblKudos }); + this.infoStrip2.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow; + this.infoStrip2.Location = new System.Drawing.Point(0, 120); + this.infoStrip2.Name = "infoStrip2"; + this.infoStrip2.Padding = new System.Windows.Forms.Padding(14, 6, 14, 1); + this.infoStrip2.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; + this.infoStrip2.Size = new System.Drawing.Size(1050, 27); + this.infoStrip2.TabIndex = 14; + // + // lblTotalTime + // + this.lblTotalTime.ForeColor = System.Drawing.Color.Blue; + this.lblTotalTime.Image = global::FallGuysStats.Properties.Resources.clock_icon; + this.lblTotalTime.Margin = new System.Windows.Forms.Padding(10, 1, 20, 2); + this.lblTotalTime.Name = "lblTotalTime"; + this.lblTotalTime.Size = new System.Drawing.Size(64, 16); + this.lblTotalTime.Text = "0:00:00"; + this.lblTotalTime.Click += new System.EventHandler(this.lblTotalTime_Click); + this.lblTotalTime.MouseEnter += new System.EventHandler(this.infoStrip_MouseEnter); + this.lblTotalTime.MouseLeave += new System.EventHandler(this.infoStrip_MouseLeave); + // + // lblGoldMedal + // + this.lblGoldMedal.ForeColor = System.Drawing.Color.DarkSlateGray; + this.lblGoldMedal.Image = global::FallGuysStats.Properties.Resources.medal_gold; + this.lblGoldMedal.Margin = new System.Windows.Forms.Padding(10, 1, 5, 2); + this.lblGoldMedal.Name = "lblGoldMedal"; + this.lblGoldMedal.Size = new System.Drawing.Size(30, 16); + this.lblGoldMedal.Text = "0"; + // + // lblSilverMedal + // + this.lblSilverMedal.ForeColor = System.Drawing.Color.DarkSlateGray; + this.lblSilverMedal.Image = global::FallGuysStats.Properties.Resources.medal_silver; + this.lblSilverMedal.Margin = new System.Windows.Forms.Padding(10, 1, 5, 2); + this.lblSilverMedal.Name = "lblSilverMedal"; + this.lblSilverMedal.Size = new System.Drawing.Size(30, 16); + this.lblSilverMedal.Text = "0"; + // + // lblBronzeMedal + // + this.lblBronzeMedal.ForeColor = System.Drawing.Color.DarkSlateGray; + this.lblBronzeMedal.Image = global::FallGuysStats.Properties.Resources.medal_bronze; + this.lblBronzeMedal.Margin = new System.Windows.Forms.Padding(10, 1, 5, 2); + this.lblBronzeMedal.Name = "lblBronzeMedal"; + this.lblBronzeMedal.Size = new System.Drawing.Size(30, 16); + this.lblBronzeMedal.Text = "0"; + // + // lblPinkMedal + // + this.lblPinkMedal.ForeColor = System.Drawing.Color.DarkSlateGray; + this.lblPinkMedal.Image = global::FallGuysStats.Properties.Resources.medal_pink; + this.lblPinkMedal.Margin = new System.Windows.Forms.Padding(10, 1, 5, 2); + this.lblPinkMedal.Name = "lblPinkMedal"; + this.lblPinkMedal.Size = new System.Drawing.Size(30, 16); + this.lblPinkMedal.Text = "0"; + // + // lblEliminatedMedal + // + this.lblEliminatedMedal.ForeColor = System.Drawing.Color.DarkSlateGray; + this.lblEliminatedMedal.Image = global::FallGuysStats.Properties.Resources.medal_eliminated; + this.lblEliminatedMedal.Margin = new System.Windows.Forms.Padding(10, 1, 5, 2); + this.lblEliminatedMedal.Name = "lblEliminatedMedal"; + this.lblEliminatedMedal.Size = new System.Drawing.Size(30, 16); + this.lblEliminatedMedal.Text = "0"; + // + // lblKudos + // + this.lblKudos.ForeColor = System.Drawing.Color.DarkSlateGray; + this.lblKudos.Image = global::FallGuysStats.Properties.Resources.kudos_icon; + this.lblKudos.Margin = new System.Windows.Forms.Padding(10, 1, 0, 2); + this.lblKudos.Name = "lblKudos"; + this.lblKudos.Size = new System.Drawing.Size(30, 16); + this.lblKudos.Text = "0"; + // + // gridDetails + // + this.gridDetails.AllowUserToDeleteRows = false; + this.gridDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.gridDetails.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.gridDetails.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.LightGray; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.Cyan; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.gridDetails.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.gridDetails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.gridDetails.EnableHeadersVisualStyles = false; + this.gridDetails.GridColor = System.Drawing.Color.Gray; + this.gridDetails.Location = new System.Drawing.Point(15, 200); + this.gridDetails.Margin = new System.Windows.Forms.Padding(0); + this.gridDetails.Name = "gridDetails"; + this.gridDetails.ReadOnly = true; + this.gridDetails.RowHeadersVisible = false; + this.gridDetails.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.gridDetails.Size = new System.Drawing.Size(912, 448); + this.gridDetails.TabIndex = 11; + this.gridDetails.TabStop = false; + this.gridDetails.DataSourceChanged += new System.EventHandler(this.gridDetails_DataSourceChanged); + this.gridDetails.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridDetails_CellClick); + this.gridDetails.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridDetails_CellFormatting); + this.gridDetails.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridDetails_CellMouseEnter); + this.gridDetails.CellMouseLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridDetails_CellMouseLeave); + this.gridDetails.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridDetails_ColumnHeaderMouseClick); + this.gridDetails.DataBindingComplete += new System.Windows.Forms.DataGridViewBindingCompleteEventHandler(this.gridDetails_DataBindingComplete); + this.gridDetails.Scroll += new System.Windows.Forms.ScrollEventHandler(this.gridDetails_Scroll); + this.gridDetails.SelectionChanged += new System.EventHandler(this.gridDetails_SelectionChanged); + // + // trayIcon + // + this.trayIcon.ContextMenuStrip = this.trayCMenu; + this.trayIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("trayIcon.Icon"))); + this.trayIcon.Text = "trayIcon"; + this.trayIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(this.trayIcon_MouseClick); + this.trayIcon.MouseMove += new System.Windows.Forms.MouseEventHandler(this.trayIcon_MouseMove); + this.trayIcon.MouseUp += new System.Windows.Forms.MouseEventHandler(this.trayIcon_MouseUp); + // + // trayCMenu + // + this.trayCMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.trayOverlay, this.traySeparator1, this.traySettings, this.traySeparator2, this.trayFilters, this.trayProfile, this.traySeparator3, this.trayUsefulThings, this.trayUpdate, this.trayHelp, this.trayLaunchFallGuys, this.traySeparator4, this.trayExitProgram }); + this.trayCMenu.Name = "trayCMenu"; + this.trayCMenu.Size = new System.Drawing.Size(166, 226); + this.trayCMenu.Closing += new System.Windows.Forms.ToolStripDropDownClosingEventHandler(this.trayCMenu_Closing); + this.trayCMenu.Opening += new System.ComponentModel.CancelEventHandler(this.trayCMenu_Opening); + // + // trayOverlay + // + this.trayOverlay.Image = global::FallGuysStats.Properties.Resources.stat_gray_icon; + this.trayOverlay.Name = "trayOverlay"; + this.trayOverlay.Size = new System.Drawing.Size(165, 22); + this.trayOverlay.Text = "Show Overlay"; + this.trayOverlay.Click += new System.EventHandler(this.menuOverlay_Click); + // + // traySeparator1 + // + this.traySeparator1.Name = "traySeparator1"; + this.traySeparator1.Size = new System.Drawing.Size(162, 6); + // + // traySettings + // + this.traySettings.Image = global::FallGuysStats.Properties.Resources.setting_icon; + this.traySettings.Name = "traySettings"; + this.traySettings.Size = new System.Drawing.Size(165, 22); + this.traySettings.Text = "Settings"; + this.traySettings.Click += new System.EventHandler(this.menuSettings_Click); + // + // traySeparator2 + // + this.traySeparator2.Name = "traySeparator2"; + this.traySeparator2.Size = new System.Drawing.Size(162, 6); + // + // trayFilters + // + this.trayFilters.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.trayStatsFilter, this.trayPartyFilter }); + this.trayFilters.Image = global::FallGuysStats.Properties.Resources.filter_icon; + this.trayFilters.Name = "trayFilters"; + this.trayFilters.Size = new System.Drawing.Size(165, 22); + this.trayFilters.Text = "Filters"; + // + // trayStatsFilter + // + this.trayStatsFilter.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.trayCustomRangeStats, this.traySubSeparator1, this.trayAllStats, this.traySeasonStats, this.trayWeekStats, this.trayDayStats, this.traySessionStats }); + this.trayStatsFilter.Image = global::FallGuysStats.Properties.Resources.stat_icon; + this.trayStatsFilter.Name = "trayStatsFilter"; + this.trayStatsFilter.Size = new System.Drawing.Size(101, 22); + this.trayStatsFilter.Text = "Stats"; + // + // trayCustomRangeStats + // + this.trayCustomRangeStats.CheckOnClick = true; + this.trayCustomRangeStats.Image = global::FallGuysStats.Properties.Resources.calendar_icon; + this.trayCustomRangeStats.Name = "trayCustomRangeStats"; + this.trayCustomRangeStats.Size = new System.Drawing.Size(153, 22); + this.trayCustomRangeStats.Text = "Custom Range"; + this.trayCustomRangeStats.Click += new System.EventHandler(this.menuStats_Click); + // + // traySubSeparator1 + // + this.traySubSeparator1.Name = "traySubSeparator1"; + this.traySubSeparator1.Size = new System.Drawing.Size(150, 6); + // + // trayAllStats + // + this.trayAllStats.Checked = true; + this.trayAllStats.CheckOnClick = true; + this.trayAllStats.CheckState = System.Windows.Forms.CheckState.Checked; + this.trayAllStats.Name = "trayAllStats"; + this.trayAllStats.Size = new System.Drawing.Size(153, 22); + this.trayAllStats.Text = "All"; + this.trayAllStats.Click += new System.EventHandler(this.menuStats_Click); + // + // traySeasonStats + // + this.traySeasonStats.CheckOnClick = true; + this.traySeasonStats.Name = "traySeasonStats"; + this.traySeasonStats.Size = new System.Drawing.Size(153, 22); + this.traySeasonStats.Text = "Season"; + this.traySeasonStats.Click += new System.EventHandler(this.menuStats_Click); + // + // trayWeekStats + // + this.trayWeekStats.CheckOnClick = true; + this.trayWeekStats.Name = "trayWeekStats"; + this.trayWeekStats.Size = new System.Drawing.Size(153, 22); + this.trayWeekStats.Text = "Week"; + this.trayWeekStats.Click += new System.EventHandler(this.menuStats_Click); + // + // trayDayStats + // + this.trayDayStats.CheckOnClick = true; + this.trayDayStats.Name = "trayDayStats"; + this.trayDayStats.Size = new System.Drawing.Size(153, 22); + this.trayDayStats.Text = "Day"; + this.trayDayStats.Click += new System.EventHandler(this.menuStats_Click); + // + // traySessionStats + // + this.traySessionStats.CheckOnClick = true; + this.traySessionStats.Name = "traySessionStats"; + this.traySessionStats.Size = new System.Drawing.Size(153, 22); + this.traySessionStats.Text = "Session"; + this.traySessionStats.Click += new System.EventHandler(this.menuStats_Click); + // + // trayPartyFilter + // + this.trayPartyFilter.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.trayAllPartyStats, this.traySoloStats, this.trayPartyStats }); + this.trayPartyFilter.Image = global::FallGuysStats.Properties.Resources.player_icon; + this.trayPartyFilter.Name = "trayPartyFilter"; + this.trayPartyFilter.Size = new System.Drawing.Size(101, 22); + this.trayPartyFilter.Text = "Party"; + // + // trayAllPartyStats + // + this.trayAllPartyStats.Checked = true; + this.trayAllPartyStats.CheckOnClick = true; + this.trayAllPartyStats.CheckState = System.Windows.Forms.CheckState.Checked; + this.trayAllPartyStats.Name = "trayAllPartyStats"; + this.trayAllPartyStats.Size = new System.Drawing.Size(101, 22); + this.trayAllPartyStats.Text = "All"; + this.trayAllPartyStats.Click += new System.EventHandler(this.menuStats_Click); + // + // traySoloStats + // + this.traySoloStats.CheckOnClick = true; + this.traySoloStats.Name = "traySoloStats"; + this.traySoloStats.Size = new System.Drawing.Size(101, 22); + this.traySoloStats.Text = "Solo"; + this.traySoloStats.Click += new System.EventHandler(this.menuStats_Click); + // + // trayPartyStats + // + this.trayPartyStats.CheckOnClick = true; + this.trayPartyStats.Name = "trayPartyStats"; + this.trayPartyStats.Size = new System.Drawing.Size(101, 22); + this.trayPartyStats.Text = "Party"; + this.trayPartyStats.Click += new System.EventHandler(this.menuStats_Click); + // + // trayProfile + // + this.trayProfile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.trayEditProfiles, this.traySubSeparator2 }); + this.trayProfile.Image = global::FallGuysStats.Properties.Resources.profile_icon; + this.trayProfile.Name = "trayProfile"; + this.trayProfile.Size = new System.Drawing.Size(165, 22); + this.trayProfile.Text = "Profile"; + // + // trayEditProfiles + // + this.trayEditProfiles.Image = global::FallGuysStats.Properties.Resources.setting_icon; + this.trayEditProfiles.Name = "trayEditProfiles"; + this.trayEditProfiles.Size = new System.Drawing.Size(155, 22); + this.trayEditProfiles.Text = "Profile Settings"; + this.trayEditProfiles.Click += new System.EventHandler(this.menuEditProfiles_Click); + // + // traySubSeparator2 + // + this.traySubSeparator2.Name = "traySubSeparator2"; + this.traySubSeparator2.Size = new System.Drawing.Size(152, 6); + // + // traySeparator3 + // + this.traySeparator3.Name = "traySeparator3"; + this.traySeparator3.Size = new System.Drawing.Size(162, 6); + // + // trayUsefulThings + // + this.trayUsefulThings.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.trayFallGuysDB, this.traySubSeparator3, this.trayFallalytics, this.traySubSeparator4, this.trayFallGuysWiki, this.traySubSeparator5, this.trayRollOffClub, this.traySubSeparator6, this.trayLostTempleAnalyzer, this.traySubSeparator7, this.trayFallGuysReddit, this.traySubSeparator8, this.trayFallGuysOfficial }); + this.trayUsefulThings.Image = global::FallGuysStats.Properties.Resources.main_icon; + this.trayUsefulThings.Name = "trayUsefulThings"; + this.trayUsefulThings.Size = new System.Drawing.Size(165, 22); + this.trayUsefulThings.Text = "Useful things!"; + // + // trayFallGuysDB + // + this.trayFallGuysDB.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.trayFallGuysDBMain, this.traySubSeparator9, this.trayFallGuysDBShows, this.traySubSeparator10, this.trayFallGuysDBDiscovery, this.traySubSeparator11, this.trayFallGuysDBShop, this.traySubSeparator12, this.trayFallGuysDBNewsfeeds, this.traySubSeparator13, this.trayFallGuysDBStrings, this.traySubSeparator14, this.trayFallGuysDBCosmetics, this.traySubSeparator15, this.trayFallGuysDBCrownRanks, this.traySubSeparator16, this.trayFallGuysDBLiveEvents, this.traySubSeparator17, this.trayFallGuysDBDailyShop, this.traySubSeparator18, this.trayFallGuysDBCreative, this.traySubSeparator19, this.trayFallGuysDBFaq }); + this.trayFallGuysDB.Image = global::FallGuysStats.Properties.Resources.fallguys_db_logo; + this.trayFallGuysDB.Name = "trayFallGuysDB"; + this.trayFallGuysDB.Size = new System.Drawing.Size(162, 22); + this.trayFallGuysDB.Text = "FallGuysDB"; + // + // trayFallGuysDBMain + // + this.trayFallGuysDBMain.Image = global::FallGuysStats.Properties.Resources.fallguys_db_logo; + this.trayFallGuysDBMain.Name = "trayFallGuysDBMain"; + this.trayFallGuysDBMain.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBMain.Text = "Main"; + this.trayFallGuysDBMain.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator9 + // + this.traySubSeparator9.Name = "traySubSeparator9"; + this.traySubSeparator9.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBShows + // + this.trayFallGuysDBShows.Name = "trayFallGuysDBShows"; + this.trayFallGuysDBShows.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBShows.Text = "Shows"; + this.trayFallGuysDBShows.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator10 + // + this.traySubSeparator10.Name = "traySubSeparator10"; + this.traySubSeparator10.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBDiscovery + // + this.trayFallGuysDBDiscovery.Name = "trayFallGuysDBDiscovery"; + this.trayFallGuysDBDiscovery.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBDiscovery.Text = "Discovery"; + this.trayFallGuysDBDiscovery.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator11 + // + this.traySubSeparator11.Name = "traySubSeparator11"; + this.traySubSeparator11.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBShop + // + this.trayFallGuysDBShop.Name = "trayFallGuysDBShop"; + this.trayFallGuysDBShop.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBShop.Text = "Shop"; + this.trayFallGuysDBShop.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator12 + // + this.traySubSeparator12.Name = "traySubSeparator12"; + this.traySubSeparator12.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBNewsfeeds + // + this.trayFallGuysDBNewsfeeds.Name = "trayFallGuysDBNewsfeeds"; + this.trayFallGuysDBNewsfeeds.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBNewsfeeds.Text = "Newsfeeds"; + this.trayFallGuysDBNewsfeeds.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator13 + // + this.traySubSeparator13.Name = "traySubSeparator13"; + this.traySubSeparator13.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBStrings + // + this.trayFallGuysDBStrings.Name = "trayFallGuysDBStrings"; + this.trayFallGuysDBStrings.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBStrings.Text = "Strings"; + this.trayFallGuysDBStrings.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator14 + // + this.traySubSeparator14.Name = "traySubSeparator14"; + this.traySubSeparator14.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBCosmetics + // + this.trayFallGuysDBCosmetics.Name = "trayFallGuysDBCosmetics"; + this.trayFallGuysDBCosmetics.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBCosmetics.Text = "Cosmetics"; + this.trayFallGuysDBCosmetics.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator15 + // + this.traySubSeparator15.Name = "traySubSeparator15"; + this.traySubSeparator15.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBCrownRanks + // + this.trayFallGuysDBCrownRanks.Name = "trayFallGuysDBCrownRanks"; + this.trayFallGuysDBCrownRanks.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBCrownRanks.Text = "Crown Ranks"; + this.trayFallGuysDBCrownRanks.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator16 + // + this.traySubSeparator16.Name = "traySubSeparator16"; + this.traySubSeparator16.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBLiveEvents + // + this.trayFallGuysDBLiveEvents.Name = "trayFallGuysDBLiveEvents"; + this.trayFallGuysDBLiveEvents.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBLiveEvents.Text = "Live Events"; + this.trayFallGuysDBLiveEvents.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator17 + // + this.traySubSeparator17.Name = "traySubSeparator17"; + this.traySubSeparator17.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBDailyShop + // + this.trayFallGuysDBDailyShop.Name = "trayFallGuysDBDailyShop"; + this.trayFallGuysDBDailyShop.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBDailyShop.Text = "Daily Shop"; + this.trayFallGuysDBDailyShop.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator18 + // + this.traySubSeparator18.Name = "traySubSeparator18"; + this.traySubSeparator18.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBCreative + // + this.trayFallGuysDBCreative.Name = "trayFallGuysDBCreative"; + this.trayFallGuysDBCreative.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBCreative.Text = "Creative"; + this.trayFallGuysDBCreative.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator19 + // + this.traySubSeparator19.Name = "traySubSeparator19"; + this.traySubSeparator19.Size = new System.Drawing.Size(152, 6); + // + // trayFallGuysDBFaq + // + this.trayFallGuysDBFaq.Name = "trayFallGuysDBFaq"; + this.trayFallGuysDBFaq.Size = new System.Drawing.Size(175, 22); + this.trayFallGuysDBFaq.Text = "FAQ"; + this.trayFallGuysDBFaq.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator3 + // + this.traySubSeparator3.Name = "traySubSeparator3"; + this.traySubSeparator3.Size = new System.Drawing.Size(159, 6); + // + // trayFallalytics + // + this.trayFallalytics.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.trayFallalyticsMain, this.traySubSeparator20, this.trayFallalyticsFindPlayer, this.traySubSeparator21, this.trayFallalyticsOverallRankings, this.traySubSeparator22, this.trayFallalyticsLevelRankings, this.traySubSeparator23, this.trayFallalyticsWeeklyCrownLeague, this.traySubSeparator24, this.trayFallalyticsRoundStatistics, this.traySubSeparator25, this.trayFallalyticsShowStatistics, this.traySubSeparator26, this.trayFallalyticsNews }); + this.trayFallalytics.Image = global::FallGuysStats.Properties.Resources.fallalytics_icon; + this.trayFallalytics.Name = "trayFallalytics"; + this.trayFallalytics.Size = new System.Drawing.Size(162, 22); + this.trayFallalytics.Text = "Fallalytics"; + // + // trayFallalyticsMain + // + this.trayFallalyticsMain.Image = global::FallGuysStats.Properties.Resources.fallalytics_icon; + this.trayFallalyticsMain.Name = "trayFallalyticsMain"; + this.trayFallalyticsMain.Size = new System.Drawing.Size(175, 22); + this.trayFallalyticsMain.Text = "Main"; + this.trayFallalyticsMain.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.trayFallalyticsMain.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // traySubSeparator20 + // + this.traySubSeparator20.Name = "traySubSeparator20"; + this.traySubSeparator20.Size = new System.Drawing.Size(159, 6); + // + // trayFallalyticsFindPlayer + // + this.trayFallalyticsFindPlayer.Name = "trayFallalyticsFindPlayer"; + this.trayFallalyticsFindPlayer.Size = new System.Drawing.Size(175, 22); + this.trayFallalyticsFindPlayer.Text = "Find Player"; + this.trayFallalyticsFindPlayer.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.trayFallalyticsFindPlayer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // traySubSeparator21 + // + this.traySubSeparator21.Name = "traySubSeparator21"; + this.traySubSeparator21.Size = new System.Drawing.Size(159, 6); + // + // trayFallalyticsOverallRankings + // + this.trayFallalyticsOverallRankings.Name = "trayFallalyticsOverallRankings"; + this.trayFallalyticsOverallRankings.Size = new System.Drawing.Size(175, 22); + this.trayFallalyticsOverallRankings.Text = "Overall Rankings"; + this.trayFallalyticsOverallRankings.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.trayFallalyticsOverallRankings.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // traySubSeparator22 + // + this.traySubSeparator22.Name = "traySubSeparator22"; + this.traySubSeparator22.Size = new System.Drawing.Size(159, 6); + // + // trayFallalyticsLevelRankings + // + this.trayFallalyticsLevelRankings.Name = "trayFallalyticsLevelRankings"; + this.trayFallalyticsLevelRankings.Size = new System.Drawing.Size(175, 22); + this.trayFallalyticsLevelRankings.Text = "Level Rankings"; + this.trayFallalyticsLevelRankings.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.trayFallalyticsLevelRankings.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // traySubSeparator23 + // + this.traySubSeparator23.Name = "traySubSeparator23"; + this.traySubSeparator23.Size = new System.Drawing.Size(159, 6); + // + // trayFallalyticsWeeklyCrownLeague + // + this.trayFallalyticsWeeklyCrownLeague.Name = "trayFallalyticsWeeklyCrownLeague"; + this.trayFallalyticsWeeklyCrownLeague.Size = new System.Drawing.Size(175, 22); + this.trayFallalyticsWeeklyCrownLeague.Text = "Weekly Crown League"; + this.trayFallalyticsWeeklyCrownLeague.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.trayFallalyticsWeeklyCrownLeague.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // traySubSeparator24 + // + this.traySubSeparator24.Name = "traySubSeparator24"; + this.traySubSeparator24.Size = new System.Drawing.Size(159, 6); + // + // trayFallalyticsRoundStatistics + // + this.trayFallalyticsRoundStatistics.Name = "trayFallalyticsRoundStatistics"; + this.trayFallalyticsRoundStatistics.Size = new System.Drawing.Size(175, 22); + this.trayFallalyticsRoundStatistics.Text = "Round Statistics"; + this.trayFallalyticsRoundStatistics.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.trayFallalyticsRoundStatistics.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // traySubSeparator25 + // + this.traySubSeparator25.Name = "traySubSeparator25"; + this.traySubSeparator25.Size = new System.Drawing.Size(159, 6); + // + // trayFallalyticsShowStatistics + // + this.trayFallalyticsShowStatistics.Name = "trayFallalyticsShowStatistics"; + this.trayFallalyticsShowStatistics.Size = new System.Drawing.Size(175, 22); + this.trayFallalyticsShowStatistics.Text = "Show Statistics"; + this.trayFallalyticsShowStatistics.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.trayFallalyticsShowStatistics.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // traySubSeparator26 + // + this.traySubSeparator26.Name = "traySubSeparator26"; + this.traySubSeparator26.Size = new System.Drawing.Size(159, 6); + // + // trayFallalyticsNews + // + this.trayFallalyticsNews.Name = "trayFallalyticsNews"; + this.trayFallalyticsNews.Size = new System.Drawing.Size(175, 22); + this.trayFallalyticsNews.Text = "News"; + this.trayFallalyticsNews.Click += new System.EventHandler(this.menuUsefulThings_Click); + this.trayFallalyticsNews.MouseMove += new System.Windows.Forms.MouseEventHandler(this.setCursor_MouseMove); + // + // traySubSeparator4 + // + this.traySubSeparator4.Name = "traySubSeparator4"; + this.traySubSeparator4.Size = new System.Drawing.Size(159, 6); + // + // trayRollOffClub + // + this.trayRollOffClub.Image = global::FallGuysStats.Properties.Resources.roll_off_club_icon; + this.trayRollOffClub.Name = "trayRollOffClub"; + this.trayRollOffClub.Size = new System.Drawing.Size(162, 22); + this.trayRollOffClub.Text = "Roll Off Club"; + this.trayRollOffClub.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator5 + // + this.traySubSeparator5.Name = "traySubSeparator5"; + this.traySubSeparator5.Size = new System.Drawing.Size(159, 6); + // + // trayLostTempleAnalyzer + // + this.trayLostTempleAnalyzer.Image = global::FallGuysStats.Properties.Resources.lost_temple_analyzer_icon; + this.trayLostTempleAnalyzer.Name = "trayLostTempleAnalyzer"; + this.trayLostTempleAnalyzer.Size = new System.Drawing.Size(162, 22); + this.trayLostTempleAnalyzer.Text = "Lost Temple Analyzer"; + this.trayLostTempleAnalyzer.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator6 + // + this.traySubSeparator6.Name = "traySubSeparator6"; + this.traySubSeparator6.Size = new System.Drawing.Size(159, 6); + // + // trayFallGuysReddit + // + this.trayFallGuysReddit.Image = global::FallGuysStats.Properties.Resources.reddit_icon; + this.trayFallGuysReddit.Name = "trayFallGuysReddit"; + this.trayFallGuysReddit.Size = new System.Drawing.Size(162, 22); + this.trayFallGuysReddit.Text = "Fall Guys Reddit"; + this.trayFallGuysReddit.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator7 + // + this.traySubSeparator7.Name = "traySubSeparator7"; + this.traySubSeparator7.Size = new System.Drawing.Size(159, 6); + // + // trayFallGuysWiki + // + this.trayFallGuysWiki.Image = global::FallGuysStats.Properties.Resources.fandom_icon; + this.trayFallGuysWiki.Name = "trayFallGuysWiki"; + this.trayFallGuysWiki.Size = new System.Drawing.Size(162, 22); + this.trayFallGuysWiki.Text = "Fall Guys Wiki"; + this.trayFallGuysWiki.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // traySubSeparator8 + // + this.traySubSeparator8.Name = "traySubSeparator8"; + this.traySubSeparator8.Size = new System.Drawing.Size(159, 6); + // + // trayFallGuysOfficial + // + this.trayFallGuysOfficial.Image = global::FallGuysStats.Properties.Resources.fallGuys_official_icon; + this.trayFallGuysOfficial.Name = "trayFallGuysOfficial"; + this.trayFallGuysOfficial.Size = new System.Drawing.Size(162, 22); + this.trayFallGuysOfficial.Text = "Fall Guys official"; + this.trayFallGuysOfficial.Click += new System.EventHandler(this.menuUsefulThings_Click); + // + // trayUpdate + // + this.trayUpdate.Image = global::FallGuysStats.Properties.Resources.github_icon; + this.trayUpdate.Name = "trayUpdate"; + this.trayUpdate.Size = new System.Drawing.Size(165, 22); + this.trayUpdate.Text = "Update"; + this.trayUpdate.Click += new System.EventHandler(this.menuUpdate_Click); + // + // trayHelp + // + this.trayHelp.Image = global::FallGuysStats.Properties.Resources.github_icon; + this.trayHelp.Name = "trayHelp"; + this.trayHelp.Size = new System.Drawing.Size(165, 22); + this.trayHelp.Text = "Help"; + this.trayHelp.Click += new System.EventHandler(this.menuHelp_Click); + // + // trayLaunchFallGuys + // + this.trayLaunchFallGuys.Image = global::FallGuysStats.Properties.Resources.fallguys_icon; + this.trayLaunchFallGuys.Name = "trayLaunchFallGuys"; + this.trayLaunchFallGuys.Size = new System.Drawing.Size(165, 22); + this.trayLaunchFallGuys.Text = "Launch Fall Guys"; + this.trayLaunchFallGuys.Click += new System.EventHandler(this.menuLaunchFallGuys_Click); + // + // traySeparator4 + // + this.traySeparator4.Name = "traySeparator4"; + this.traySeparator4.Size = new System.Drawing.Size(162, 6); + // + // trayExitProgram + // + this.trayExitProgram.Image = global::FallGuysStats.Properties.Resources.shutdown_icon; + this.trayExitProgram.Name = "trayExitProgram"; + this.trayExitProgram.Size = new System.Drawing.Size(165, 22); + this.trayExitProgram.Text = "Exit"; + this.trayExitProgram.Click += new System.EventHandler(this.Stats_ExitProgram); + // + // Stats + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(942, 650); + this.Controls.Add(this.menu); + this.Controls.Add(this.infoStrip); + this.Controls.Add(this.infoStrip2); + this.Controls.Add(this.mtgCreativeLevel); + this.Controls.Add(this.lblCreativeLevel); + this.Controls.Add(this.mtgIgnoreLevelTypeWhenSorting); + this.Controls.Add(this.lblIgnoreLevelTypeWhenSorting); + this.Controls.Add(this.mlLeaderboard); + this.Controls.Add(this.mlReportCheater); + this.Controls.Add(this.gridDetails); + this.ForeColor = System.Drawing.Color.Black; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Location = new System.Drawing.Point(15, 15); + this.MinimumSize = new System.Drawing.Size(720, 350); + this.Name = "Stats"; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Style = MetroFramework.MetroColorStyle.Teal; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Stats_FormClosing); + this.Load += new System.EventHandler(this.Stats_Load); + this.Shown += new System.EventHandler(this.Stats_Shown); + this.VisibleChanged += new System.EventHandler(this.Stats_VisibleChanged); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Stats_KeyDown); + this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Stats_KeyUp); + this.Resize += new System.EventHandler(this.Stats_Resize); + this.menu.ResumeLayout(false); + this.menu.PerformLayout(); + this.infoStrip.ResumeLayout(false); + this.infoStrip.PerformLayout(); + this.infoStrip2.ResumeLayout(false); + this.infoStrip2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gridDetails)).EndInit(); + this.trayCMenu.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + internal System.Windows.Forms.NotifyIcon trayIcon; + private MetroFramework.Controls.MetroToggle mtgCreativeLevel; + private System.Windows.Forms.Label lblCreativeLevel; + private MetroFramework.Controls.MetroToggle mtgIgnoreLevelTypeWhenSorting; + private System.Windows.Forms.Label lblIgnoreLevelTypeWhenSorting; + private MetroFramework.Controls.MetroLink mlLeaderboard; + private MetroFramework.Controls.MetroLink mlReportCheater; + private FallGuysStats.Grid gridDetails; + private System.Windows.Forms.MenuStrip menu; + private System.Windows.Forms.ToolStripMenuItem menuSettings; + private System.Windows.Forms.ToolStripMenuItem menuFilters; + private System.Windows.Forms.ToolStripMenuItem menuStatsFilter; + private System.Windows.Forms.ToolStripMenuItem menuAllStats; + private System.Windows.Forms.ToolStripMenuItem menuSeasonStats; + private System.Windows.Forms.ToolStripMenuItem menuWeekStats; + private System.Windows.Forms.ToolStripMenuItem menuDayStats; + private System.Windows.Forms.ToolStripMenuItem menuSessionStats; + private System.Windows.Forms.ToolStripMenuItem menuPartyFilter; + private System.Windows.Forms.ToolStripMenuItem menuAllPartyStats; + private System.Windows.Forms.ToolStripMenuItem menuSoloStats; + private System.Windows.Forms.ToolStripMenuItem menuPartyStats; + private System.Windows.Forms.ToolStripMenuItem menuOverlay; + private System.Windows.Forms.ToolStripMenuItem menuUpdate; + private System.Windows.Forms.ToolStripMenuItem menuHelp; + private System.Windows.Forms.ToolStripMenuItem menuProfile; + private System.Windows.Forms.ToolStripMenuItem menuEditProfiles; + private System.Windows.Forms.ToolStripSeparator menuSeparator2; + private System.Windows.Forms.ToolStrip infoStrip; + private System.Windows.Forms.ToolStrip infoStrip2; + private System.Windows.Forms.ToolStripLabel lblCurrentProfileIcon; + private System.Windows.Forms.ToolStripLabel lblCurrentProfile; + private System.Windows.Forms.ToolStripLabel lblTotalTime; + private System.Windows.Forms.ToolStripLabel lblTotalShows; + private System.Windows.Forms.ToolStripLabel lblTotalRounds; + private System.Windows.Forms.ToolStripLabel lblTotalWins; + private System.Windows.Forms.ToolStripLabel lblTotalFinals; + private System.Windows.Forms.ToolStripLabel lblGoldMedal; + private System.Windows.Forms.ToolStripLabel lblSilverMedal; + private System.Windows.Forms.ToolStripLabel lblBronzeMedal; + private System.Windows.Forms.ToolStripLabel lblPinkMedal; + private System.Windows.Forms.ToolStripLabel lblEliminatedMedal; + private System.Windows.Forms.ToolStripLabel lblKudos; + private System.Windows.Forms.ToolStripMenuItem menuLaunchFallGuys; + private System.Windows.Forms.ToolStripMenuItem menuUsefulThings; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysWiki; + private System.Windows.Forms.ToolStripSeparator menuSeparator3; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysReddit; + private System.Windows.Forms.ToolStripSeparator menuSeparator4; + private System.Windows.Forms.ToolStripMenuItem menuFallalytics; + private System.Windows.Forms.ToolStripMenuItem menuFallalyticsMain; + private System.Windows.Forms.ToolStripSeparator menuSeparator20; + private System.Windows.Forms.ToolStripMenuItem menuFallalyticsFindPlayer; + private System.Windows.Forms.ToolStripSeparator menuSeparator21; + private System.Windows.Forms.ToolStripMenuItem menuFallalyticsOverallRankings; + private System.Windows.Forms.ToolStripSeparator menuSeparator22; + private System.Windows.Forms.ToolStripMenuItem menuFallalyticsLevelRankings; + private System.Windows.Forms.ToolStripSeparator menuSeparator23; + private System.Windows.Forms.ToolStripMenuItem menuFallalyticsWeeklyCrownLeague; + private System.Windows.Forms.ToolStripSeparator menuSeparator24; + private System.Windows.Forms.ToolStripMenuItem menuFallalyticsRoundStatistics; + private System.Windows.Forms.ToolStripSeparator menuSeparator25; + private System.Windows.Forms.ToolStripMenuItem menuFallalyticsShowStatistics; + private System.Windows.Forms.ToolStripSeparator menuSeparator26; + private System.Windows.Forms.ToolStripMenuItem menuFallalyticsNews; + private System.Windows.Forms.ToolStripSeparator menuSeparator5; + private System.Windows.Forms.ToolStripMenuItem menuRollOffClub; + private System.Windows.Forms.ToolStripSeparator menuSeparator6; + private System.Windows.Forms.ToolStripMenuItem menuLostTempleAnalyzer; + private System.Windows.Forms.ToolStripSeparator menuSeparator7; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDB; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBMain; + private System.Windows.Forms.ToolStripSeparator menuSeparator9; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBShows; + private System.Windows.Forms.ToolStripSeparator menuSeparator10; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBDiscovery; + private System.Windows.Forms.ToolStripSeparator menuSeparator11; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBShop; + private System.Windows.Forms.ToolStripSeparator menuSeparator12; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBNewsfeeds; + private System.Windows.Forms.ToolStripSeparator menuSeparator13; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBStrings; + private System.Windows.Forms.ToolStripSeparator menuSeparator14; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBCosmetics; + private System.Windows.Forms.ToolStripSeparator menuSeparator15; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBCrownRanks; + private System.Windows.Forms.ToolStripSeparator menuSeparator16; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBLiveEvents; + private System.Windows.Forms.ToolStripSeparator menuSeparator17; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBDailyShop; + private System.Windows.Forms.ToolStripSeparator menuSeparator18; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBCreative; + private System.Windows.Forms.ToolStripSeparator menuSeparator19; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysDBFaq; + private System.Windows.Forms.ToolStripSeparator menuSeparator8; + private System.Windows.Forms.ToolStripMenuItem menuFallGuysOfficial; + + private System.Windows.Forms.ContextMenuStrip trayCMenu; + private System.Windows.Forms.ToolStripMenuItem trayAllPartyStats; + private System.Windows.Forms.ToolStripMenuItem traySoloStats; + private System.Windows.Forms.ToolStripMenuItem trayPartyStats; + private System.Windows.Forms.ToolStripMenuItem trayDayStats; + private System.Windows.Forms.ToolStripMenuItem traySessionStats; + private System.Windows.Forms.ToolStripMenuItem trayCustomRangeStats; + private System.Windows.Forms.ToolStripSeparator traySubSeparator1; + private System.Windows.Forms.ToolStripMenuItem trayAllStats; + private System.Windows.Forms.ToolStripMenuItem traySeasonStats; + private System.Windows.Forms.ToolStripMenuItem trayWeekStats; + private System.Windows.Forms.ToolStripMenuItem trayPartyFilter; + private System.Windows.Forms.ToolStripMenuItem trayStatsFilter; + private System.Windows.Forms.ToolStripSeparator traySeparator3; + private System.Windows.Forms.ToolStripMenuItem trayUsefulThings; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysWiki; + private System.Windows.Forms.ToolStripSeparator traySubSeparator3; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysReddit; + private System.Windows.Forms.ToolStripSeparator traySubSeparator4; + private System.Windows.Forms.ToolStripMenuItem trayFallalytics; + private System.Windows.Forms.ToolStripMenuItem trayFallalyticsMain; + private System.Windows.Forms.ToolStripSeparator traySubSeparator20; + private System.Windows.Forms.ToolStripMenuItem trayFallalyticsFindPlayer; + private System.Windows.Forms.ToolStripSeparator traySubSeparator21; + private System.Windows.Forms.ToolStripMenuItem trayFallalyticsOverallRankings; + private System.Windows.Forms.ToolStripSeparator traySubSeparator22; + private System.Windows.Forms.ToolStripMenuItem trayFallalyticsLevelRankings; + private System.Windows.Forms.ToolStripSeparator traySubSeparator23; + private System.Windows.Forms.ToolStripMenuItem trayFallalyticsWeeklyCrownLeague; + private System.Windows.Forms.ToolStripSeparator traySubSeparator24; + private System.Windows.Forms.ToolStripMenuItem trayFallalyticsRoundStatistics; + private System.Windows.Forms.ToolStripSeparator traySubSeparator25; + private System.Windows.Forms.ToolStripMenuItem trayFallalyticsShowStatistics; + private System.Windows.Forms.ToolStripSeparator traySubSeparator26; + private System.Windows.Forms.ToolStripMenuItem trayFallalyticsNews; + private System.Windows.Forms.ToolStripSeparator traySubSeparator5; + private System.Windows.Forms.ToolStripMenuItem trayRollOffClub; + private System.Windows.Forms.ToolStripSeparator traySubSeparator6; + private System.Windows.Forms.ToolStripMenuItem trayLostTempleAnalyzer; + private System.Windows.Forms.ToolStripSeparator traySubSeparator7; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDB; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBMain; + private System.Windows.Forms.ToolStripSeparator traySubSeparator9; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBShows; + private System.Windows.Forms.ToolStripSeparator traySubSeparator10; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBDiscovery; + private System.Windows.Forms.ToolStripSeparator traySubSeparator11; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBShop; + private System.Windows.Forms.ToolStripSeparator traySubSeparator12; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBNewsfeeds; + private System.Windows.Forms.ToolStripSeparator traySubSeparator13; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBStrings; + private System.Windows.Forms.ToolStripSeparator traySubSeparator14; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBCosmetics; + private System.Windows.Forms.ToolStripSeparator traySubSeparator15; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBCrownRanks; + private System.Windows.Forms.ToolStripSeparator traySubSeparator16; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBLiveEvents; + private System.Windows.Forms.ToolStripSeparator traySubSeparator17; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBDailyShop; + private System.Windows.Forms.ToolStripSeparator traySubSeparator18; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBCreative; + private System.Windows.Forms.ToolStripSeparator traySubSeparator19; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysDBFaq; + private System.Windows.Forms.ToolStripSeparator traySubSeparator8; + private System.Windows.Forms.ToolStripMenuItem trayFallGuysOfficial; + private System.Windows.Forms.ToolStripMenuItem trayUpdate; + private System.Windows.Forms.ToolStripMenuItem trayLaunchFallGuys; + private System.Windows.Forms.ToolStripMenuItem trayHelp; + private System.Windows.Forms.ToolStripSeparator traySeparator4; + private System.Windows.Forms.ToolStripMenuItem trayExitProgram; + private System.Windows.Forms.ToolStripMenuItem traySettings; + private System.Windows.Forms.ToolStripSeparator traySeparator2; + private System.Windows.Forms.ToolStripMenuItem trayFilters; + private System.Windows.Forms.ToolStripSeparator traySeparator1; + private System.Windows.Forms.ToolStripMenuItem trayProfile; + private System.Windows.Forms.ToolStripSeparator traySubSeparator2; + private System.Windows.Forms.ToolStripMenuItem trayEditProfiles; + private System.Windows.Forms.ToolStripMenuItem trayOverlay; + private System.Windows.Forms.ToolStripMenuItem menuCustomRangeStats; + private System.Windows.Forms.ToolStripSeparator menuSeparator1; + } +} + diff --git a/Views/Stats.cs b/Views/Stats.cs new file mode 100644 index 000000000..5b08f4ecb --- /dev/null +++ b/Views/Stats.cs @@ -0,0 +1,9045 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Drawing.Text; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Text.Json; +using System.Text.Json.Serialization; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using LiteDB; +using MetroFramework; +using MetroFramework.Components; +using MetroFramework.Controls; +using Microsoft.Win32; + +namespace FallGuysStats { + public partial class Stats : MetroFramework.Forms.MetroForm { + [STAThread] + private static void Main() { + try { + bool isAppUpdated = false; +#if AllowUpdate + if (File.Exists($"{CURRENTDIR}{Path.GetFileName(Assembly.GetEntryAssembly().Location)}.bak")) { + isAppUpdated = true; + } +#endif + if (isAppUpdated || !IsAlreadyRunning()) { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + + SplashForm splashWindow = new SplashForm(); + Screen primaryScreen = Screen.PrimaryScreen; + Rectangle workingArea = primaryScreen.WorkingArea; + int x = workingArea.Left + (workingArea.Width - splashWindow.Width) / 2; + int y = workingArea.Top + (workingArea.Height - splashWindow.Height) / 2; + splashWindow.Location = new Point(x, y); + splashWindow.Show(); + splashWindow.Refresh(); + splashWindow.TopMost = true; + splashWindow.TopMost = false; + Application.DoEvents(); + + Stats statsForm = new Stats(); + splashWindow.Close(); + Application.Run(statsForm); + } + } catch (Exception ex) { + MessageBox.Show(ex.ToString(), @"Run Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void SetEventWaitHandle() { + EventWaitHandle eventWaitHandle = new EventWaitHandle(false, EventResetMode.AutoReset, "FallGuysStatsEventWaitHandle", out bool createdNew); + if (!createdNew) { + Application.Exit(); + } else { + Task.Run(() => { + while (eventWaitHandle.WaitOne()) { + this.Invoke((Action)(() => { + this.Visible = true; + this.TopMost = true; + this.TopMost = false; + })); + } + }); + } + } + + private static bool IsAlreadyRunning() { + try { + string currentProcessName = Process.GetCurrentProcess().ProcessName; + foreach (var process in Process.GetProcessesByName(currentProcessName)) { + if (process.Id != Process.GetCurrentProcess().Id) { + EventWaitHandle eventWaitHandle = EventWaitHandle.OpenExisting("FallGuysStatsEventWaitHandle"); + eventWaitHandle.Set(); + // Utils.ShowWindow(process.MainWindowHandle, 9); + // Utils.SetForegroundWindow(process.MainWindowHandle); + return true; + } + } + return false; + } catch (Exception ex) { + MessageBox.Show(ex.ToString(), @"Process Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + return true; + } + } + + public static bool IsExitingProgram; +#if AllowUpdate + public static bool IsExitingForUpdate; + public static bool IsUpdatingOnAppLaunch; +#endif + + public static readonly string CURRENTDIR = AppDomain.CurrentDomain.BaseDirectory; + + internal static readonly string LOGPATH = Path.Combine($"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}Low", "Mediatonic", "FallGuys_client"); + private static readonly string LOGFILENAME = "Player.log"; + + public static readonly (string Name, DateTime StartDate)[] Seasons = new (string Name, DateTime StartDate)[] { + ("S1", new DateTime(2020, 8, 4, 0, 0, 0, DateTimeKind.Utc)), // Season 1 (Ultimate Knockout) + ("S2", new DateTime(2020, 10, 8, 0, 0, 0, DateTimeKind.Utc)), // Season 2 (Medieval Knockout) + ("S3", new DateTime(2020, 12, 15, 0, 0, 0, DateTimeKind.Utc)), // Season 3 (Winter Knockout) + ("S4", new DateTime(2021, 3, 22, 0, 0, 0, DateTimeKind.Utc)), // Season 4 (Fall Guys 4041) + ("S5", new DateTime(2021, 7, 20, 0, 0, 0, DateTimeKind.Utc)), // Season 5 (Jungle Adventure) + ("S6", new DateTime(2021, 11, 30, 0, 0, 0, DateTimeKind.Utc)), // Season 6 (Party Spectacular) + ("SS1", new DateTime(2022, 6, 21, 0, 0, 0, DateTimeKind.Utc)), // Season 1 (Free For All) + ("SS2", new DateTime(2022, 9, 15, 0, 0, 0, DateTimeKind.Utc)), // Season 2 (Satellite Scramble) + ("SS3", new DateTime(2022, 11, 22, 0, 0, 0, DateTimeKind.Utc)), // Season 3 (Sunken Secrets) + ("SS4", new DateTime(2023, 5, 10, 0, 0, 0, DateTimeKind.Utc)), // Season 4 (Creative Construction) + ("10.3", new DateTime(2023, 8, 16, 0, 0, 0, DateTimeKind.Utc)), // Summer Breeze Update + ("10.4", new DateTime(2023, 9, 27, 0, 0, 0, DateTimeKind.Utc)), // Fall Force Update + ("10.5", new DateTime(2023, 11, 7, 0, 0, 0, DateTimeKind.Utc)), // Tool Up Update + ("10.6", new DateTime(2023, 12, 6, 0, 0, 0, DateTimeKind.Utc)), // Power Party Update + ("10.7", new DateTime(2024, 1, 23, 0, 0, 0, DateTimeKind.Utc)), // Shapes and Stickers Update + ("10.8", new DateTime(2024, 2, 28, 0, 0, 0, DateTimeKind.Utc)), // Survival Update + ("10.9", new DateTime(2024, 5, 4, 0, 0, 0, DateTimeKind.Utc)), // Fall Forever Update + ("11.0", new DateTime(2024, 6, 11, 0, 0, 0, DateTimeKind.Utc)), // June '24 Update + ("11.1", new DateTime(2024, 7, 23, 0, 0, 0, DateTimeKind.Utc)), // July '24 Update + ("11.2", new DateTime(2024, 9, 3, 0, 0, 0, DateTimeKind.Utc)), // Scrapyard Stumble Update + ("11.3", new DateTime(2024, 10, 8, 0, 0, 0, DateTimeKind.Utc)), // Falloween 2024 Update + ("11.4", new DateTime(2024, 11, 7, 0, 0, 0, DateTimeKind.Utc)), // November '24 Update + ("11.5", new DateTime(2024, 12, 10, 0, 0, 0, DateTimeKind.Utc)), // Winter Update + ("11.6", new DateTime(2025, 2, 4, 0, 0, 0, DateTimeKind.Utc)), // Fall and Fantasy Update + ("18.0", new DateTime(2025, 4, 1, 0, 0, 0, DateTimeKind.Utc)), // Ranked Knockout Update + ("19.0", new DateTime(2025, 5, 27, 0, 0, 0, DateTimeKind.Utc)), // Yeetropolis Update + ("20.0", new DateTime(2025, 7, 29, 0, 0, 0, DateTimeKind.Utc)), // Tropical Tides Update + ("21.0", new DateTime(2025, 9, 16, 0, 0, 0, DateTimeKind.Utc)), // Slime Factory Update + ("21.0.1", new DateTime(2025, 11, 11, 0, 0, 0, DateTimeKind.Utc)), // Arctic Adventures Update + ("21.1", new DateTime(2026, 1, 1, 0, 0, 0, DateTimeKind.Utc)), // Myths and Legends Update + ("21.2", new DateTime(2026, 3, 1, 0, 0, 0, DateTimeKind.Utc)), // Fools Folly Update + }; + private static DateTime SeasonStart, WeekStart, DayStart; + private static DateTime SessionStart = DateTime.UtcNow; + public static Language CurrentLanguage; + public static MetroThemeStyle CurrentTheme = MetroThemeStyle.Light; + public static bool InstalledEmojiFont; + + public static bool InShow = false; + public static bool EndedShow = false; + + public static bool IsDisplayOverlayTime = true; + public static bool IsDisplayOverlayPing = true; + public static bool IsOverlayRoundInfoNeedRefresh; + + public static bool IsGameRunning = false; + public static bool IsClientHasBeenClosed = false; + + public static bool IsConnectedToServer = false; + public static DateTime ConnectedToServerDate = DateTime.MinValue; + public static string LastServerIp = string.Empty; + public static string LastCountryAlpha2Code = string.Empty; + public static string LastCountryRegion = string.Empty; + public static string LastCountryCity = string.Empty; + public static long LastServerPing = 0; + public static bool IsBadServerPing = false; + + public static readonly List SucceededPlayerIds = new List(); + public static readonly List EliminatedPlayerIds = new List(); + public static readonly Dictionary ReadyPlayerIds = new Dictionary(); + + public static int CasualRoundNum { get; set; } + public static string SavedSessionId { get; set; } + public static int SavedRoundCount { get; set; } + public static int NumPlayersSucceeded { get; set; } + public static int NumPlayersPsSucceeded { get; set; } + public static int NumPlayersXbSucceeded { get; set; } + public static int NumPlayersSwSucceeded { get; set; } + public static int NumPlayersMbSucceeded { get; set; } + public static int NumPlayersPcSucceeded { get; set; } + public static int NumPlayersEliminated { get; set; } + public static int NumPlayersPsEliminated { get; set; } + public static int NumPlayersXbEliminated { get; set; } + public static int NumPlayersSwEliminated { get; set; } + public static int NumPlayersMbEliminated { get; set; } + public static int NumPlayersPcEliminated { get; set; } + public static bool IsLastRoundRunning { get; set; } + public static bool IsLastPlayedRoundStillPlaying { get; set; } + public static DateTime LastGameStart { get; set; } = DateTime.MinValue; + public static DateTime LastRoundLoad { get; set; } = DateTime.MinValue; + public static DateTime LastCreativeRoundLoad { get; set; } = DateTime.MinValue; + public static DateTime? LastPlayedRoundStart { get; set; } + public static DateTime? LastPlayedRoundEnd { get; set; } + + public static bool IsQueuing { get; set; } + public static int QueuedPlayers { get; set; } + + private static readonly FallalyticsReporter FallalyticsReporter = new FallalyticsReporter(); + + public static string OnlineServiceId = string.Empty; + public static string OnlineServiceNickname = string.Empty; + public static OnlineServiceTypes OnlineServiceType = OnlineServiceTypes.None; + public static string HostCountryCode = string.Empty; + + public static bool UseWebProxy; + public static string ProxyAddress = string.Empty; + public static string ProxyPort = string.Empty; + public static bool EnableProxyAuthentication; + public static string ProxyUsername = string.Empty; + public static string ProxyPassword = string.Empty; + public static bool SucceededTestProxy; + + public static int IpGeolocationService; + public static string IPinfoToken; + public static readonly string IPinfoTokenFileName = "IPinfo.io.txt"; + + readonly DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle(); + readonly DataGridViewCellStyle dataGridViewCellStyle2 = new DataGridViewCellStyle(); + public List AllStats = new List(); + public List CurrentRound = new List(); + public Dictionary StatLookup; + public List StatDetails; + private readonly LogFileWatcher logFile = new LogFileWatcher(); + private int Shows, Rounds, CustomAndCasualShows, CustomAndCasualRounds; + private TimeSpan Duration; + private int Wins, Finals, Kudos; + private int GoldMedals, SilverMedals, BronzeMedals, PinkMedals, EliminatedMedals; + private int CustomAndCasualGoldMedals, CustomAndCasualSilverMedals, CustomAndCasualBronzeMedals, CustomAndCasualPinkMedals, CustomAndCasualEliminatedMedals; + private int nextShowID; + private bool isUpcomingShowUpdated; + private bool loadingExisting; + private bool updateFilterType, updateFilterRange; + private DateTime customfilterRangeStart = DateTime.MinValue; + private DateTime customfilterRangeEnd = DateTime.MaxValue; + private int selectedCustomTemplateSeason = -1; + private bool updateSelectedProfile, useLinkedProfiles; + public LiteDatabase StatsDB; + public ILiteCollection RoundDetails; + public ILiteCollection UserSettings; + public ILiteCollection Profiles; + public ILiteCollection FallalyticsPbLog; + public ILiteCollection FallalyticsCrownLog; + public ILiteCollection ServerConnectionLog; + public ILiteCollection PersonalBestLog; + public ILiteCollection UpcomingShow; + public ILiteCollection LevelTimeLimit; + public List AllProfiles = new List(); + public UserSettings CurrentSettings; + public List FallalyticsPbLogCache = new List(); + public List FallalyticsCrownLogCache = new List(); + public List ServerConnectionLogCache = new List(); + public List PersonalBestLogCache = new List(); + public List UpcomingShowCache = new List(); + public List LevelTimeLimitCache = new List(); + public readonly Overlay overlay; + private DateTime lastAddedShow = DateTime.MinValue; + private readonly DateTime startupTime = DateTime.UtcNow; + private readonly int randSecond = new Random().Next(0, 30); + public DateTime overallRankLoadTime { get; set; } + public DateTime weeklyCrownLoadTime { get; set; } + public int totalOverallRankPlayers, totalWeeklyCrownPlayers; + private int askedPreviousShows; + private readonly TextInfo textInfo; + private int currentProfile, currentLanguage; + private Color infoStripForeColor; + public List ProfileMenuItems = new List(); + public List ProfileTrayItems = new List(); + + private readonly Image numberOne = Utils.ImageOpacity(Properties.Resources.number_1, 0.5F); + private readonly Image numberTwo = Utils.ImageOpacity(Properties.Resources.number_2, 0.5F); + private readonly Image numberThree = Utils.ImageOpacity(Properties.Resources.number_3, 0.5F); + private readonly Image numberFour = Utils.ImageOpacity(Properties.Resources.number_4, 0.5F); + private readonly Image numberFive = Utils.ImageOpacity(Properties.Resources.number_5, 0.5F); + private readonly Image numberSix = Utils.ImageOpacity(Properties.Resources.number_6, 0.5F); + private readonly Image numberSeven = Utils.ImageOpacity(Properties.Resources.number_7, 0.5F); + private readonly Image numberEight = Utils.ImageOpacity(Properties.Resources.number_8, 0.5F); + private readonly Image numberNine = Utils.ImageOpacity(Properties.Resources.number_9, 0.5F); + + private bool maximizedForm; + private bool isFocused; + private bool shiftKeyToggle, ctrlKeyToggle; + private MetroToolTip mtt = new MetroToolTip(); + private MetroToolTip cmtt = new MetroToolTip(); + private MetroToolTip omtt = new MetroToolTip(); + private DWM_WINDOW_CORNER_PREFERENCE windowConerPreference = DWM_WINDOW_CORNER_PREFERENCE.DWMWCP_ROUNDSMALL; + private string mainWndTitle; + private bool isStartingUp = true; + private bool isAvailableNewVersion; + private string availableNewVersion; + private int profileWithLinkedCustomShow = -1; + private Toast toast; + public List leaderboardOverallRankList; + public List weeklyCrownList; + public string weeklyCrownNext; + public string weeklyCrownPrevious; + public int weeklyCrownCurrentYear; + public int weeklyCrownCurrentWeek; + public string weeklyCrownPeriod; + public Point screenCenter; + + public event Action OnUpdatedLevelRows; + private readonly System.Windows.Forms.Timer scrollTimer = new System.Windows.Forms.Timer { Interval = 100 }; + private bool isScrollingStopped = true; + + private readonly object dbTaskLock = new object(); + public List dbTasks = new List(); + + private readonly int currentDbVersion = 135; + + public readonly string[] PublicShowIdList = { + "main_show", + "ranked_solo_show", + "squads_2player_template", + "ranked_duos_show", + "squads_3player_template", + "ranked_trios_show", + "squads_4player", + "ranked_squads_show", + "event_xtreme_fall_guys_template", + "event_xtreme_fall_guys_squads_template", + "no_elimination_show", + "anniversary_fp12_ltm", + "event_anniversary_season_1_alternate_name", + "event_blast_ball_banger_template", + "event_only_button_bashers_template", + "event_only_finals_v3_template", + "event_only_fall_ball_template", + "event_only_hexaring_template", + "event_only_floor_fall_template", + "event_only_floor_fall_low_grav", + "event_only_blast_ball_trials_template", + "event_only_thin_ice_template", + "event_only_slime_climb", + "event_only_slime_climb_2_template", + "event_only_jump_club_template", + "event_only_hoverboard_template", + "event_only_drumtop_template", + "event_only_skeefall_timetrial_s6_1", + "event_only_roll_out", + "event_walnut_template", + "event_yeetus_template", + "survival_of_the_fittest", + "show_robotrampage_ss2_show1_template", + "event_le_anchovy_template", + "event_pixel_palooza_template", + "event_snowday_stumble", + "mrs_pegwin_winter_2teamsfinal", + "xtreme_party", + "invisibeans_mode", + "timeattack_mode", + "private_lobbies", + "fall_guys_creative_mode" + }; + + public readonly string[] PublicShowIdList2 = { + "event_only_finals_v3_ranked", + "xtreme_solos_template_ranked", + "ranked_show_knockout", + "knockout_mode", + // "knockout_duos", + // "knockout_squads", + "reversed_knockout_show", + "no_elimination_explore", + "event_only_races_any_final_template", + "event_only_fall_ball_trios_ranked", + "greatestsquads_ranked", + "greatestsquads_ltm", + "teams_show_ltm", + "sports_show", + "showcase_fp19", + "showcase_fp20", + "event_day_at_races_squads_template", + "event_only_ss2_squads_template", + "squadcelebration", + "invisibeans_pistachio_template", + "xtreme_explore" + }; + + public string GetUserCreativeLevelTypeId(string gameModeId) { + switch (gameModeId) { + case "GAMEMODE_GAUNTLET": return "user_creative_race_round"; + case "GAMEMODE_SURVIVAL": return "user_creative_survival_round"; + case "GAMEMODE_POINTS": return "user_creative_hunt_round"; + case "GAMEMODE_LOGIC": return "user_creative_logic_round"; + case "GAMEMODE_TEAM": return "user_creative_team_round"; + default: return "user_creative_race_round"; + } + } + + private string GetCreativeLevelTypeId(LevelType type, bool isFinal) { + switch (type) { + case LevelType.Race: return isFinal ? "creative_race_final_round" : "creative_race_round"; + case LevelType.Survival: return isFinal ? "creative_survival_final_round" : "creative_survival_round"; + case LevelType.Hunt: return isFinal ? "creative_hunt_final_round" : "creative_hunt_round"; + case LevelType.Logic: return isFinal ? "creative_logic_final_round" : "creative_logic_round"; + case LevelType.Team: return isFinal ? "creative_team_final_round" : "creative_team_round"; + default: return "unknown"; + } + } + + private LevelType GetCreativeLevelType(string gameModeId) { + switch (gameModeId) { + case "GAMEMODE_GAUNTLET": return LevelType.Race; + case "GAMEMODE_SURVIVAL": return LevelType.Survival; + case "GAMEMODE_POINTS": return LevelType.Hunt; + case "GAMEMODE_LOGIC": return LevelType.Logic; + case "GAMEMODE_TEAM": return LevelType.Team; + default: return LevelType.Unknown; + } + } + + private BestRecordType GetBestRecordType(string gameModeId) { + switch (gameModeId) { + case "GAMEMODE_GAUNTLET": return BestRecordType.Fastest; + case "GAMEMODE_SURVIVAL": return BestRecordType.Longest; + case "GAMEMODE_POINTS": return BestRecordType.Fastest; + case "GAMEMODE_LOGIC": return BestRecordType.Fastest; // or Longest + case "GAMEMODE_TEAM": return BestRecordType.HighScore; + default: return BestRecordType.Fastest; + } + } + + public void RunDatabaseTask(Task task, bool runAsync) { + lock (this.dbTaskLock) { + if (IsExitingProgram) return; + this.dbTasks.Add(task); + task.Start(); + if (!runAsync) task.Wait(); + } + task.ContinueWith(t => { + lock (this.dbTaskLock) { + if (IsExitingProgram) return; + this.dbTasks.Remove(t); + } + }); + } + + private void DatabaseMigration() { + Task migrationTask = new Task(() => { + if (File.Exists($"{CURRENTDIR}data_new.db")) { + File.SetAttributes($"{CURRENTDIR}data_new.db", FileAttributes.Normal); + File.Delete($"{CURRENTDIR}data_new.db"); + } + + if (File.Exists($"{CURRENTDIR}data.db")) { + int sourceDbUserVersion = 0; + using (var sourceDb = new LiteDatabase($@"{CURRENTDIR}data.db")) { + sourceDbUserVersion = sourceDb.UserVersion; + if (sourceDbUserVersion >= 2) return; + + using (var targetDb = new LiteDatabase($@"Filename={CURRENTDIR}data_new.db;Upgrade=true")) { + string[] tableNames = { "Profiles", "RoundDetails", "UserSettings", "ServerConnectionLog", "PersonalBestLog", + "FallalyticsPbLog", "FallalyticsCrownLog", "UpcomingShow", "LevelTimeLimit" }; + foreach (var tableName in tableNames) { + if (!sourceDb.CollectionExists(tableName)) continue; + var sourceData = sourceDb.GetCollection(tableName).FindAll(); + var targetCollection = targetDb.GetCollection(tableName); + targetCollection.InsertBulk(sourceData); + } + targetDb.UserVersion = 2; + } + } + if (!File.Exists($"{CURRENTDIR}data_bak_v{sourceDbUserVersion}.db")) { + File.Move($"{CURRENTDIR}data.db", $"{CURRENTDIR}data_bak_v{sourceDbUserVersion}.db"); + } else { + File.SetAttributes($"{CURRENTDIR}data.db", FileAttributes.Normal); + File.Delete($"{CURRENTDIR}data.db"); + } + File.Move($"{CURRENTDIR}data_new.db", $"{CURRENTDIR}data.db"); + } + }); + this.RunDatabaseTask(migrationTask, false); + } + + private void DatabaseBackup(bool initJob) { + lock (this.StatsDB) { + Task backupTask = new Task(() => { + // Create a new backup file for today if it doesn't exist + string todayBackupDbDate = DateTime.Today.ToString("yyyyMMdd"); + if (File.Exists($"{CURRENTDIR}data_bak_({todayBackupDbDate}).db")) return; + + this.StatsDB.Checkpoint(); + File.Copy($"{CURRENTDIR}data.db", $"{CURRENTDIR}data_bak_({todayBackupDbDate}).db"); + + // If there are more than 3 backup files, delete the oldest one + string[] backupDbFiles = Directory.GetFiles(CURRENTDIR, "data_bak_(*).db"); + if (backupDbFiles.Length > 3) { + DateTime oldestBackupDbDate = DateTime.MaxValue; + foreach (var backupDbFile in backupDbFiles) { + if (DateTime.TryParseExact(backupDbFile.Substring(backupDbFile.Length - 12, 8), "yyyyMMdd", + CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime backupDbDate)) { + if (backupDbDate < oldestBackupDbDate) { + oldestBackupDbDate = backupDbDate; + } + } + } + if (oldestBackupDbDate != DateTime.MaxValue) { + File.SetAttributes($"{CURRENTDIR}data_bak_({oldestBackupDbDate:yyyyMMdd}).db", FileAttributes.Normal); + File.Delete($"{CURRENTDIR}data_bak_({oldestBackupDbDate:yyyyMMdd}).db"); + } + } + }); + this.RunDatabaseTask(backupTask, false); + this.DatabaseBackupJob(initJob); + } + } + + private void DatabaseBackupJob(bool initJob) { + double interval; + if (initJob) { + initJob = false; + DateTime now = DateTime.Now; + DateTime targetTime = new DateTime(now.Year, now.Month, now.Day, 0, 1, 0); + if (now >= targetTime) { + targetTime = targetTime.AddDays(1); + } + interval = (targetTime - now).TotalMilliseconds + 1000; + } else { + interval = 24 * 60 * 60 * 1000; + } + new TimerAbsolute((s, e) => this.DatabaseBackup(initJob)).Start(interval); + } + + private void UpdateDatabaseOnlineJob(bool initJob, bool retry = false) { + double interval; + if (retry) { + interval = 5 * 1000; + } else if (initJob) { + initJob = false; + DateTime currentUtc = DateTime.UtcNow; + DateTime targetTime = new DateTime(currentUtc.Year, currentUtc.Month, currentUtc.Day, 12, 1, this.randSecond); + if (currentUtc >= targetTime) { + targetTime = targetTime.AddDays(1); + } + interval = (targetTime - currentUtc).TotalMilliseconds + 1000; + } else { + interval = 24 * 60 * 60 * 1000; + } + new TimerAbsolute((s, e) => this.UpdateDatabaseOnline(initJob)).Start(interval); + } + + private void UpdateLevelTimeLimit() { + lock (this.LevelTimeLimitCache) { + using (ApiWebClient web = new ApiWebClient()) { + try { + string json = web.DownloadString(Utils.FALLGUYSSTATS_LEVEL_TIME_LIMIT_DB_URL); + LevelTimeLimitInfo levelTimeLimit = System.Text.Json.JsonSerializer.Deserialize(json); + if (levelTimeLimit.version > this.CurrentSettings.LevelTimeLimitVersion) { + List newList = new List(); + foreach (var roundpool in levelTimeLimit.data.roundpools) { + foreach (var level in roundpool.levels) { + if (!newList.Any(l => string.Equals(l.LevelId, level.id))) { + newList.Add(new LevelTimeLimit { LevelId = level.id, Duration = level.duration }); + } + } + } + this.LevelTimeLimitCache.Clear(); + this.LevelTimeLimitCache = newList; + + lock (this.StatsDB) { + Task updateLevelTimeLimitTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.LevelTimeLimit.DeleteAll(); + this.LevelTimeLimit.InsertBulk(this.LevelTimeLimitCache); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(updateLevelTimeLimitTask, false); + } + this.CurrentSettings.LevelTimeLimitVersion = levelTimeLimit.version; + this.SaveUserSettings(); + } + } catch { + // ignored + } + } + } + } + + public struct LatestDbVersionsInfo { + public bool success { get; set; } + public List db_list { get; set; } + public struct DbInfo { + public string name { get; set; } + public int version { get; set; } + } + } + + public struct LevelTimeLimitInfo { + public int version { get; set; } + public ShowData data { get; set; } + public struct ShowData { + public List roundpools { get; set; } + public struct Roundpool { + public string id { get; set; } + public List levels { get; set; } + public struct Level { + public string id { get; set; } + public int duration { get; set; } + } + } + } + } + + public struct UpcomingShowInfo { + public int version { get; set; } + public ShowData data { get; set; } + public struct ShowData { + public List shows { get; set; } + public struct Show { + public string id { get; set; } + public List levels { get; set; } + public struct Level { + public string id { get; set; } + public string share_code { get; set; } + public string display_name { get; set; } + public string level_type { get; set; } + public string best_record_type { get; set; } + public bool is_creative { get; set; } + public bool is_final { get; set; } + } + } + } + } + + public struct FGDB_UpcomingShowInfo { + public bool ok { get; set; } + public ShowData data { get; set; } + + public struct ShowData { + public bool has_more { get; set; } + public int total_shows { get; set; } + public List shows { get; set; } + + public struct Show { + public string id { get; set; } + public string name { get; set; } + public string display_name { get; set; } + public string show_image { get; set; } + public string show_section_id { get; set; } + public string tile_colour { get; set; } + public DateTime? starts { get; set; } + public DateTime? ends { get; set; } + public string description { get; set; } + public int min_party_size { get; set; } + public int max_party_size { get; set; } + public ShowTag show_tag { get; set; } + public ShowType show_type { get; set; } + public Size size { get; set; } + public List rewards { get; set; } + public List rounds { get; set; } + + public struct ShowTag { + public string name { get; set; } + public string icon { get; set; } + } + public struct ShowType { + public string type { get; set; } + public int squad_size { get; set; } + } + public struct Size { + public string type { get; set; } + public int min { get; set; } + public int max { get; set; } + } + public struct Rewards { + public string type { get; set; } + public int value { get; set; } + } + + public struct Level { + public string id { get; set; } + public string display_name { get; set; } + public string share_code { get; set; } + public bool is_creative_level { get; set; } + public string creative_game_mode_id { get; set; } + public string level_archetype { get; set; } + public bool is_final { get; set; } + public int max_players { get; set; } + public int min_players { get; set; } + public int[] can_only_be_on_these_stages { get; set; } + public int[] cannot_be_on_these_stages { get; set; } + } + } + } + } + + public struct FGA_UpcomingShowInfo { + public string xstatus { get; set; } + public ShowData shows { get; set; } + + public struct ShowData { + public List live_shows { get; set; } + + public struct LiveShow { + + [JsonExtensionData] + public Dictionary showInfo { get; set; } + public string section_name { get; set; } + + public struct Show { + public string id { get; set; } + public string show_name { get; set; } + public string show_desc { get; set; } + public long begins { get; set; } + public long ends { get; set; } + public string roundpool { get; set; } + public string image { get; set; } + public Dictionary victory_rewards { get; set; } + + public struct Rewards { + public int? fame { get; set; } + public int? kudos { get; set; } + public int? shards { get; set; } + public int? crowns { get; set; } + } + } + } + } + } + + public struct FGA_RoundpoolInfo { + public string xstatus { get; set; } + public LevelData shows { get; set; } + + public struct LevelData { + public Roundpool roundpool { get; set; } + + public struct Roundpool { + + [JsonExtensionData] + public Dictionary roundpoolInfo { get; set; } + + public struct Level { + public string name { get; set; } + public string id { get; set; } + public string archetype { get; set; } + public string creative_gamemode { get; set; } + public string type { get; set; } + public int[] cannot_be_on_stages { get; set; } + public int[] can_only_be_on_stages { get; set; } + public int? min_players { get; set; } + public int? max_players { get; set; } + public int? time_remaining { get; set; } + public string wushu_id { get; set; } + + [JsonExtensionData] + public Dictionary wushu_author { get; set; } + public bool is_final { get; set; } + } + } + } + } + + private void UpdateUpcomingShow(bool updateViaGitHub) { + lock (this.UpcomingShowCache) { + DateTime currentUtc = DateTime.UtcNow; + using (ApiWebClient web = new ApiWebClient()) { + if (!updateViaGitHub) { + try { + string json = web.DownloadString($"{Utils.FALLGUYSDB_API_URL}upcoming-shows"); + FGDB_UpcomingShowInfo upcomingShow = System.Text.Json.JsonSerializer.Deserialize(json); + if (upcomingShow.ok) { + bool isCacheUpdated = false; + foreach (var show in upcomingShow.data.shows.Where(s => s.starts <= DateTime.UtcNow)) { + foreach (var level in show.rounds.Where(r => r.is_creative_level)) { + var levelType = this.GetCreativeLevelType(level.creative_game_mode_id); + if (Equals(levelType, LevelType.Unknown)) continue; + + this.UpcomingShowCache.RemoveAll(u => string.Equals(u.LevelId, level.id) + && string.Equals(u.ShowId, show.id) + && (!string.Equals(u.DisplayName, level.display_name) + || (!Equals(u.LevelType, levelType)))); + if (!this.UpcomingShowCache.Exists(u => string.Equals(u.LevelId, level.id) + && string.Equals(u.ShowId, show.id))) { + var newInfo = new UpcomingShow { + ShowId = show.id, + LevelId = level.id, + DisplayName = level.display_name, + ShareCode = level.share_code, + IsFinal = level.is_final, + IsCreative = true, + LevelType = levelType, + BestRecordType = this.GetBestRecordType(level.creative_game_mode_id), + AddDate = currentUtc + }; + this.UpcomingShowCache.Add(newInfo); + isCacheUpdated = true; + } + } + } + + if (isCacheUpdated) { + lock (this.StatsDB) { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where this.UpcomingShowCache.Exists(u => string.Equals(u.LevelId, ri.Name)) && + string.IsNullOrEmpty(ri.CreativeShareCode) + select ri).ToList(); + foreach (RoundInfo ri in roundInfoList) { + ri.CreativeShareCode = this.UpcomingShowCache.Find(u => string.Equals(u.LevelId, ri.Name)).ShareCode; + } + Task updateUpcomingShowTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.UpcomingShow.DeleteAll(); + this.UpcomingShow.InsertBulk(this.UpcomingShowCache); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(updateUpcomingShowTask, false); + this.isUpcomingShowUpdated = true; + } + } + } else { + throw new Exception("FallGuysDB API is unavailable => Try FGAnalyst API now"); + } + } catch { + try { + string json = web.DownloadString($"{Utils.FGANALYST_API_URL}show-selector/"); + FGA_UpcomingShowInfo upcomingShow = System.Text.Json.JsonSerializer.Deserialize(json); + if (string.Equals(upcomingShow.xstatus, "success")) { + var selectedShows = new List(); + foreach (var liveShow in upcomingShow.shows.live_shows) { + foreach (var showInfo in liveShow.showInfo.Values) { + var show = showInfo.Deserialize(); + if (string.Equals(liveShow.section_name, "CLASSIC GAMES")) { + if (this.IsCreativeShow(show.id) || string.Equals(show.id, "event_snowday_stumble")) { + selectedShows.Add(show); + } + } else if (!string.Equals(show.id, "ftue_uk_show") && show.victory_rewards.Count != 0) { + selectedShows.Add(show); + } + } + } + bool isCacheUpdated = false; + foreach (var show in selectedShows) { + if (show.begins <= DateTimeOffset.UtcNow.ToUnixTimeSeconds()) { + json = web.DownloadString($"{Utils.FGANALYST_API_URL}show-roundpools/?roundpool={show.roundpool}"); + FGA_RoundpoolInfo roundpool = System.Text.Json.JsonSerializer.Deserialize(json); + if (string.Equals(roundpool.xstatus, "success")) { + foreach (var levelInfo in roundpool.shows.roundpool.roundpoolInfo.Values) { + var level = levelInfo.Deserialize(); + if (string.Equals(level.type, "wushu")) { + var levelType = this.GetCreativeLevelType(level.creative_gamemode); + if (Equals(levelType, LevelType.Unknown)) continue; + + this.UpcomingShowCache.RemoveAll(u => string.Equals(u.LevelId, level.id) + && string.Equals(u.ShowId, show.id) + && (!string.Equals(u.DisplayName, level.name) + || (!Equals(u.LevelType, levelType)))); + if (!this.UpcomingShowCache.Exists(u => string.Equals(u.LevelId, level.id) + && string.Equals(u.ShowId, show.id))) { + var newInfo = new UpcomingShow { + ShowId = show.id, + LevelId = level.id, + DisplayName = level.name, + ShareCode = level.wushu_id, + IsFinal = level.is_final, + IsCreative = true, + LevelType = levelType, + BestRecordType = this.GetBestRecordType(level.creative_gamemode), + AddDate = currentUtc + }; + this.UpcomingShowCache.Add(newInfo); + isCacheUpdated = true; + } + } + } + } + } + } + + if (isCacheUpdated) { + lock (this.StatsDB) { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where this.UpcomingShowCache.Exists(u => string.Equals(u.LevelId, ri.Name)) && + string.IsNullOrEmpty(ri.CreativeShareCode) + select ri).ToList(); + foreach (RoundInfo ri in roundInfoList) { + ri.CreativeShareCode = this.UpcomingShowCache.Find(u => string.Equals(u.LevelId, ri.Name)).ShareCode; + } + Task updateUpcomingShowTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.UpcomingShow.DeleteAll(); + this.UpcomingShow.InsertBulk(this.UpcomingShowCache); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(updateUpcomingShowTask, false); + this.isUpcomingShowUpdated = true; + } + } + } else { + throw new Exception("FGAnalyst API is unavailable => Check on GitHub now"); + } + } catch { + // ignored + } + } + } else { + // Update "UpcomingShow" collection via GitHub + try { + string json = web.DownloadString(Utils.FALLGUYSSTATS_UPCOMING_SHOW_DB_URL); + UpcomingShowInfo upcomingShow = System.Text.Json.JsonSerializer.Deserialize(json); + if (upcomingShow.version > this.CurrentSettings.UpcomingShowVersion) { + bool isCacheUpdated = false; + foreach (var show in upcomingShow.data.shows) { + foreach (var level in show.levels) { + Enum.TryParse(level.level_type, out LevelType levelType); + if (Equals(levelType, LevelType.Unknown)) continue; + + this.UpcomingShowCache.RemoveAll(u => string.Equals(u.LevelId, level.id) + && string.Equals(u.ShowId, show.id) + && (!string.Equals(u.DisplayName, level.display_name) + || (!Equals(u.LevelType, levelType)))); + if (!this.UpcomingShowCache.Exists(u => string.Equals(u.LevelId, level.id) + && string.Equals(u.ShowId, show.id))) { + Enum.TryParse(level.best_record_type, out BestRecordType bestRecordType); + var newInfo = new UpcomingShow { + ShowId = show.id, + LevelId = level.id, + DisplayName = level.display_name, + ShareCode = level.share_code, + IsFinal = level.is_final, + IsCreative = level.is_creative, + LevelType = levelType, + BestRecordType = bestRecordType, + AddDate = currentUtc + }; + this.UpcomingShowCache.Add(newInfo); + isCacheUpdated = true; + } + } + } + + if (isCacheUpdated) { + lock (this.StatsDB) { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where this.UpcomingShowCache.Exists(u => string.Equals(u.LevelId, ri.Name)) && + string.IsNullOrEmpty(ri.CreativeShareCode) + select ri).ToList(); + foreach (RoundInfo ri in roundInfoList) { + ri.CreativeShareCode = this.UpcomingShowCache.Find(u => string.Equals(u.LevelId, ri.Name)).ShareCode; + } + Task updateUpcomingShowTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.UpcomingShow.DeleteAll(); + this.UpcomingShow.InsertBulk(this.UpcomingShowCache); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(updateUpcomingShowTask, false); + this.isUpcomingShowUpdated = true; + } + } + this.CurrentSettings.UpcomingShowVersion = upcomingShow.version; + this.SaveUserSettings(); + } + } catch { + // ignored + } + } + } + } + } + + private void GenerateLevelStats() { + if (this.UpcomingShowCache.Any()) { + var sortedUpcomingShows = this.UpcomingShowCache.OrderByDescending(u => u.AddDate).ToList(); + foreach (var level in sortedUpcomingShows) { + if (!LevelStats.ALL.ContainsKey(level.LevelId)) { + LevelStats.ALL.Add(level.LevelId, new LevelStats(level.LevelId, level.ShareCode, level.DisplayName, level.LevelType, level.BestRecordType, level.IsCreative, level.IsFinal, + 10, Properties.Resources.round_gauntlet_icon, Properties.Resources.round_gauntlet_big_icon)); + } + } + } + } + + private void CheckDatabaseUpdateViaGitHub() { + using (ApiWebClient web = new ApiWebClient()) { + try { + string json = web.DownloadString(Utils.FALLGUYSSTATS_LATEST_DB_VERSIONS_URL); + LatestDbVersionsInfo latestDbVersionsInfo = System.Text.Json.JsonSerializer.Deserialize(json); + if (latestDbVersionsInfo.success) { + foreach (var dbInfo in latestDbVersionsInfo.db_list) { + if (string.Equals(dbInfo.name, "LevelTimeLimit") && dbInfo.version > this.CurrentSettings.LevelTimeLimitVersion) { + this.UpdateLevelTimeLimit(); + } else if (string.Equals(dbInfo.name, "UpcomingShow") && dbInfo.version > this.CurrentSettings.UpcomingShowVersion) { + this.UpdateUpcomingShow(true); + } + } + } + } catch { + // ignored + } + } + } + + private void UpdateDatabaseOnline(bool initJob) { + if (!Utils.IsInternetConnected()) { + this.UpdateDatabaseOnlineJob(true, true); + return; + } + + this.CheckDatabaseUpdateViaGitHub(); + this.UpdateUpcomingShow(false); + lock (this.UpcomingShowCache) { + if (this.isUpcomingShowUpdated) { + this.isUpcomingShowUpdated = false; + this.GenerateLevelStats(); + lock (this.StatLookup) { + this.StatLookup = LevelStats.ALL.ToDictionary(entry => entry.Key, entry => entry.Value); + } + lock (this.StatDetails) { + this.StatDetails = LevelStats.ALL + .Where(entry => !string.IsNullOrEmpty(entry.Value.ShareCode)) + .GroupBy(entry => entry.Value.ShareCode) + .Select(group => group.First().Value) + .Concat(LevelStats.ALL.Where(entry => string.IsNullOrEmpty(entry.Value.ShareCode)).Select(entry => entry.Value)) + .ToList(); + } + lock (this.gridDetails) { + this.gridDetails.Invoke((MethodInvoker)delegate { + this.SortGridDetails(true); + }); + } + this.ResetStats(); + IsOverlayRoundInfoNeedRefresh = true; + } + } + this.UpdateDatabaseOnlineJob(initJob); + } + + private string TranslateChangelog(string s) { + string[] lines = s.Split(new[] { Environment.NewLine }, StringSplitOptions.None); + string rtnStr = string.Empty; + for (int i = 0; i < lines.Length; i++) { + if (i > 0) rtnStr += Environment.NewLine; + rtnStr += CurrentLanguage == Language.English || string.IsNullOrEmpty(Multilingual.GetWord(lines[i].Replace(" - ", "message_changelog_").Replace(" ", "_"))) + ? lines[i] + : $" - {Multilingual.GetWord(lines[i].Replace(" - ", "message_changelog_").Replace(" ", "_"))}"; + } + for (int i = 0; i < 5 - lines.Length; i++) { + rtnStr += Environment.NewLine; + } + return rtnStr; + } + + private void InitLogData() { + this.ClearPersonalBestLog(15); + this.ClearServerConnectionLog(5); + this.ClearWeeklyCrownLog(15); + this.FallalyticsPbLogCache = this.FallalyticsPbLog.FindAll().ToList(); + this.FallalyticsCrownLogCache = this.FallalyticsCrownLog.FindAll().ToList(); + this.ServerConnectionLogCache = this.ServerConnectionLog.FindAll().ToList(); + this.PersonalBestLogCache = this.PersonalBestLog.FindAll().ToList(); + this.UpcomingShowCache = this.UpcomingShow.FindAll().ToList(); + this.LevelTimeLimitCache = this.LevelTimeLimit.FindAll().ToList(); + } + + private void SetWindowCorner() { + Utils.DwmSetWindowAttribute(this.menu.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.menuFilters.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.menuStatsFilter.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.menuPartyFilter.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.menuProfile.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.menuUsefulThings.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.menuFallGuysDB.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.menuFallalytics.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.trayCMenu.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.trayFilters.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.trayStatsFilter.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.trayPartyFilter.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.trayProfile.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.trayUsefulThings.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.trayFallGuysDB.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + Utils.DwmSetWindowAttribute(this.trayFallalytics.DropDown.Handle, DWMWINDOWATTRIBUTE.DWMWA_WINDOW_CORNER_PREFERENCE, ref windowConerPreference, sizeof(uint)); + } + + private Stats() { + this.DatabaseMigration(); + + this.mainWndTitle = $" {Multilingual.GetWord("main_fall_guys_stats")} v{Assembly.GetExecutingAssembly().GetName().Version.ToString(3)}"; + this.StatsDB = new LiteDatabase($@"{CURRENTDIR}data.db"); + this.StatsDB.Pragma("UTC_DATE", true); + this.UserSettings = this.StatsDB.GetCollection("UserSettings"); + + Task initUserSettingsTask = new Task(() => { + try { + this.CurrentSettings = this.UserSettings.FindAll().First(); + CurrentLanguage = (Language)this.CurrentSettings.Multilingual; + CurrentTheme = this.CurrentSettings.Theme == 0 ? MetroThemeStyle.Light : MetroThemeStyle.Dark; + } catch { + this.CurrentSettings = this.GetDefaultSettings(); + this.StatsDB.BeginTrans(); + this.UserSettings.DeleteAll(); + this.UserSettings.Insert(this.CurrentSettings); + this.StatsDB.Commit(); + } + }); + this.RunDatabaseTask(initUserSettingsTask, false); + +#if AllowUpdate + this.RemoveBackupFiles(); +#endif + + this.InitializeComponent(); + + this.SetEventWaitHandle(); + +#if !AllowUpdate + this.menu.Items.Remove(this.menuUpdate); + this.trayCMenu.Items.Remove(this.trayUpdate); +#endif + + this.ShowInTaskbar = false; + this.Opacity = 0; + this.trayCMenu.Opacity = 0; + this.textInfo = Thread.CurrentThread.CurrentCulture.TextInfo; + + UseWebProxy = this.CurrentSettings.UseProxyServer; + ProxyAddress = this.CurrentSettings.ProxyAddress; + ProxyPort = this.CurrentSettings.ProxyPort; + EnableProxyAuthentication = this.CurrentSettings.EnableProxyAuthentication; + ProxyUsername = this.CurrentSettings.ProxyUsername; + ProxyPassword = this.CurrentSettings.ProxyPassword; + SucceededTestProxy = this.CurrentSettings.SucceededTestProxy; + + IpGeolocationService = this.CurrentSettings.IpGeolocationService; + if (File.Exists($"{CURRENTDIR}{IPinfoTokenFileName}")) { + try { + StreamReader sr = new StreamReader($"{CURRENTDIR}{IPinfoTokenFileName}"); + IPinfoToken = sr.ReadLine(); + sr.Close(); + } catch { + IPinfoToken = string.Empty; + } + } else { + IPinfoToken = string.Empty; + } + + this.RoundDetails = this.StatsDB.GetCollection("RoundDetails"); + this.Profiles = this.StatsDB.GetCollection("Profiles"); + this.ServerConnectionLog = this.StatsDB.GetCollection("ServerConnectionLog"); + this.PersonalBestLog = this.StatsDB.GetCollection("PersonalBestLog"); + this.FallalyticsPbLog = this.StatsDB.GetCollection("FallalyticsPbLog"); + this.FallalyticsCrownLog = this.StatsDB.GetCollection("FallalyticsCrownLog"); + this.UpcomingShow = this.StatsDB.GetCollection("UpcomingShow"); + this.LevelTimeLimit = this.StatsDB.GetCollection("LevelTimeLimit"); + + Task ensureCollectionsIndexTask = new Task(() => { + this.StatsDB.BeginTrans(); + + this.RoundDetails.EnsureIndex(r => r.Name); + this.RoundDetails.EnsureIndex(r => r.ShowID); + this.RoundDetails.EnsureIndex(r => r.Round); + this.RoundDetails.EnsureIndex(r => r.Start); + this.RoundDetails.EnsureIndex(r => r.InParty); + + this.Profiles.EnsureIndex(p => p.ProfileId); + + this.ServerConnectionLog.EnsureIndex(f => f.SessionId); + this.PersonalBestLog.EnsureIndex(f => f.PbDate); + + this.FallalyticsPbLog.EnsureIndex(f => f.PbId); + this.FallalyticsPbLog.EnsureIndex(f => f.RoundId); + this.FallalyticsPbLog.EnsureIndex(f => f.ShowId); + + this.FallalyticsCrownLog.EnsureIndex(f => f.Id); + this.FallalyticsCrownLog.EnsureIndex(f => f.SessionId); + + this.UpcomingShow.EnsureIndex(f => f.LevelId); + this.LevelTimeLimit.EnsureIndex(f => f.LevelId); + + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(ensureCollectionsIndexTask, false); + + if (this.Profiles.Count() == 0) { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + string sysLang = CultureInfo.CurrentUICulture.Name.StartsWith("zh") ? + CultureInfo.CurrentUICulture.Name : + CultureInfo.CurrentUICulture.Name.Substring(0, 2); + using (InitLanguage initLanguageForm = new InitLanguage(sysLang)) { + if (initLanguageForm.ShowDialog(this) == DialogResult.OK) { + Task initProfilesTask = new Task(() => { + CurrentLanguage = initLanguageForm.selectedLanguage; + Overlay.SetDefaultFont(18, CurrentLanguage); + this.CurrentSettings.Multilingual = (int)initLanguageForm.selectedLanguage; + this.StatsDB.BeginTrans(); + if (initLanguageForm.autoGenerateProfiles) { + for (int i = this.PublicShowIdList.Length; i >= 1; i--) { + string showId = this.PublicShowIdList[i - 1]; + this.Profiles.Insert(new Profiles { ProfileId = i - 1, ProfileName = Multilingual.GetShowName(showId), ProfileOrder = i, LinkedShowId = showId, DoNotCombineShows = false }); + } + } else { + this.Profiles.Insert(new Profiles { ProfileId = 9, ProfileName = Multilingual.GetWord("main_profile_creative"), ProfileOrder = 10, LinkedShowId = "fall_guys_creative_mode", DoNotCombineShows = false }); + this.Profiles.Insert(new Profiles { ProfileId = 8, ProfileName = Multilingual.GetWord("main_profile_custom"), ProfileOrder = 9, LinkedShowId = "private_lobbies", DoNotCombineShows = false }); + this.Profiles.Insert(new Profiles { ProfileId = 7, ProfileName = Multilingual.GetWord("main_profile_ranked_squad"), ProfileOrder = 8, LinkedShowId = "ranked_squads_show", DoNotCombineShows = false }); + this.Profiles.Insert(new Profiles { ProfileId = 6, ProfileName = Multilingual.GetWord("main_profile_squad"), ProfileOrder = 7, LinkedShowId = "squads_4player", DoNotCombineShows = false }); + this.Profiles.Insert(new Profiles { ProfileId = 5, ProfileName = Multilingual.GetWord("main_profile_ranked_trio"), ProfileOrder = 6, LinkedShowId = "ranked_trios_show", DoNotCombineShows = false }); + this.Profiles.Insert(new Profiles { ProfileId = 4, ProfileName = Multilingual.GetWord("main_profile_trio"), ProfileOrder = 5, LinkedShowId = "squads_3player_template", DoNotCombineShows = false }); + this.Profiles.Insert(new Profiles { ProfileId = 3, ProfileName = Multilingual.GetWord("main_profile_ranked_duo"), ProfileOrder = 4, LinkedShowId = "ranked_duos_show", DoNotCombineShows = false }); + this.Profiles.Insert(new Profiles { ProfileId = 2, ProfileName = Multilingual.GetWord("main_profile_duo"), ProfileOrder = 3, LinkedShowId = "squads_2player_template", DoNotCombineShows = false }); + this.Profiles.Insert(new Profiles { ProfileId = 1, ProfileName = Multilingual.GetWord("main_profile_ranked_solo"), ProfileOrder = 2, LinkedShowId = "ranked_solo_show", DoNotCombineShows = false }); + this.Profiles.Insert(new Profiles { ProfileId = 0, ProfileName = Multilingual.GetWord("main_profile_solo"), ProfileOrder = 1, LinkedShowId = "main_show", DoNotCombineShows = false }); + } + this.StatsDB.Commit(); + this.StatsDB.UserVersion = 2; + }); + this.RunDatabaseTask(initProfilesTask, false); + } + } + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } + + this.InitLogData(); + + this.GenerateLevelStats(); + + this.StatLookup = LevelStats.ALL.ToDictionary(entry => entry.Key, entry => entry.Value); + + this.StatDetails = LevelStats.ALL + .Where(entry => !string.IsNullOrEmpty(entry.Value.ShareCode)) + .GroupBy(entry => entry.Value.ShareCode) + .Select(group => group.First().Value) + .Concat(LevelStats.ALL.Where(entry => string.IsNullOrEmpty(entry.Value.ShareCode)).Select(entry => entry.Value)) + .ToList(); + + this.DatabaseBackup(true); + + this.UpdateDatabaseDateFormat(); + + Task updateDbVersionTask = new Task(() => this.UpdateDatabaseVersion()); + this.RunDatabaseTask(updateDbVersionTask, true); + updateDbVersionTask.Wait(); + + Task.Run(() => this.UpdateDatabaseOnline(true)); + + this.BackImage = this.Icon.ToBitmap(); + this.BackMaxSize = 32; + this.BackImagePadding = new Padding(18, 18, 0, 0); + this.SetMinimumSize(); + this.ChangeLanguage(); + this.InitMainDataGridView(); + this.UpdateGridRoundName(); + this.UpdateHoopsieLegends(); + + this.overlay = new Overlay { Text = @"Fall Guys Stats Overlay", StatsForm = this, Icon = this.Icon, ShowIcon = true, BackgroundResourceName = this.CurrentSettings.OverlayBackgroundResourceName, TabResourceName = this.CurrentSettings.OverlayTabResourceName }; + + Screen screen = Utils.GetCurrentScreen(this.overlay.Location); + Point screenLocation = screen != null ? screen.Bounds.Location : Screen.PrimaryScreen.Bounds.Location; + Size screenSize = screen != null ? screen.Bounds.Size : Screen.PrimaryScreen.Bounds.Size; + this.screenCenter = new Point(screenLocation.X + (screenSize.Width / 2), screenLocation.Y + (screenSize.Height / 2)); + + this.logFile.OnParsedLogLines += this.LogFile_OnParsedLogLines; + this.logFile.OnNewLogFileDate += this.LogFile_OnNewLogFileDate; + this.logFile.OnServerConnectionNotification += this.LogFile_OnServerConnectionNotification; + this.logFile.OnPersonalBestNotification += this.LogFile_OnPersonalBestNotification; + this.logFile.OnError += this.LogFile_OnError; + this.logFile.OnParsedLogLinesCurrent += this.LogFile_OnParsedLogLinesCurrent; + this.logFile.StatsForm = this; + + string fixedPosition = this.CurrentSettings.OverlayFixedPosition; + this.overlay.SetFixedPosition( + string.Equals(fixedPosition, "ne"), + string.Equals(fixedPosition, "nw"), + string.Equals(fixedPosition, "se"), + string.Equals(fixedPosition, "sw"), + string.Equals(fixedPosition, "free") + ); + if (this.overlay.IsFixed()) this.overlay.Cursor = Cursors.Default; + this.overlay.Opacity = this.CurrentSettings.OverlayBackgroundOpacity / 100D; + this.overlay.Show(); + this.overlay.Hide(); + this.overlay.StartTimer(); + + this.UpdateGameExeLocation(); + } + + protected override void WndProc(ref Message m) { + if (m.Msg == 0x0011) { + this.Stats_ExitProgram(this, null); + } else { + base.WndProc(ref m); + } + } + + public void cmtt_levelDetails_Draw(object sender, DrawToolTipEventArgs e) { + e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear; + e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + // Draw the standard background. + //e.DrawBackground(); + // Draw the custom background. + e.Graphics.FillRectangle(CurrentTheme == MetroThemeStyle.Light ? Brushes.Black : Brushes.WhiteSmoke, e.Bounds); + + // Draw the standard border. + e.DrawBorder(); + // Draw the custom border to appear 3-dimensional. + //e.Graphics.DrawLines(SystemPens.ControlLightLight, new[] { + // new Point (0, e.Bounds.Height - 1), + // new Point (0, 0), + // new Point (e.Bounds.Width - 1, 0) + //}); + //e.Graphics.DrawLines(SystemPens.ControlDarkDark, new[] { + // new Point (0, e.Bounds.Height - 1), + // new Point (e.Bounds.Width - 1, e.Bounds.Height - 1), + // new Point (e.Bounds.Width - 1, 0) + //}); + + // Draw the standard text with customized formatting options. + //e.DrawText(TextFormatFlags.TextBoxControl | TextFormatFlags.Left | TextFormatFlags.Top | TextFormatFlags.WordBreak | TextFormatFlags.LeftAndRightPadding); + // Draw the custom text. + // The using block will dispose the StringFormat automatically. + //using (StringFormat sf = new StringFormat()) { + // sf.Alignment = StringAlignment.Near; + // sf.LineAlignment = StringAlignment.Near; + // sf.HotkeyPrefix = System.Drawing.Text.HotkeyPrefix.None; + // sf.FormatFlags = StringFormatFlags.NoWrap; + // e.Graphics.DrawString(e.ToolTipText, Overlay.GetMainFont(12), SystemBrushes.ActiveCaptionText, e.Bounds, sf); + // //using (Font f = new Font("Tahoma", 9)) { + // // e.Graphics.DrawString(e.ToolTipText, f, SystemBrushes.ActiveCaptionText, e.Bounds, sf); + // //} + //} + e.Graphics.DrawString(e.ToolTipText, InstalledEmojiFont ? new Font("Segoe UI Emoji", 8.6f) : e.Font, CurrentTheme == MetroThemeStyle.Light ? Brushes.DarkGray : Brushes.Black, new PointF(e.Bounds.X + 8, e.Bounds.Y - 8)); + + MetroToolTip t = (MetroToolTip)sender; + PropertyInfo h = t.GetType().GetProperty("Handle", BindingFlags.NonPublic | BindingFlags.Instance); + IntPtr handle = (IntPtr)h.GetValue(t); + Control c = e.AssociatedControl; + if (c.Parent != null) { + Point location = c.Parent.PointToScreen(new Point(c.Right - e.Bounds.Width, c.Bottom)); + Utils.MoveWindow(handle, location.X, location.Y, e.Bounds.Width, e.Bounds.Height, false); + } + } + + public void cmtt_levelDetails_Draw2(object sender, DrawToolTipEventArgs e) { + e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear; + e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + e.Graphics.FillRectangle(CurrentTheme == MetroThemeStyle.Light ? Brushes.Black : Brushes.WhiteSmoke, e.Bounds); + + e.DrawBorder(); + e.Graphics.DrawString(e.ToolTipText, e.Font, CurrentTheme == MetroThemeStyle.Light ? Brushes.DarkGray : Brushes.Black, new PointF(e.Bounds.X + 8, e.Bounds.Y - 8)); + + MetroToolTip t = (MetroToolTip)sender; + PropertyInfo h = t.GetType().GetProperty("Handle", BindingFlags.NonPublic | BindingFlags.Instance); + IntPtr handle = (IntPtr)h.GetValue(t); + Control c = e.AssociatedControl; + if (c.Parent != null) { + Point location = c.Parent.PointToScreen(new Point(c.Right - e.Bounds.Width, c.Bottom)); + Utils.MoveWindow(handle, location.X, location.Y, e.Bounds.Width, e.Bounds.Height, false); + } + } + + private void cmtt_overlay_Draw(object sender, DrawToolTipEventArgs e) { + e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear; + e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + // Draw the custom background. + e.Graphics.FillRectangle(CurrentTheme == MetroThemeStyle.Light ? Brushes.Black : Brushes.WhiteSmoke, e.Bounds); + + // Draw the standard border. + e.DrawBorder(); + + e.Graphics.DrawString(e.ToolTipText, e.Font, CurrentTheme == MetroThemeStyle.Light ? Brushes.DarkGray : Brushes.Black, new PointF(e.Bounds.X + 2, e.Bounds.Y + 2)); + + MetroToolTip t = (MetroToolTip)sender; + PropertyInfo h = t.GetType().GetProperty("Handle", BindingFlags.NonPublic | BindingFlags.Instance); + IntPtr handle = (IntPtr)h.GetValue(t); + Control c = e.AssociatedControl; + if (c.Parent != null) { + Point location = c.Parent.PointToScreen(new Point(c.Right - e.Bounds.Width, c.Bottom)); + Utils.MoveWindow(handle, location.X, location.Y, e.Bounds.Width, e.Bounds.Height, false); + } + } + + private void cmtt_center_Draw(object sender, DrawToolTipEventArgs e) { + e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear; + e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + // Draw the custom background. + e.Graphics.FillRectangle(CurrentTheme == MetroThemeStyle.Light ? Brushes.Black : Brushes.WhiteSmoke, e.Bounds); + + // Draw the standard border. + e.DrawBorder(); + + // Draw the custom text. + // The using block will dispose the StringFormat automatically. + using (StringFormat sf = new StringFormat()) { + sf.Alignment = StringAlignment.Center; + sf.LineAlignment = StringAlignment.Center; + sf.HotkeyPrefix = HotkeyPrefix.None; + sf.FormatFlags = StringFormatFlags.NoWrap; + e.Graphics.DrawString(e.ToolTipText, e.Font, CurrentTheme == MetroThemeStyle.Light ? Brushes.DarkGray : Brushes.Black, e.Bounds, sf); + } + + MetroToolTip t = (MetroToolTip)sender; + PropertyInfo h = t.GetType().GetProperty("Handle", BindingFlags.NonPublic | BindingFlags.Instance); + IntPtr handle = (IntPtr)h.GetValue(t); + Control c = e.AssociatedControl; + if (c.Parent != null) { + Point location = c.Parent.PointToScreen(new Point(c.Right - e.Bounds.Width, c.Bottom)); + Utils.MoveWindow(handle, location.X, location.Y, e.Bounds.Width, e.Bounds.Height, false); + } + } + + public class CustomToolStripSystemRenderer : ToolStripSystemRenderer { + protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) { + //base.OnRenderToolStripBorder(e); + } + } + + public class CustomLightArrowRenderer : ToolStripProfessionalRenderer { + public CustomLightArrowRenderer() : base(new CustomLightColorTable()) { } + protected override void OnRenderArrow (ToolStripArrowRenderEventArgs e) { + //var tsMenuItem = e.Item as ToolStripMenuItem; + //if (tsMenuItem != null) e.ArrowColor = CurrentTheme == MetroThemeStyle.Dark ? Color.DarkGray : Color.FromArgb(17, 17, 17); + //Point point = new Point(e.ArrowRectangle.Left + e.ArrowRectangle.Width / 2, e.ArrowRectangle.Top + e.ArrowRectangle.Height / 2); + //Point[] points = new Point[3] + //{ + // new Point(point.X - 2, point.Y - 4), + // new Point(point.X - 2, point.Y + 4), + // new Point(point.X + 2, point.Y) + //}; + //e.Graphics.FillPolygon(Brushes.DarkGray, points); + e.ArrowColor = Color.FromArgb(17, 17, 17); + base.OnRenderArrow(e); + } + } + + public class CustomDarkArrowRenderer : ToolStripProfessionalRenderer { + public CustomDarkArrowRenderer() : base(new CustomDarkColorTable()) { } + protected override void OnRenderArrow (ToolStripArrowRenderEventArgs e) { + //var tsMenuItem = e.Item as ToolStripMenuItem; + //if (tsMenuItem != null) e.ArrowColor = CurrentTheme == MetroThemeStyle.Dark ? Color.DarkGray : Color.FromArgb(17, 17, 17); + //Point point = new Point(e.ArrowRectangle.Left + e.ArrowRectangle.Width / 2, e.ArrowRectangle.Top + e.ArrowRectangle.Height / 2); + //Point[] points = new Point[3] + //{ + // new Point(point.X - 2, point.Y - 4), + // new Point(point.X - 2, point.Y + 4), + // new Point(point.X + 2, point.Y) + //}; + //e.Graphics.FillPolygon(Brushes.DarkGray, points); + e.ArrowColor = Color.DarkGray; + base.OnRenderArrow(e); + } + } + + private class CustomLightColorTable : ProfessionalColorTable { + public CustomLightColorTable() { UseSystemColors = false; } + //public override Color ToolStripBorder { + // get { return Color.Red; } + //} + public override Color MenuBorder { + get { return Color.White; } + } + public override Color ToolStripDropDownBackground { + get { return Color.White; } + } + public override Color MenuItemBorder { + get { return Color.DarkSeaGreen; } + } + public override Color MenuItemSelected { + get { return Color.LightGreen; } + } + //public override Color MenuItemSelectedGradientBegin { + // get { return Color.LawnGreen; } + //} + //public override Color MenuItemSelectedGradientEnd { + // get { return Color.MediumSeaGreen; } + //} + //public override Color MenuStripGradientBegin { + // get { return Color.AliceBlue; } + //} + //public override Color MenuStripGradientEnd { + // get { return Color.DodgerBlue; } + //} + } + + private class CustomDarkColorTable : ProfessionalColorTable { + public CustomDarkColorTable() { UseSystemColors = false; } + //public override Color ToolStripBorder { + // get { return Color.Red; } + //} + public override Color MenuBorder { + get { return Color.FromArgb(17, 17, 17); } + } + public override Color ToolStripDropDownBackground { + get { return Color.FromArgb(17, 17, 17); } + } + public override Color MenuItemBorder { + get { return Color.DarkSeaGreen; } + } + public override Color MenuItemSelected { + get { return Color.LightGreen; } + } + //public override Color MenuItemSelectedGradientBegin { + // get { return Color.LawnGreen; } + //} + //public override Color MenuItemSelectedGradientEnd { + // get { return Color.MediumSeaGreen; } + //} + //public override Color MenuStripGradientBegin { + // get { return Color.AliceBlue; } + //} + //public override Color MenuStripGradientEnd { + // get { return Color.DodgerBlue; } + //} + } + + private TaskbarPosition GetTaskbarPosition() { + TaskbarPosition taskbarPosition = TaskbarPosition.Bottom; + Rectangle screenBounds = Screen.GetBounds(Cursor.Position); + Rectangle workingArea = Screen.GetWorkingArea(Cursor.Position); + if (workingArea.Width == screenBounds.Width) { + if (workingArea.Top > 0) { taskbarPosition = TaskbarPosition.Top; } + } else { + if (workingArea.Left > screenBounds.Left) { + taskbarPosition = TaskbarPosition.Left; + } else if (workingArea.Right < screenBounds.Right) { + taskbarPosition = TaskbarPosition.Right; + } + } + return taskbarPosition; + } + + public void PreventOverlayMouseClicks() { + this.BeginInvoke((MethodInvoker)delegate { + if (this.overlay.IsMouseOver() && ActiveForm != this) { this.SetCursorPositionCenter(); } + }); + } + + private void SetCursorPositionCenter() { + if (this.overlay.Location.X <= this.screenCenter.X && this.overlay.Location.Y <= this.screenCenter.Y) { + Cursor.Position = new Point(this.screenCenter.X * 2, this.screenCenter.Y * 2); // NW + } else if (this.overlay.Location.X <= this.screenCenter.X && this.overlay.Location.Y > this.screenCenter.Y) { + Cursor.Position = new Point(this.screenCenter.X * 2, 0); // SW + } else if (this.overlay.Location.X > this.screenCenter.X && this.overlay.Location.Y <= this.screenCenter.Y) { + Cursor.Position = new Point(0, this.screenCenter.Y * 2); // NE + } else if (this.overlay.Location.X > this.screenCenter.X && this.overlay.Location.Y > this.screenCenter.Y) { + Cursor.Position = new Point(0, 0); // SE + } + } + + public void SetSecretKey() { + Type type = Type.GetType("FallGuysStats.SecretKey"); + if (type != null) { + MethodInfo methodInfo = type.GetMethod("VERIFY", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); + methodInfo?.Invoke(null, null); + FieldInfo fieldInfo = type.GetField("FALLALYTICS_KEY", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); + if (fieldInfo != null) { + object value = fieldInfo.GetValue(null); + Environment.SetEnvironmentVariable("FALLALYTICS_KEY", value as string); + } else { + Environment.SetEnvironmentVariable("FALLALYTICS_KEY", ""); + } + } else { + Environment.SetEnvironmentVariable("FALLALYTICS_KEY", ""); + } + } + + private void SetTheme(MetroThemeStyle theme) { + this.SuspendLayout(); + this.mtt.Theme = theme; + this.omtt.Theme = theme; + this.menu.Renderer = theme == MetroThemeStyle.Light ? new CustomLightArrowRenderer() : new CustomDarkArrowRenderer() as ToolStripRenderer; + this.trayCMenu.Renderer = theme == MetroThemeStyle.Light ? new CustomLightArrowRenderer() : new CustomDarkArrowRenderer() as ToolStripRenderer; + foreach (Control c1 in Controls) { + if (c1 is MenuStrip ms1) { + foreach (var item in ms1.Items) { + if (item is ToolStripMenuItem tsmi1) { + if (Equals(tsmi1, this.menuSettings)) { + tsmi1.Image = theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; + tsmi1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi1, this.menuFilters)) { + tsmi1.Image = theme == MetroThemeStyle.Light ? Properties.Resources.filter_icon : Properties.Resources.filter_gray_icon; + tsmi1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi1, this.menuProfile)) { + tsmi1.Image = theme == MetroThemeStyle.Light ? Properties.Resources.profile_icon : Properties.Resources.profile_gray_icon; + tsmi1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi1, this.menuUpdate)) { + tsmi1.Image = theme == MetroThemeStyle.Light ? (this.isAvailableNewVersion ? Properties.Resources.github_update_icon : Properties.Resources.github_icon) + : (this.isAvailableNewVersion ? Properties.Resources.github_update_gray_icon : Properties.Resources.github_gray_icon); + tsmi1.ForeColor = this.isAvailableNewVersion ? (theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow) : (theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray); + } else if (Equals(tsmi1, this.menuHelp)) { + tsmi1.Image = theme == MetroThemeStyle.Light ? Properties.Resources.github_icon : Properties.Resources.github_gray_icon; + tsmi1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi1, this.menuOverlay)) { + tsmi1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi1, this.menuLaunchFallGuys)) { + tsmi1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi1, this.menuUsefulThings)) { + tsmi1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + + tsmi1.MouseEnter += this.menu_MouseEnter; + tsmi1.MouseLeave += this.menu_MouseLeave; + foreach (var item1 in tsmi1.DropDownItems) { + if (item1 is ToolStripMenuItem subTsmi1) { + if (Equals(subTsmi1, this.menuEditProfiles)) { subTsmi1.Image = theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; } + subTsmi1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + subTsmi1.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + subTsmi1.MouseEnter += this.menu_MouseEnter; + subTsmi1.MouseLeave += this.menu_MouseLeave; + foreach (var item2 in subTsmi1.DropDownItems) { + if (item2 is ToolStripMenuItem subTsmi2) { + if (Equals(subTsmi2, this.menuCustomRangeStats)) { subTsmi2.Image = theme == MetroThemeStyle.Light ? Properties.Resources.calendar_icon : Properties.Resources.calendar_gray_icon; } + subTsmi2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + subTsmi2.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + subTsmi2.MouseEnter += this.menu_MouseEnter; + subTsmi2.MouseLeave += this.menu_MouseLeave; + } else if (item2 is ToolStripSeparator subTss2) { + subTss2.Paint += this.CustomToolStripSeparatorCustom_Paint; + subTss2.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + subTss2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + } + } else if (item1 is ToolStripSeparator subTss1) { + subTss1.Paint += this.CustomToolStripSeparatorCustom_Paint; + subTss1.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + subTss1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + } + } + } + } else if (c1 is ToolStrip ts1) { + ts1.BackColor = Color.Transparent; + foreach (var tsi1 in ts1.Items) { + if (tsi1 is ToolStripLabel tsl1) { + if (Equals(tsl1, this.lblCurrentProfile)) { + tsl1.Font = Overlay.GetMainFont(14f); + tsl1.ForeColor = theme == MetroThemeStyle.Light ? Color.Red : Color.FromArgb(0, 192, 192); + } else if (Equals(tsl1, this.lblTotalTime)) { + tsl1.Font = Overlay.GetMainFont(14f); + tsl1.Image = theme == MetroThemeStyle.Light ? Properties.Resources.clock_icon : Properties.Resources.clock_gray_icon; + tsl1.ForeColor = theme == MetroThemeStyle.Light ? Color.Blue : Color.Orange; + } else if (Equals(tsl1, this.lblTotalShows) || Equals(tsl1, this.lblTotalWins)) { + tsl1.ForeColor = theme == MetroThemeStyle.Light ? Color.Blue : Color.Orange; + } else if (Equals(tsl1, this.lblTotalRounds)) { + tsl1.Image = theme == MetroThemeStyle.Light ? Properties.Resources.round_icon : Properties.Resources.round_gray_icon; + tsl1.ForeColor = theme == MetroThemeStyle.Light ? Color.Blue : Color.Orange; + } else if (Equals(tsl1, this.lblTotalFinals)) { + tsl1.Image = theme == MetroThemeStyle.Light ? Properties.Resources.final_icon : Properties.Resources.final_gray_icon; + tsl1.ForeColor = theme == MetroThemeStyle.Light ? Color.Blue : Color.Orange; + } else if (Equals(tsl1, this.lblGoldMedal) || Equals(tsl1, this.lblSilverMedal) || + Equals(tsl1, this.lblBronzeMedal) || Equals(tsl1, this.lblPinkMedal) || + Equals(tsl1, this.lblEliminatedMedal) || Equals(tsl1, this.lblKudos)) { + tsl1.Font = Overlay.GetMainFont(14f); + tsl1.ForeColor = theme == MetroThemeStyle.Light ? Color.DarkSlateGray : Color.DarkGray; + } + } else if (tsi1 is ToolStripSeparator tss1) { + tss1.ForeColor = theme == MetroThemeStyle.Light ? Color.DarkSlateGray : Color.DarkGray; break; + } + } + } else if (c1 is MetroToggle mt1) { + mt1.Theme = theme; + } else if (c1 is MetroLink ml1) { + ml1.Theme = theme; + } else if (c1 is Label lbl1) { + lbl1.Font = Overlay.GetMainFont(13f); + if (Equals(lbl1, this.lblCreativeLevel)) { + lbl1.ForeColor = this.mtgCreativeLevel.Checked ? (theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow) : (theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray); + } else if (Equals(lbl1, this.lblIgnoreLevelTypeWhenSorting)) { + lbl1.ForeColor = this.mtgIgnoreLevelTypeWhenSorting.Checked ? (theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow) : (theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray); + } + } + } + + this.gridDetails.Theme = theme; + this.gridDetails.SetContextMenuTheme(); + this.gridDetails.BackgroundColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + this.dataGridViewCellStyle1.BackColor = theme == MetroThemeStyle.Light ? Color.LightGray : Color.FromArgb(2, 2, 2); + this.dataGridViewCellStyle1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.dataGridViewCellStyle1.SelectionBackColor = theme == MetroThemeStyle.Light ? Color.Cyan : Color.DarkSlateBlue; + //this.dataGridViewCellStyle1.SelectionForeColor = Color.Black; + this.dataGridViewCellStyle2.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(49, 51, 56); + this.dataGridViewCellStyle2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.WhiteSmoke; + this.dataGridViewCellStyle2.SelectionBackColor = theme == MetroThemeStyle.Light ? Color.DeepSkyBlue : Color.PaleGreen; + this.dataGridViewCellStyle2.SelectionForeColor = Color.Black; + + foreach (var item in this.trayCMenu.Items) { + if (item is ToolStripMenuItem tsmi) { + tsmi.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + tsmi.MouseEnter += this.trayMenu_MouseEnter; + tsmi.MouseLeave += this.trayMenu_MouseLeave; + if (Equals(tsmi, this.traySettings)) { + tsmi.Image = theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; + tsmi.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.trayFilters)) { + tsmi.Image = theme == MetroThemeStyle.Light ? Properties.Resources.filter_icon : Properties.Resources.filter_gray_icon; + tsmi.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.trayProfile)) { + tsmi.Image = theme == MetroThemeStyle.Light ? Properties.Resources.profile_icon : Properties.Resources.profile_gray_icon; + tsmi.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.trayUpdate)) { + tsmi.Image = theme == MetroThemeStyle.Light ? (this.isAvailableNewVersion ? Properties.Resources.github_update_icon : Properties.Resources.github_icon) + : (this.isAvailableNewVersion ? Properties.Resources.github_update_gray_icon : Properties.Resources.github_gray_icon); + tsmi.ForeColor = this.isAvailableNewVersion ? (theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow) : (theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray); + } else if (Equals(tsmi, this.trayHelp)) { + tsmi.Image = theme == MetroThemeStyle.Light ? Properties.Resources.github_icon : Properties.Resources.github_gray_icon; + tsmi.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.trayExitProgram)) { + tsmi.Image = theme == MetroThemeStyle.Light ? Properties.Resources.shutdown_icon : Properties.Resources.shutdown_gray_icon; + tsmi.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.trayOverlay)) { + tsmi.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.trayLaunchFallGuys)) { + tsmi.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.trayUsefulThings)) { + tsmi.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + + foreach (var subItem1 in tsmi.DropDownItems) { + if (subItem1 is ToolStripMenuItem stsmi1) { + if (Equals(stsmi1, this.trayEditProfiles)) { stsmi1.Image = theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; } + stsmi1.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + stsmi1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + stsmi1.MouseEnter += this.trayMenu_MouseEnter; + stsmi1.MouseLeave += this.trayMenu_MouseLeave; + foreach (var subItem2 in stsmi1.DropDownItems) { + if (subItem2 is ToolStripMenuItem stsmi2) { + if (Equals(stsmi2, this.trayCustomRangeStats)) { stsmi2.Image = theme == MetroThemeStyle.Light ? Properties.Resources.calendar_icon : Properties.Resources.calendar_gray_icon; } + stsmi2.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + stsmi2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + stsmi2.MouseEnter += this.trayMenu_MouseEnter; + stsmi2.MouseLeave += this.trayMenu_MouseLeave; + } else if (subItem2 is ToolStripSeparator stss2) { + stss2.Paint += this.CustomToolStripSeparatorCustom_Paint; + stss2.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + stss2.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + } + } else if (subItem1 is ToolStripSeparator stss1) { + stss1.Paint += this.CustomToolStripSeparatorCustom_Paint; + stss1.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + stss1.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + } + } else if (item is ToolStripSeparator tss) { + tss.Paint += this.CustomToolStripSeparatorCustom_Paint; + tss.BackColor = theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + tss.ForeColor = theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + } + this.Theme = theme; + this.ResumeLayout(); + this.Invalidate(true); + } + + private void CustomToolStripSeparatorCustom_Paint(Object sender, PaintEventArgs e) { + ToolStripSeparator separator = (ToolStripSeparator)sender; + e.Graphics.FillRectangle(new SolidBrush(this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17)), 0, 0, separator.Width, separator.Height); // CUSTOM_COLOR_BACKGROUND + e.Graphics.DrawLine(new Pen(this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray), 30, separator.Height / 2, separator.Width - 4, separator.Height / 2); // CUSTOM_COLOR_FOREGROUND + } + + private void trayMenu_MouseEnter(object sender, EventArgs e) { + switch (sender) { + case ToolStripMenuItem tsi: { + tsi.ForeColor = Color.Black; + if (Equals(tsi, this.traySettings)) { + tsi.Image = Properties.Resources.setting_icon; + } else if (Equals(tsi, this.trayFilters)) { + tsi.Image = Properties.Resources.filter_icon; + } else if (Equals(tsi, this.trayCustomRangeStats)) { + tsi.Image = Properties.Resources.calendar_icon; + } else if (Equals(tsi, this.trayProfile)) { + tsi.Image = Properties.Resources.profile_icon; + } else if (Equals(tsi, this.trayUpdate)) { + tsi.Image = this.isAvailableNewVersion ? Properties.Resources.github_update_icon : Properties.Resources.github_icon; + } else if (Equals(tsi, this.trayHelp)) { + tsi.Image = Properties.Resources.github_icon; + } else if (Equals(tsi, this.trayEditProfiles)) { + tsi.Image = Properties.Resources.setting_icon; + } else if (Equals(tsi, this.trayExitProgram)) { + tsi.Image = Properties.Resources.shutdown_icon; + } + break; + } + } + } + + private void trayMenu_MouseLeave(object sender, EventArgs e) { + this.Cursor = Cursors.Default; + switch (sender) { + case ToolStripMenuItem tsi: { + if (Equals(tsi, this.traySettings)) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; + tsi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsi, this.trayFilters)) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.filter_icon : Properties.Resources.filter_gray_icon; + tsi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsi, this.trayCustomRangeStats)) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.calendar_icon : Properties.Resources.calendar_gray_icon; + tsi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsi, this.trayProfile)) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.profile_icon : Properties.Resources.profile_gray_icon; + tsi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsi, this.trayUpdate)) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? (this.isAvailableNewVersion ? Properties.Resources.github_update_icon : Properties.Resources.github_icon) + : (this.isAvailableNewVersion ? Properties.Resources.github_update_gray_icon : Properties.Resources.github_gray_icon); + tsi.ForeColor = this.isAvailableNewVersion ? (this.Theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow) : (this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray); + } else if (Equals(tsi, this.trayHelp)) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.github_icon : Properties.Resources.github_gray_icon; + tsi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsi, this.trayEditProfiles)) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; + tsi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsi, this.trayExitProgram)) { + tsi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.shutdown_icon : Properties.Resources.shutdown_gray_icon; + tsi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else { + tsi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + break; + } + } + } + + private void menu_MouseEnter(object sender, EventArgs e) { + switch (sender) { + case ToolStripMenuItem tsmi: { + tsmi.ForeColor = Color.Black; + if (Equals(tsmi, this.menuSettings)) { + tsmi.Image = Properties.Resources.setting_icon; + } else if (Equals(tsmi, this.menuFilters)) { + tsmi.Image = Properties.Resources.filter_icon; + } else if (Equals(tsmi, this.menuCustomRangeStats)) { + tsmi.Image = Properties.Resources.calendar_icon; + } else if (Equals(tsmi, this.menuProfile)) { + tsmi.Image = Properties.Resources.profile_icon; + } else if (Equals(tsmi, this.menuUpdate)) { + tsmi.Image = this.isAvailableNewVersion ? Properties.Resources.github_update_icon : Properties.Resources.github_icon; + } else if (Equals(tsmi, this.menuHelp)) { + tsmi.Image = Properties.Resources.github_icon; + } else if (Equals(tsmi, this.menuEditProfiles)) { + tsmi.Image = Properties.Resources.setting_icon; + } + break; + } + } + } + + private void menu_MouseLeave(object sender, EventArgs e) { + this.Cursor = Cursors.Default; + switch (sender) { + case ToolStripMenuItem tsmi: { + if (Equals(tsmi, this.menuSettings)) { + tsmi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; + tsmi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.menuFilters)) { + tsmi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.filter_icon : Properties.Resources.filter_gray_icon; + tsmi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.menuCustomRangeStats)) { + tsmi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.calendar_icon : Properties.Resources.calendar_gray_icon; + tsmi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.menuProfile)) { + tsmi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.profile_icon : Properties.Resources.profile_gray_icon; + tsmi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.menuUpdate)) { + tsmi.Image = this.Theme == MetroThemeStyle.Light ? (this.isAvailableNewVersion ? Properties.Resources.github_update_icon : Properties.Resources.github_icon) + : (this.isAvailableNewVersion ? Properties.Resources.github_update_gray_icon : Properties.Resources.github_gray_icon); + tsmi.ForeColor = this.isAvailableNewVersion ? (this.Theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow) : (this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray); + } else if (Equals(tsmi, this.menuHelp)) { + tsmi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.github_icon : Properties.Resources.github_gray_icon; + tsmi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (Equals(tsmi, this.menuEditProfiles)) { + tsmi.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; + tsmi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else { + tsmi.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + break; + } + } + } + + private void infoStrip_MouseEnter(object sender, EventArgs e) { + switch (sender) { + case ToolStripLabel lblInfo: { + this.Cursor = Cursors.Hand; + this.infoStripForeColor = Equals(lblInfo, this.lblCurrentProfile) + ? this.Theme == MetroThemeStyle.Light ? Color.Red : Color.FromArgb(0, 192, 192) + : this.Theme == MetroThemeStyle.Light ? Color.Blue : Color.Orange; + + lblInfo.ForeColor = Equals(lblInfo, this.lblCurrentProfile) + ? this.Theme == MetroThemeStyle.Light ? Color.FromArgb(245, 154, 168) : Color.FromArgb(231, 251, 255) + : this.Theme == MetroThemeStyle.Light ? Color.FromArgb(147, 174, 248) : Color.FromArgb(255, 250, 244); + + Point cursorPosition = this.PointToClient(Cursor.Position); + Point position = new Point(cursorPosition.X + 16, cursorPosition.Y + 16); + this.AllocCustomTooltip(this.cmtt_center_Draw); + if (Equals(lblInfo, this.lblCurrentProfileIcon)) { + this.ShowCustomTooltip(Multilingual.GetWord($"{(this.CurrentSettings.AutoChangeProfile ? "profile_icon_enable_tooltip" : "profile_icon_disable_tooltip")}"), this, position); + } else if (Equals(lblInfo, this.lblCurrentProfile)) { + this.ShowCustomTooltip(Multilingual.GetWord("profile_change_tooltip"), this, position); + } else if (Equals(lblInfo, this.lblTotalShows)) { + this.ShowCustomTooltip(Multilingual.GetWord("shows_detail_tooltip"), this, position); + } else if (Equals(lblInfo, this.lblTotalRounds)) { + this.ShowCustomTooltip(Multilingual.GetWord("rounds_detail_tooltip"), this, position); + } else if (Equals(lblInfo, this.lblTotalFinals)) { + this.ShowCustomTooltip(Multilingual.GetWord("finals_detail_tooltip"), this, position); + } else if (Equals(lblInfo, this.lblTotalWins)) { + this.ShowCustomTooltip(Multilingual.GetWord("wins_detail_tooltip"), this, position); + } else if (Equals(lblInfo, this.lblTotalTime)) { + this.ShowCustomTooltip(Multilingual.GetWord("stats_detail_tooltip"), this, position); + } + + break; + } + } + } + + private void infoStrip_MouseLeave(object sender, EventArgs e) { + this.Cursor = Cursors.Default; + this.HideCustomTooltip(this); + if (sender is ToolStripLabel lblInfo) { + lblInfo.ForeColor = this.infoStripForeColor; + } + } + + public void ReloadProfileMenuItems() { + this.ProfileMenuItems.Clear(); + this.menuProfile.DropDownItems.Clear(); + this.menuProfile.DropDownItems.Add(this.menuEditProfiles); + this.menuProfile.DropDownItems.Add(this.menuSeparator2); + this.menuSeparator2.Paint += this.CustomToolStripSeparatorCustom_Paint; + this.menuSeparator2.BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + this.menuSeparator2.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + + this.ProfileTrayItems.Clear(); + this.trayProfile.DropDownItems.Clear(); + this.trayProfile.DropDownItems.Add(this.trayEditProfiles); + this.trayProfile.DropDownItems.Add(this.traySubSeparator2); + this.traySubSeparator2.Paint += this.CustomToolStripSeparatorCustom_Paint; + this.traySubSeparator2.BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + this.traySubSeparator2.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + + this.AllProfiles.Clear(); + this.AllProfiles = this.Profiles.FindAll().ToList(); + this.profileWithLinkedCustomShow = this.AllProfiles.Find(p => string.Equals(p.LinkedShowId, "private_lobbies"))?.ProfileId ?? -1; + int profileNumber = 0; + for (int i = this.AllProfiles.Count - 1; i >= 0; i--) { + Profiles profile = this.AllProfiles[i]; + ToolStripMenuItem menuItem = new ToolStripMenuItem { + Checked = this.CurrentSettings.SelectedProfile == profile.ProfileId, + CheckOnClick = true, + CheckState = this.CurrentSettings.SelectedProfile == profile.ProfileId ? CheckState.Checked : CheckState.Unchecked, + Name = $@"menuProfile{profile.ProfileId}" + }; + ToolStripMenuItem trayItem = new ToolStripMenuItem { + Checked = this.CurrentSettings.SelectedProfile == profile.ProfileId, + CheckOnClick = true, + CheckState = this.CurrentSettings.SelectedProfile == profile.ProfileId ? CheckState.Checked : CheckState.Unchecked, + Name = $@"menuProfile{profile.ProfileId}" + }; + + switch (profileNumber++) { + case 0: menuItem.Image = this.numberOne; trayItem.Image = this.numberOne; break; + case 1: menuItem.Image = this.numberTwo; trayItem.Image = this.numberTwo; break; + case 2: menuItem.Image = this.numberThree; trayItem.Image = this.numberThree; break; + case 3: menuItem.Image = this.numberFour; trayItem.Image = this.numberFour; break; + case 4: menuItem.Image = this.numberFive; trayItem.Image = this.numberFive; break; + case 5: menuItem.Image = this.numberSix; trayItem.Image = this.numberSix; break; + case 6: menuItem.Image = this.numberSeven; trayItem.Image = this.numberSeven; break; + case 7: menuItem.Image = this.numberEight; trayItem.Image = this.numberEight; break; + case 8: menuItem.Image = this.numberNine; trayItem.Image = this.numberNine; break; + } + menuItem.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + menuItem.BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + menuItem.Size = new Size(180, 22); + menuItem.Text = profile.ProfileName.Replace("&", "&&"); + menuItem.Click += this.menuStats_Click; + menuItem.Paint += this.menuProfile_Paint; + menuItem.MouseMove += this.setCursor_MouseMove; + // menuItem.MouseLeave += this.setCursor_MouseLeave; + menuItem.MouseEnter += this.menu_MouseEnter; + menuItem.MouseLeave += this.menu_MouseLeave; + this.menuProfile.DropDownItems.Add(menuItem); + this.ProfileMenuItems.Add(menuItem); + + trayItem.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + trayItem.BackColor = this.Theme == MetroThemeStyle.Light ? Color.White : Color.FromArgb(17, 17, 17); + trayItem.Size = new Size(180, 22); + trayItem.Text = profile.ProfileName.Replace("&", "&&"); + trayItem.Click += this.menuStats_Click; + trayItem.Paint += this.menuProfile_Paint; + trayItem.MouseEnter += this.trayMenu_MouseEnter; + trayItem.MouseLeave += this.trayMenu_MouseLeave; + this.trayProfile.DropDownItems.Add(trayItem); + this.ProfileTrayItems.Add(trayItem); + + //((ToolStripDropDownMenu)menuProfile.DropDown).ShowCheckMargin = true; + //((ToolStripDropDownMenu)menuProfile.DropDown).ShowImageMargin = true; + + if (this.CurrentSettings.SelectedProfile == profile.ProfileId) { + if (this.AllProfiles.Count != 0) this.SetCurrentProfileIcon(!string.IsNullOrEmpty(profile.LinkedShowId)); + this.menuStats_Click(menuItem, EventArgs.Empty); + } + } + } + + private void menuProfile_Paint(object sender, PaintEventArgs e) { + if (this.AllProfiles.FindIndex(p => string.Equals(p.ProfileId.ToString(), ((ToolStripMenuItem)sender).Name.Substring(11)) && !string.IsNullOrEmpty(p.LinkedShowId)) != -1) { + e.Graphics.DrawImage(this.CurrentSettings.AutoChangeProfile ? Properties.Resources.link_on_icon : + this.Theme == MetroThemeStyle.Light ? Properties.Resources.link_icon : Properties.Resources.link_gray_icon, 21, 5, 11, 11); + } + } + +#if AllowUpdate + private void RemoveBackupFiles() { + foreach (string file in Directory.EnumerateFiles(CURRENTDIR, "*.bak")) { + try { + File.SetAttributes(file, FileAttributes.Normal); + File.Delete(file); + } catch { + // ignored + } + } + } +#endif + + private void UpdateDatabaseDateFormat() { + if (!this.CurrentSettings.UpdatedDateFormat) { + Task updateDbDateFormatTask = new Task(() => { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + info.Start = DateTime.SpecifyKind(info.Start.ToLocalTime(), DateTimeKind.Utc); + info.End = DateTime.SpecifyKind(info.End.ToLocalTime(), DateTimeKind.Utc); + info.Finish = info.Finish.HasValue ? DateTime.SpecifyKind(info.Finish.Value.ToLocalTime(), DateTimeKind.Utc) : (DateTime?)null; + this.RoundDetails.Update(info); + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + }); + this.RunDatabaseTask(updateDbDateFormatTask, false); + this.CurrentSettings.UpdatedDateFormat = true; + this.SaveUserSettings(); + } + } + + private void UpdateDatabaseVersion() { + for (int version = this.CurrentSettings.Version; version < currentDbVersion; version++) { + switch (version) { + case 134: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "reversed_knockout_show") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "main_show")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsFinal = ri.Round == 3 || string.Equals(ri.Name, "round_door_dash"); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 133: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_only_finals_v3_ranked") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "ranked_solo_show")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsFinal = ri.Round == 5 || string.Equals(ri.RoundId, "kraken_attack_only_finals_final_ranked"); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 132: { + DateTime dateCond = new DateTime(2025, 10, 10, 12, 0, 0, DateTimeKind.Utc); + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where (string.Equals(ri.ShowNameId, "event_animals_template") || + string.Equals(ri.ShowNameId, "event_snowday_stumble")) && ri.Start >= dateCond + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (ri.Round == 4) ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where (string.Equals(ri.ShowNameId, "event_only_hoverboard_template") || + string.Equals(ri.ShowNameId, "event_yeetus_template") || + string.Equals(ri.ShowNameId, "wle_mrs_bouncy_bean_time")) && ri.Start >= dateCond + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + if (ri.Round == 3) ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + + List roundInfoList3 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "fp16_ski_fall_high_scorers") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList3) { + if (ri.Round == 1) ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList3); + this.StatsDB.Commit(); + + List roundInfoList4 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_only_slime_climb_2_template") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList4) { + if (string.Equals(ri.RoundId, "round_slimeclimb_2_event_only_final")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList4); + this.StatsDB.Commit(); + + List roundInfoList5 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_only_tip_toe_template") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList5) { + if (ri.Round == 3 || string.Equals(ri.RoundId, "round_tip_toe_event_only_final")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList5); + this.StatsDB.Commit(); + + List roundInfoList6 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_sports_suddendeath_squads") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList6) { + if (ri.Round == 2 || string.Equals(ri.RoundId, "round_sports_suddendeath_fall_ball_02")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList6); + this.StatsDB.Commit(); + + List roundInfoList7 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_squads_survival_template") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList7) { + if (string.Equals(ri.Name, "round_floor_fall") || string.Equals(ri.Name, "round_thin_ice")) { + ri.IsFinal = false; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList7); + this.StatsDB.Commit(); + + if (this.UpcomingShowCache.Any()) { + List roundInfoList8 = (from ri in this.RoundDetails.FindAll() + where this.UpcomingShowCache.Exists(u => string.Equals(u.LevelId, ri.Name)) && + string.IsNullOrEmpty(ri.CreativeShareCode) + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList8) { + ri.CreativeShareCode = this.UpcomingShowCache.Find(u => string.Equals(u.LevelId, ri.Name)).ShareCode; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList8); + this.StatsDB.Commit(); + } + break; + } + case 131: { + this.CurrentSettings.WinPerDayGraphStyle = 2; + break; + } + case 130: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_nature_ltm") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (ri.Round == 3 || string.Equals(ri.Name, "logroll_nature_ltm")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 129: { + this.CurrentSettings.LevelTimeLimitVersion = 0; + if (Utils.IsInternetConnected()) { + this.UpdateLevelTimeLimit(); + } + break; + } + case 128: { + List profileList = this.Profiles.FindAll().ToList(); + + foreach (Profiles p in profileList) { + if (string.Equals(p.LinkedShowId, "event_only_races_any_final_template") && !p.DoNotCombineShows) { + p.DoNotCombineShows = true; + } + } + this.StatsDB.BeginTrans(); + this.Profiles.DeleteAll(); + this.Profiles.InsertBulk(profileList); + this.StatsDB.Commit(); + + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && ri.ShowNameId.StartsWith("greatestsquads_") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (ri.Round == 3 || string.Equals(ri.Name, "gs_slimecycle")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_only_fall_ball_trios_ranked") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + if (ri.Round == 3 || string.Equals(ri.RoundId, "round_fall_ball_cup_only_trios_final")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 127: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "xtreme_solos_template_ranked") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "ranked_solo_show")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "no_elimination_show") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + if (ri.Round == 3) ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 126: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_yeetus_template") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.Name, "round_tip_toe") && ri.Players <= 9) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 125: { + DateTime dateCond = new DateTime(2025, 7, 29, 9, 0, 0, DateTimeKind.Utc); + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && + ri.ShowNameId.StartsWith("knockout_") && + ri.Start >= dateCond + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if ((this.StatLookup.TryGetValue(ri.Name, out LevelStats levelStats) && levelStats.IsFinal) + || string.Equals(ri.Name, "knockout_rotateandeliminate") + || string.Equals(ri.Name, "knockout_gooprope_rodeo") + || string.Equals(ri.Name, "knockout_slimeballshowdown") + || string.Equals(ri.Name, "knockout_blunderblocks") + || string.Equals(ri.Name, "knockout_pier_pressure")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "showcase_fp20") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList2) { + if (profileId != -1) ri.Profile = profileId; + if (ri.Round == 3 || string.Equals(ri.Name, "showcase_boats")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + + List roundInfoList3 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "anniversary_fp12_ltm") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList3) { + if (ri.Round == 10) ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList3); + this.StatsDB.Commit(); + break; + } + case 124: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_only_slime_climb_2_template") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (ri.Round == 3) ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "sports_show") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + if (ri.Round == 3 || string.Equals(ri.Name, "round_fall_ball_60_players")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 123: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_nature_ltm") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.Name, "showcase_frogjet")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 122: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_only_finals_v3_template") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (ri.Name.EndsWith("_final")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 121: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_bouncy_bean_time") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.Name, "showcase_rollinruins")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "showcase_fp19") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList2) { + if (profileId != -1) ri.Profile = profileId; + if (ri.Round == 3 || string.Equals(ri.Name, "fp19_mellowcakes")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 120: { + if (this.CurrentSettings.SelectedCustomTemplateSeason == 9) { + this.CurrentSettings.SelectedCustomTemplateSeason = -1; + } + break; + } + case 119: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "greatestsquads_ltm") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + if (ri.Round == 3 || string.Equals(ri.Name, "gs_slimecycle")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 118: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "squads_2player_template") || string.Equals(ri.ShowNameId, "squads_4player") || + string.Equals(ri.ShowNameId, "classic_duos_show") || string.Equals(ri.ShowNameId, "classic_squads_show") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.Name, "round_1v1_volleyfall_symphony_launch_show") || string.Equals(ri.Name, "round_hoops_revenge_symphony_launch_show")) { + ri.IsTeam = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 117: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "showcase_fp13") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.Name, "scrapyard_derrameburbujeante")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 116: { + List profileList = this.Profiles.FindAll().ToList(); + + foreach (Profiles p in profileList) { + if (string.Equals(p.LinkedShowId, "ranked_show_knockout") && !p.DoNotCombineShows) { + p.LinkedShowId = "ranked_solo_show"; + } + } + this.StatsDB.BeginTrans(); + this.Profiles.DeleteAll(); + this.Profiles.InsertBulk(profileList); + this.StatsDB.Commit(); + + DateTime dateCond = new DateTime(2025, 4, 1, 9, 0, 0, DateTimeKind.Utc); + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "knockout_mode") && + ri.Start >= dateCond + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if ((ri.Name.StartsWith("ranked_") && ri.Name.EndsWith("_final")) + || string.Equals(ri.Name, "round_floor_fall") + || string.Equals(ri.Name, "round_kraken_attack") + || string.Equals(ri.Name, "round_tunnel_final") + || string.Equals(ri.Name, "round_blastball_arenasurvival_symphony_launch_show")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 115: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "showcase_fp18") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + if (string.Equals(ri.Name, "showcase_bulletfallwoods") || string.Equals(ri.Name, "showcase_treeclimberswoods")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && + ri.ShowNameId.StartsWith("ranked_") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + if (ri.Name.StartsWith("ranked_") && ri.Name.EndsWith("_final")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 114: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_nature_ltm") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.IsFinal = string.Equals(ri.Name, "logroll_nature_ltm") || string.Equals(ri.Name, "lilypadlimbo_nature_ltm") || string.Equals(ri.Name, "junglewall_nature_ltm"); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 113: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_bouncy_bean_time") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.IsFinal = ri.Name.IndexOf("_final", StringComparison.OrdinalIgnoreCase) != -1; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 112: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "knockout_mode") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.Name, "round_fp17_knockout_castlesiege") || string.Equals(ri.Name, "round_fp17_knockout_gardenpardon")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_snowday_stumble") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + if (string.Equals(ri.Name, "round_cloudyteacups_final_sds") || string.Equals(ri.Name, "round_goopropegrandslam_final_sds")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 111: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "showcase_fp17") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + if (string.Equals(ri.Name, "round_fp17_gardenpardon") || string.Equals(ri.Name, "round_fp17_castlesiege")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + // + // List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + // where string.Equals(ri.ShowNameId, "ftue_uk_show") + // select ri).ToList(); + // + // foreach (RoundInfo ri in roundInfoList2) { + // if (string.Equals(ri.Name, "round_fp17_knockout_castlesiege") + // || string.Equals(ri.Name, "knockout_circleoslime_final_survival") + // || string.Equals(ri.Name, "knockout_goopropegrandslamgoldrush_final_survival") + // || string.Equals(ri.Name, "knockout_rollerderby_final") + // || string.Equals(ri.Name, "knockout_mode_cloudyteacupsgoldrush_final") + // || string.Equals(ri.Name, "round_fp17_knockout_gardenpardon") + // || string.Equals(ri.Name, "round_fp17_knockout_gardenpardon")) { + // ri.IsFinal = true; + // } + // } + // this.StatsDB.BeginTrans(); + // this.RoundDetails.Update(roundInfoList2); + // this.StatsDB.Commit(); + break; + } + case 110: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "fp16_ski_fall_high_scorers") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 109: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "showcase_fp16") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + if (ri.Name.EndsWith("_final") || ri.Name.EndsWith("_goopropegrandslam")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "mrs_pegwin_winter_2teamsfinal") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + if (string.Equals(ri.Name, "round_penguin_solos") || string.Equals(ri.Name, "round_chicken_chase")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 108: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "showcase_fp13") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (ri.Name.EndsWith("_final")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 107: { + DateTime dateCond = new DateTime(2024, 11, 17, 10, 0, 0, DateTimeKind.Utc); + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_animals_template") && + ri.Start >= dateCond + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.Name, "round_drumtop") && ri.Players <= 10) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 106: { + DateTime dateCond = new DateTime(2024, 10, 25, 12, 0, 0, DateTimeKind.Utc); + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_only_button_bashers_template") && + ri.Start >= dateCond + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (ri.Round < 4) { + ri.IsFinal = false; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 105: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "explore_points") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.ShowNameId = "user_creative_hunt_round"; + ri.UseShareCode = true; + ri.Name = ri.Name.Substring(4, 14); + ri.CreativeShareCode = ri.Name; + ri.CreativeTitle = ri.Name; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 104: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "explore_points") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsCasualShow = true; + ri.Round = 1; + ri.Qualified = ri.Finish.HasValue; + ri.IsFinal = false; + ri.Crown = false; + ri.IsAbandon = false; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 103: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "xtreme_explore") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "event_xtreme_fall_guys_template")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsCasualShow = true; + ri.Round = 1; + ri.Qualified = ri.Finish.HasValue; + ri.IsFinal = false; + ri.Crown = false; + ri.IsAbandon = false; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 102: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "teams_show_ltm") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "squads_2player_template")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + if (string.Equals(ri.Name, "round_territory_control_s4_show") || (string.Equals(ri.Name, "round_fall_ball_60_players") && (ri.Players % 2 == 0) && ri.Round == 1)) { + ri.IsFinal = false; + } else if (string.Equals(ri.Name, "round_1v1_volleyfall_symphony_launch_show")) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 101: { + this.StatsDB.BeginTrans(); + this.UpcomingShow.UpdateMany( + lv => new UpcomingShow { LevelType = LevelType.Hunt }, + lv => lv.LevelType == LevelType.Unknown + ); + this.StatsDB.Commit(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + if (profileId != -1) { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "showcase_fp13") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.Profile = profileId; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + } + this.UpcomingShowCache = this.UpcomingShow.FindAll().ToList(); + break; + } + case 100: { + this.CurrentSettings.CountPlayersDuringTheLevel = true; + break; + } + case 99: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "ftue_uk_show") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "main_show")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsFinal = string.Equals(ri.Name, "round_snowballsurvival"); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + DateTime dateCond = new DateTime(2024, 5, 15, 12, 0, 0, DateTimeKind.Utc); + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && + ri.ShowNameId.StartsWith("knockout_") && + ri.Start >= dateCond + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + ri.IsFinal = string.Equals(ri.Name, "round_blastball_arenasurvival_symphony_launch_show") || string.Equals(ri.Name, "round_floor_fall") || + string.Equals(ri.Name, "round_hexaring_symphony_launch_show") || string.Equals(ri.Name, "round_hexsnake_almond") || string.Equals(ri.Name, "round_royal_rumble") || + (!string.Equals(ri.Name, "knockout_fp10_final_8") && ri.Name.StartsWith("knockout_") && (ri.Name.EndsWith("_opener_4") || ri.Name.IndexOf("_final") != -1)); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 98: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "no_elimination_explore") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "main_show")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsCasualShow = true; + ri.Round = 1; + ri.Qualified = ri.Finish.HasValue; + ri.IsFinal = false; + ri.Crown = false; + ri.IsAbandon = false; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 97: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && ri.ShowNameId.StartsWith("classic_") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.Name, "round_basketfall_s4_show") || string.Equals(ri.Name, "round_territory_control_s4_show")) { + ri.IsFinal = (string.Equals(ri.ShowNameId, "classic_duos_show") && ri.Players <= 4) || (string.Equals(ri.ShowNameId, "classic_squads_show") && ri.Players <= 8); + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 96: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && ri.ShowNameId.StartsWith("classic_") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + int profileId = -1; + if (string.Equals(ri.ShowNameId, "classic_solo_main_show")) { + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "main_show")); + profileId = profile?.ProfileId ?? -1; + } else if (string.Equals(ri.ShowNameId, "classic_duos_show")) { + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "squads_2player_template")); + profileId = profile?.ProfileId ?? -1; + } else if (string.Equals(ri.ShowNameId, "classic_squads_show")) { + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "squads_4player")); + profileId = profile?.ProfileId ?? -1; + } + if (profileId != -1) ri.Profile = profileId; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 95: { + // this.UpcomingShowCache = this.UpcomingShow.FindAll().ToList(); + bool isDelete = false; + this.StatsDB.BeginTrans(); + foreach (var level in this.UpcomingShowCache) { + if (LevelStats.ALL.ContainsKey(level.LevelId)) { + BsonExpression condition = Query.EQ("LevelId", level.LevelId); + this.UpcomingShow.DeleteMany(condition); + } + } + this.StatsDB.Commit(); + if (isDelete) this.UpcomingShowCache = this.UpcomingShow.FindAll().ToList(); + break; + } + case 94: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && + ri.ShowNameId.StartsWith("user_creative_") && + ri.IsFinal && + !ri.PrivateLobby + select ri).ToList(); + + if (roundInfoList.Any()) { + int showId = roundInfoList.First().ShowID; + + foreach (RoundInfo ri in roundInfoList) { + ri.IsCasualShow = true; + ri.Round = 1; + ri.Qualified = ri.Finish.HasValue; + ri.IsFinal = false; + ri.Crown = false; + ri.IsAbandon = false; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where ri.ShowID >= showId + select ri).ToList(); + + bool isFirstShow = true; + bool isFixRequired = false; + bool waitForNextCasualShow = false; + int i = 1; + foreach (RoundInfo ri in roundInfoList2) { + if (!isFixRequired) { + if (!ri.IsCasualShow) { + if (isFirstShow && ri.ShowID == showId) { + isFixRequired = true; + waitForNextCasualShow = true; + } else { + isFirstShow = false; + if (ri.Round == 1) { + showId = ri.ShowID; + } + } + } else { + if (isFirstShow) { + isFirstShow = false; + } else if (ri.ShowID == showId) { + isFixRequired = true; + ri.ShowID = showId + i; + i++; + } + } + continue; + } + if (ri.IsCasualShow) { + waitForNextCasualShow = false; + ri.ShowID = showId + i; + i++; + continue; + } + if (waitForNextCasualShow) { + continue; + } + if (ri.Round == 1) { + ri.ShowID = showId + i; + showId = ri.ShowID; + i = 1; + } else { + ri.ShowID = showId; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + } + break; + } + case 93: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && ri.ShowNameId.StartsWith("knockout_") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.IsFinal = (ri.Name.StartsWith("knockout_fp") && ri.Name.IndexOf("_final") != -1) || (ri.ShowNameId.StartsWith("knockout_fp") && ri.ShowNameId.EndsWith("_srs")); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + DateTime dateCond = new DateTime(2024, 5, 15, 12, 0, 0, DateTimeKind.Utc); + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && + ri.ShowNameId.StartsWith("knockout_") && + ri.Start >= dateCond + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + ri.IsFinal = string.Equals(ri.Name, "round_blastball_arenasurvival_symphony_launch_show") || string.Equals(ri.Name, "round_kraken_attack") || string.Equals(ri.Name, "round_jump_showdown") || + string.Equals(ri.Name, "round_crown_maze") || string.Equals(ri.Name, "round_tunnel_final") || string.Equals(ri.Name, "round_fall_mountain_hub_complete") || + (!string.Equals(ri.Name, "knockout_fp10_final_8") && ri.Name.StartsWith("knockout_fp") && ri.Name.IndexOf("_final") != -1); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 92: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && ri.ShowNameId.StartsWith("knockout_") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.Name, "round_blastball_arenasurvival_symphony_launch_show") || string.Equals(ri.Name, "round_kraken_attack")) { + ri.IsFinal = false; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 91: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && ri.ShowNameId.StartsWith("knockout_") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.IsFinal = ri.Name.StartsWith("knockout_fp10_final_") || string.Equals(ri.Name, "round_crown_maze") || string.Equals(ri.Name, "round_tunnel_final") || string.Equals(ri.Name, "round_fall_mountain_hub_complete"); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 90: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where !string.IsNullOrEmpty(ri.ShowNameId) && ri.ShowNameId.StartsWith("knockout_") + select ri).ToList(); + + Dictionary sceneToRound = new Dictionary(StringComparer.OrdinalIgnoreCase) { + { "knockout_fp10_filler_9", "round_airtime" }, + { "knockout_fp10_opener_3", "round_fruitpunch_s4_show" }, + { "knockout_fp10_opener_4", "round_blastball_arenasurvival_symphony_launch_show" }, + { "knockout_fp10_opener_9", "round_see_saw_360" }, + { "knockout_fp10_filler_8", "round_hoops" }, + { "knockout_fp10_filler_15", "round_hoverboardsurvival_s4_show" }, + { "knockout_fp10_filler_3", "round_jump_club" }, + { "knockout_fp10_filler_7", "round_kraken_attack" }, + { "knockout_fp10_opener_8", "round_follow-the-leader_s6_launch" }, + { "knockout_fp10_opener_2", "round_snowballsurvival" }, + { "knockout_fp10_opener_7", "round_tail_tag" }, + { "knockout_fp10_filler_4", "round_spin_ring_symphony_launch_show" }, + { "knockout_fp10_opener_17", "round_gauntlet_03" }, + { "knockout_fp10_filler_6", "round_1v1_volleyfall_symphony_launch_show" }, + { "knockout_fp10_final_3", "round_fall_mountain_hub_complete" }, + { "knockout_fp10_final_1", "round_crown_maze" }, + { "knockout_fp10_final_2", "round_tunnel_final" } + }; + + foreach (RoundInfo ri in roundInfoList) { + if (sceneToRound.TryGetValue(ri.Name, out string levelId)) { + int profileId = -1; + if (string.Equals(ri.ShowNameId, "knockout_mode")) { + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "main_show")); + profileId = profile?.ProfileId ?? -1; + } else if (string.Equals(ri.ShowNameId, "knockout_duos")) { + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "squads_2player_template")); + profileId = profile?.ProfileId ?? -1; + } else if (string.Equals(ri.ShowNameId, "knockout_squads")) { + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "squads_4player")); + profileId = profile?.ProfileId ?? -1; + } + if (profileId != -1) ri.Profile = profileId; + ri.Name = levelId; + ri.IsFinal = string.Equals(levelId, "round_crown_maze") || string.Equals(levelId, "round_tunnel_final") || string.Equals(levelId, "round_fall_mountain_hub_complete"); + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 89: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where ri.PrivateLobby && string.Equals(ri.Name, "unknown", StringComparison.OrdinalIgnoreCase) + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.Name = ri.ShowNameId; + ri.ShowNameId = this.GetUserCreativeLevelTypeId(ri.CreativeGameModeId); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 88: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where ri.PrivateLobby && (string.Equals(ri.ShowNameId, "unknown", StringComparison.OrdinalIgnoreCase) || string.IsNullOrEmpty(ri.CreativeGameModeId) || string.IsNullOrEmpty(ri.CreativeLevelThemeId)) + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.ShowNameId, "unknown", StringComparison.OrdinalIgnoreCase)) { + ri.ShowNameId = "user_creative_race_round"; + } + + if (!string.IsNullOrEmpty(ri.CreativeShareCode)) { + if (string.IsNullOrEmpty(ri.CreativeGameModeId)) { + ri.CreativeGameModeId = "GAMEMODE_GAUNTLET"; + } + if (string.IsNullOrEmpty(ri.CreativeLevelThemeId)) { + ri.CreativeLevelThemeId = "THEME_VANILLA"; + } + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 87: { + List profileList = this.Profiles.FindAll().ToList(); + + foreach (Profiles p in profileList) { + if (string.Equals(p.LinkedShowId, "event_only_finals_v2_template")) { + p.LinkedShowId = "event_only_finals_v3_template"; + } + } + this.StatsDB.BeginTrans(); + this.Profiles.DeleteAll(); + this.Profiles.InsertBulk(profileList); + this.StatsDB.Commit(); + break; + } + case 86: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_april_fools") && ri.IsFinal == false + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + this.StatsDB.BeginTrans(); + this.UpcomingShowCache.RemoveAll(u => string.Equals(u.ShowId, "event_april_fools") && !u.LevelId.StartsWith("wle_shuffle_falljam_april_")); + this.UpcomingShow.DeleteAll(); + this.UpcomingShow.InsertBulk(this.UpcomingShowCache); + this.StatsDB.Commit(); + break; + } + case 85: { + this.StatsDB.BeginTrans(); + this.UpcomingShowCache.RemoveAll(u => string.Equals(u.ShowId, "wle_shuffle_discover") && u.LevelId.StartsWith("wle_shuggle_mwk3_")); + this.UpcomingShow.DeleteAll(); + this.UpcomingShow.InsertBulk(this.UpcomingShowCache); + this.StatsDB.Commit(); + if (this.CurrentSettings.NotificationWindowPosition == 0) { + this.CurrentSettings.NotificationWindowPosition += 3; + } + this.CurrentSettings.NotificationWindowAnimation = 0; + break; + } + case 84: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_only_button_bashers_template") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (ri.Round > 3) ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_ugc_playful_pioneers") || + string.Equals(ri.ShowNameId, "wle_playful_shuffle") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + if (string.Equals(ri.ShowNameId, "wle_playful_shuffle")) { + ri.IsFinal = true; + } else if (string.Equals(ri.ShowNameId, "wle_mrs_ugc_playful_pioneers")) { + if (LevelStats.ALL.TryGetValue(ri.Name, out LevelStats l1)) { + ri.IsFinal = l1.IsFinal; + } + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 83: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_shuffle_survival") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 82: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where ri.Name.StartsWith("user_creative_") && ri.Name.EndsWith("_round") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + (ri.ShowNameId, ri.Name) = (ri.Name, ri.ShowNameId); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 81: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_survival_showdown") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + if (ri.Name.IndexOf("_showdown_final", StringComparison.OrdinalIgnoreCase) != -1) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + DateTime dateCond = new DateTime(2024, 2, 28, 10, 0, 0, DateTimeKind.Utc); + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.Name, "user_creative_race_round") && + ri.Start <= dateCond + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + ri.CreativeGameModeId = "GAMEMODE_GAUNTLET"; + ri.SceneName = "GAMEMODE_GAUNTLET"; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + break; + } + case 80: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "no_elimination_show") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (string.Equals(ri.Name, "round_snowballsurvival") || string.Equals(ri.Name, "round_robotrampage_arena_2")) { + if (ri.Round == 3) { + ri.IsFinal = true; + } else { + var filteredList = roundInfoList.Where(r => r.ShowID == ri.ShowID); + int maxRound = filteredList.Max(r => r.Round); + if (ri.Round == maxRound && ri.Qualified) { + ri.IsFinal = true; + } + } + } else if (ri.Name.StartsWith("wle_main_filler_") || ri.Name.StartsWith("wle_main_opener_")) { + ri.Name = ri.Name.Replace("_noelim", ""); + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + + List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show") && ri.Name.StartsWith("digishuffle_feb_") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList2) { + ri.Name = $"wle_{ri.Name}"; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList2); + this.StatsDB.Commit(); + + List roundInfoList3 = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_shuffle_chill") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList3) { + ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList3); + this.StatsDB.Commit(); + break; + } + case 79: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_bouncy_bean_time") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsFinal = ri.Name.IndexOf("_final", StringComparison.OrdinalIgnoreCase) != -1; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 78: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show_squads") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (ri.Name.StartsWith("wle_shuffle_squads_2_24_01_")) { + ri.Name = ri.Name.Replace("_squads_", "_").Replace("_24_01_", "_24_"); + } else if (ri.Name.StartsWith("wle_shuffle_2_24_01_")) { + ri.Name = ri.Name.Replace("_24_01_", "_24_"); + } + if (profileId != -1) ri.Profile = profileId; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 77: + case 76: { + if (version == 76) ++version; + this.CurrentSettings.EnableFallalyticsWeeklyCrownLeague = true; + break; + } + case 75: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show_squads") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (ri.Name.StartsWith("wle_shuffle_squads_fp")) { + ri.Name = ri.Name.Replace("_squads_", "_discover_"); + } else if (ri.Name.StartsWith("wle_shuffle_fp")) { + ri.Name = ri.Name.Replace("wle_shuffle_fp", "wle_shuffle_discover_fp"); + } + if (profileId != -1) ri.Profile = profileId; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 74: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_blast_ball_banger_template") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "event_blast_ball_banger_template")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsFinal = string.Equals(ri.Name, "round_blastball_arenasurvival_symphony_launch_show"); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 73: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_winter") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + if (ri.Name.IndexOf("_final_", StringComparison.OrdinalIgnoreCase) != -1) { + ri.IsFinal = true; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 72: { + DateTime dateCond = new DateTime(2023, 12, 15, 10, 0, 0, DateTimeKind.Utc); + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.Name, "user_creative_race_round") && + ri.Start >= dateCond && (ri.PrivateLobby == false || ri.Round > 1) + select ri).ToList(); + + this.StatsDB.BeginTrans(); + foreach (RoundInfo info in roundInfoList) { + this.RoundDetails.DeleteMany(r => r.ShowID == info.ShowID); + } + this.StatsDB.Commit(); + break; + } + case 71: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "event_anniversary_season_1_alternate_name") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + if (ri.Name.IndexOf("round_fall_ball", StringComparison.OrdinalIgnoreCase) != -1 + || ri.Name.IndexOf("round_jinxed", StringComparison.OrdinalIgnoreCase) != -1) { + ri.IsFinal = false; + } + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 70: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_bouncy_bean_time") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsFinal = ri.Name.EndsWith("_final"); + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 69: { + // List roundInfoList = (from ri in this.RoundDetails.FindAll() + // where string.Equals(ri.ShowNameId, "wle_shuffle_discover") || + // string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show_squads") + // select ri).ToList(); + // + // Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + // int profileId = profile?.ProfileId ?? -1; + // + // this.StatsDB.BeginTrans(); + // foreach (RoundInfo ri in roundInfoList) { + // if (profileId != -1) ri.Profile = profileId; + // if (string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show_squads") && ri.Name.IndexOf("_squads", StringComparison.OrdinalIgnoreCase) != -1) { + // ri.Name = ri.Name.Replace("_squads", ""); + // } + // if (this.LevelIdReplacerInShuffleShow.TryGetValue(ri.Name, out string newName)) { + // ri.Name = newName; + // } + // ri.IsFinal = true; + // + // if (string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show_squads") && ri.Round > 1) { + // List ril = roundInfoList.FindAll(r => r.ShowID == ri.ShowID); + // foreach (RoundInfo r in ril) { + // if (r.Round != ri.Round) { + // r.IsFinal = false; + // } + // } + // this.RoundDetails.Update(ril); + // } + // } + // this.RoundDetails.Update(roundInfoList); + // this.StatsDB.Commit(); + // + // Dictionary duplicatedKey = new Dictionary(StringComparer.OrdinalIgnoreCase) { + // { "wle_discover_level_wk2_004", "current_wle_fp4_05_01_05" }, + // { "wle_discover_level_wk2_011", "current_wle_fp6_wk4_05_01" }, + // { "wle_discover_level_wk2_042", "current_wle_fp6_wk4_02_04" }, + // { "wle_discover_level_wk2_044", "current_wle_fp6_wk4_05_02" }, + // { "wle_discover_level_wk2_045", "current_wle_fp6_3_04" } + // }; + // + // List roundInfoList2 = (from ri in this.RoundDetails.FindAll() + // where duplicatedKey.ContainsKey(ri.Name) + // select ri).ToList(); + // + // foreach (RoundInfo ri in roundInfoList2) { + // if (duplicatedKey.TryGetValue(ri.Name, out string newName)) { + // ri.Name = newName; + // } + // } + // + // this.StatsDB.BeginTrans(); + // this.RoundDetails.Update(roundInfoList2); + // this.StatsDB.Commit(); + break; + } + case 68: { + // List roundInfoList = (from ri in this.RoundDetails.FindAll() + // where string.Equals(ri.ShowNameId, "wle_shuffle_discover") || + // string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show_squads") + // select ri).ToList(); + // + // Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + // int profileId = profile?.ProfileId ?? -1; + // + // this.StatsDB.BeginTrans(); + // foreach (RoundInfo ri in roundInfoList) { + // if (profileId != -1) ri.Profile = profileId; + // if (string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show_squads") && ri.Name.EndsWith("_squads")) { + // ri.Name = ri.Name.Substring(0, ri.Name.LastIndexOf("_squads", StringComparison.OrdinalIgnoreCase)); + // } + // if (this.LevelIdReplacerInShuffleShow.TryGetValue(ri.Name, out string newName)) { + // ri.Name = newName; + // } + // ri.IsFinal = true; + // + // if (string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show_squads") && ri.Round > 1) { + // List ril = roundInfoList.FindAll(r => r.ShowID == ri.ShowID); + // foreach (RoundInfo r in ril) { + // if (r.Round != ri.Round) { + // r.IsFinal = false; + // } + // } + // this.RoundDetails.Update(ril); + // } + // } + // + // this.RoundDetails.Update(roundInfoList); + // this.StatsDB.Commit(); + break; + } + case 67: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_shuffle_discover") + select ri).ToList(); + + Profiles profile = this.Profiles.FindOne(Query.EQ("LinkedShowId", "fall_guys_creative_mode")); + int profileId = profile?.ProfileId ?? -1; + foreach (RoundInfo ri in roundInfoList) { + if (profileId != -1) ri.Profile = profileId; + ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 66: { + if (this.StatsDB.CollectionExists("FallalyticsPbLog")) { + this.StatsDB.BeginTrans(); + this.FallalyticsPbLog.DeleteAll(); + this.StatsDB.Commit(); + } + this.CurrentSettings.EnableFallalyticsReporting = true; + break; + } + case 65: { + this.CurrentSettings.EnableFallalyticsReporting = true; + break; + } + case 64: { + this.CurrentSettings.NotifyPersonalBest = true; + break; + } + case 63: { + this.CurrentSettings.RecordEscapeDuringAGame = true; + break; + } + case 62: { + List profileList = (from p in this.Profiles.FindAll() + where string.IsNullOrEmpty(p.ProfileName) + select p).ToList(); + + foreach (Profiles p in profileList) { + p.ProfileName = Utils.ComputeHash(BitConverter.GetBytes(DateTime.Now.Ticks), HashTypes.MD5).Substring(0, 20); + } + this.StatsDB.BeginTrans(); + this.Profiles.Update(profileList); + this.StatsDB.Commit(); + this.CurrentSettings.NotificationSounds = 0; + this.CurrentSettings.NotificationWindowPosition = 0; + this.CurrentSettings.NotificationWindowAnimation = 1; + break; + } + case 61: { + this.CurrentSettings.NotifyServerConnected = true; + this.CurrentSettings.MuteNotificationSounds = false; + this.CurrentSettings.NotificationSounds = 0; + break; + } + case 60: { + if (this.StatsDB.CollectionExists("FallalyticsPbInfo")) { + this.StatsDB.DropCollection("FallalyticsPbInfo"); + } + this.CurrentSettings.NotifyServerConnected = true; + this.CurrentSettings.MuteNotificationSounds = false; + break; + } + case 59: { + // List roundInfoList = (from ri in this.RoundDetails.FindAll() + // where string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show") && + // ri.Name.StartsWith("shuffle_halloween_") + // select ri).ToList(); + // + // foreach (RoundInfo ri in roundInfoList) { + // if (this.LevelIdReplacerInDigisShuffleShow.TryGetValue($"wle_{ri.Name}", out string newName)) { + // ri.Name = newName; + // } + // } + // this.StatsDB.BeginTrans(); + // this.RoundDetails.Update(roundInfoList); + // this.StatsDB.Commit(); + break; + } + case 58: { + this.CurrentSettings.DisplayGamePlayedInfo = true; + break; + } + case 57: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where ri.IsFinal && + string.Equals(ri.ShowNameId, "event_only_hexaring_template") && + ri.Round < 3 + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.IsFinal = false; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 56: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where ri.IsFinal && + string.Equals(ri.ShowNameId, "event_only_thin_ice_template") && + ri.Round < 3 + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.IsFinal = false; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 55: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where string.Equals(ri.ShowNameId, "wle_mrs_shuffle_show") + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.Name = ri.Name.StartsWith("mrs_wle_fp") ? $"current{ri.Name.Substring(3)}" : ri.Name.Substring(4); + ri.IsFinal = true; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 54: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where ri.IsFinal && + string.Equals(ri.ShowNameId, "event_only_hexaring_template") && + ri.Round < 3 + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.IsFinal = false; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 53: { + List roundInfoList = (from ri in this.RoundDetails.FindAll() + where ri.IsFinal && + string.Equals(ri.ShowNameId, "survival_of_the_fittest") && + string.Equals(ri.Name, "round_kraken_attack") && + ri.Round != 4 + select ri).ToList(); + + foreach (RoundInfo ri in roundInfoList) { + ri.IsFinal = false; + } + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(roundInfoList); + this.StatsDB.Commit(); + break; + } + case 52: { + this.CurrentSettings.DisplayCurrentTime = true; + break; + } + case 51: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (string.Equals(info.Name, "current_wle_fp4_10_08") && info.Start < new DateTime(2023, 8, 22)) { + info.Name = "current_wle_fp4_10_08_m"; + info.ShowNameId = "current_wle_fp4_10_08_m"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 50: { + this.CurrentSettings.EnableFallalyticsReporting = true; + break; + } + case 49: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (!string.IsNullOrEmpty(info.ShowNameId) && !info.IsFinal && + (info.ShowNameId.StartsWith("wle_s10_cf_round_"))) { + info.IsFinal = true; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 48: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (string.Equals(info.ShowNameId, "main_show") && + this.IsFinalWithCreativeLevel(info.Name)) { + info.IsFinal = true; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 47: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (!string.IsNullOrEmpty(info.ShowNameId) && + ((info.ShowNameId.StartsWith("show_wle_s10_wk") || info.ShowNameId.StartsWith("event_wle_s10_wk")) && info.ShowNameId.EndsWith("_mrs")) && + !this.IsFinalWithCreativeLevel(info.Name)) { + info.IsFinal = false; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + this.CurrentSettings.GroupingCreativeRoundLevels = true; + break; + } + case 46: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (!string.IsNullOrEmpty(info.ShowNameId) && !info.IsFinal && + (info.ShowNameId.StartsWith("show_wle_s10_wk") || + info.ShowNameId.StartsWith("wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("show_wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("current_wle_fp"))) { + info.IsFinal = true; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 45: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (!string.IsNullOrEmpty(info.ShowNameId) && !info.IsFinal && + (info.ShowNameId.StartsWith("show_wle_s10_wk") || + info.ShowNameId.StartsWith("wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("show_wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("current_wle_fp"))) { + info.IsFinal = true; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 44: { + this.CurrentSettings.ShowChangelog = true; + break; + } + case 43: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (string.Equals(info.Name, "wle_s10_user_creative_race_round", StringComparison.OrdinalIgnoreCase)) { + info.Name = "user_creative_race_round"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 42: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (!string.IsNullOrEmpty(info.ShowNameId) && !info.IsFinal && + (info.ShowNameId.StartsWith("show_wle_s10_wk") || + info.ShowNameId.StartsWith("wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("show_wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("current_wle_fp"))) { + info.IsFinal = true; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + this.CurrentSettings.NotifyServerConnected = false; + break; + } + case 41: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (!string.IsNullOrEmpty(info.ShowNameId) && !info.IsFinal && + (info.ShowNameId.StartsWith("show_wle_s10_wk") || + info.ShowNameId.StartsWith("wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("show_wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("current_wle_fp"))) { + info.IsFinal = true; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + this.CurrentSettings.NotifyServerConnected = false; + break; + } + case 40: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if ((!string.IsNullOrEmpty(info.ShowNameId) && info.ShowNameId.StartsWith("wle_mrs_bagel")) && info.Name.StartsWith("wle_mrs_bagel_final")) { + info.IsFinal = true; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + this.CurrentSettings.NotifyServerConnected = false; + break; + } + case 39: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (!string.IsNullOrEmpty(info.ShowNameId) && !info.IsFinal && + (info.ShowNameId.StartsWith("show_wle_s10_wk") || + info.ShowNameId.StartsWith("wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("show_wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("current_wle_fp"))) { + info.IsFinal = true; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + this.CurrentSettings.NotifyServerConnected = false; + break; + } + case 38: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (!string.IsNullOrEmpty(info.ShowNameId) && !info.IsFinal && + (info.ShowNameId.StartsWith("show_wle_s10_wk") || + info.ShowNameId.StartsWith("wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("show_wle_s10_player_round_wk") || + info.ShowNameId.StartsWith("current_wle_fp"))) { + info.IsFinal = true; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + this.CurrentSettings.NotifyServerConnected = false; + break; + } + case 37: { + this.AllProfiles.AddRange(this.Profiles.FindAll()); + for (int i = this.AllProfiles.Count - 1; i >= 0; i--) { + Profiles profiles = this.AllProfiles[i]; + if (string.Equals(profiles.LinkedShowId, "event_only_survival_ss2_3009_0210_2022")) { + profiles.LinkedShowId = "survival_of_the_fittest"; + } + } + this.StatsDB.BeginTrans(); + this.Profiles.DeleteAll(); + this.Profiles.InsertBulk(this.AllProfiles); + this.StatsDB.Commit(); + this.AllProfiles.Clear(); + break; + } + case 36: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (string.Equals(info.Name, "round_follow-the-leader_ss2_launch", StringComparison.OrdinalIgnoreCase) + || string.Equals(info.Name, "round_follow-the-leader_ss2_parrot", StringComparison.OrdinalIgnoreCase)) { + info.Name = "round_follow_the_line"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 35: { + this.CurrentSettings.AutoUpdate = true; + break; + } + case 34: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (info.UseShareCode && info.CreativeLastModifiedDate != DateTime.MinValue && string.IsNullOrEmpty(info.CreativeOnlinePlatformId)) { + info.CreativeOnlinePlatformId = "eos"; + this.RoundDetails.Update(info); + } + } + this.CurrentSettings.FilterType = 1; + this.CurrentSettings.SelectedCustomTemplateSeason = -1; + this.CurrentSettings.CustomFilterRangeStart = DateTime.MinValue; + this.CurrentSettings.CustomFilterRangeEnd = DateTime.MaxValue; + break; + } + case 33: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (string.Equals(info.Name, "round_bluejay_40", StringComparison.OrdinalIgnoreCase)) { + info.Name = "round_bluejay"; + this.RoundDetails.Update(info); + } + } + break; + } + case 32: { + this.CurrentSettings.FilterType += 1; + this.CurrentSettings.SelectedCustomTemplateSeason = -1; + this.CurrentSettings.CustomFilterRangeStart = DateTime.MinValue; + this.CurrentSettings.CustomFilterRangeEnd = DateTime.MaxValue; + break; + } + case 31: { + this.CurrentSettings.OverlayColor = this.CurrentSettings.OverlayColor > 0 ? this.CurrentSettings.OverlayColor + 1 : this.CurrentSettings.OverlayColor; + break; + } + case 30: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + if (string.Equals(info.Name, "wle_s10_user_creative_round", StringComparison.OrdinalIgnoreCase)) { + info.Name = "wle_s10_user_creative_race_round"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 29: { + this.CurrentSettings.SystemTrayIcon = true; + break; + } + case 28: { + this.CurrentSettings.Visible = true; + break; + } + case 27: { + this.CurrentSettings.PreventOverlayMouseClicks = false; + break; + } + case 26: { + this.CurrentSettings.OverlayBackgroundOpacity = 100; + break; + } + case 25: { + this.CurrentSettings.OverlayBackground = 0; + this.CurrentSettings.OverlayBackgroundResourceName = string.Empty; + this.CurrentSettings.OverlayTabResourceName = string.Empty; + this.CurrentSettings.IsOverlayBackgroundCustomized = false; + this.CurrentSettings.OverlayFontColorSerialized = string.Empty; + break; + } + case 24: { + this.CurrentSettings.WinsFilter = 1; + this.CurrentSettings.QualifyFilter = 1; + this.CurrentSettings.FastestFilter = 1; + break; + } + case 23: { + this.CurrentSettings.OverlayColor = 0; + this.CurrentSettings.GameExeLocation = string.Empty; + this.CurrentSettings.GameShortcutLocation = string.Empty; + this.CurrentSettings.AutoLaunchGameOnStartup = false; + break; + } + case 22: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + if (info.Name.IndexOf("round_slippy_slide", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_slippy_slide"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_follow_the_line", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_follow_the_line"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_slide_chute", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_slide_chute"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_blastballruins", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_blastballruins"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_kraken_attack", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_kraken_attack"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_bluejay", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_bluejay"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 21: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + if (info.Name.IndexOf("round_slippy_slide", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_slippy_slide"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_follow_the_line", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_follow_the_line"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_slide_chute", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_slide_chute"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_blastballruins", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_blastballruins"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_kraken_attack", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_kraken_attack"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_bluejay", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_bluejay"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 20: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + if (info.Name.IndexOf("round_follow-the-leader", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_follow-the-leader_s6_launch"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 19: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + if (info.Name.IndexOf("round_satellitehoppers", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_satellitehoppers_almond"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_ffa_button_bashers", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_ffa_button_bashers_squads_almond"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_hoverboardsurvival2", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_hoverboardsurvival2_almond"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_gauntlet_10", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_gauntlet_10_almond"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_starlink", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_starlink_almond"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_tiptoefinale", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_tiptoefinale_almond"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_pixelperfect", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_pixelperfect_almond"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_hexsnake", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_hexsnake_almond"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 18: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + if (info.Name.IndexOf("round_1v1_volleyfall", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_1v1_volleyfall_symphony_launch_show"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_gauntlet_09", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_gauntlet_09_symphony_launch_show"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_short_circuit_2", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_short_circuit_2_symphony_launch_show"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_hoops_revenge", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_hoops_revenge_symphony_launch_show"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_hexaring", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_hexaring_symphony_launch_show"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_spin_ring", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_spin_ring_symphony_launch_show"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_blastball", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_blastball_arenasurvival_symphony_launch_show"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 17: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = AllStats[i]; + + if (info.Name.IndexOf("round_invisibeans", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_invisibeans"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 16: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = AllStats[i]; + + if (info.Name.IndexOf("round_fruit_bowl", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_fruit_bowl"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 15: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + if (info.Name.IndexOf("round_gauntlet_08", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_gauntlet_08"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_airtime", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_airtime"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_follow-", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_follow-the-leader_s6_launch"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_pipedup", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_pipedup_s6_launch"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_see_saw_360", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_see_saw_360"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 14: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = AllStats[i]; + + if (info.Name.IndexOf("round_king_of", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_king_of_the_hill"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_drumtop", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_drumtop"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_penguin_solos", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_penguin_solos"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_gauntlet_07", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_gauntlet_07"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_robotrampage", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_robotrampage_arena_2"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_crown_maze", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_crown_maze"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 13: + case 12: { + if (version == 12) ++version; + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + if (info.Name.IndexOf("round_fruitpunch", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_fruitpunch_s4_show"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_hoverboardsurvival", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_hoverboardsurvival_s4_show"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_basketfall", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_basketfall_s4_show"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_territory", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_territory_control_s4_show"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_shortcircuit", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_shortcircuit"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_gauntlet_06", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_gauntlet_06"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_tunnel_race", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_tunnel_race"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_1v1_button", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_1v1_button_basher"; + this.RoundDetails.Update(info); + } else if (info.Name.IndexOf("round_slimeclimb", StringComparison.OrdinalIgnoreCase) == 0) { + info.Name = "round_slimeclimb_2"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 11: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.AllStats.Sort(); + this.StatsDB.BeginTrans(); + int lastShow = -1; + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + if (lastShow != info.ShowID) { + lastShow = info.ShowID; + info.IsFinal = this.StatLookup.TryGetValue(info.Name, out LevelStats stats) && stats.IsFinal && (info.Name != "round_floor_fall" || info.Round >= 3 || (i > 0 && this.AllStats[i - 1].Name != "round_floor_fall")); + } else { + info.IsFinal = false; + } + + this.RoundDetails.Update(info); + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 10: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + int index; + if ((index = info.Name.IndexOf("_event_", StringComparison.OrdinalIgnoreCase)) > 0 + || (index = info.Name.IndexOf(". D", StringComparison.OrdinalIgnoreCase)) > 0) { + info.Name = info.Name.Substring(0, index); + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 9: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + if (string.Equals(info.Name, "round_fall_mountain", StringComparison.OrdinalIgnoreCase)) { + info.Name = "round_fall_mountain_hub_complete"; + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 8: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + int index; + if ((index = info.Name.IndexOf("_event_", StringComparison.OrdinalIgnoreCase)) > 0) { + info.Name = info.Name.Substring(0, index); + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 7: { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + int index; + if ((index = info.Name.IndexOf("_hard_mode", StringComparison.OrdinalIgnoreCase)) > 0) { + info.Name = info.Name.Substring(0, index); + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 6: + case 5: { + if (version == 5) ++version; + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + int index; + if ((index = info.Name.IndexOf("_northernlion", StringComparison.OrdinalIgnoreCase)) > 0) { + info.Name = info.Name.Substring(0, index); + RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 4: + case 3: { + if (version == 3) ++version; + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.StatsDB.BeginTrans(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + + int index; + if ((index = info.Name.IndexOf("_variation", StringComparison.OrdinalIgnoreCase)) > 0) { + info.Name = info.Name.Substring(0, index); + this.RoundDetails.Update(info); + } + } + this.StatsDB.Commit(); + this.AllStats.Clear(); + break; + } + case 2: { + this.CurrentSettings.SwitchBetweenStreaks = this.CurrentSettings.SwitchBetweenLongest; + break; + } + case 1: { + this.CurrentSettings.SwitchBetweenPlayers = this.CurrentSettings.SwitchBetweenLongest; + break; + } + case 0: { + this.CurrentSettings.SwitchBetweenQualify = this.CurrentSettings.SwitchBetweenLongest; + break; + } + } + } + if (this.CurrentSettings.Version < currentDbVersion) { + this.CurrentSettings.Version = currentDbVersion; + this.SaveUserSettings(); + } + } + + private UserSettings GetDefaultSettings() { + return new UserSettings { + ID = 1, + UpdatedDateFormat = true, + LogPath = string.Empty, + MaximizedWindowState = false, + FormLocationX = null, + FormLocationY = null, + FormWidth = null, + FormHeight = null, + Theme = 0, + Visible = true, + FilterType = 1, + CustomFilterRangeStart = DateTime.MinValue, + CustomFilterRangeEnd = DateTime.MaxValue, + SelectedCustomTemplateSeason = -1, + SelectedProfile = 0, + CycleTimeSeconds = 5, + OverlayBackground = 0, + OverlayBackgroundResourceName = string.Empty, + OverlayTabResourceName = string.Empty, + OverlayBackgroundOpacity = 100, + IsOverlayBackgroundCustomized = false, + OverlayColor = 0, + OverlayLocationX = null, + OverlayLocationY = null, + OverlayFixedPosition = string.Empty, + OverlayFixedPositionX = null, + OverlayFixedPositionY = null, + OverlayFixedWidth = null, + OverlayFixedHeight = null, + LockButtonLocation = 0, + FlippedDisplay = false, + FixedFlippedDisplay = false, + SwitchBetweenLongest = true, + SwitchBetweenQualify = true, + SwitchBetweenPlayers = true, + SwitchBetweenStreaks = true, + OnlyShowLongest = false, + OnlyShowGold = false, + OnlyShowPing = false, + OnlyShowFinalStreak = false, + OverlayVisible = false, + OverlayNotOnTop = false, + OverlayFontSerialized = string.Empty, + OverlayFontColorSerialized = string.Empty, + PlayerByConsoleType = false, + ColorByRoundType = false, + AutoChangeProfile = true, + ShadeTheFlagImage = false, + DisplayCurrentTime = true, + DisplayGamePlayedInfo = true, + CountPlayersDuringTheLevel = true, + PreviousWins = 0, + WinsFilter = 1, + FastestFilter = 1, + QualifyFilter = 1, + HideWinsInfo = false, + HideRoundInfo = false, + HideTimeInfo = false, + ShowOverlayTabs = false, + ShowPercentages = false, + AutoUpdate = true, + SystemTrayIcon = true, + PreventOverlayMouseClicks = false, + NotifyServerConnected = true, + NotifyPersonalBest = true, + MuteNotificationSounds = false, + NotificationSounds = 0, + NotificationWindowPosition = 3, + NotificationWindowAnimation = 0, + OverlayWidth = 786, + OverlayHeight = 99, + HideOverlayPercentages = false, + HoopsieHeros = false, + IgnoreLevelTypeWhenSorting = false, + GroupingCreativeRoundLevels = true, + RecordEscapeDuringAGame = true, + GameExeLocation = string.Empty, + GameShortcutLocation = string.Empty, + AutoLaunchGameOnStartup = false, + WinPerDayGraphStyle = 2, + EnableFallalyticsReporting = true, + EnableFallalyticsWeeklyCrownLeague = true, + EnableFallalyticsAnonymous = false, + UseProxyServer = false, + ProxyAddress = string.Empty, + ProxyPort = string.Empty, + EnableProxyAuthentication = false, + ProxyUsername = string.Empty, + ProxyPassword = string.Empty, + SucceededTestProxy = false, + IpGeolocationService = 0, + ShowChangelog = true, + LevelTimeLimitVersion = 0, + UpcomingShowVersion = 0, + Version = currentDbVersion + }; + } + + private bool IsFinalWithCreativeLevel(string levelId) { + return string.Equals(levelId, "wle_s10_orig_round_010") || + string.Equals(levelId, "wle_s10_orig_round_011") || + string.Equals(levelId, "wle_s10_orig_round_017") || + string.Equals(levelId, "wle_s10_orig_round_018") || + string.Equals(levelId, "wle_s10_orig_round_024") || + string.Equals(levelId, "wle_s10_orig_round_025") || + string.Equals(levelId, "wle_s10_orig_round_030") || + string.Equals(levelId, "wle_s10_orig_round_031") || + string.Equals(levelId, "wle_s10_round_004") || + string.Equals(levelId, "wle_s10_round_009"); + } + + private void UpdateHoopsieLegends() { + if (this.StatLookup.TryGetValue("round_hoops_blockade_solo", out LevelStats level)) { + level.Name = this.CurrentSettings.HoopsieHeros ? Multilingual.GetWord("main_hoopsie_heroes") : Multilingual.GetWord("main_hoopsie_legends"); + } + } + + private void UpdateGridRoundName() { + foreach (KeyValuePair item in Multilingual.GetLevelsDictionary().Where(r => r.Key.StartsWith("round_") || r.Key.StartsWith("user_creative_") || r.Key.StartsWith("creative_"))) { + if (this.StatLookup.TryGetValue(item.Key, out LevelStats level)) { + level.Name = item.Value; + } + } + this.SortGridDetails(true); + this.gridDetails.Invalidate(); + } + + public void UpdateDates() { + if (DateTime.Now.Date.ToUniversalTime() == DayStart) return; + + DateTime currentUtc = DateTime.UtcNow; + for (int i = Seasons.Count() - 1; i >= 0; i--) { + if (currentUtc > Seasons[i].StartDate) { + SeasonStart = Seasons[i].StartDate; + break; + } + } + WeekStart = DateTime.Now.Date.AddDays(-7).ToUniversalTime(); + DayStart = DateTime.Now.Date.ToUniversalTime(); + + this.ResetStats(); + } + + public void SaveUserSettings() { + lock (this.StatsDB) { + Task saveUserSettingsTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.UserSettings.Update(this.CurrentSettings); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(saveUserSettingsTask, false); + } + } + + public void ResetStats() { + for (int i = 0; i < this.StatDetails.Count; i++) { + LevelStats calculator = this.StatDetails[i]; + calculator.Clear(); + } + + this.ClearTotals(); + + List rounds = new List(); + int profile = this.GetCurrentProfileId(); + + lock (this.AllStats) { + this.AllStats.Clear(); + this.nextShowID = 0; + this.lastAddedShow = DateTime.MinValue; + if (this.RoundDetails.Count() > 0) { + this.AllStats.AddRange(this.RoundDetails.FindAll()); + this.AllStats.Sort(); + + if (this.AllStats.Count > 0) { + this.nextShowID = this.AllStats[this.AllStats.Count - 1].ShowID; + + int lastAddedShowId = -1; + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = this.AllStats[i]; + info.ToLocalTime(); + if (info.Profile != profile) continue; + + if (info.ShowID == lastAddedShowId || (IsInStatsFilter(info) && IsInPartyFilter(info))) { + lastAddedShowId = info.ShowID; + rounds.Add(info); + } + + if (info.Start > lastAddedShow && info.Round == 1) { + this.lastAddedShow = info.Start; + } + } + } + } + } + + lock (this.CurrentRound) { + this.CurrentRound.Clear(); + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo info = AllStats[i]; + if (info.Profile != profile) continue; + + this.CurrentRound.Insert(0, info); + if (info.Round == 1) { + break; + } + } + } + + rounds.Sort(); + this.loadingExisting = true; + this.LogFile_OnParsedLogLines(rounds); + this.loadingExisting = false; + } + + private void menuUsefulThings_Click(object sender, EventArgs e) { + try { + if (sender.Equals(this.menuFallGuysWiki) || sender.Equals(this.trayFallGuysWiki)) { + Process.Start(@"https://fallguysultimateknockout.fandom.com/wiki/Fall_Guys:_Ultimate_Knockout_Wiki"); + } else if (sender.Equals(this.menuFallGuysReddit) || sender.Equals(this.trayFallGuysReddit)) { + Process.Start(@"https://www.reddit.com/r/FallGuysGame/"); + } else if (sender.Equals(this.menuFallalyticsMain) || sender.Equals(this.trayFallalyticsMain)) { + Process.Start(@"https://fallalytics.com/"); + } else if (sender.Equals(this.menuFallalyticsFindPlayer) || sender.Equals(this.trayFallalyticsFindPlayer)) { + Process.Start(@"https://fallalytics.com/player-search"); + } else if (sender.Equals(this.menuFallalyticsOverallRankings) || sender.Equals(this.trayFallalyticsOverallRankings)) { + Process.Start(@"https://fallalytics.com/leaderboards/speedrun-total"); + } else if (sender.Equals(this.menuFallalyticsLevelRankings) || sender.Equals(this.trayFallalyticsLevelRankings)) { + Process.Start(@"https://fallalytics.com/leaderboards/speedrun"); + } else if (sender.Equals(this.menuFallalyticsWeeklyCrownLeague) || sender.Equals(this.trayFallalyticsWeeklyCrownLeague)) { + Process.Start(@"https://fallalytics.com/leaderboards/crowns"); + } else if (sender.Equals(this.menuFallalyticsRoundStatistics) || sender.Equals(this.trayFallalyticsRoundStatistics)) { + Process.Start(@"https://fallalytics.com/rounds"); + } else if (sender.Equals(this.menuFallalyticsShowStatistics) || sender.Equals(this.trayFallalyticsShowStatistics)) { + Process.Start(@"https://fallalytics.com/shows"); + } else if (sender.Equals(this.menuFallalyticsNews) || sender.Equals(this.trayFallalyticsNews)) { + Process.Start(@"https://fallalytics.com/news"); + } else if (sender.Equals(this.menuRollOffClub) || sender.Equals(this.trayRollOffClub)) { + if (CurrentLanguage == Language.Korean) { + Process.Start(@"https://rolloff.club/ko/"); + } else if (CurrentLanguage == Language.Japanese) { + Process.Start(@"https://rolloff.club/ja/"); + } else if (CurrentLanguage == Language.SimplifiedChinese) { + Process.Start(@"https://rolloff.club/zh/"); + } else { + Process.Start(@"https://rolloff.club/"); + } + } else if (sender.Equals(this.menuLostTempleAnalyzer) || sender.Equals(this.trayLostTempleAnalyzer)) { + Process.Start(@"https://alexjlockwood.github.io/lost-temple-analyzer/"); + } else if (sender.Equals(this.menuFallGuysDBMain) || sender.Equals(this.trayFallGuysDBMain)) { + Process.Start(@"https://fallguys-db.pages.dev/"); + } else if (sender.Equals(this.menuFallGuysDBShows) || sender.Equals(this.trayFallGuysDBShows)) { + Process.Start(@"https://fallguys-db.pages.dev/upcoming_shows"); + } else if (sender.Equals(this.menuFallGuysDBDiscovery) || sender.Equals(this.trayFallGuysDBDiscovery)) { + Process.Start(@"https://fallguys-db.pages.dev/discovery"); + } else if (sender.Equals(this.menuFallGuysDBShop) || sender.Equals(this.trayFallGuysDBShop)) { + Process.Start(@"https://fallguys-db.pages.dev/store"); + } else if (sender.Equals(this.menuFallGuysDBNewsfeeds) || sender.Equals(this.trayFallGuysDBNewsfeeds)) { + Process.Start(@"https://fallguys-db.pages.dev/newsfeeds"); + } else if (sender.Equals(this.menuFallGuysDBStrings) || sender.Equals(this.trayFallGuysDBStrings)) { + Process.Start(@"https://fallguys-db.pages.dev/strings"); + } else if (sender.Equals(this.menuFallGuysDBCosmetics) || sender.Equals(this.trayFallGuysDBCosmetics)) { + Process.Start(@"https://fallguys-db.pages.dev/unlocks"); + } else if (sender.Equals(this.menuFallGuysDBCrownRanks) || sender.Equals(this.trayFallGuysDBCrownRanks)) { + Process.Start(@"https://fallguys-db.pages.dev/crown_ranks"); + } else if (sender.Equals(this.menuFallGuysDBLiveEvents) || sender.Equals(this.trayFallGuysDBLiveEvents)) { + Process.Start(@"https://fallguys-db.pages.dev/live_events"); + } else if (sender.Equals(this.menuFallGuysDBDailyShop) || sender.Equals(this.trayFallGuysDBDailyShop)) { + Process.Start(@"https://fallguys-db.pages.dev/daily_store"); + } else if (sender.Equals(this.menuFallGuysDBCreative) || sender.Equals(this.trayFallGuysDBCreative)) { + Process.Start(@"https://fallguys-db.pages.dev/creative"); + } else if (sender.Equals(this.menuFallGuysDBFaq) || sender.Equals(this.trayFallGuysDBFaq)) { + Process.Start(@"https://fallguys-db.pages.dev/faq"); + } else if (sender.Equals(this.menuFallGuysOfficial) || sender.Equals(this.trayFallGuysOfficial)) { + Process.Start(@"https://fallguys.com/"); + } + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void menuUsefulThings_MouseEnter(object sender, EventArgs e) { + Rectangle rectangle = this.menuUsefulThings.Bounds; + Point position = new Point(rectangle.Left, rectangle.Bottom + 260); + this.AllocCustomTooltip(this.cmtt_center_Draw); + if (sender.Equals(this.menuFallGuysWiki)) { + this.ShowCustomTooltip(Multilingual.GetWord("main_fall_guys_wiki_tooltip"), this, position); + } else if (sender.Equals(this.menuFallGuysReddit)) { + this.ShowCustomTooltip(Multilingual.GetWord("main_fall_guys_reddit_tooltip"), this, position); + } else if (sender.Equals(this.menuRollOffClub)) { + this.ShowCustomTooltip(Multilingual.GetWord("main_roll_off_club_tooltip"), this, position); + } else if (sender.Equals(this.menuLostTempleAnalyzer)) { + this.ShowCustomTooltip(Multilingual.GetWord("main_lost_temple_analyzer_tooltip"), this, position); + } else if (sender.Equals(this.menuFallGuysOfficial)) { + this.ShowCustomTooltip(Multilingual.GetWord("main_fall_guys_official_tooltip"), this, position); + } + // else if (sender.Equals(this.menuFallGuysDB)) { + // this.ShowCustomTooltip(Multilingual.GetWord("main_todays_show_tooltip"), this, position); + // } else if (sender.Equals(this.menuFallalytics)) { + // this.ShowCustomTooltip(Multilingual.GetWord("main_fallalytics_tooltip"), this, position); + // } + } + + private void menuUsefulThings_MouseLeave(object sender, EventArgs e) { + this.HideCustomTooltip(this); + this.Cursor = Cursors.Default; + } + + private void menuUpdate_MouseEnter(object sender, EventArgs e) { + Rectangle rectangle = ((ToolStripMenuItem)sender).Bounds; + Point position = new Point(rectangle.Left, rectangle.Bottom + 68); + this.AllocTooltip(); + this.ShowTooltip(sender.Equals(this.menuUpdate) && this.isAvailableNewVersion ? $"{Multilingual.GetWord("main_you_can_update_new_version_prefix_tooltip")}v{this.availableNewVersion}{Multilingual.GetWord("main_you_can_update_new_version_suffix_tooltip")}" : + $"{Multilingual.GetWord("main_update_prefix_tooltip")}{Environment.NewLine}{Multilingual.GetWord("main_update_suffix_tooltip")}", + this, position); + } + + private void menuUpdate_MouseLeave(object sender, EventArgs e) { + this.HideTooltip(this); + this.Cursor = Cursors.Default; + } + + private void menuOverlay_MouseEnter(object sender, EventArgs e) { + this.Cursor = Cursors.Hand; + Rectangle rectangle = this.menuOverlay.Bounds; + Point position = new Point(rectangle.Left, rectangle.Bottom + 68); + this.AllocCustomTooltip(this.cmtt_overlay_Draw); + this.ShowCustomTooltip($"{Multilingual.GetWord(this.overlay.Visible ? "main_overlay_hide_tooltip" : "main_overlay_show_tooltip")}{Environment.NewLine}{Multilingual.GetWord("main_overlay_shortcut_tooltip")}", this, position); + } + + private void menuOverlay_MouseLeave(object sender, EventArgs e) { + this.HideCustomTooltip(this); + this.Cursor = Cursors.Default; + } + + private void setCursor_MouseMove(object sender, MouseEventArgs e) { + this.Cursor = Cursors.Hand; + } + + private void setCursor_MouseLeave(object sender, EventArgs e) { + this.Cursor = Cursors.Default; + } + + private void trayCMenu_Closing(object sender, ToolStripDropDownClosingEventArgs e) { + this.trayCMenu.Opacity = 0; + } + + private void trayCMenu_Opening(object sender, CancelEventArgs e) { + this.trayCMenu.Opacity = 100; + } + + private void trayIcon_MouseUp(object sender, MouseEventArgs e) { + if (e.Button == MouseButtons.Right) { + int menuPositionX = 0, menuPositionY = 0; + switch (this.GetTaskbarPosition()) { + case TaskbarPosition.Bottom: + if (MousePosition.Y >= Screen.GetWorkingArea(MousePosition).Height) { + menuPositionX = MousePosition.X; + menuPositionY = Screen.GetWorkingArea(MousePosition).Height - this.trayCMenu.Height; + } else { + menuPositionX = MousePosition.X + 5; + menuPositionY = this.trayCMenu.Location.Y - 5; + } + break; + case TaskbarPosition.Left: + if (MousePosition.X <= (Screen.GetBounds(MousePosition).Width - Screen.GetWorkingArea(MousePosition).Width)) { + menuPositionX = Screen.GetBounds(MousePosition).Width - Screen.GetWorkingArea(MousePosition).Width; + menuPositionY = this.trayCMenu.Location.Y; + } else { + menuPositionX = MousePosition.X + 5; + menuPositionY = this.trayCMenu.Location.Y - 5; + } + break; + case TaskbarPosition.Right: + if (MousePosition.X >= Screen.GetWorkingArea(MousePosition).Width) { + menuPositionX = Screen.GetWorkingArea(MousePosition).Width - this.trayCMenu.Width; + menuPositionY = MousePosition.Y - this.trayCMenu.Height; + } else { + menuPositionX = MousePosition.X - this.trayCMenu.Width - 5; + menuPositionY = this.trayCMenu.Location.Y - 5; + } + break; + case TaskbarPosition.Top: + if (MousePosition.Y <= (Screen.GetBounds(MousePosition).Height - Screen.GetWorkingArea(MousePosition).Height)) { + menuPositionX = MousePosition.X - this.trayCMenu.Width; + menuPositionY = Screen.GetBounds(MousePosition).Height - Screen.GetWorkingArea(MousePosition).Height; + } else { + menuPositionX = MousePosition.X - this.trayCMenu.Width - 5; + menuPositionY = this.trayCMenu.Location.Y + 5; + } + break; + } + this.trayCMenu.Location = new Point(menuPositionX, menuPositionY); + } + } + + private void trayIcon_MouseClick(object sender, MouseEventArgs e) { + if (e.Button == MouseButtons.Left) { + if (this.Visible && this.WindowState == FormWindowState.Minimized) { + this.isFocused = true; + this.WindowState = this.maximizedForm ? FormWindowState.Maximized : FormWindowState.Normal; + this.TopMost = true; + this.TopMost = false; + Utils.SetForegroundWindow(Utils.FindWindow(null, this.mainWndTitle)); + } else if (this.Visible && this.WindowState != FormWindowState.Minimized) { + if (this.isFocused) { + this.isFocused = false; + this.Hide(); + } else { + this.isFocused = true; + this.TopMost = true; + this.TopMost = false; + Utils.SetForegroundWindow(Utils.FindWindow(null, this.mainWndTitle)); + } + } else { + this.isFocused = true; + this.Show(); + } + } + } + + private void trayIcon_MouseMove(object sender, MouseEventArgs e) { + this.isFocused = ActiveForm == this; + } + + private void Stats_VisibleChanged(object sender, EventArgs e) { + if (this.Visible) { + this.TopMost = true; + this.TopMost = false; + Utils.SetForegroundWindow(Utils.FindWindow(null, this.mainWndTitle)); + this.SetMainDataGridViewOrder(); + } + } + + private void Stats_Resize(object sender, EventArgs e) { + this.isFocused = true; + if (this.WindowState == FormWindowState.Maximized) { + this.maximizedForm = true; + } else if (this.WindowState == FormWindowState.Normal) { + this.maximizedForm = false; + } + } + + public void SaveWindowState() { + this.CurrentSettings.Visible = this.Visible; + + if (this.WindowState != FormWindowState.Normal) { + this.CurrentSettings.FormLocationX = this.RestoreBounds.Location.X; + this.CurrentSettings.FormLocationY = this.RestoreBounds.Location.Y; + this.CurrentSettings.FormWidth = this.RestoreBounds.Size.Width; + this.CurrentSettings.FormHeight = this.RestoreBounds.Size.Height; + this.CurrentSettings.MaximizedWindowState = this.maximizedForm; + } else { + this.CurrentSettings.FormLocationX = this.Location.X; + this.CurrentSettings.FormLocationY = this.Location.Y; + this.CurrentSettings.FormWidth = this.Size.Width; + this.CurrentSettings.FormHeight = this.Size.Height; + this.CurrentSettings.MaximizedWindowState = false; + } + } + + public void Stats_ExitProgram(object sender, EventArgs e) { + try { +#if AllowUpdate + if (IsExitingForUpdate) { + this.trayIcon.Visible = false; + this.CurrentSettings.ShowChangelog = true; + } + + if (!IsUpdatingOnAppLaunch && !this.IsDisposed && !this.Disposing) { + this.SaveWindowState(); + } +#else + if (!this.IsDisposed && !this.Disposing) { + this.SaveWindowState(); + } +#endif + this.SaveUserSettings(); + + IsExitingProgram = true; + this.Hide(); + this.overlay?.Dispose(); + + if (this.logFile.logFileWatcher != null) { + Task.Run(() => this.logFile.Stop()).Wait(); + } + + lock (this.dbTaskLock) { + Task.WaitAll(this.dbTasks.ToArray()); + this.StatsDB?.Dispose(); + } +#if AllowUpdate + if (IsExitingForUpdate) return; +#endif + } catch (Exception ex) { + IsExitingProgram = true; + lock (this.dbTaskLock) { + Task.WaitAll(this.dbTasks.ToArray()); + this.StatsDB?.Dispose(); + } + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); +#if AllowUpdate + if (IsExitingForUpdate) return; +#endif + } + this.Close(); + } + + private void Stats_FormClosing(object sender, FormClosingEventArgs e) { + if (IsExitingProgram) return; + + if (this.CurrentSettings.SystemTrayIcon) { + this.Hide(); + e.Cancel = true; + } else { + try { + if (!this.IsDisposed && !this.Disposing) { + this.SaveWindowState(); + } + this.SaveUserSettings(); + IsExitingProgram = true; + this.Hide(); + this.overlay?.Dispose(); + if (this.logFile.logFileWatcher != null) { + Task.Run(() => this.logFile.Stop()).Wait(); + } + lock (this.dbTaskLock) { + Task.WaitAll(this.dbTasks.ToArray()); + this.StatsDB?.Dispose(); + } + } catch (Exception ex) { + IsExitingProgram = true; + lock (this.dbTaskLock) { + Task.WaitAll(this.dbTasks.ToArray()); + this.StatsDB?.Dispose(); + } + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void Stats_Load(object sender, EventArgs e) { + try { + InstalledEmojiFont = Utils.IsFontInstalled("Segoe UI Emoji"); + + if (Utils.IsInternetConnected()) { + Task.Run(() => { HostCountryCode = Utils.GetCountryCode(Utils.GetUserPublicIp()); }); + } + + this.SetTheme(CurrentTheme); + this.infoStrip.Renderer = new CustomToolStripSystemRenderer(); + this.infoStrip2.Renderer = new CustomToolStripSystemRenderer(); + + this.UpdateDates(); + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void Stats_Shown(object sender, EventArgs e) { + try { +#if AllowUpdate + if (Utils.IsInternetConnected()) { + if (this.CurrentSettings.AutoUpdate) { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + if (this.CheckForUpdate(true)) { + return; + } + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } else { + this.CheckForNewVersion(); + this.CheckForNewVersionJob(); + } + + if (this.CurrentSettings.ShowChangelog) { + try { + string changelog = Utils.GetApiData(Utils.FALLGUYSSTATS_RELEASES_LATEST_INFO_URL).GetProperty("body").GetString(); + changelog = changelog?.Substring(0, changelog.IndexOf($"{Environment.NewLine}{Environment.NewLine}
{Environment.NewLine}{Environment.NewLine}", StringComparison.OrdinalIgnoreCase)); + + MetroMessageBox.Show(this, + $"{this.TranslateChangelog(changelog)}{Multilingual.GetWord("main_update_prefix_tooltip").Trim()}{Environment.NewLine}{Multilingual.GetWord("main_update_suffix_tooltip").Trim()}", + $"{Multilingual.GetWord("message_changelog_caption")} - {Multilingual.GetWord("main_fall_guys_stats")} v{Assembly.GetExecutingAssembly().GetName().Version.ToString(3)}", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + + this.CurrentSettings.ShowChangelog = false; + this.SaveUserSettings(); + } catch { + // ignored + } + } + } else { + this.CheckForNewVersionJob(true); + } +#endif + this.ReloadProfileMenuItems(); + + string logPath = !string.IsNullOrEmpty(this.CurrentSettings.LogPath) && Directory.Exists(this.CurrentSettings.LogPath) ? this.CurrentSettings.LogPath : LOGPATH; + this.logFile.Start(logPath, LOGFILENAME); + + this.SetWindowCorner(); + this.SetMainDataGridViewOrder(); + this.scrollTimer.Tick += this.scrollTimer_Tick; + + if (this.CurrentSettings.FormWidth.HasValue) { + this.Size = new Size(this.CurrentSettings.FormWidth.Value, this.CurrentSettings.FormHeight.Value); + } + if (this.CurrentSettings.FormLocationX.HasValue && Utils.IsOnScreen(this.CurrentSettings.FormLocationX.Value, this.CurrentSettings.FormLocationY.Value, this.Width, this.Height)) { + this.Location = new Point(this.CurrentSettings.FormLocationX.Value, this.CurrentSettings.FormLocationY.Value); + } + + this.WindowState = this.CurrentSettings.MaximizedWindowState ? FormWindowState.Maximized : FormWindowState.Normal; + + if (this.CurrentSettings.AutoLaunchGameOnStartup) { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + this.LaunchGame(true); + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } + + if (this.CurrentSettings.SystemTrayIcon || this.WindowState != FormWindowState.Minimized) { + this.WindowState = this.CurrentSettings.MaximizedWindowState ? FormWindowState.Maximized : FormWindowState.Normal; + } + + this.ShowInTaskbar = true; + this.SetSystemTrayIcon(this.CurrentSettings.SystemTrayIcon); + + this.Hide(); + if (this.CurrentSettings.Visible) { + this.Show(); + } + this.Opacity = 1; + + this.overlay.UpdateDisplay(true); + if (this.CurrentSettings.OverlayVisible) { + this.ToggleOverlay(this.overlay, false); + } + + this.selectedCustomTemplateSeason = this.CurrentSettings.SelectedCustomTemplateSeason; + this.customfilterRangeStart = this.CurrentSettings.CustomFilterRangeStart; + this.customfilterRangeEnd = this.CurrentSettings.CustomFilterRangeEnd; + this.menuAllStats.Checked = false; + this.trayAllStats.Checked = false; + switch (this.CurrentSettings.FilterType) { + case 0: + this.menuCustomRangeStats.Checked = true; + this.trayCustomRangeStats.Checked = true; + this.menuStats_Click(this.menuCustomRangeStats, EventArgs.Empty); + break; + case 1: + this.menuAllStats.Checked = true; + this.trayAllStats.Checked = true; + this.menuStats_Click(this.menuAllStats, EventArgs.Empty); + break; + case 2: + this.menuSeasonStats.Checked = true; + this.traySeasonStats.Checked = true; + this.menuStats_Click(this.menuSeasonStats, EventArgs.Empty); + break; + case 3: + this.menuWeekStats.Checked = true; + this.trayWeekStats.Checked = true; + this.menuStats_Click(this.menuWeekStats, EventArgs.Empty); + break; + case 4: + this.menuDayStats.Checked = true; + this.trayDayStats.Checked = true; + this.menuStats_Click(this.menuDayStats, EventArgs.Empty); + break; + case 5: + this.menuSessionStats.Checked = true; + this.traySessionStats.Checked = true; + this.menuStats_Click(this.menuSessionStats, EventArgs.Empty); + break; + } + this.isStartingUp = false; + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LogFile_OnError(string error) { + if (!this.Disposing && !this.IsDisposed) { + try { + if (this.InvokeRequired) { + this.Invoke((Action)LogFile_OnError, error); + } else { + MetroMessageBox.Show(this, error, $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } catch { + // ignored + } + } + } + + private void LogFile_OnPersonalBestNotification(string showId, string roundId, double currentPb, double currentRecord) { + string timeDiffContent = string.Empty; + if (currentPb > 0) { + TimeSpan timeDiff = TimeSpan.FromMilliseconds(currentPb - currentRecord); + timeDiffContent = timeDiff.Minutes > 0 ? $" ⏱️ {Multilingual.GetWord("message_new_personal_best_timediff_by_minute_prefix")}{timeDiff.Minutes}{Multilingual.GetWord("message_new_personal_best_timediff_by_minute_infix")} {timeDiff:s\\.fff}{Multilingual.GetWord("message_new_personal_best_timediff_by_minute_suffix")}" + : $" ⏱️ {timeDiff:s\\.fff}{Multilingual.GetWord("message_new_personal_best_timediff_by_second")}"; + } + string levelName = this.StatLookup.TryGetValue(roundId, out LevelStats l1) ? l1.Name : roundId.Substring(0, roundId.Length - 3); + string info = $"{(string.Equals(Multilingual.GetShowName(showId), levelName) ? $"({levelName})" : $"({Multilingual.GetShowName(showId)} • {levelName})")}"; + string description = $"{Multilingual.GetWord("message_new_personal_best_prefix")}{info}{Multilingual.GetWord("message_new_personal_best_suffix")}{timeDiffContent}"; + ToastPosition toastPosition = Enum.TryParse(this.CurrentSettings.NotificationWindowPosition.ToString(), out ToastPosition position) ? position : ToastPosition.BottomRight; + ToastTheme toastTheme = this.Theme == MetroThemeStyle.Light ? ToastTheme.Light : ToastTheme.Dark; + ToastAnimation toastAnimation = this.CurrentSettings.NotificationWindowAnimation == 0 ? ToastAnimation.FADE : ToastAnimation.SLIDE; + ToastSound toastSound = Enum.TryParse(this.CurrentSettings.NotificationSounds.ToString(), out ToastSound sound) ? sound : ToastSound.Generic01; + this.ShowToastNotification(this, null, Multilingual.GetWord("message_new_personal_best_caption"), description, Overlay.GetMainFont(16, FontStyle.Bold, CurrentLanguage), + null, ToastDuration.MEDIUM, toastPosition, toastAnimation, toastTheme, toastSound, this.CurrentSettings.MuteNotificationSounds, true); + } + + private void LogFile_OnServerConnectionNotification() { + string countryFullName; + if (!string.IsNullOrEmpty(LastCountryAlpha2Code)) { + countryFullName = Multilingual.GetCountryName(LastCountryAlpha2Code); + if (!string.IsNullOrEmpty(LastCountryRegion)) { + countryFullName += $" ({LastCountryRegion}"; + if (!string.IsNullOrEmpty(LastCountryCity)) { + + if (!string.Equals(LastCountryCity, LastCountryRegion)) { + countryFullName += $", {LastCountryCity})"; + } else { + countryFullName += ")"; + } + } else { + countryFullName += ")"; + } + } else { + if (!string.IsNullOrEmpty(LastCountryCity)) { + countryFullName += $" ({LastCountryCity})"; + } + } + } else { + countryFullName = "UNKNOWN"; + } + string description = $"{Multilingual.GetWord("message_connected_to_server_prefix")}{countryFullName}{Multilingual.GetWord("message_connected_to_server_suffix")}"; + Image flagImage = (Image)Properties.Resources.ResourceManager.GetObject($"country_{(string.IsNullOrEmpty(LastCountryAlpha2Code) ? "unknown" : LastCountryAlpha2Code)}{(this.CurrentSettings.ShadeTheFlagImage ? "_shiny" : "")}_icon"); + ToastPosition toastPosition = Enum.TryParse(this.CurrentSettings.NotificationWindowPosition.ToString(), out ToastPosition position) ? position : ToastPosition.BottomRight; + ToastTheme toastTheme = this.Theme == MetroThemeStyle.Light ? ToastTheme.Light : ToastTheme.Dark; + ToastAnimation toastAnimation = this.CurrentSettings.NotificationWindowAnimation == 0 ? ToastAnimation.FADE : ToastAnimation.SLIDE; + ToastSound toastSound = Enum.TryParse(this.CurrentSettings.NotificationSounds.ToString(), out ToastSound sound) ? sound : ToastSound.Generic01; + this.ShowToastNotification(this, null, Multilingual.GetWord("message_connected_to_server_caption"), description, Overlay.GetMainFont(16, FontStyle.Bold, CurrentLanguage), + flagImage, ToastDuration.MEDIUM, toastPosition, toastAnimation, toastTheme, toastSound, this.CurrentSettings.MuteNotificationSounds, true); + } + + private void LogFile_OnNewLogFileDate(DateTime newDate) { + if (SessionStart != newDate) { + SessionStart = newDate; + if (this.menuSessionStats.Checked) { + this.menuStats_Click(this.menuSessionStats, EventArgs.Empty); + } + } + } + + private void LogFile_OnParsedLogLinesCurrent(List round) { + lock (this.CurrentRound) { + if (this.CurrentRound == null || this.CurrentRound.Count != round.Count) { + this.CurrentRound = round; + } else { + for (int i = 0; i < this.CurrentRound.Count; i++) { + RoundInfo info = this.CurrentRound[i]; + if (!info.Equals(round[i])) { + this.CurrentRound = round; + break; + } + } + } + } + } + + private void LogFile_OnParsedLogLines(List round) { + try { + if (this.InvokeRequired) { + this.Invoke((Action>)this.LogFile_OnParsedLogLines, round); + return; + } + + lock (this.StatsDB) { + if (!this.loadingExisting) { this.StatsDB.BeginTrans(); } + + int profile = this.currentProfile; + foreach (var stat in round) { + if (!this.loadingExisting) { + RoundInfo info = null; + for (int i = this.AllStats.Count - 1; i >= 0; i--) { + RoundInfo temp = this.AllStats[i]; + if (temp.Start == stat.Start && temp.Name == stat.Name) { + info = temp; + break; + } + } + + if (info == null && stat.Start > this.lastAddedShow) { + if (stat.ShowEnd < this.startupTime && this.askedPreviousShows == 0) { + IsDisplayOverlayTime = false; + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + using (EditShows editShows = new EditShows()) { + editShows.FunctionFlag = "add"; + editShows.Profiles = this.AllProfiles; + editShows.StatsForm = this; + if (editShows.ShowDialog(this) == DialogResult.OK) { + this.askedPreviousShows = 1; + if (editShows.UseLinkedProfiles) { + this.useLinkedProfiles = true; + } else { + profile = editShows.SelectedProfileId; + this.CurrentSettings.SelectedProfile = profile; + this.SetProfileMenu(profile); + } + } else { + this.askedPreviousShows = 2; + } + } + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + IsDisplayOverlayTime = true; + } + + if (stat.ShowEnd < this.startupTime && this.askedPreviousShows == 2) { + continue; + } + + if (stat.ShowEnd < this.startupTime && this.useLinkedProfiles) { + profile = this.GetLinkedProfileId(stat.ShowNameId, stat.PrivateLobby); + this.CurrentSettings.SelectedProfile = profile; + this.SetProfileMenu(profile); + } + + if (stat.Round == 1) { + this.nextShowID++; + this.lastAddedShow = stat.Start; + } + stat.ShowID = this.nextShowID; + stat.Profile = profile; + + if (((this.StatLookup.TryGetValue(stat.Name, out LevelStats l1) && l1.IsCreative && !string.IsNullOrEmpty(l1.ShareCode) && string.IsNullOrEmpty(stat.CreativeTitle)) + || (stat.UseShareCode && !string.IsNullOrEmpty(stat.CreativeShareCode) && (string.Equals(stat.ShowNameId, "unknown") || string.IsNullOrEmpty(stat.CreativeTitle)))) && Utils.IsInternetConnected()) { + string shareCode = stat.UseShareCode ? stat.CreativeShareCode : l1.ShareCode; + RoundInfo ri = this.GetRoundInfoFromShareCode(shareCode); + if (ri != null) { + if (stat.UseShareCode) { stat.ShowNameId = ri.ShowNameId; } + stat.CreativeOnlinePlatformId = ri.CreativeOnlinePlatformId; + stat.CreativeAuthor = ri.CreativeAuthor; + stat.CreativeShareCode = shareCode; + stat.CreativeVersion = ri.CreativeVersion; + stat.CreativeStatus = ri.CreativeStatus; + stat.CreativeTitle = ri.CreativeTitle; + stat.CreativeDescription = ri.CreativeDescription; + stat.CreativeCreatorTags = ri.CreativeCreatorTags; + stat.CreativeMaxPlayer = ri.CreativeMaxPlayer; + stat.CreativeThumbUrl = ri.CreativeThumbUrl; + stat.CreativePlatformId = ri.CreativePlatformId; + stat.CreativeGameModeId = ri.CreativeGameModeId; + stat.CreativeLevelThemeId = ri.CreativeLevelThemeId; + stat.CreativeLastModifiedDate = ri.CreativeLastModifiedDate; + stat.CreativePlayCount = ri.CreativePlayCount; + stat.CreativeLikes = ri.CreativeLikes; + stat.CreativeDislikes = ri.CreativeDislikes; + stat.CreativeQualificationPercent = ri.CreativeQualificationPercent; + stat.CreativeTimeLimitSeconds = ri.CreativeTimeLimitSeconds; + } else { + try { + JsonElement resData = Utils.GetApiData(Utils.FALLGUYSDB_API_URL, $"creative/{shareCode}.json"); + JsonElement je = resData.GetProperty("data"); + JsonElement snapshot = je.GetProperty("snapshot"); + JsonElement versionMetadata = snapshot.GetProperty("version_metadata"); + JsonElement stats = snapshot.GetProperty("stats"); + if (stat.UseShareCode) { stat.ShowNameId = this.GetUserCreativeLevelTypeId(versionMetadata.GetProperty("game_mode_id").GetString()); } + string[] onlinePlatformInfo = this.FindUserCreativeAuthor(snapshot.GetProperty("author").GetProperty("name_per_platform")); + // stat.CreativeShareCode = snapshot.GetProperty("share_code").GetString(); + stat.CreativeShareCode = shareCode; + stat.CreativeOnlinePlatformId = onlinePlatformInfo[0]; + stat.CreativeAuthor = onlinePlatformInfo[1]; + stat.CreativeVersion = versionMetadata.GetProperty("version").GetInt32(); + stat.CreativeStatus = versionMetadata.GetProperty("status").GetString(); + stat.CreativeTitle = versionMetadata.GetProperty("title").GetString(); + stat.CreativeDescription = versionMetadata.GetProperty("description").GetString(); + if (versionMetadata.TryGetProperty("creator_tags", out JsonElement creatorTags) && creatorTags.ValueKind == JsonValueKind.Array) { + string temps = string.Empty; + foreach (JsonElement t in creatorTags.EnumerateArray()) { + if (!string.IsNullOrEmpty(temps)) { temps += ";"; } + temps += t.GetString(); + } + stat.CreativeCreatorTags = temps; + } + stat.CreativeMaxPlayer = versionMetadata.GetProperty("max_player_count").GetInt32(); + stat.CreativeThumbUrl = versionMetadata.GetProperty("thumb_url").GetString(); + stat.CreativePlatformId = versionMetadata.GetProperty("platform_id").GetString(); + stat.CreativeGameModeId = versionMetadata.GetProperty("game_mode_id").GetString() ?? "GAMEMODE_GAUNTLET"; + stat.CreativeLevelThemeId = versionMetadata.GetProperty("level_theme_id").GetString() ?? "THEME_VANILLA"; + stat.CreativeLastModifiedDate = versionMetadata.GetProperty("last_modified_date").GetDateTime(); + stat.CreativePlayCount = stats.GetProperty("play_count").GetInt32(); + stat.CreativeLikes = stats.GetProperty("likes").GetInt32(); + stat.CreativeDislikes = stats.GetProperty("dislikes").GetInt32(); + stat.CreativeQualificationPercent = versionMetadata.GetProperty("qualification_percent").GetInt32(); + stat.CreativeTimeLimitSeconds = versionMetadata.GetProperty("config").TryGetProperty("time_limit_seconds", out JsonElement jeTimeLimitSeconds) ? jeTimeLimitSeconds.GetInt32() : 240; + // var stat1 = stat; + // Task.Run(() => { this.UpdateCreativeLevel(stat1.Name, shareCode, snapshot); }); + } catch { + try { + JsonElement resData = Utils.GetApiData(Utils.FGANALYST_API_URL, $"creative/?share_code={shareCode}"); + JsonElement je = resData.GetProperty("level_data"); + JsonElement levelData = je[0]; + JsonElement versionMetadata = levelData.GetProperty("version_metadata"); + JsonElement stats = levelData.GetProperty("stats"); + if (stat.UseShareCode) { stat.ShowNameId = this.GetUserCreativeLevelTypeId(versionMetadata.GetProperty("game_mode_id").GetString()); } + string[] onlinePlatformInfo = this.FindUserCreativeAuthor(levelData.GetProperty("author").GetProperty("name_per_platform")); + // stat.CreativeShareCode = levelData.GetProperty("share_code").GetString(); + stat.CreativeShareCode = shareCode; + stat.CreativeOnlinePlatformId = onlinePlatformInfo[0]; + stat.CreativeAuthor = onlinePlatformInfo[1]; + stat.CreativeVersion = versionMetadata.GetProperty("version").GetInt32(); + stat.CreativeStatus = versionMetadata.GetProperty("status").GetString(); + stat.CreativeTitle = versionMetadata.GetProperty("title").GetString(); + stat.CreativeDescription = versionMetadata.GetProperty("description").GetString(); + if (versionMetadata.TryGetProperty("creator_tags", out JsonElement creatorTags) && creatorTags.ValueKind == JsonValueKind.Array) { + string temps = string.Empty; + foreach (JsonElement t in creatorTags.EnumerateArray()) { + if (!string.IsNullOrEmpty(temps)) { temps += ";"; } + temps += t.GetString(); + } + stat.CreativeCreatorTags = temps; + } + stat.CreativeMaxPlayer = versionMetadata.GetProperty("max_player_count").GetInt32(); + stat.CreativeThumbUrl = versionMetadata.GetProperty("thumb_url").GetString(); + stat.CreativePlatformId = versionMetadata.GetProperty("platform_id").GetString(); + stat.CreativeGameModeId = versionMetadata.GetProperty("game_mode_id").GetString() ?? "GAMEMODE_GAUNTLET"; + stat.CreativeLevelThemeId = versionMetadata.GetProperty("level_theme_id").GetString() ?? "THEME_VANILLA"; + stat.CreativeLastModifiedDate = versionMetadata.GetProperty("last_modified_date").GetDateTime(); + stat.CreativePlayCount = stats.GetProperty("play_count").GetInt32(); + stat.CreativeLikes = stats.GetProperty("likes").GetInt32(); + stat.CreativeDislikes = stats.GetProperty("dislikes").GetInt32(); + stat.CreativeQualificationPercent = versionMetadata.GetProperty("qualification_percent").GetInt32(); + stat.CreativeTimeLimitSeconds = versionMetadata.GetProperty("config").TryGetProperty("time_limit_seconds", out JsonElement jeTimeLimitSeconds) ? jeTimeLimitSeconds.GetInt32() : 240; + // var stat1 = stat; + // Task.Run(() => { this.UpdateCreativeLevel(stat1.Name, shareCode, levelData); }); + } catch { + stat.CreativeOnlinePlatformId = string.Empty; + stat.CreativeAuthor = string.Empty; + stat.CreativeShareCode = string.Empty; + stat.CreativeVersion = 0; + stat.CreativeStatus = string.Empty; + stat.CreativeTitle = string.Empty; + stat.CreativeDescription = string.Empty; + stat.CreativeCreatorTags = string.Empty; + stat.CreativeMaxPlayer = 0; + stat.CreativeThumbUrl = string.Empty; + stat.CreativePlatformId = string.Empty; + stat.CreativeGameModeId = string.Empty; + stat.CreativeLevelThemeId = string.Empty; + stat.CreativeLastModifiedDate = DateTime.MinValue; + stat.CreativePlayCount = 0; + stat.CreativeLikes = 0; + stat.CreativeDislikes = 0; + stat.CreativeQualificationPercent = 0; + stat.CreativeTimeLimitSeconds = 0; + } + } + } + } + + this.RoundDetails.Insert(stat); + this.AllStats.Add(stat); + + // Below is where reporting to fallalytics happen + // Must have enabled the setting to enable tracking + // Must not be a private lobby + // Must be a game that is played after FallGuysStats started + + if ((this.CurrentSettings.EnableFallalyticsReporting || this.CurrentSettings.EnableFallalyticsWeeklyCrownLeague) && !stat.PrivateLobby && !stat.UseShareCode && stat.ShowEnd > this.startupTime) { + if (this.CurrentSettings.EnableFallalyticsReporting) { + Task.Run(() => FallalyticsReporter.Report(stat, this.CurrentSettings.FallalyticsAPIKey)); + } + + if (OnlineServiceType != OnlineServiceTypes.None) { + string[] userInfo = null; + if (OnlineServiceType == OnlineServiceTypes.Steam) { + userInfo = this.FindSteamUserInfo(); + } else if (OnlineServiceType == OnlineServiceTypes.EpicGames) { + userInfo = this.FindEpicGamesUserInfo(); + } + + if (userInfo != null && !string.IsNullOrEmpty(userInfo[0]) && !string.IsNullOrEmpty(userInfo[1])) { + OnlineServiceId = userInfo[0]; + OnlineServiceNickname = userInfo[1]; + } + + if (!string.IsNullOrEmpty(OnlineServiceId) && !string.IsNullOrEmpty(OnlineServiceNickname)) { + if (string.IsNullOrEmpty(HostCountryCode)) { + HostCountryCode = Utils.GetCountryCode(Utils.GetUserPublicIp()); + } + + if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("FALLALYTICS_KEY"))) { + if (this.CurrentSettings.EnableFallalyticsReporting) { + if (stat.Finish.HasValue && (this.StatLookup.TryGetValue(stat.Name, out LevelStats level) && level.Type == LevelType.Race)) { + Task.Run(() => this.FallalyticsRegisterPb(stat)); + } + } + + if (this.CurrentSettings.EnableFallalyticsWeeklyCrownLeague) { + if (stat.Crown) { + Task.Run(() => this.FallalyticsWeeklyCrown(stat)).ContinueWith(prevTask => this.FallalyticsResendWeeklyCrown()); + } + + bool existsTransferFailedLogs; + lock (this.FallalyticsCrownLogCache) { + existsTransferFailedLogs = this.FallalyticsCrownLogCache.Exists(l => l.IsTransferSuccess == false && l.OnlineServiceType == (int)OnlineServiceType && string.Equals(l.OnlineServiceId, OnlineServiceId)); + } + if (existsTransferFailedLogs) { + Task.Run(this.FallalyticsResendWeeklyCrown); + } + } + } + } + } + } + } else { + if (this.CurrentSettings.AutoChangeProfile) { + profile = this.GetLinkedProfileId(stat.ShowNameId, stat.PrivateLobby); + this.CurrentSettings.SelectedProfile = profile; + this.SetProfileMenu(profile); + } + continue; + } + } + + if (stat.PrivateLobby || stat.IsCasualShow) { + if (stat.Round == 1) { + this.CustomAndCasualShows++; + } + this.CustomAndCasualRounds++; + } else { + if (stat.Round == 1) { + this.Shows++; + } + this.Rounds++; + } + this.Duration += stat.End - stat.Start; + + if (stat.PrivateLobby || stat.IsCasualShow) { + if (stat.Qualified) { + switch (stat.Tier) { + case 0: + this.CustomAndCasualPinkMedals++; + break; + case 1: + this.CustomAndCasualGoldMedals++; + break; + case 2: + this.CustomAndCasualSilverMedals++; + break; + case 3: + this.CustomAndCasualBronzeMedals++; + break; + } + } else { + this.CustomAndCasualEliminatedMedals++; + } + } else { + if (stat.Qualified) { + switch (stat.Tier) { + case 0: + this.PinkMedals++; + break; + case 1: + this.GoldMedals++; + break; + case 2: + this.SilverMedals++; + break; + case 3: + this.BronzeMedals++; + break; + } + } else { + this.EliminatedMedals++; + } + } + + this.Kudos += stat.Kudos; + + // add new type of round to the rounds lookup + if (!stat.UseShareCode && !this.StatLookup.ContainsKey(stat.Name)) { + string roundName = stat.Name; + roundName = roundName.StartsWith("round_") ? roundName.Substring(6).Replace('_', ' ') + : roundName.Replace('_', ' '); + + LevelStats newLevel = new LevelStats(stat.Name, string.Empty, this.textInfo.ToTitleCase(roundName), LevelType.Unknown, BestRecordType.Fastest, false, false, 10, Properties.Resources.round_unknown_icon, Properties.Resources.round_unknown_big_icon); + this.StatLookup.Add(stat.Name, newLevel); + this.StatDetails.Add(newLevel); + this.gridDetails.DataSource = null; + // this.gridDetails.DataSource = this.StatDetails; + this.gridDetails.DataSource = this.GetFilteredDataSource(this.CurrentSettings.GroupingCreativeRoundLevels); + } + + stat.ToLocalTime(); + + if (!stat.PrivateLobby && !stat.IsCasualShow) { + if (stat.IsFinal || stat.Crown) { + this.Finals++; + if (stat.Qualified) { + this.Wins++; + } + } + } + + if (this.StatLookup.TryGetValue(stat.UseShareCode ? stat.ShowNameId : stat.Name, out LevelStats levelStats)) { + levelStats.Increase(stat, this.profileWithLinkedCustomShow == stat.Profile); + levelStats.Add(stat); + + if (levelStats.IsCreative && !stat.UseShareCode) { + if (!this.StatDetails.Contains(levelStats)) { + LevelStats l1 = this.StatDetails.Find(l => string.Equals(l.ShareCode, levelStats.ShareCode)); + l1.Increase(stat, this.profileWithLinkedCustomShow == stat.Profile); + l1.Add(stat); + } + + if (this.StatLookup.TryGetValue(this.GetCreativeLevelTypeId(levelStats.Type, levelStats.IsFinal), out LevelStats creativeLevel)) { + creativeLevel.Increase(stat, this.profileWithLinkedCustomShow == stat.Profile); + creativeLevel.Add(stat); + } + } + } + } + + if (!this.loadingExisting) { this.StatsDB.Commit(); } + this.OnUpdatedLevelRows?.Invoke(); + } + + lock (this.CurrentRound) { + this.CurrentRound.Clear(); + for (int i = round.Count - 1; i >= 0; i--) { + RoundInfo info = round[i]; + this.CurrentRound.Insert(0, info); + if (info.Round == 1) { + break; + } + } + } + + if (!this.Disposing && !this.IsDisposed) { + try { + this.UpdateTotals(); + } catch { + // ignored + } + } + + IsOverlayRoundInfoNeedRefresh = true; + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + // public bool ExistsPersonalBestLog(DateTime pbDate) { + // return this.PersonalBestLog.Exists(Query.EQ("_id", pbDate)); + // } + + public bool ExistsPersonalBestLog(DateTime pbDate) { + return this.PersonalBestLogCache.Exists(l => l.PbDate == pbDate); + } + + // public PersonalBestLog SelectPersonalBestLog(string sessionId, string showId, string roundId) { + // BsonExpression condition = Query.And( + // Query.EQ("SessionId", sessionId), + // Query.EQ("ShowId", showId), + // Query.EQ("RoundId", roundId) + // ); + // return this.PersonalBestLog.FindOne(condition); + // } + + public void InsertPersonalBestLog(DateTime finish, string sessionId, string showId, string roundId, double record, bool isPb) { + lock (this.StatsDB) { + if (string.IsNullOrEmpty(HostCountryCode)) { + HostCountryCode = Utils.GetCountryCode(Utils.GetUserPublicIp()); + } + PersonalBestLog log = new PersonalBestLog { + PbDate = finish, SessionId = sessionId, ShowId = showId, RoundId = roundId, Record = record, IsPb = isPb, + CountryCode = HostCountryCode, OnlineServiceType = (int)OnlineServiceType, OnlineServiceId = OnlineServiceId, OnlineServiceNickname = OnlineServiceNickname + }; + this.PersonalBestLogCache.Add(log); + Task insertPersonalBestTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.PersonalBestLog.Insert(log); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(insertPersonalBestTask, false); + } + } + + // private void UpsertPersonalBestLog(string sessionId, string showId, string roundId, double record, DateTime finish, bool isPb) { + // lock (this.StatsDB) { + // Task upsertPersonalBestTask = new Task(() => { + // this.StatsDB.BeginTrans(); + // this.PersonalBestLog.Upsert(new PersonalBestLog { SessionId = sessionId, ShowId = showId, RoundId = roundId, Record = record, PbDate = finish, IsPb = isPb, + // CountryCode = HostCountryCode, OnlineServiceType = (int)OnlineServiceType, OnlineServiceId = OnlineServiceId, OnlineServiceNickname = OnlineServiceNickname + // }); + // this.StatsDB.Commit(); + // }); + // this.RunDatabaseTask(upsertPersonalBestTask, false); + // } + // } + + // private void ClearUnsavedPersonalBestLog() { + // lock (this.PersonalBestLogCache) { + // bool isCacheUpdated = false; + // List allPbDateLogs = this.PersonalBestLogCache.FindAll(l => l.IsPb).Select(l => l.PbDate).ToList(); + // foreach (DateTime pbDate in allPbDateLogs) { + // if (!this.RoundDetails.Exists(r => r.Finish.HasValue && r.Finish.Value == pbDate)) { + // PersonalBestLog pbLog = this.PersonalBestLogCache.Find(l => l.PbDate == pbDate); + // this.PersonalBestLogCache.Remove(pbLog); + // isCacheUpdated = true; + // } + // } + // if (isCacheUpdated) { + // Task clearUnsavedPersonalBestTask = new Task(() => { + // this.StatsDB.BeginTrans(); + // this.PersonalBestLog.DeleteAll(); + // this.PersonalBestLog.InsertBulk(this.PersonalBestLogCache); + // this.StatsDB.Commit(); + // }); + // this.RunDatabaseTask(clearUnsavedPersonalBestTask, false); + // } + // } + // } + + private void ClearPersonalBestLog(int days) { + lock (this.StatsDB) { + DateTime daysCond = DateTime.Now.AddDays(days * -1); + BsonExpression condition = Query.LT("_id", daysCond); + Task clearPersonalBestTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.PersonalBestLog.DeleteMany(condition); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(clearPersonalBestTask, false); + } + } + + private void ClearServerConnectionLog(int days) { + lock (this.StatsDB) { + DateTime daysCond = DateTime.Now.AddDays(days * -1); + BsonExpression condition = Query.LT("ConnectionDate", daysCond); + Task clearServerConnectionTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.ServerConnectionLog.DeleteMany(condition); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(clearServerConnectionTask, false); + } + } + + private void ClearWeeklyCrownLog(int days) { + lock (this.StatsDB) { + DateTime daysCond = DateTime.Now.AddDays(days * -1); + BsonExpression condition = Query.LT("End", daysCond); + Task clearWeeklyCrownTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.FallalyticsCrownLog.DeleteMany(condition); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(clearWeeklyCrownTask, false); + } + } + + public bool ExistsServerConnectionLog(string sessionId) { + if (string.IsNullOrEmpty(sessionId)) return false; + // BsonExpression condition = Query.And( + // Query.EQ("_id", sessionId), + // Query.EQ("ShowId", showId) + // ); + // return this.ServerConnectionLog.Exists(condition); + return this.ServerConnectionLogCache.Exists(l => string.Equals(l.SessionId, sessionId)); + } + + public ServerConnectionLog SelectServerConnectionLog(string sessionId) { + // BsonExpression condition = Query.And( + // Query.EQ("_id", sessionId), + // Query.EQ("ShowId", showId) + // ); + // return this.ServerConnectionLog.FindOne(condition); + return this.ServerConnectionLogCache.Find(l => string.Equals(l.SessionId, sessionId)); + } + + public void InsertServerConnectionLog(string sessionId, string showId, string serverIp, DateTime connectionDate, bool isNotify, bool isPlaying) { + lock (this.StatsDB) { + if (string.IsNullOrEmpty(HostCountryCode)) { + HostCountryCode = Utils.GetCountryCode(Utils.GetUserPublicIp()); + } + ServerConnectionLog log = new ServerConnectionLog { + SessionId = sessionId, ShowId = showId, ServerIp = serverIp, ConnectionDate = connectionDate, + CountryCode = HostCountryCode, OnlineServiceType = (int)OnlineServiceType, OnlineServiceId = OnlineServiceId, OnlineServiceNickname = OnlineServiceNickname, + IsNotify = isNotify, IsPlaying = isPlaying + }; + this.ServerConnectionLogCache.Add(log); + Task insertServerConnectionTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.ServerConnectionLog.Insert(log); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(insertServerConnectionTask, false); + } + } + + public void UpdateServerConnectionLog(string sessionId, bool isPlaying) { + lock (this.ServerConnectionLogCache) { + ServerConnectionLog log = this.SelectServerConnectionLog(sessionId); + if (log != null && !Equals(log.IsPlaying, isPlaying)) { + this.ServerConnectionLogCache.Remove(log); + log.IsPlaying = isPlaying; + this.ServerConnectionLogCache.Add(log); + lock (this.StatsDB) { + Task updateServerConnectionTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.ServerConnectionLog.Update(log); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(updateServerConnectionTask, false); + } + } + } + } + + // public void UpsertServerConnectionLog(string sessionId, string showNameId, string serverIp, DateTime connectionDate, bool isNotify, bool isPlaying) { + // lock (this.StatsDB) { + // Task upsertServerConnectionTask = new Task(() => { + // this.StatsDB.BeginTrans(); + // this.ServerConnectionLog.Upsert(new ServerConnectionLog { SessionId = sessionId, ShowId = showNameId, ServerIp = serverIp, ConnectionDate = connectionDate, + // CountryCode = HostCountryCode, OnlineServiceType = (int)OnlineServiceType, OnlineServiceId = OnlineServiceId, OnlineServiceNickname = OnlineServiceNickname, + // IsNotify = isNotify, IsPlaying = isPlaying + // }); + // this.StatsDB.Commit(); + // }); + // this.RunDatabaseTask(upsertServerConnectionTask, false); + // } + // } + + private async Task FallalyticsResendWeeklyCrown() { + List transferFailedLogs; + lock (this.FallalyticsCrownLogCache) { + transferFailedLogs = this.FallalyticsCrownLogCache.FindAll(l => !l.IsTransferSuccess); + } + foreach (FallalyticsCrownLog log in transferFailedLogs) { + RoundInfo stat = new RoundInfo { SessionId = log.SessionId, ShowNameId = log.ShowId, Name = log.RoundId, End = log.End, OnlineServiceType = log.OnlineServiceType, OnlineServiceId = log.OnlineServiceId, OnlineServiceNickname = log.OnlineServiceNickname }; + log.IsTransferSuccess = await FallalyticsReporter.WeeklyCrown(stat, this.CurrentSettings.EnableFallalyticsAnonymous); + + lock (this.StatsDB) { + Task FallalyticsResendWeeklyCrownTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.FallalyticsCrownLog.Update(log); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(FallalyticsResendWeeklyCrownTask, false); + } + } + } + + private async Task FallalyticsWeeklyCrown(RoundInfo stat) { + string currentSessionId = stat.SessionId; + string currentShowNameId = stat.ShowNameId; + string currentRoundId = stat.Name; + DateTime currentEnd = stat.End; + bool isTransferSuccess = await FallalyticsReporter.WeeklyCrown(stat, this.CurrentSettings.EnableFallalyticsAnonymous); + + lock (this.StatsDB) { + FallalyticsCrownLog log = new FallalyticsCrownLog { + SessionId = currentSessionId, RoundId = currentRoundId, ShowId = currentShowNameId, End = currentEnd, CountryCode = HostCountryCode, + OnlineServiceType = stat.OnlineServiceType.Value, OnlineServiceId = stat.OnlineServiceId, OnlineServiceNickname = stat.OnlineServiceNickname, + IsTransferSuccess = isTransferSuccess + }; + lock (this.FallalyticsCrownLogCache) { + this.FallalyticsCrownLogCache.Add(log); + } + Task FallalyticsWeeklyCrownTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.FallalyticsCrownLog.Insert(log); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(FallalyticsWeeklyCrownTask, false); + } + } + + private async Task FallalyticsRegisterPb(RoundInfo stat) { + string currentSessionId = stat.SessionId; + string currentShowNameId = stat.ShowNameId; + string currentRoundId = stat.Name; + TimeSpan currentRecord = stat.Finish.Value - stat.Start; + DateTime currentFinish = stat.Finish.Value; + bool isTransferSuccess; + bool existsPbLog; + + lock (this.FallalyticsPbLogCache) { + existsPbLog = this.FallalyticsPbLogCache.Exists(l => string.Equals(l.RoundId, currentRoundId) && l.OnlineServiceType == stat.OnlineServiceType.Value && string.Equals(l.OnlineServiceId, stat.OnlineServiceId)); + } + if (!existsPbLog) { + // RoundInfo recordInfo = this.AllStats.FindAll(r => !r.PrivateLobby && r.Finish.HasValue && string.Equals(r.Name, currentRoundId) && !string.IsNullOrEmpty(r.ShowNameId) && !string.IsNullOrEmpty(r.SessionId)).OrderBy(r => r.Finish.Value - r.Start).FirstOrDefault(); + // + // if (recordInfo != null && currentRecord > recordInfo.Finish.Value - recordInfo.Start) { + // currentSessionId = recordInfo.SessionId; + // currentShowNameId = recordInfo.ShowNameId; + // currentRoundId = recordInfo.Name; + // currentRecord = recordInfo.Finish.Value - recordInfo.Start; + // currentFinish = recordInfo.Finish.Value; + // } + + isTransferSuccess = await FallalyticsReporter.RegisterPb(stat, currentRecord.TotalMilliseconds, currentFinish, this.CurrentSettings.EnableFallalyticsAnonymous); + + lock (this.StatsDB) { + FallalyticsPbLog log = new FallalyticsPbLog { + SessionId = currentSessionId, RoundId = currentRoundId, ShowId = currentShowNameId, + Record = currentRecord.TotalMilliseconds, PbDate = currentFinish, + CountryCode = HostCountryCode, OnlineServiceType = stat.OnlineServiceType.Value, + OnlineServiceId = stat.OnlineServiceId, OnlineServiceNickname = stat.OnlineServiceNickname, + IsTransferSuccess = isTransferSuccess + }; + lock (this.FallalyticsPbLogCache) { + this.FallalyticsPbLogCache.Add(log); + } + Task FallalyticsRegisterPbTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.FallalyticsPbLog.Insert(log); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(FallalyticsRegisterPbTask, false); + } + } else { + FallalyticsPbLog pbLog; + lock (this.FallalyticsPbLogCache) { + int logIndex = this.FallalyticsPbLogCache.FindIndex(l => string.Equals(l.RoundId, currentRoundId) && l.OnlineServiceType == stat.OnlineServiceType.Value && string.Equals(l.OnlineServiceId, stat.OnlineServiceId)); + pbLog = logIndex != -1 ? this.FallalyticsPbLogCache[logIndex] : null; + } + if (pbLog != null) { + TimeSpan existingRecord = TimeSpan.FromMilliseconds(pbLog.Record); + + // RoundInfo missingInfo = this.AllStats.FindAll(r => + // r.PrivateLobby == false && r.Finish.HasValue && string.Equals(r.Name, currentRoundId) && !string.IsNullOrEmpty(r.ShowNameId) && !string.IsNullOrEmpty(r.SessionId) && + // string.Equals(r.OnlineServiceId, OnlineServiceId) && string.Equals(r.OnlineServiceNickname, OnlineServiceNickname)) + // .OrderBy(r => r.Finish.Value - r.Start).FirstOrDefault(); + // if (missingInfo != null && (missingInfo.Finish.Value - missingInfo.Start) < currentRecord) { + // currentSessionId = missingInfo.SessionId; + // currentShowNameId = missingInfo.ShowNameId; + // currentRoundId = missingInfo.Name; + // currentRecord = missingInfo.Finish.Value - missingInfo.Start; + // currentFinish = missingInfo.Finish.Value; + // } + + if (pbLog.IsTransferSuccess) { + if (currentRecord < existingRecord) { + isTransferSuccess = await FallalyticsReporter.RegisterPb(stat, currentRecord.TotalMilliseconds, currentFinish, this.CurrentSettings.EnableFallalyticsAnonymous); + + lock (this.StatsDB) { + pbLog.SessionId = currentSessionId; + pbLog.ShowId = currentShowNameId; + pbLog.Record = currentRecord.TotalMilliseconds; + pbLog.PbDate = currentFinish; + pbLog.IsTransferSuccess = isTransferSuccess; + Task FallalyticsRegisterPbTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.FallalyticsPbLog.Update(pbLog); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(FallalyticsRegisterPbTask, false); + } + } + } else { + currentSessionId = currentRecord < existingRecord ? currentSessionId : pbLog.SessionId; + currentShowNameId = currentRecord < existingRecord ? currentShowNameId : pbLog.ShowId; + currentRecord = currentRecord < existingRecord ? currentRecord : existingRecord; + currentFinish = currentRecord < existingRecord ? currentFinish : pbLog.PbDate; + isTransferSuccess = await FallalyticsReporter.RegisterPb(new RoundInfo { SessionId = currentSessionId, ShowNameId = currentShowNameId, Name = currentRoundId, OnlineServiceType = pbLog.OnlineServiceType, OnlineServiceId = pbLog.OnlineServiceId, OnlineServiceNickname = pbLog.OnlineServiceNickname }, currentRecord.TotalMilliseconds, currentFinish, this.CurrentSettings.EnableFallalyticsAnonymous); + + lock (this.StatsDB) { + pbLog.SessionId = currentSessionId; + pbLog.ShowId = currentShowNameId; + pbLog.Record = currentRecord.TotalMilliseconds; + pbLog.PbDate = currentFinish; + pbLog.IsTransferSuccess = isTransferSuccess; + Task FallalyticsRegisterPbTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.FallalyticsPbLog.Update(pbLog); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(FallalyticsRegisterPbTask, false); + } + } + } else { + isTransferSuccess = await FallalyticsReporter.RegisterPb(stat, currentRecord.TotalMilliseconds, currentFinish, this.CurrentSettings.EnableFallalyticsAnonymous); + + lock (this.StatsDB) { + FallalyticsPbLog log = new FallalyticsPbLog { + SessionId = currentSessionId, RoundId = currentRoundId, ShowId = currentShowNameId, + Record = currentRecord.TotalMilliseconds, PbDate = currentFinish, + CountryCode = HostCountryCode, OnlineServiceType = (int)OnlineServiceType, + OnlineServiceId = OnlineServiceId, OnlineServiceNickname = OnlineServiceNickname, + IsTransferSuccess = isTransferSuccess + }; + Task FallalyticsRegisterPbTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.FallalyticsPbLog.Insert(log); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(FallalyticsRegisterPbTask, false); + } + } + } + } + + private bool IsInStatsFilter(RoundInfo info) { + return (this.menuCustomRangeStats.Checked && info.Start >= this.customfilterRangeStart && info.Start <= this.customfilterRangeEnd) + || this.menuAllStats.Checked + || (this.menuSeasonStats.Checked && info.Start > SeasonStart) + || (this.menuWeekStats.Checked && info.Start > WeekStart) + || (this.menuDayStats.Checked && info.Start > DayStart) + || (this.menuSessionStats.Checked && info.Start > SessionStart); + } + + private bool IsInPartyFilter(RoundInfo info) { + return this.menuAllPartyStats.Checked + || (this.menuSoloStats.Checked && !info.InParty) + || (this.menuPartyStats.Checked && info.InParty); + } + + public string GetCurrentFilterName() { + if (this.menuCustomRangeStats.Checked && this.selectedCustomTemplateSeason > -1) { + return Seasons[this.selectedCustomTemplateSeason].Name; + } else { + return this.menuCustomRangeStats.Checked ? Multilingual.GetWord("main_custom_range") : + this.menuAllStats.Checked ? Multilingual.GetWord("main_all") : + this.menuSeasonStats.Checked ? Multilingual.GetWord("main_season") : + this.menuWeekStats.Checked ? Multilingual.GetWord("main_week") : + this.menuDayStats.Checked ? Multilingual.GetWord("main_day") : Multilingual.GetWord("main_session"); + } + } + + public string GetCurrentProfileName() { + if (this.AllProfiles.Count == 0) return String.Empty; + return this.AllProfiles.Find(p => p.ProfileId == this.GetCurrentProfileId()).ProfileName; + } + + public int GetCurrentProfileId() { + return this.currentProfile; + } + + private int GetProfileIdByName(string profileName) { + if (this.AllProfiles.Count == 0 || string.IsNullOrEmpty(profileName)) return 0; + return this.AllProfiles.Find(p => string.Equals(p.ProfileName, profileName)).ProfileId; + } + + private string GetCurrentProfileLinkedShowId() { + if (this.AllProfiles.Count == 0) return String.Empty; + string currentProfileLinkedShowId = this.AllProfiles.Find(p => p.ProfileId == this.GetCurrentProfileId()).LinkedShowId; + return currentProfileLinkedShowId ?? string.Empty; + } + + public string GetAlternateShowId(string showId) { + switch (showId) { + case "event_day_at_the_races_ltm": + return "event_only_races_any_final_template"; + case "event_le_anchovy_private_lobbies": + return "event_le_anchovy_template"; + case "event_only_jump_club_custom_lobby": + return "event_only_jump_club_template"; + case "event_only_roll_out_custom_lobby": + return "event_only_roll_out"; + case "knockout_mode_pl": + return "knockout_mode"; + case "live_event_timeattack_shuffle_pl": + return "live_event_timeattack_shuffle"; + case "pl_duos_show": + return "classic_duos_show"; + case "pl_solo_main_show": + return "classic_solo_main_show"; + case "pl_squads_show": + return "classic_squads_show"; + default: + return showId; + } + } + + public string GetMainGroupShowId(string showId) { + switch (showId) { + case "ranked_show_knockout": + case "xtreme_solos_template_ranked": + case "event_only_finals_v3_ranked": + return "ranked_solo_show"; + case "event_only_fall_ball_trios_ranked": + return "ranked_trios_show"; + case "greatestsquads_ranked": + return "ranked_squads_show"; + // case "anniversary_fp12_ltm": + case "classic_solo_main_show": + case "ftue_uk_show": + case "knockout_mode": + case "reversed_knockout_show": + case "no_elimination_explore": + case "event_only_races_any_final_template": + case "turbo_2_show": + case "turbo_show": + return "main_show"; + case "classic_duos_show": + case "knockout_duos": + case "teams_show_ltm": + return "squads_2player_template"; + case "sports_show": + return "squads_3player_template"; + case "classic_squads_show": + case "event_day_at_races_squads_template": + case "event_only_ss2_squads_template": + case "knockout_squads": + case "squadcelebration": + return "squads_4player"; + case "fp16_ski_fall_high_scorers": + return "event_only_skeefall_timetrial_s6_1"; + case "invisibeans_pistachio_template": + case "invisibeans_template": + return "invisibeans_mode"; + case "live_event_timeattack_dizzyheights": + case "live_event_timeattack_lilyleapers": + case "live_event_timeattack_partyprom": + case "live_event_timeattack_shuffle": + case "live_event_timeattack_trackattack": + case "live_event_timeattack_treetoptumble": + case "live_event_timeattack_tundrarun": + return "timeattack_mode"; + case "xtreme_explore": + return "event_xtreme_fall_guys_template"; + default: + return showId; + } + } + + public string ReplaceLevelIdInShuffleShow(string showId, string roundId) { + if (string.Equals(showId, "no_elimination_show") && (roundId.StartsWith("wle_main_filler_") || roundId.StartsWith("wle_main_opener_"))) { + roundId = roundId.Replace("_noelim", ""); + } + return roundId; + } + + public bool IsCreativeShow(string showId) { + return string.Equals(showId, "casual_show") + || string.Equals(showId, "spotlight_mode") + || string.Equals(showId, "explore_points") + || string.Equals(showId, "showcase_fp13") + || string.Equals(showId, "showcase_fp16") + || string.Equals(showId, "showcase_fp17") + || string.Equals(showId, "showcase_fp18") + || string.Equals(showId, "showcase_fp19") + || string.Equals(showId, "showcase_fp20") + || string.Equals(showId, "greatestsquads_ltm") + || showId.StartsWith("user_creative_") + || showId.StartsWith("creative_") + || showId.StartsWith("event_wle_") + || showId.StartsWith("show_wle") + || showId.StartsWith("wle_") + || showId.StartsWith("current_wle_") + || (showId.StartsWith("event_") && showId.EndsWith("_fools")); + } + + private int GetLinkedProfileId(string realShowId, bool isPrivateLobbies) { + if (this.AllProfiles.Count == 0 || string.IsNullOrEmpty(realShowId)) return 0; + realShowId = this.GetAlternateShowId(realShowId); + string showId = this.GetMainGroupShowId(realShowId); + foreach (Profiles profiles in this.AllProfiles.OrderBy(p => p.DoNotCombineShows ? 0 : 1)) { + if (profiles.DoNotCombineShows) { + if (!isPrivateLobbies && !string.IsNullOrEmpty(profiles.LinkedShowId) && realShowId.IndexOf(profiles.LinkedShowId, StringComparison.OrdinalIgnoreCase) != -1) { + return profiles.ProfileId; + } + } else { + if (isPrivateLobbies) { + if (!string.IsNullOrEmpty(profiles.LinkedShowId) && string.Equals(profiles.LinkedShowId, "private_lobbies")) { + return profiles.ProfileId; + } + } else { + if (this.IsCreativeShow(showId)) { + if (!string.IsNullOrEmpty(profiles.LinkedShowId) && string.Equals(profiles.LinkedShowId, "fall_guys_creative_mode")) { + return profiles.ProfileId; + } + } else { + if (!string.IsNullOrEmpty(profiles.LinkedShowId) && showId.IndexOf(profiles.LinkedShowId, StringComparison.OrdinalIgnoreCase) != -1) { + return profiles.ProfileId; + } + } + } + } + } + if (isPrivateLobbies) { + // return corresponding linked profile when possible if no linked "private_lobbies" profile was found + return (from profiles in this.AllProfiles.OrderBy(p => p.DoNotCombineShows ? 0 : 1) where !string.IsNullOrEmpty(profiles.LinkedShowId) && showId.IndexOf(profiles.LinkedShowId, StringComparison.OrdinalIgnoreCase) != -1 select profiles.ProfileId).FirstOrDefault(); + } + // return ProfileId 0 if no linked profile was found/matched + return 0; + } + + public void SetLinkedProfileMenu(string realShowId, bool isPrivateLobbies) { + if (this.AllProfiles.Count == 0 || string.IsNullOrEmpty(realShowId)) return; + + realShowId = this.GetAlternateShowId(realShowId); + + string currentProfileLinkedShowId = this.GetCurrentProfileLinkedShowId(); + bool isCurrentProfileIsDNCS = this.AllProfiles.Find(p => p.ProfileId == this.GetCurrentProfileId()).DoNotCombineShows; + if (isCurrentProfileIsDNCS && string.Equals(currentProfileLinkedShowId, realShowId)) return; + + string showId = this.GetMainGroupShowId(realShowId); + int linkedDNCSProfileId = this.AllProfiles.Find(p => p.DoNotCombineShows && string.Equals(p.LinkedShowId, realShowId))?.ProfileId ?? -1; + if (linkedDNCSProfileId == -1 && string.Equals(currentProfileLinkedShowId, showId)) return; + + this.BeginInvoke((MethodInvoker)delegate { + int profileId = -1; + bool isLinkedProfileFound = false; + foreach (Profiles profiles in this.AllProfiles.FindAll(p => p.DoNotCombineShows)) { + if (!isPrivateLobbies && !string.IsNullOrEmpty(profiles.LinkedShowId) && realShowId.IndexOf(profiles.LinkedShowId, StringComparison.OrdinalIgnoreCase) != -1) { + profileId = profiles.ProfileId; + isLinkedProfileFound = true; + break; + } + } + for (int i = 0; i < this.AllProfiles.Count; i++) { + if (isLinkedProfileFound) { + if (this.AllProfiles[i].ProfileId == profileId) { + ToolStripMenuItem item = this.ProfileMenuItems[this.AllProfiles.Count - 1 - i]; + if (!item.Checked) { this.menuStats_Click(item, EventArgs.Empty); } + return; + } else { + continue; + } + } + if (this.AllProfiles[i].DoNotCombineShows) continue; + if (isPrivateLobbies) { + if (!string.IsNullOrEmpty(this.AllProfiles[i].LinkedShowId) && string.Equals(this.AllProfiles[i].LinkedShowId, "private_lobbies")) { + ToolStripMenuItem item = this.ProfileMenuItems[this.AllProfiles.Count - 1 - i]; + if (!item.Checked) { this.menuStats_Click(item, EventArgs.Empty); } + return; + } + } else { + if (this.IsCreativeShow(showId)) { + if (!string.IsNullOrEmpty(this.AllProfiles[i].LinkedShowId) && string.Equals(this.AllProfiles[i].LinkedShowId, "fall_guys_creative_mode")) { + ToolStripMenuItem item = this.ProfileMenuItems[this.AllProfiles.Count - 1 - i]; + if (!item.Checked) { this.menuStats_Click(item, EventArgs.Empty); } + return; + } + } else { + if (!string.IsNullOrEmpty(this.AllProfiles[i].LinkedShowId) && showId.IndexOf(this.AllProfiles[i].LinkedShowId, StringComparison.OrdinalIgnoreCase) != -1) { + ToolStripMenuItem item = this.ProfileMenuItems[this.AllProfiles.Count - 1 - i]; + if (!item.Checked) { this.menuStats_Click(item, EventArgs.Empty); } + return; + } + } + } + } + if (isPrivateLobbies) { // select corresponding linked profile when possible if no linked "private_lobbies" profile was found + foreach (Profiles profiles in this.AllProfiles.FindAll(p => p.DoNotCombineShows)) { + if (!string.IsNullOrEmpty(profiles.LinkedShowId) && realShowId.IndexOf(profiles.LinkedShowId, StringComparison.OrdinalIgnoreCase) != -1) { + profileId = profiles.ProfileId; + isLinkedProfileFound = true; + break; + } + } + for (int j = 0; j < this.AllProfiles.Count; j++) { + if (isLinkedProfileFound) { + if (this.AllProfiles[j].ProfileId == profileId) { + ToolStripMenuItem item = this.ProfileMenuItems[this.AllProfiles.Count - 1 - j]; + if (!item.Checked) { this.menuStats_Click(item, EventArgs.Empty); } + return; + } else { + continue; + } + } else { + if (this.AllProfiles[j].DoNotCombineShows || string.IsNullOrEmpty(this.AllProfiles[j].LinkedShowId) || showId.IndexOf(this.AllProfiles[j].LinkedShowId, StringComparison.OrdinalIgnoreCase) == -1) continue; + + ToolStripMenuItem item = this.ProfileMenuItems[this.AllProfiles.Count - 1 - j]; + if (!item.Checked) { this.menuStats_Click(item, EventArgs.Empty); } + return; + } + } + } + // select ProfileId 0 if no linked profile was found/matched + for (int k = 0; k < this.AllProfiles.Count; k++) { + if (this.AllProfiles[k].ProfileId != 0) continue; + + ToolStripMenuItem item = this.ProfileMenuItems[this.AllProfiles.Count - 1 - k]; + if (!item.Checked) { this.menuStats_Click(item, EventArgs.Empty); } + return; + } + }); + } + + private void SetProfileMenu(int profile) { + if (profile == -1 || this.AllProfiles.Count == 0) return; + + this.Invoke((MethodInvoker)delegate { + ToolStripMenuItem tsmi = this.menuProfile.DropDownItems[$"menuProfile{profile}"] as ToolStripMenuItem; + if (tsmi.Checked) return; + + this.menuStats_Click(tsmi, EventArgs.Empty); + }); + } + + private void SetCurrentProfileIcon(bool linked) { + this.BeginInvoke((MethodInvoker)delegate { + if (this.CurrentSettings.AutoChangeProfile) { + this.lblCurrentProfileIcon.Image = linked ? Properties.Resources.profile2_linked_icon : Properties.Resources.profile2_unlinked_icon; + this.overlay.SetCurrentProfileForeColor(linked ? Color.GreenYellow + : string.IsNullOrEmpty(this.CurrentSettings.OverlayFontColorSerialized) ? Color.White + : (Color)new ColorConverter().ConvertFromString(this.CurrentSettings.OverlayFontColorSerialized)); + } else { + this.lblCurrentProfileIcon.Image = Properties.Resources.profile2_icon; + this.overlay.SetCurrentProfileForeColor(string.IsNullOrEmpty(this.CurrentSettings.OverlayFontColorSerialized) ? Color.White + : (Color)new ColorConverter().ConvertFromString(this.CurrentSettings.OverlayFontColorSerialized)); + } + }); + } + + public RoundInfo GetRoundInfoFromShareCode(string shareCode) { + return this.AllStats.FindLast(r => r.UseShareCode && string.Equals(r.CreativeShareCode, shareCode) && !string.IsNullOrEmpty(r.CreativeTitle)); + } + + public void UpdateCreativeLevel(string levelId, string shareCode, JsonElement levelData) { + List filteredInfo = this.AllStats.FindAll(r => string.Equals(r.Name, levelId) || string.Equals(r.Name, shareCode) || string.Equals(r.CreativeShareCode, shareCode)); + if (filteredInfo.Count <= 0) return; + + JsonElement versionMetadata = levelData.GetProperty("version_metadata"); + JsonElement stats = levelData.GetProperty("stats"); + string[] onlinePlatformInfo = this.FindUserCreativeAuthor(levelData.GetProperty("author").GetProperty("name_per_platform")); + foreach (RoundInfo info in filteredInfo) { + // info.CreativeShareCode = levelData.GetProperty("share_code").GetString(); + info.CreativeShareCode = shareCode; + info.CreativeOnlinePlatformId = onlinePlatformInfo[0]; + info.CreativeAuthor = onlinePlatformInfo[1]; + info.CreativeVersion = versionMetadata.GetProperty("version").GetInt32(); + info.CreativeStatus = versionMetadata.GetProperty("status").GetString(); + info.CreativeTitle = versionMetadata.GetProperty("title").GetString(); + info.CreativeDescription = versionMetadata.GetProperty("description").GetString(); + if (versionMetadata.TryGetProperty("creator_tags", out JsonElement creatorTags) && creatorTags.ValueKind == JsonValueKind.Array) { + string temps = string.Empty; + foreach (JsonElement t in creatorTags.EnumerateArray()) { + if (!string.IsNullOrEmpty(temps)) { temps += ";"; } + temps += t.GetString(); + } + info.CreativeCreatorTags = temps; + } + info.CreativeMaxPlayer = versionMetadata.GetProperty("max_player_count").GetInt32(); + info.CreativeThumbUrl = versionMetadata.GetProperty("thumb_url").GetString(); + info.CreativePlatformId = versionMetadata.GetProperty("platform_id").GetString(); + info.CreativeGameModeId = versionMetadata.GetProperty("game_mode_id").GetString() ?? "GAMEMODE_GAUNTLET"; + info.CreativeLevelThemeId = versionMetadata.GetProperty("level_theme_id").GetString() ?? "THEME_VANILLA"; + info.CreativeLastModifiedDate = versionMetadata.GetProperty("last_modified_date").GetDateTime(); + info.CreativePlayCount = stats.GetProperty("play_count").GetInt32(); + info.CreativeLikes = stats.GetProperty("likes").GetInt32(); + info.CreativeDislikes = stats.GetProperty("dislikes").GetInt32(); + info.CreativeQualificationPercent = versionMetadata.GetProperty("qualification_percent").GetInt32(); + info.CreativeTimeLimitSeconds = versionMetadata.GetProperty("config").TryGetProperty("time_limit_seconds", out JsonElement jeTimeLimitSeconds) ? jeTimeLimitSeconds.GetInt32() : 240; + } + + lock (this.StatsDB) { + Task updateCreativeLevelTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.RoundDetails.Update(filteredInfo); + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(updateCreativeLevelTask, false); + } + } + + public StatSummary GetLevelInfo(string levelId, LevelType type, BestRecordType record, bool useShareCode) { + StatSummary summary = new StatSummary { + CurrentStreak = 0, + CurrentFinalStreak = 0, + BestStreak = 0, + BestFinalStreak = 0, + AllWins = 0, + TotalWins = 0, + TotalShows = 0, + TotalFinals = 0, + TotalPlays = 0, + TotalQualify = 0, + TotalGolds = 0, + FastestFinish = null, + FastestFinishOverall = null, + LongestFinish = null, + LongestFinishOverall = null, + HighScore = null, + LowScore = null + }; + + int lastShow = -1; + if (!this.StatLookup.TryGetValue(useShareCode ? type.UserCreativeLevelTypeId() : levelId, out LevelStats currentLevel)) { + currentLevel = new LevelStats(levelId, string.Empty, levelId, LevelType.Unknown, BestRecordType.Fastest, false, false, 10, Properties.Resources.round_unknown_icon, Properties.Resources.round_unknown_big_icon); + } + + List roundInfo = useShareCode ? this.AllStats.FindAll(r => r.Profile == this.GetCurrentProfileId() && string.Equals(r.Name, levelId) && string.Equals(r.ShowNameId, type.UserCreativeLevelTypeId())) + : this.AllStats.FindAll(r => r.Profile == this.GetCurrentProfileId()); + + for (int i = 0; i < roundInfo.Count; i++) { + RoundInfo info = roundInfo[i]; + TimeSpan finishTime = info.Finish.GetValueOrDefault(info.Start) - info.Start; + bool hasFinishTime = finishTime.TotalSeconds > 1.1; + bool hasLevelDetails = this.StatLookup.ContainsKey(info.UseShareCode ? info.ShowNameId : info.Name); + bool isCurrentLevel = false; + if (useShareCode) { + isCurrentLevel = true; + } else { + if (currentLevel.IsCreative && !string.IsNullOrEmpty(currentLevel.ShareCode)) { + if (this.StatLookup.TryGetValue(info.Name, out LevelStats l1) && string.Equals(l1.ShareCode, currentLevel.ShareCode)) { + isCurrentLevel = true; + } + } else if (string.Equals(info.Name, currentLevel.Id)) { + isCurrentLevel = true; + } + } + + int startRoundShowId = info.ShowID; + RoundInfo endRound = info; + for (int j = i + 1; j < roundInfo.Count; j++) { + if (roundInfo[j].ShowID != startRoundShowId) { + break; + } + endRound = roundInfo[j]; + } + + bool isShareCodeUsedOrIsNotPrivateLobby = useShareCode || !endRound.PrivateLobby; + + bool isInWinsFilter = isShareCodeUsedOrIsNotPrivateLobby && !endRound.IsCasualShow + && (this.CurrentSettings.WinsFilter == 0 + || (this.CurrentSettings.WinsFilter == 1 && this.IsInStatsFilter(endRound) && this.IsInPartyFilter(info)) + || (this.CurrentSettings.WinsFilter == 2 && endRound.Start > SeasonStart) + || (this.CurrentSettings.WinsFilter == 3 && endRound.Start > WeekStart) + || (this.CurrentSettings.WinsFilter == 4 && endRound.Start > DayStart) + || (this.CurrentSettings.WinsFilter == 5 && endRound.Start > SessionStart)); + bool isInQualifyFilter = isShareCodeUsedOrIsNotPrivateLobby + && (this.CurrentSettings.QualifyFilter == 0 + || (this.CurrentSettings.QualifyFilter == 1 && this.IsInStatsFilter(endRound) && this.IsInPartyFilter(info)) + || (this.CurrentSettings.QualifyFilter == 2 && endRound.Start > SeasonStart) + || (this.CurrentSettings.QualifyFilter == 3 && endRound.Start > WeekStart) + || (this.CurrentSettings.QualifyFilter == 4 && endRound.Start > DayStart) + || (this.CurrentSettings.QualifyFilter == 5 && endRound.Start > SessionStart)); + bool isInFastestFilter = this.CurrentSettings.FastestFilter == 0 + || (this.CurrentSettings.FastestFilter == 1 && this.IsInStatsFilter(endRound) && this.IsInPartyFilter(info)) + || (this.CurrentSettings.FastestFilter == 2 && endRound.Start > SeasonStart) + || (this.CurrentSettings.FastestFilter == 3 && endRound.Start > WeekStart) + || (this.CurrentSettings.FastestFilter == 4 && endRound.Start > DayStart) + || (this.CurrentSettings.FastestFilter == 5 && endRound.Start > SessionStart); + + if (info.ShowID != lastShow) { + lastShow = info.ShowID; + if (isInWinsFilter) { + summary.TotalShows++; + } + } + + if (isCurrentLevel) { + if (isInQualifyFilter) { + summary.TotalPlays++; + } + + if (hasFinishTime && (!summary.FastestFinishOverall.HasValue || summary.FastestFinishOverall.Value > finishTime)) { + summary.FastestFinishOverall = finishTime; + } + + if (hasFinishTime && (!summary.LongestFinishOverall.HasValue || summary.LongestFinishOverall.Value < finishTime)) { + summary.LongestFinishOverall = finishTime; + } + + if (isInFastestFilter) { + if (hasFinishTime && (!summary.FastestFinish.HasValue || summary.FastestFinish.Value > finishTime)) { + summary.FastestFinish = finishTime; + } + + if (hasFinishTime && (!summary.LongestFinish.HasValue || summary.LongestFinish.Value < finishTime)) { + summary.LongestFinish = finishTime; + } + + if ((!hasLevelDetails || record == BestRecordType.HighScore) && info.Score.HasValue && (!summary.HighScore.HasValue || info.Score.Value > summary.HighScore.Value)) { + summary.HighScore = info.Score; + } + + if ((!hasLevelDetails || record == BestRecordType.HighScore) && info.Score.HasValue && (!summary.LowScore.HasValue || info.Score.Value < summary.LowScore.Value)) { + summary.LowScore = info.Score; + } + } + } + + bool isFinalRound = useShareCode ? (info.IsFinal || info.Crown) : ((info.IsFinal || info.Crown) && !endRound.PrivateLobby); + + if (ReferenceEquals(info, endRound) && isFinalRound) { + summary.CurrentFinalStreak++; + if (summary.BestFinalStreak < summary.CurrentFinalStreak) { + summary.BestFinalStreak = summary.CurrentFinalStreak; + } + } + + isShareCodeUsedOrIsNotPrivateLobby = useShareCode || !info.PrivateLobby; + + if (info.Qualified) { + if (hasLevelDetails && (info.IsFinal || info.Crown)) { + if (isShareCodeUsedOrIsNotPrivateLobby && !info.IsCasualShow) { + summary.AllWins++; + } + + if (isInWinsFilter) { + summary.TotalWins++; + summary.TotalFinals++; + } + + if (isShareCodeUsedOrIsNotPrivateLobby && !info.IsCasualShow) { + summary.CurrentStreak++; + if (summary.CurrentStreak > summary.BestStreak) { + summary.BestStreak = summary.CurrentStreak; + } + } + } + + if (isCurrentLevel) { + if (isInQualifyFilter) { + if (info.Tier == (int)QualifyTier.Gold) { + summary.TotalGolds++; + } + summary.TotalQualify++; + } + } + } else if (isShareCodeUsedOrIsNotPrivateLobby && !info.IsCasualShow) { + if (!info.IsFinal && !info.Crown) { + summary.CurrentFinalStreak = 0; + } + summary.CurrentStreak = 0; + if (isInWinsFilter && hasLevelDetails && (info.IsFinal || info.Crown)) { + summary.TotalFinals++; + } + } + } + + return summary; + } + + private void ClearTotals() { + this.Wins = 0; + this.Shows = 0; + this.Rounds = 0; + this.CustomAndCasualRounds = 0; + this.Duration = TimeSpan.Zero; + this.CustomAndCasualShows = 0; + this.Finals = 0; + this.GoldMedals = 0; + this.SilverMedals = 0; + this.BronzeMedals = 0; + this.PinkMedals = 0; + this.EliminatedMedals = 0; + this.CustomAndCasualGoldMedals = 0; + this.CustomAndCasualSilverMedals = 0; + this.CustomAndCasualBronzeMedals = 0; + this.CustomAndCasualPinkMedals = 0; + this.CustomAndCasualEliminatedMedals = 0; + this.Kudos = 0; + } + + private void UpdateTotals() { + try { + this.lblCurrentProfile.Text = $"{this.GetCurrentProfileName().Replace("&", "&&")}"; + //this.lblCurrentProfile.ToolTipText = $"{Multilingual.GetWord("profile_change_tooltiptext")}"; + this.lblTotalShows.Text = $"{this.Shows:N0}{Multilingual.GetWord("main_inning")}"; + if (this.CustomAndCasualShows > 0) this.lblTotalShows.Text += $" ({Multilingual.GetWord("main_custom_and_casual_shows")} : {this.CustomAndCasualShows:N0}{Multilingual.GetWord("main_inning")})"; + //this.lblTotalShows.ToolTipText = $"{Multilingual.GetWord("shows_detail_tooltiptext")}"; + this.lblTotalRounds.Text = $"{this.Rounds:N0}{Multilingual.GetWord("main_round")}"; + if (this.CustomAndCasualRounds > 0) this.lblTotalRounds.Text += $" ({Multilingual.GetWord("main_custom_and_casual_shows")} : {this.CustomAndCasualRounds:N0}{Multilingual.GetWord("main_round")})"; + //this.lblTotalRounds.ToolTipText = $"{Multilingual.GetWord("rounds_detail_tooltiptext")}"; + this.lblTotalTime.Text = $"{(int)this.Duration.TotalHours}{Multilingual.GetWord("main_hour")}{this.Duration:mm}{Multilingual.GetWord("main_min")}{this.Duration:ss}{Multilingual.GetWord("main_sec")}"; + //this.lblTotalTime.ToolTipText = $"{Multilingual.GetWord("stats_detail_tooltiptext")}"; + float winChance = (float)this.Wins * 100 / Math.Max(1, this.Shows); + this.lblTotalWins.Text = $"{this.Wins:N0}{Multilingual.GetWord("main_win")} ({Math.Truncate(winChance * 10) / 10} %)"; + //this.lblTotalWins.ToolTipText = $"{Multilingual.GetWord("wins_detail_tooltiptext")}"; + float finalChance = (float)this.Finals * 100 / Math.Max(1, this.Shows); + this.lblTotalFinals.Text = $"{this.Finals:N0}{Multilingual.GetWord("main_inning")} ({Math.Truncate(finalChance * 10) / 10} %)"; + //this.lblTotalFinals.ToolTipText = $"{Multilingual.GetWord("finals_detail_tooltiptext")}"; + this.lblGoldMedal.Text = $"{this.GoldMedals:N0}"; + if (this.CustomAndCasualGoldMedals > 0) this.lblGoldMedal.Text += $" ({this.CustomAndCasualGoldMedals:N0})"; + this.lblSilverMedal.Text = $"{this.SilverMedals:N0}"; + if (this.CustomAndCasualSilverMedals > 0) this.lblSilverMedal.Text += $" ({this.CustomAndCasualSilverMedals:N0})"; + this.lblBronzeMedal.Text = $"{this.BronzeMedals:N0}"; + if (this.CustomAndCasualBronzeMedals > 0) this.lblBronzeMedal.Text += $" ({this.CustomAndCasualBronzeMedals:N0})"; + this.lblPinkMedal.Text = $"{this.PinkMedals:N0}"; + if (this.CustomAndCasualPinkMedals > 0) this.lblPinkMedal.Text += $" ({this.CustomAndCasualPinkMedals:N0})"; + this.lblEliminatedMedal.Text = $"{this.EliminatedMedals:N0}"; + if (this.CustomAndCasualEliminatedMedals > 0) this.lblEliminatedMedal.Text += $" ({this.CustomAndCasualEliminatedMedals:N0})"; + this.lblGoldMedal.Visible = this.GoldMedals != 0 || this.CustomAndCasualGoldMedals != 0; + this.lblSilverMedal.Visible = this.SilverMedals != 0 || this.CustomAndCasualSilverMedals != 0; + this.lblBronzeMedal.Visible = this.BronzeMedals != 0 || this.CustomAndCasualBronzeMedals != 0; + this.lblPinkMedal.Visible = this.PinkMedals != 0 || this.CustomAndCasualPinkMedals != 0; + this.lblEliminatedMedal.Visible = this.EliminatedMedals != 0 || this.CustomAndCasualEliminatedMedals != 0; + this.lblKudos.Text = $"{this.Kudos:N0}"; + this.lblKudos.Visible = this.Kudos != 0; + this.gridDetails.Invalidate(); + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public void ShowToastNotification(IWin32Window window, Image thumbNail, string caption, string description, Font font, Image appOwnerIcon, ToastDuration duration, ToastPosition position, ToastAnimation animation, ToastTheme theme, ToastSound toastSound, bool muting, bool isAsync) { + this.BeginInvoke((MethodInvoker)delegate { + this.toast = Toast.Build(window, caption, description, font, thumbNail, appOwnerIcon, + duration, position, animation, ToastCloseStyle.ButtonAndClickEntire, theme, toastSound, muting); + if (isAsync) { + this.toast.ShowAsync(); + } else { + this.toast.Show(); + } + }); + } + + public void ShowNotification(string title, string text, ToolTipIcon toolTipIcon, int timeout) { + if (this.trayIcon.Visible) { + this.trayIcon.BalloonTipTitle = title; + this.trayIcon.BalloonTipText = text; + this.trayIcon.BalloonTipIcon = toolTipIcon; + this.trayIcon.ShowBalloonTip(timeout); + } + // else { + // MetroMessageBox.Show(this, text, title, MessageBoxButtons.OK, toolTipIcon == ToolTipIcon.None ? MessageBoxIcon.None : + // toolTipIcon == ToolTipIcon.Error ? MessageBoxIcon.Error : + // toolTipIcon == ToolTipIcon.Info ? MessageBoxIcon.Information : + // toolTipIcon == ToolTipIcon.Warning ? MessageBoxIcon.Warning : MessageBoxIcon.None); + // } + } + + public void AllocOverlayTooltip() { + this.omtt = new MetroToolTip { + Theme = this.Theme + }; + } + + public void ShowOverlayTooltip(string message, IWin32Window window, Point position, int duration = -1) { + if (duration == -1) { + this.omtt.Show(message, window, position); + } else { + this.omtt.Show(message, window, position, duration); + } + } + + public void HideOverlayTooltip(IWin32Window window) { + this.omtt.Hide(window); + } + + public void AllocCustomTooltip(DrawToolTipEventHandler drawFunc) { + this.cmtt = new MetroToolTip { + OwnerDraw = true + }; + this.cmtt.Draw += drawFunc; + } + + public void ShowCustomTooltip(string message, IWin32Window window, Point position, int duration = -1) { + if (duration == -1) { + this.cmtt.Show(message, window, position); + } else { + this.cmtt.Show(message, window, position, duration); + } + } + + public void HideCustomTooltip(IWin32Window window) { + this.cmtt.Hide(window); + } + + public void AllocTooltip() { + this.mtt = new MetroToolTip { + Theme = this.Theme + }; + } + + public void ShowTooltip(string message, IWin32Window window, Point position, int duration = -1) { + if (duration == -1) { + this.mtt.Show(message, window, position); + } else { + this.mtt.Show(message, window, position, duration); + } + } + + public void HideTooltip(IWin32Window window) { + this.mtt.Hide(window); + } + + private void Toggle_MouseEnter(object sender, EventArgs e) { + if (sender.Equals(this.mtgCreativeLevel) || sender.Equals(this.lblCreativeLevel)) { + if (!this.mtgCreativeLevel.Checked) this.lblCreativeLevel.ForeColor = Color.DimGray; + } else if (sender.Equals(this.mtgIgnoreLevelTypeWhenSorting) || sender.Equals(this.lblIgnoreLevelTypeWhenSorting)) { + if (!this.mtgIgnoreLevelTypeWhenSorting.Checked) this.lblIgnoreLevelTypeWhenSorting.ForeColor = Color.DimGray; + } + } + + private void Toggle_MouseLeave(object sender, EventArgs e) { + if (sender.Equals(this.mtgCreativeLevel) || sender.Equals(this.lblCreativeLevel)) { + if (!this.mtgCreativeLevel.Checked) this.lblCreativeLevel.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } else if (sender.Equals(this.mtgIgnoreLevelTypeWhenSorting) || sender.Equals(this.lblIgnoreLevelTypeWhenSorting)) { + if (!this.mtgIgnoreLevelTypeWhenSorting.Checked) this.lblIgnoreLevelTypeWhenSorting.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + } + } + + private void lblCreativeLevel_Click(object sender, EventArgs e) { + this.mtgCreativeLevel.Checked = !this.mtgCreativeLevel.Checked; + } + + private void mtgCreativeLevel_CheckedChanged(object sender, EventArgs e) { + bool mtgChecked = ((MetroToggle)sender).Checked; + // this.VisibleGridRowOfCreativeLevel(mtgChecked); + this.lblCreativeLevel.ForeColor = mtgChecked ? (this.Theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow) : Color.DimGray; + this.CurrentSettings.GroupingCreativeRoundLevels = mtgChecked; + this.SaveUserSettings(); + this.gridDetails.DataSource = null; + this.gridDetails.DataSource = this.GetFilteredDataSource(this.CurrentSettings.GroupingCreativeRoundLevels); + } + + private void lblIgnoreLevelTypeWhenSorting_Click(object sender, EventArgs e) { + this.mtgIgnoreLevelTypeWhenSorting.Checked = !this.mtgIgnoreLevelTypeWhenSorting.Checked; + } + + private void mtgIgnoreLevelTypeWhenSorting_CheckedChanged(object sender, EventArgs e) { + bool mtgChecked = ((MetroToggle)sender).Checked; + this.lblIgnoreLevelTypeWhenSorting.ForeColor = mtgChecked ? (this.Theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow) : Color.DimGray; + this.CurrentSettings.IgnoreLevelTypeWhenSorting = mtgChecked; + this.SortGridDetails(true); + this.SaveUserSettings(); + } + + private void scrollTimer_Tick(object sender, EventArgs e) { + this.scrollTimer.Stop(); + this.isScrollingStopped = true; + } + + private void gridDetails_Scroll(object sender, ScrollEventArgs e) { + this.isScrollingStopped = false; + this.scrollTimer.Stop(); + this.scrollTimer.Start(); + } + + private void gridDetails_DataSourceChanged(object sender, EventArgs e) { + try { + if (((Grid)sender).Columns.Count == 0) return; + + int pos = 0; + ((Grid)sender).Columns["RoundBigIcon"].Visible = false; + ((Grid)sender).Columns["AveKudos"].Visible = false; + ((Grid)sender).Columns["AveDuration"].Visible = false; + ((Grid)sender).Columns["Id"].Visible = false; + ((Grid)sender).Columns["ShareCode"].Visible = false; + ((Grid)sender).Setup("RoundIcon", pos++, this.GetDataGridViewColumnWidth("RoundIcon", ""), "", DataGridViewContentAlignment.MiddleCenter); + ((Grid)sender).Columns["RoundIcon"].Resizable = DataGridViewTriState.False; + ((Grid)sender).Setup("Name", pos++, this.GetDataGridViewColumnWidth("Name", Multilingual.GetWord("main_round_name")), Multilingual.GetWord("main_round_name"), DataGridViewContentAlignment.MiddleLeft); + ((Grid)sender).Columns["Name"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft; + ((Grid)sender).Setup("Played", pos++, this.GetDataGridViewColumnWidth("Played", Multilingual.GetWord("main_played")), Multilingual.GetWord("main_played"), DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("Qualified", pos++, this.GetDataGridViewColumnWidth("Qualified", Multilingual.GetWord("main_qualified")), Multilingual.GetWord("main_qualified"), DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("Gold", pos++, this.GetDataGridViewColumnWidth("Gold", Multilingual.GetWord("main_gold")), Multilingual.GetWord("main_gold"), DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("Silver", pos++, this.GetDataGridViewColumnWidth("Silver", Multilingual.GetWord("main_silver")), Multilingual.GetWord("main_silver"), DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("Bronze", pos++, this.GetDataGridViewColumnWidth("Bronze", Multilingual.GetWord("main_bronze")), Multilingual.GetWord("main_bronze"), DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("Kudos", pos++, this.GetDataGridViewColumnWidth("Kudos", Multilingual.GetWord("main_kudos")), Multilingual.GetWord("main_kudos"), DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("Fastest", pos++, this.GetDataGridViewColumnWidth("Fastest", Multilingual.GetWord("main_fastest")), Multilingual.GetWord("main_fastest"), DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("Longest", pos++, this.GetDataGridViewColumnWidth("Longest", Multilingual.GetWord("main_longest")), Multilingual.GetWord("main_longest"), DataGridViewContentAlignment.MiddleRight); + ((Grid)sender).Setup("AveFinish", pos, this.GetDataGridViewColumnWidth("AveFinish", Multilingual.GetWord("main_ave_finish")), Multilingual.GetWord("main_ave_finish"), DataGridViewContentAlignment.MiddleRight); + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private int GetDataGridViewColumnWidth(string columnName, string columnText) { + int sizeOfText; + switch (columnName) { + case "RoundIcon": + sizeOfText = 13; + break; + case "Name": + return 0; + case "Played": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "Qualified": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + sizeOfText += CurrentLanguage == Language.English || CurrentLanguage == Language.French || CurrentLanguage == Language.Spanish ? 0 : 5; + break; + case "Gold": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + sizeOfText += CurrentLanguage == Language.French ? 12 : CurrentLanguage == Language.SimplifiedChinese || CurrentLanguage == Language.TraditionalChinese ? 5 : 0; + break; + case "Silver": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + sizeOfText += CurrentLanguage == Language.SimplifiedChinese || CurrentLanguage == Language.TraditionalChinese ? 5 : 0; + break; + case "Bronze": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + sizeOfText += CurrentLanguage == Language.SimplifiedChinese || CurrentLanguage == Language.TraditionalChinese ? 5 : 0; + break; + case "Kudos": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + break; + case "Fastest": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + sizeOfText += CurrentLanguage == Language.SimplifiedChinese || CurrentLanguage == Language.TraditionalChinese ? 20 : 0; + break; + case "Longest": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + sizeOfText += CurrentLanguage == Language.SimplifiedChinese || CurrentLanguage == Language.TraditionalChinese ? 20 : 0; + break; + case "AveFinish": + sizeOfText = TextRenderer.MeasureText(columnText, this.dataGridViewCellStyle1.Font).Width; + sizeOfText += CurrentLanguage == Language.SimplifiedChinese || CurrentLanguage == Language.TraditionalChinese ? 20 : 0; + break; + default: + return 0; + } + + return sizeOfText + 24; + } + + private void InitMainDataGridView() { + this.dataGridViewCellStyle1.Font = Overlay.GetMainFont(12); + this.dataGridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft; + //this.dataGridViewCellStyle1.BackColor = Color.LightGray; + //this.dataGridViewCellStyle1.ForeColor = Color.Black; + //this.dataGridViewCellStyle1.SelectionBackColor = Color.Cyan; + //this.dataGridViewCellStyle1.SelectionForeColor = Color.Black; + this.dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.gridDetails.ColumnHeadersDefaultCellStyle = this.dataGridViewCellStyle1; + this.gridDetails.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.gridDetails.ColumnHeadersHeight = 20; + + this.dataGridViewCellStyle2.Font = Overlay.GetMainFont(14); + this.dataGridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + //this.dataGridViewCellStyle2.BackColor = Color.White; + //this.dataGridViewCellStyle2.ForeColor = Color.Black; + //this.dataGridViewCellStyle2.SelectionBackColor = Color.DeepSkyBlue; + //this.dataGridViewCellStyle2.SelectionForeColor = Color.Black; + this.dataGridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.gridDetails.DefaultCellStyle = this.dataGridViewCellStyle2; + this.gridDetails.RowTemplate.Height = 25; + + // this.gridDetails.DataSource = this.StatDetails; + this.gridDetails.DataSource = this.GetFilteredDataSource(this.CurrentSettings.GroupingCreativeRoundLevels); + } + + private void SetMainDataGridViewOrder() { + int pos = 0; + this.gridDetails.Columns["RoundIcon"].DisplayIndex = pos++; + this.gridDetails.Columns["Name"].DisplayIndex = pos++; + this.gridDetails.Columns["Played"].DisplayIndex = pos++; + this.gridDetails.Columns["Qualified"].DisplayIndex = pos++; + this.gridDetails.Columns["Gold"].DisplayIndex = pos++; + this.gridDetails.Columns["Silver"].DisplayIndex = pos++; + this.gridDetails.Columns["Bronze"].DisplayIndex = pos++; + this.gridDetails.Columns["Kudos"].DisplayIndex = pos++; + this.gridDetails.Columns["Fastest"].DisplayIndex = pos++; + this.gridDetails.Columns["Longest"].DisplayIndex = pos++; + this.gridDetails.Columns["AveFinish"].DisplayIndex = pos; + } + + private void gridDetails_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { + try { + if (e.RowIndex < 0) return; + if (!((Grid)sender).Rows[e.RowIndex].Visible) return; + + LevelStats levelStats = ((Grid)sender).Rows[e.RowIndex].DataBoundItem as LevelStats; + float fBrightness = 0.85f; + Color cellColor; + switch (((Grid)sender).Columns[e.ColumnIndex].Name) { + case "RoundIcon": + if (levelStats.IsFinal) { + cellColor = Color.FromArgb(255, 240, 200); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + } + switch (levelStats.Type) { + // case LevelType.CreativeRace: + // cellColor = Color.FromArgb(122, 201, 241); + // e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + // break; + case LevelType.CreativeRace: + case LevelType.Race: + cellColor = Color.FromArgb(210, 255, 220); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.CreativeSurvival: + case LevelType.Survival: + cellColor = Color.FromArgb(250, 205, 255); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.CreativeHunt: + case LevelType.Hunt: + cellColor = Color.FromArgb(200, 220, 255); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.CreativeLogic: + case LevelType.Logic: + cellColor = Color.FromArgb(230, 250, 255); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.CreativeTeam: + case LevelType.Team: + cellColor = Color.FromArgb(255, 220, 205); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.Invisibeans: + cellColor = Color.FromArgb(255, 255, 255); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.Unknown: + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.LightGray : Color.DarkGray; + break; + } + break; + case "Name": + e.CellStyle.ForeColor = Color.Black; + if (levelStats.IsCreative) e.Value = $"🔧 {e.Value}"; + if (levelStats.IsFinal) { + cellColor = Color.FromArgb(255, 240, 200); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + } + switch (levelStats.Type) { + // case LevelType.CreativeRace: + // cellColor = Color.FromArgb(122, 201, 241); + // e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + // break; + case LevelType.CreativeRace: + case LevelType.Race: + cellColor = Color.FromArgb(210, 255, 220); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.CreativeSurvival: + case LevelType.Survival: + cellColor = Color.FromArgb(250, 205, 255); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.CreativeHunt: + case LevelType.Hunt: + cellColor = Color.FromArgb(200, 220, 255); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.CreativeLogic: + case LevelType.Logic: + cellColor = Color.FromArgb(230, 250, 255); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.CreativeTeam: + case LevelType.Team: + cellColor = Color.FromArgb(255, 220, 205); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.Invisibeans: + cellColor = Color.FromArgb(255, 255, 255); + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? cellColor : Utils.GetColorBrightnessAdjustment(cellColor, fBrightness); + break; + case LevelType.Unknown: + e.CellStyle.BackColor = this.Theme == MetroThemeStyle.Light ? Color.LightGray : Color.DarkGray; + break; + } + break; + case "Played": + fBrightness -= 0.2f; + cellColor = Color.FromArgb(0, 126, 222); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(cellColor, fBrightness) : cellColor; + e.Value = levelStats.Played == 0 ? "-" : $"{e.Value:N0}"; + break; + case "Qualified": + fBrightness -= 0.2f; + cellColor = Color.FromArgb(255, 20, 147); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(cellColor, fBrightness) : cellColor; + if (levelStats.Qualified == 0) { + e.Value = "-"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = ""; + } else { + float qualifyChance = levelStats.Qualified * 100f / Math.Max(1, levelStats.Played); + if (this.CurrentSettings.ShowPercentages) { + e.Value = $"{Math.Truncate(qualifyChance * 10) / 10}%"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = $"{levelStats.Qualified:N0}"; + } else { + e.Value = $"{levelStats.Qualified:N0}"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = $"{Math.Truncate(qualifyChance * 10) / 10}%"; + } + } + break; + case "Gold": + fBrightness -= 0.2f; + cellColor = Color.FromArgb(255, 215, 0); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(cellColor, fBrightness) : cellColor; + if (levelStats.Gold == 0) { + e.Value = "-"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = ""; + } else { + float goldChance = levelStats.Gold * 100f / Math.Max(1, levelStats.Played); + if (this.CurrentSettings.ShowPercentages) { + e.Value = $"{Math.Truncate(goldChance * 10) / 10}%"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = $"{levelStats.Gold:N0}"; + } else { + e.Value = $"{levelStats.Gold:N0}"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = $"{Math.Truncate(goldChance * 10) / 10}%"; + } + } + break; + case "Silver": + fBrightness -= 0.3f; + cellColor = Color.FromArgb(192, 192, 192); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(cellColor, fBrightness) : cellColor; + if (levelStats.Silver == 0) { + e.Value = "-"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = ""; + } else { + float silverChance = levelStats.Silver * 100f / Math.Max(1, levelStats.Played); + if (this.CurrentSettings.ShowPercentages) { + e.Value = $"{Math.Truncate(silverChance * 10) / 10}%"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = $"{levelStats.Silver:N0}"; + } else { + e.Value = $"{levelStats.Silver:N0}"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = $"{Math.Truncate(silverChance * 10) / 10}%"; + } + } + break; + case "Bronze": + fBrightness -= 0.2f; + cellColor = Color.FromArgb(205, 127, 50); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(cellColor, fBrightness) : cellColor; + if (levelStats.Bronze == 0) { + e.Value = "-"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = ""; + } else { + float bronzeChance = levelStats.Bronze * 100f / Math.Max(1, levelStats.Played); + if (this.CurrentSettings.ShowPercentages) { + e.Value = $"{Math.Truncate(bronzeChance * 10) / 10}%"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = $"{levelStats.Bronze:N0}"; + } else { + e.Value = $"{levelStats.Bronze:N0}"; + ((Grid)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = $"{Math.Truncate(bronzeChance * 10) / 10}%"; + } + } + break; + case "Kudos": + fBrightness -= 0.2f; + cellColor = Color.FromArgb(218, 112, 214); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(cellColor, fBrightness) : cellColor; + e.Value = levelStats.Kudos == 0 ? "-" : $"{e.Value:N0}"; + break; + case "AveFinish": + fBrightness -= 0.2f; + cellColor = Color.FromArgb(0, 192, 192); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(cellColor, fBrightness) : cellColor; + e.Value = levelStats.AveFinish == TimeSpan.Zero ? "-" : levelStats.AveFinish.ToString("m\\:ss\\.fff"); + break; + case "Fastest": + fBrightness -= 0.2f; + cellColor = Color.FromArgb(0, 192, 192); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(cellColor, fBrightness) : cellColor; + e.Value = levelStats.Fastest == TimeSpan.Zero ? "-" : levelStats.Fastest.ToString("m\\:ss\\.fff"); + break; + case "Longest": + fBrightness -= 0.2f; + cellColor = Color.FromArgb(0, 192, 192); + e.CellStyle.ForeColor = this.Theme == MetroThemeStyle.Light ? Utils.GetColorBrightnessAdjustment(cellColor, fBrightness) : cellColor; + e.Value = levelStats.Longest == TimeSpan.Zero ? "-" : levelStats.Longest.ToString("m\\:ss\\.fff"); + break; + } + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void gridDetails_CellMouseLeave(object sender, DataGridViewCellEventArgs e) { + if (e.RowIndex >= 0) { + ((Grid)sender).SuspendLayout(); + ((Grid)sender).Cursor = Cursors.Default; + this.HideCustomTooltip(this); + ((Grid)sender).ResumeLayout(); + } + } + + private void gridDetails_CellMouseEnter(object sender, DataGridViewCellEventArgs e) { + if (!this.isScrollingStopped) return; + + try { + ((Grid)sender).SuspendLayout(); + if (e.RowIndex >= 0 && (((Grid)sender).Columns[e.ColumnIndex].Name == "Name" || ((Grid)sender).Columns[e.ColumnIndex].Name == "RoundIcon")) { + ((Grid)sender).ShowCellToolTips = false; + ((Grid)sender).Cursor = Cursors.Hand; + Point cursorPosition = this.PointToClient(Cursor.Position); + Point position = new Point(cursorPosition.X + 16, cursorPosition.Y + 16); + this.AllocCustomTooltip(this.cmtt_center_Draw); + this.ShowCustomTooltip($"{Multilingual.GetWord("level_detail_tooltiptext_prefix")}{((Grid)sender).Rows[e.RowIndex].Cells["Name"].Value}{Multilingual.GetWord("level_detail_tooltiptext_suffix")}", this, position); + } else if (e.RowIndex >= 0) { + ((Grid)sender).ShowCellToolTips = true; + ((Grid)sender).Cursor = e.RowIndex >= 0 && !(((Grid)sender).Columns[e.ColumnIndex].Name == "Name" || ((Grid)sender).Columns[e.ColumnIndex].Name == "RoundIcon") + ? this.Theme == MetroThemeStyle.Light + ? new Cursor(Properties.Resources.transform_icon.GetHicon()) + : new Cursor(Properties.Resources.transform_gray_icon.GetHicon()) + : Cursors.Default; + } + ((Grid)sender).ResumeLayout(); + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void gridDetails_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { + this.mtgCreativeLevel.Checked = this.CurrentSettings.GroupingCreativeRoundLevels; + this.mtgIgnoreLevelTypeWhenSorting.Checked = this.CurrentSettings.IgnoreLevelTypeWhenSorting; + } + + public List GetFilteredDataSource(bool isFilter) { + return isFilter ? this.StatDetails.Where(l => l.IsCreative != true || ((l.Id.StartsWith("creative_") || l.Id.StartsWith("user_creative_")) && l.Id.EndsWith("_round"))).ToList() + : this.StatDetails.Where(l => !(l.Id.StartsWith("creative_") && l.Id.EndsWith("_round"))).ToList(); + } + + private void SortGridDetails(bool isInitialize, int columnIndex = 0) { + if (this.StatDetails == null) return; + + string columnName = this.gridDetails.Columns[columnIndex].Name; + SortOrder sortOrder = isInitialize ? SortOrder.None : this.gridDetails.GetSortOrder(columnName); + + this.StatDetails.Sort((one, two) => { + LevelType oneType = one.IsFinal ? LevelType.Final : one.Type; + LevelType twoType = two.IsFinal ? LevelType.Final : two.Type; + + int typeCompare = this.CurrentSettings.IgnoreLevelTypeWhenSorting && sortOrder != SortOrder.None ? 0 : ((int)oneType).CompareTo((int)twoType); + + if (sortOrder == SortOrder.Descending) { + (one, two) = (two, one); + } + + int nameCompare = $"{(one.IsCreative ? "#" : "")}{one.Name}".CompareTo($"{(two.IsCreative ? "#" : "")}{two.Name}"); + bool percents = this.CurrentSettings.ShowPercentages; + if (typeCompare == 0 && sortOrder != SortOrder.None) { + switch (columnName) { + case "Played": typeCompare = one.Played.CompareTo(two.Played); break; + case "Qualified": typeCompare = ((double)one.Qualified / (one.Played > 0 && percents ? one.Played : 1)).CompareTo((double)two.Qualified / (two.Played > 0 && percents ? two.Played : 1)); break; + case "Gold": typeCompare = ((double)one.Gold / (one.Played > 0 && percents ? one.Played : 1)).CompareTo((double)two.Gold / (two.Played > 0 && percents ? two.Played : 1)); break; + case "Silver": typeCompare = ((double)one.Silver / (one.Played > 0 && percents ? one.Played : 1)).CompareTo((double)two.Silver / (two.Played > 0 && percents ? two.Played : 1)); break; + case "Bronze": typeCompare = ((double)one.Bronze / (one.Played > 0 && percents ? one.Played : 1)).CompareTo((double)two.Bronze / (two.Played > 0 && percents ? two.Played : 1)); break; + case "Kudos": typeCompare = one.Kudos.CompareTo(two.Kudos); break; + case "Fastest": typeCompare = one.Fastest.CompareTo(two.Fastest); break; + case "Longest": typeCompare = one.Longest.CompareTo(two.Longest); break; + case "AveFinish": typeCompare = one.AveFinish.CompareTo(two.AveFinish); break; + case "AveKudos": typeCompare = one.AveKudos.CompareTo(two.AveKudos); break; + default: typeCompare = nameCompare; break; + } + } + + if (typeCompare == 0) { + typeCompare = nameCompare; + } + + return typeCompare; + }); + + this.gridDetails.DataSource = null; + // this.gridDetails.DataSource = this.StatDetails; + this.gridDetails.DataSource = this.GetFilteredDataSource(this.CurrentSettings.GroupingCreativeRoundLevels); + this.gridDetails.Columns[columnName].HeaderCell.SortGlyphDirection = sortOrder; + } + + private void gridDetails_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { + this.SortGridDetails(false, e.ColumnIndex); + } + + private void gridDetails_SelectionChanged(object sender, EventArgs e) { + if (((Grid)sender).SelectedCells.Count > 0) { + ((Grid)sender).ClearSelection(); + } + } + + private void gridDetails_CellClick(object sender, DataGridViewCellEventArgs e) { + try { + if (e.RowIndex < 0) return; + if (((Grid)sender).Columns[e.ColumnIndex].Name == "Name" || ((Grid)sender).Columns[e.ColumnIndex].Name == "RoundIcon") { + LevelStats levelStats = ((Grid)sender).Rows[e.RowIndex].DataBoundItem as LevelStats; + using (LevelDetails levelDetails = new LevelDetails { + StatsForm = this, + LevelId = levelStats.Id, + LevelName = levelStats.Name, + RoundIcon = levelStats.RoundBigIcon, + IsCreative = levelStats.IsCreative, + RoundDetails = levelStats.Stats + }) { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + this.OnUpdatedLevelRows += levelDetails.LevelDetails_OnUpdatedLevelRows; + levelDetails.ShowDialog(this); + this.OnUpdatedLevelRows -= levelDetails.LevelDetails_OnUpdatedLevelRows; + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } + } else { + this.CurrentSettings.ShowPercentages = !this.CurrentSettings.ShowPercentages; + this.SaveUserSettings(); + this.gridDetails.Invalidate(); + } + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public List GetShowsForDisplay() { + return this.AllStats + .Where(r => r.Profile == this.GetCurrentProfileId() + && this.IsInStatsFilter(r) + && this.IsInPartyFilter(r)) + .GroupBy(r => r.ShowID) + .Select(g => new { + ShowID = g.Key, + SortedRounds = g.OrderBy(r => r.Round).ToList() + }) + .Select(g => new RoundInfo { + ShowID = g.ShowID, + // Name = g.SortedRounds.LastOrDefault().IsFinal || g.SortedRounds.LastOrDefault().Crown ? "Final" : string.Empty, + Name = string.Join(";", g.SortedRounds.Select(r => !string.IsNullOrEmpty(r.ShowNameId) && r.ShowNameId.StartsWith("user_creative_") ? (string.IsNullOrEmpty(r.CreativeTitle) ? r.Name : r.CreativeTitle) : r.Name)), + ShowNameId = string.Join(";", g.SortedRounds.Select(r => r.ShowNameId)), + IsFinal = g.SortedRounds.LastOrDefault().IsFinal, + End = g.SortedRounds.Max(r => r.End), + Start = g.SortedRounds.Min(r => r.Start), + StartLocal = g.SortedRounds.Min(r => r.StartLocal), + Kudos = g.SortedRounds.Sum(r => r.Kudos), + Qualified = g.SortedRounds.LastOrDefault().Qualified, + Round = g.SortedRounds.Max(r => r.Round), + Tier = g.SortedRounds.LastOrDefault().Qualified ? 1 : 0, + PrivateLobby = g.SortedRounds.LastOrDefault().PrivateLobby, + UseShareCode = g.SortedRounds.LastOrDefault().UseShareCode, + IsCasualShow = g.SortedRounds.LastOrDefault().IsCasualShow, + CreativeOnlinePlatformId = g.SortedRounds.LastOrDefault().CreativeOnlinePlatformId, + CreativeAuthor = g.SortedRounds.LastOrDefault().CreativeAuthor, + CreativeShareCode = g.SortedRounds.LastOrDefault().CreativeShareCode, + CreativeVersion = g.SortedRounds.LastOrDefault().CreativeVersion, + CreativeStatus = g.SortedRounds.LastOrDefault().CreativeStatus, + CreativeTitle = g.SortedRounds.LastOrDefault().CreativeTitle, + CreativeDescription = g.SortedRounds.LastOrDefault().CreativeDescription, + CreativeCreatorTags = g.SortedRounds.LastOrDefault().CreativeCreatorTags, + CreativeMaxPlayer = g.SortedRounds.LastOrDefault().CreativeMaxPlayer, + CreativeThumbUrl = g.SortedRounds.LastOrDefault().CreativeThumbUrl, + CreativePlatformId = g.SortedRounds.LastOrDefault().CreativePlatformId, + CreativeGameModeId = g.SortedRounds.LastOrDefault().CreativeGameModeId, + CreativeLevelThemeId = g.SortedRounds.LastOrDefault().CreativeLevelThemeId, + CreativeLastModifiedDate = g.SortedRounds.LastOrDefault().CreativeLastModifiedDate, + CreativePlayCount = g.SortedRounds.LastOrDefault().CreativePlayCount, + CreativeLikes = g.SortedRounds.LastOrDefault().CreativeLikes, + CreativeDislikes = g.SortedRounds.LastOrDefault().CreativeDislikes, + CreativeQualificationPercent = g.SortedRounds.LastOrDefault().CreativeQualificationPercent, + CreativeTimeLimitSeconds = g.SortedRounds.LastOrDefault().CreativeTimeLimitSeconds + }).ToList(); + } + + private void DisplayShows() { + using (LevelDetails levelDetails = new LevelDetails()) { + levelDetails.StatsForm = this; + levelDetails.LevelName = "Shows"; + levelDetails.RoundDetails = this.GetShowsForDisplay(); + this.OnUpdatedLevelRows += levelDetails.LevelDetails_OnUpdatedLevelRows; + levelDetails.ShowDialog(this); + this.OnUpdatedLevelRows -= levelDetails.LevelDetails_OnUpdatedLevelRows; + } + } + + public List GetRoundsForDisplay() { + return this.AllStats + .Where(r => r.Profile == this.GetCurrentProfileId() && + this.IsInStatsFilter(r) && + this.IsInPartyFilter(r)) + .OrderBy(r => r.ShowID) + .ThenBy(r => r.Round) + .ToList(); + } + + private void DisplayRounds() { + using (LevelDetails levelDetails = new LevelDetails()) { + levelDetails.StatsForm = this; + levelDetails.LevelName = "Rounds"; + levelDetails.RoundDetails = this.GetRoundsForDisplay(); + this.OnUpdatedLevelRows += levelDetails.LevelDetails_OnUpdatedLevelRows; + levelDetails.ShowDialog(this); + this.OnUpdatedLevelRows -= levelDetails.LevelDetails_OnUpdatedLevelRows; + } + } + + public List GetFinalsForDisplay() { + return this.AllStats + .Where(r => r.Profile == this.GetCurrentProfileId() && + this.IsInStatsFilter(r) && + this.IsInPartyFilter(r)) + .GroupBy(r => r.ShowID) + .Where(g => g.Any(r => (r.Round == g.Max(x => x.Round)) && (r.IsFinal || r.Crown))) + .SelectMany(g => g) + .ToList(); + } + + private void DisplayFinals() { + using (LevelDetails levelDetails = new LevelDetails()) { + levelDetails.StatsForm = this; + levelDetails.LevelName = "Finals"; + levelDetails.RoundDetails = this.GetFinalsForDisplay(); + this.OnUpdatedLevelRows += levelDetails.LevelDetails_OnUpdatedLevelRows; + levelDetails.ShowDialog(this); + this.OnUpdatedLevelRows -= levelDetails.LevelDetails_OnUpdatedLevelRows; + } + } + + private void DisplayWinsGraph() { + using (WinStatsDisplay display = new WinStatsDisplay { + StatsForm = this, + Text = $@" {Multilingual.GetWord("level_detail_wins_per_day")} - {this.GetCurrentProfileName().Replace("&", "&&")} ({this.GetCurrentFilterName()})", + BackImage = Properties.Resources.crown_icon, + BackMaxSize = 32, + BackImagePadding = new Padding(20, 20, 0, 0) + }) { + List rounds = this.AllStats + .Where(r => r.Profile == this.GetCurrentProfileId() && + this.IsInStatsFilter(r) && + this.IsInPartyFilter(r)) + .OrderBy(r => r.End).ToList(); + + var dates = new ArrayList(); + var shows = new ArrayList(); + var finals = new ArrayList(); + var wins = new ArrayList(); + var winsInfo = new Dictionary>(); + if (rounds.Count > 0) { + DateTime start = rounds[0].StartLocal; + int currentShows = 0; + int currentFinals = 0; + int currentWins = 0; + bool isIncrementedShows = false; + bool isIncrementedFinals = false; + bool isIncrementedWins = false; + bool isOverDate = false; + foreach (RoundInfo info in rounds.Where(info => !info.PrivateLobby && + !info.IsCasualShow)) { + if (info.Round == 1) { + currentShows += isOverDate ? 2 : 1; + isIncrementedShows = true; + } + + if (info.Crown || info.IsFinal) { + isOverDate = start.Date < info.StartLocal.Date; + currentFinals++; + isIncrementedFinals = true; + + if (info.Qualified) { + currentWins++; + isIncrementedWins = true; + + string levelName = info.UseShareCode ? (string.IsNullOrEmpty(info.CreativeTitle) ? info.Name : info.CreativeTitle) : this.StatLookup.TryGetValue(info.Name, out LevelStats l1) ? l1.Name : info.Name; + if (winsInfo.TryGetValue(isOverDate ? info.StartLocal.Date.ToOADate() : start.Date.ToOADate(), out SortedList wi)) { + if (wi.ContainsKey($"{levelName};crown")) { + wi[$"{levelName};crown"] += 1; + } else { + wi[$"{levelName};crown"] = 1; + } + } else { + winsInfo.Add(isOverDate ? info.StartLocal.Date.ToOADate() : start.Date.ToOADate(), new SortedList {{$"{levelName};crown", 1}}); + } + + if (isOverDate) { + currentShows--; + isIncrementedShows = false; + } + } else { + string levelName = info.UseShareCode ? (string.IsNullOrEmpty(info.CreativeTitle) ? info.Name : info.CreativeTitle) : this.StatLookup.TryGetValue(info.Name, out LevelStats l1) ? l1.Name : info.Name; + if (winsInfo.TryGetValue(isOverDate ? info.StartLocal.Date.ToOADate() : start.Date.ToOADate(), out SortedList wi)) { + if (wi.ContainsKey($"{levelName};eliminated")) { + wi[$"{levelName};eliminated"] += 1; + } else { + wi[$"{levelName};eliminated"] = 1; + } + } else { + winsInfo.Add(isOverDate ? info.StartLocal.Date.ToOADate() : start.Date.ToOADate(), new SortedList {{$"{levelName};eliminated", 1}}); + } + + if (isOverDate) { + currentShows--; + isIncrementedShows = false; + } + } + } + + if (info.StartLocal.Date > start.Date && (isIncrementedShows || isIncrementedFinals)) { + dates.Add(start.Date.ToOADate()); + shows.Add(Convert.ToDouble(isIncrementedShows ? --currentShows : currentShows)); + finals.Add(Convert.ToDouble(isIncrementedFinals ? --currentFinals : currentFinals)); + wins.Add(Convert.ToDouble(isIncrementedWins ? --currentWins : currentWins)); + + int daysWithoutStats = (int)(info.StartLocal.Date - start.Date).TotalDays - 1; + while (daysWithoutStats > 0) { + daysWithoutStats--; + start = start.Date.AddDays(1); + dates.Add(start.ToOADate()); + shows.Add(0d); + finals.Add(0d); + wins.Add(0d); + } + + currentShows = isIncrementedShows ? 1 : 0; + currentFinals = isIncrementedFinals ? 1 : 0; + currentWins = isIncrementedWins ? 1 : 0; + start = info.StartLocal; + } + + isIncrementedShows = false; + isIncrementedFinals = false; + isIncrementedWins = false; + } + + if (isOverDate) currentShows += 1; + + dates.Add(start.Date.ToOADate()); + shows.Add(Convert.ToDouble(currentShows)); + finals.Add(Convert.ToDouble(currentFinals)); + wins.Add(Convert.ToDouble(currentWins)); + + display.manualSpacing = Math.Ceiling(dates.Count / 28d); + } else { + dates.Add(DateTime.Now.Date.ToOADate()); + shows.Add(0d); + finals.Add(0d); + wins.Add(0d); + + display.manualSpacing = 1.0; + } + display.dates = (double[])dates.ToArray(typeof(double)); + display.shows = (double[])shows.ToArray(typeof(double)); + display.finals = (double[])finals.ToArray(typeof(double)); + display.wins = (double[])wins.ToArray(typeof(double)); + display.winsInfo = winsInfo; + + display.graphStyle = this.CurrentSettings.WinPerDayGraphStyle; + display.ShowDialog(this); + if (display.graphStyle != this.CurrentSettings.WinPerDayGraphStyle) { + this.CurrentSettings.WinPerDayGraphStyle = display.graphStyle; + this.SaveUserSettings(); + } + } + } + + private void DisplayLevelGraph() { + using (LevelStatsDisplay levelStatsDisplay = new LevelStatsDisplay()) { + levelStatsDisplay.StatsForm = this; + levelStatsDisplay.Text = $@" {Multilingual.GetWord("level_detail_stats_by_round")} - {this.GetCurrentProfileName().Replace("&", "&&")} ({this.GetCurrentFilterName()})"; + levelStatsDisplay.BackImage = this.Theme == MetroThemeStyle.Light ? Properties.Resources.round_icon : Properties.Resources.round_gray_icon; + levelStatsDisplay.BackMaxSize = 32; + levelStatsDisplay.BackImagePadding = new Padding(20, 20, 0, 0); + List rounds = this.AllStats.Where(r => r.Profile == this.GetCurrentProfileId() + && this.IsInStatsFilter(r) + && this.IsInPartyFilter(r) + && !r.UseShareCode) + .OrderBy(r => (this.StatLookup.TryGetValue(r.Name, out LevelStats l1) && l1.IsCreative && !string.IsNullOrEmpty(l1.ShareCode)) ? l1.ShareCode : r.Name) + .ThenBy(r => r.Name).ToList(); + List useShareCodeRounds = this.AllStats.Where(r => r.Profile == this.GetCurrentProfileId() + && this.IsInStatsFilter(r) + && this.IsInPartyFilter(r) + && r.UseShareCode) + .OrderBy(r => r.Name).ToList(); + + if (rounds.Count == 0 && useShareCodeRounds.Count == 0) return; + + var levelMedalInfo = new Dictionary(); + var levelTotalPlayTime = new Dictionary(); + var levelTimeInfo = new Dictionary(); + var levelScoreInfo = new Dictionary(); + var levelList = new Dictionary(); + + double p = 0, gm = 0, sm = 0, bm = 0, pm = 0, em = 0; + int hs = -1, ls = int.MaxValue; + TimeSpan pt = TimeSpan.Zero, ft = TimeSpan.MaxValue, lt = TimeSpan.Zero; + for (int i = 0; i < rounds.Count; i++) { + bool isCurrentRoundInfoAvailable = this.StatLookup.TryGetValue(rounds[i].Name, out LevelStats l1); + if (i > 0) { + bool isCurrentRoundIsCreative = !isCurrentRoundInfoAvailable || l1.IsCreative; + bool isPreviousRoundInfoAvailable = this.StatLookup.TryGetValue(rounds[i - 1].Name, out LevelStats l2); + bool isPreviousRoundIsCreative = !isPreviousRoundInfoAvailable || l2.IsCreative; + if ((isCurrentRoundIsCreative && isPreviousRoundIsCreative && isCurrentRoundInfoAvailable && isPreviousRoundInfoAvailable && !string.Equals(l1.ShareCode, l2.ShareCode)) + || (!isCurrentRoundIsCreative && isPreviousRoundIsCreative) + || (!isCurrentRoundIsCreative && !isPreviousRoundIsCreative && !string.Equals(rounds[i].Name, rounds[i - 1].Name)) + || (isCurrentRoundInfoAvailable && !isPreviousRoundInfoAvailable) + || (!isCurrentRoundInfoAvailable && isPreviousRoundInfoAvailable) + || (!isCurrentRoundInfoAvailable && !isPreviousRoundInfoAvailable && !string.Equals(rounds[i].Name, rounds[i - 1].Name))) { + string levelId = isPreviousRoundInfoAvailable && l2.IsCreative ? l2.ShareCode : rounds[i - 1].Name; + string levelName = isPreviousRoundInfoAvailable ? l2.Name : rounds[i - 1].Name; + levelTotalPlayTime.Add(levelId, pt); + levelMedalInfo.Add(levelId, new[] { p, gm, sm, bm, pm, em }); + levelTimeInfo.Add(levelId, new[] { ft < TimeSpan.MaxValue ? $"{ft:m\\:ss\\.fff}" : @"-", lt > TimeSpan.Zero ? $"{lt:m\\:ss\\.fff}" : @"-" }); + levelScoreInfo.Add(levelId, new[] { hs >= 0 ? $"{hs}" : @"-", ls < int.MaxValue ? $"{ls}" : @"-" }); + levelList.Add(rounds[i - 1].Name, levelName.Replace("&", "&&")); + pt = TimeSpan.Zero; ft = TimeSpan.MaxValue; lt = TimeSpan.Zero; + hs = -1; ls = int.MaxValue; + p = 0; gm = 0; sm = 0; bm = 0; pm = 0; em = 0; + } + } + TimeSpan rft = rounds[i].Finish.GetValueOrDefault(rounds[i].Start) - rounds[i].Start; + if (rounds[i].Finish.HasValue && rft.TotalSeconds > 1.1) { + ft = rft < ft ? rft : ft; + lt = rft > lt ? rft : lt; + } + if (rounds[i].Score.HasValue) { + hs = (int)(rounds[i].Score > hs ? rounds[i].Score : hs); + ls = (int)(rounds[i].Score < ls ? rounds[i].Score : ls); + } + + pt += rounds[i].End - rounds[i].Start; + ++p; + if (rounds[i].Qualified) { + switch (rounds[i].Tier) { + case 0: ++pm; break; + case 1: ++gm; break; + case 2: ++sm; break; + case 3: ++bm; break; + } + } else { + ++em; + } + + if (i == rounds.Count - 1) { + string levelId = isCurrentRoundInfoAvailable && l1.IsCreative ? l1.ShareCode : rounds[i].Name; + string levelName = isCurrentRoundInfoAvailable ? l1.Name : rounds[i].Name; + levelTotalPlayTime.Add(levelId, pt); + levelMedalInfo.Add(levelId, new[] { p, gm, sm, bm, pm, em }); + levelTimeInfo.Add(levelId, new[] { ft < TimeSpan.MaxValue ? $"{ft:m\\:ss\\.fff}" : @"-", lt > TimeSpan.Zero ? $"{lt:m\\:ss\\.fff}" : @"-" }); + levelScoreInfo.Add(levelId, new[] { hs >= 0 ? $"{hs}" : @"-", ls < int.MaxValue ? $"{ls}" : @"-" }); + levelList.Add(rounds[i].Name, levelName.Replace("&", "&&")); + } + } + + pt = TimeSpan.Zero; ft = TimeSpan.MaxValue; lt = TimeSpan.Zero; + hs = -1; ls = int.MaxValue; + p = 0; gm = 0; sm = 0; bm = 0; pm = 0; em = 0; + for (int i = 0; i < useShareCodeRounds.Count; i++) { + if (i > 0 && !string.Equals(useShareCodeRounds[i].Name, useShareCodeRounds[i - 1].Name)) { + string levelId = $"{useShareCodeRounds[i - 1].Name}."; + levelTotalPlayTime.Add(levelId, pt); + levelMedalInfo.Add(levelId, new[] { p, gm, sm, bm, pm, em }); + levelTimeInfo.Add(levelId, new[] { ft < TimeSpan.MaxValue ? $"{ft:m\\:ss\\.fff}" : @"-", lt > TimeSpan.Zero ? $"{lt:m\\:ss\\.fff}" : @"-" }); + levelScoreInfo.Add(levelId, new[] { hs >= 0 ? $"{hs}" : @"-", ls < int.MaxValue ? $"{ls}" : @"-" }); + levelList.Add(levelId, $@"{this.GetUserCreativeLevelTitle(useShareCodeRounds[i - 1].Name).Replace("&", "&&")} ({Multilingual.GetWord("main_custom_and_casual_shows")})"); + + pt = TimeSpan.Zero; ft = TimeSpan.MaxValue; lt = TimeSpan.Zero; + hs = -1; ls = int.MaxValue; + p = 0; gm = 0; sm = 0; bm = 0; pm = 0; em = 0; + } + TimeSpan rft = useShareCodeRounds[i].Finish.GetValueOrDefault(useShareCodeRounds[i].Start) - useShareCodeRounds[i].Start; + if (useShareCodeRounds[i].Finish.HasValue && rft.TotalSeconds > 1.1) { + ft = rft < ft ? rft : ft; + lt = rft > lt ? rft : lt; + } + if (useShareCodeRounds[i].Score.HasValue) { + hs = (int)(useShareCodeRounds[i].Score > hs ? useShareCodeRounds[i].Score : hs); + ls = (int)(useShareCodeRounds[i].Score < ls ? useShareCodeRounds[i].Score : ls); + } + + pt += useShareCodeRounds[i].End - useShareCodeRounds[i].Start; + ++p; + if (useShareCodeRounds[i].Qualified) { + switch (useShareCodeRounds[i].Tier) { + case 0: ++pm; break; + case 1: ++gm; break; + case 2: ++sm; break; + case 3: ++bm; break; + } + } else { + ++em; + } + + if (i == useShareCodeRounds.Count - 1) { + string levelId = $"{useShareCodeRounds[i].Name}."; + levelTotalPlayTime.Add(levelId, pt); + levelMedalInfo.Add(levelId, new[] { p, gm, sm, bm, pm, em }); + levelTimeInfo.Add(levelId, new[] { ft < TimeSpan.MaxValue ? $"{ft:m\\:ss\\.fff}" : @"-", lt > TimeSpan.Zero ? $"{lt:m\\:ss\\.fff}" : @"-" }); + levelScoreInfo.Add(levelId, new[] { hs >= 0 ? $"{hs}" : @"-", ls < int.MaxValue ? $"{ls}" : @"-" }); + levelList.Add(levelId, $@"{this.GetUserCreativeLevelTitle(useShareCodeRounds[i].Name).Replace("&", "&&")} ({Multilingual.GetWord("main_custom_and_casual_shows")})"); + } + } + + levelStatsDisplay.levelList = from pair in levelList orderby pair.Value.Trim() ascending select pair; + levelStatsDisplay.levelTotalPlayTime = levelTotalPlayTime; + levelStatsDisplay.levelTimeInfo = levelTimeInfo; + levelStatsDisplay.levelScoreInfo = levelScoreInfo; + levelStatsDisplay.levelMedalInfo = levelMedalInfo; + + levelStatsDisplay.ShowDialog(this); + } + } + + private void LaunchHelpInBrowser() { + try { + if (CurrentLanguage == Language.French) { + Process.Start("https://github.com/ShootMe/FallGuysStats/blob/master/docs/fr/README.md#table-des-mati%C3%A8res"); + } else if (CurrentLanguage == Language.Korean) { + Process.Start("https://github.com/ShootMe/FallGuysStats/blob/master/docs/ko/README.md#%EB%AA%A9%EC%B0%A8"); + } else if (CurrentLanguage == Language.Japanese) { + Process.Start("https://github.com/ShootMe/FallGuysStats/blob/master/docs/ja/README.md#%E7%9B%AE%E6%AC%A1"); + } else { + Process.Start("https://github.com/ShootMe/FallGuysStats#table-of-contents"); + } + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LaunchGame(bool ignoreExisting) { + try { + //this.UpdateGameExeLocation(); + if (this.CurrentSettings.LaunchPlatform == 0) { + if (!string.IsNullOrEmpty(this.CurrentSettings.GameShortcutLocation)) { + Process[] processes = Process.GetProcesses(); + string fallGuysProcessName = "FallGuys_client_game"; + if (processes.Select(t => t.ProcessName).Any(name => name.IndexOf(fallGuysProcessName, StringComparison.OrdinalIgnoreCase) >= 0)) { + if (!ignoreExisting) { + MetroMessageBox.Show(this, Multilingual.GetWord("message_fall_guys_already_running"), + Multilingual.GetWord("message_already_running_caption"), MessageBoxButtons.OK, MessageBoxIcon.Error); + } + return; + } + + if (MetroMessageBox.Show(this, $"{Multilingual.GetWord("message_execution_question")}", + $"[{Multilingual.GetWord("level_detail_online_platform_eos")}] {Multilingual.GetWord("message_execution_caption")}", + MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + Process.Start(this.CurrentSettings.GameShortcutLocation); + this.WindowState = FormWindowState.Minimized; + } + } else { + MetroMessageBox.Show(this, Multilingual.GetWord("message_register_shortcut"), + Multilingual.GetWord("message_register_shortcut_caption"), + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } else { + if (!string.IsNullOrEmpty(this.CurrentSettings.GameExeLocation) && File.Exists(this.CurrentSettings.GameExeLocation)) { + Process[] processes = Process.GetProcesses(); + string fallGuysProcessName = Path.GetFileNameWithoutExtension(this.CurrentSettings.GameExeLocation); + if (processes.Select(t => t.ProcessName).Any(name => name.IndexOf(fallGuysProcessName, StringComparison.OrdinalIgnoreCase) >= 0)) { + if (!ignoreExisting) { + MetroMessageBox.Show(this, Multilingual.GetWord("message_fall_guys_already_running"), + Multilingual.GetWord("message_already_running_caption"), MessageBoxButtons.OK, MessageBoxIcon.Error); + } + return; + } + + if (MetroMessageBox.Show(this, $"{Multilingual.GetWord("message_execution_question")}", + $"[{Multilingual.GetWord("level_detail_online_platform_steam")}] {Multilingual.GetWord("message_execution_caption")}", + MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + Process.Start(this.CurrentSettings.GameExeLocation); + this.WindowState = FormWindowState.Minimized; + } + } else { + MetroMessageBox.Show(this, Multilingual.GetWord("message_register_exe"), + Multilingual.GetWord("message_register_exe_caption"), MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public void UpdateGameExeLocation() { + string fallGuysShortcutLocation = this.FindEpicGamesShortcutLocation(); + string fallGuysExeLocation = this.FindSteamExeLocation(); + + if (string.IsNullOrEmpty(fallGuysShortcutLocation) && !string.IsNullOrEmpty(fallGuysExeLocation)) { + this.menuLaunchFallGuys.Image = Properties.Resources.steam_main_icon; + this.trayLaunchFallGuys.Image = Properties.Resources.steam_main_icon; + this.CurrentSettings.LaunchPlatform = 1; + } else if (!string.IsNullOrEmpty(fallGuysShortcutLocation) && !string.IsNullOrEmpty(fallGuysExeLocation)) { + this.menuLaunchFallGuys.Image = this.CurrentSettings.LaunchPlatform == 0 ? Properties.Resources.epic_main_icon : Properties.Resources.steam_main_icon; + this.trayLaunchFallGuys.Image = this.CurrentSettings.LaunchPlatform == 0 ? Properties.Resources.epic_main_icon : Properties.Resources.steam_main_icon; + } else { + this.menuLaunchFallGuys.Image = Properties.Resources.epic_main_icon; + this.trayLaunchFallGuys.Image = Properties.Resources.epic_main_icon; + this.CurrentSettings.LaunchPlatform = 0; + } + + this.CurrentSettings.GameShortcutLocation = fallGuysShortcutLocation; + this.CurrentSettings.GameExeLocation = fallGuysExeLocation; + this.SaveUserSettings(); + } + + public string[] FindEpicGamesUserInfo() { + string[] userInfo = { string.Empty, string.Empty }; + try { + string logsDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "EpicGamesLauncher", "Saved", "Logs"); + if (Directory.Exists(logsDir)) { + FileInfo[] logFiles = new DirectoryInfo(logsDir).GetFiles("EpicGamesLauncher*").OrderByDescending(p => p.LastWriteTime).ToArray(); + if (logFiles.Length > 0) { + foreach (FileInfo file in logFiles) { + using (FileStream fs = File.Open(file.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { + using (StreamReader sr = new StreamReader(fs)) { + string line; + List lines = new List(); + while ((line = sr.ReadLine()) != null) { + if (line.IndexOf("FCommunityPortalLaunchAppTask: Launching app", StringComparison.OrdinalIgnoreCase) != -1 + && line.IndexOf("RunFallGuys.exe", StringComparison.OrdinalIgnoreCase) != -1) { + lines.Add(line); + } + } + + if (lines.Count > 0) { + line = lines.Last(); + int index = line.IndexOf("-epicuserid=", StringComparison.OrdinalIgnoreCase) + 12; + int index2 = line.IndexOf("-epicusername=", StringComparison.OrdinalIgnoreCase) + 15; + userInfo[0] = line.Substring(index, line.IndexOf(" -epiclocale=", StringComparison.OrdinalIgnoreCase) - index); + userInfo[1] = line.Substring(index2, line.IndexOf("\" -epicuserid=", StringComparison.OrdinalIgnoreCase) - index2); + break; + } + } + } + } + } + } + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + return userInfo; + } + + public string[] FindSteamUserInfo() { + string[] userInfo = { string.Empty, string.Empty }; + try { + string steamPath; + if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { + string userName = Environment.UserName; + steamPath = Path.Combine("/", "home", userName, ".local", "share", "Steam"); + } else { + object regValue = Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Valve\\Steam", "InstallPath", null); + if (regValue == null) { return userInfo; } + + steamPath = (string)regValue; + } + + string steamConfigPath = Path.Combine(steamPath, "config", "loginusers.vdf"); + if (File.Exists(steamConfigPath)) { + var kv = SteamKit2.KeyValue.LoadAsText(steamConfigPath); + if (kv != null && string.Equals(kv.Name, "users", StringComparison.OrdinalIgnoreCase)) { + bool isFind = false; + foreach (var kvc in kv.Children) { + foreach (var kvcc in kvc.Children) { + if (string.Equals(kvcc.Name, "mostrecent", StringComparison.OrdinalIgnoreCase) && string.Equals(kvcc.Value, "1")) { + isFind = true; + } else if (string.Equals(kvcc.Name, "accountname", StringComparison.OrdinalIgnoreCase)) { + userInfo[0] = kvcc.Value; + } else if (string.Equals(kvcc.Name, "personaname", StringComparison.OrdinalIgnoreCase)) { + userInfo[1] = kvcc.Value; + } + } + if (isFind) break; + } + + if (!isFind) { + userInfo[0] = string.Empty; + userInfo[1] = string.Empty; + } + } + } + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + return userInfo; + } + + public string FindEpicGamesShortcutLocation() { + try { + object regValue = Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Epic Games\\EpicGamesLauncher", "AppDataPath", null); + if (regValue == null) { return string.Empty; } + + string epicGamesPath = Path.Combine((string)regValue, "Manifests"); + + if (Directory.Exists(epicGamesPath)) { + DirectoryInfo di = new DirectoryInfo(epicGamesPath); + foreach (FileInfo file in di.GetFiles()) { + if (!string.Equals(file.Extension, ".item")) continue; + JsonClass json = Json.Read(File.ReadAllText(file.FullName)) as JsonClass; + if (string.Equals(json["MainGameCatalogNamespace"].AsString(), "50118b7f954e450f8823df1614b24e80") || string.Equals(json["CatalogNamespace"].AsString(), "50118b7f954e450f8823df1614b24e80")) { + return "com.epicgames.launcher://apps/50118b7f954e450f8823df1614b24e80%3A38ec4849ea4f4de6aa7b6fb0f2d278e1%3A0a2d9f6403244d12969e11da6713137b?action=launch&silent=true"; + } + } + } + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + return string.Empty; + } + + public string FindSteamExeLocation() { + try { + string steamPath; + if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { + string userName = Environment.UserName; + steamPath = Path.Combine("/", "home", userName, ".local", "share", "Steam"); + } else { + // get steam install folder + object regValue = Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Valve\\Steam", "InstallPath", null); + if (regValue == null) { return string.Empty; } + + steamPath = (string)regValue; + } + + string fallGuysSteamPath = Path.Combine(steamPath, "steamapps", "common", "Fall Guys", "FallGuys_client_game.exe"); + + if (File.Exists(fallGuysSteamPath)) { return fallGuysSteamPath; } + // read libraryfolders.vdf from install folder to get games installation folder + // note: this parsing is terrible, but does technically work fine. There's a better way by specifying a schema and + // fully parsing the file or something like that. This is quick and dirty, for sure. + FileInfo libraryFoldersFile = new FileInfo(Path.Combine(steamPath, "steamapps", "libraryfolders.vdf")); + if (libraryFoldersFile.Exists) { + JsonClass json = Json.Read(File.ReadAllText(libraryFoldersFile.FullName)) as JsonClass; + foreach (JsonObject obj in json) { + if (obj is JsonClass library) { + string libraryPath = library["path"].AsString(); + if (!string.IsNullOrEmpty(libraryPath)) { + // look for exe in standard location under library + fallGuysSteamPath = Path.Combine(libraryPath, "steamapps", "common", "Fall Guys", "FallGuys_client_game.exe"); + + if (File.Exists(fallGuysSteamPath)) { return fallGuysSteamPath; } + } + } + } + } + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + return string.Empty; + } + + private void EnableMainMenu(bool enable) { + this.menuSettings.Enabled = enable; + this.menuFilters.Enabled = enable; + this.menuProfile.Enabled = enable; + this.menuUpdate.Enabled = enable; + this.menuLaunchFallGuys.Enabled = enable; + this.mlLeaderboard.Enabled = enable; + if (enable) { + this.menuSettings.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.menuSettings.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; + } + if (this.trayIcon.Visible) { + this.traySettings.Enabled = enable; + this.trayFilters.Enabled = enable; + this.trayProfile.Enabled = enable; + this.trayUpdate.Enabled = enable; + this.trayLaunchFallGuys.Enabled = enable; + this.trayExitProgram.Enabled = enable; + if (enable) { + this.traySettings.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Black : Color.DarkGray; + this.traySettings.Image = this.Theme == MetroThemeStyle.Light ? Properties.Resources.setting_icon : Properties.Resources.setting_gray_icon; + } + } + } + + private void EnableInfoStrip(bool enable) { + this.infoStrip.Enabled = enable; + this.infoStrip2.Enabled = enable; + this.lblTotalTime.Enabled = enable; + if (enable) this.lblTotalTime.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.Blue : Color.Orange; + foreach (var tsi in this.infoStrip.Items) { + if (tsi is ToolStripLabel tsl) { + tsl.Enabled = enable; + if (enable) { + this.Cursor = Cursors.Default; + tsl.ForeColor = tsl.Equals(this.lblCurrentProfile) + ? this.Theme == MetroThemeStyle.Light ? Color.Red : Color.FromArgb(0, 192, 192) + : this.Theme == MetroThemeStyle.Light ? Color.Blue : Color.Orange; + } + } + } + } + + private void Stats_KeyUp(object sender, KeyEventArgs e) { + switch (e.KeyCode) { + case Keys.ControlKey: + this.ctrlKeyToggle = false; + break; + case Keys.ShiftKey: + this.shiftKeyToggle = false; + break; + } + } + + private void Stats_KeyDown(object sender, KeyEventArgs e) { + switch (e.KeyCode) { + case Keys.ControlKey: + this.ctrlKeyToggle = true; + break; + case Keys.ShiftKey: + this.shiftKeyToggle = true; + break; + } + + switch (e.Control) { + case true when e.KeyCode == Keys.M: + this.CurrentSettings.OverlayNotOnTop = !this.CurrentSettings.OverlayNotOnTop; + this.SetOverlayTopMost(!this.CurrentSettings.OverlayNotOnTop); + this.SaveUserSettings(); + break; + case true when e.KeyCode == Keys.T: + int colorOption = 0; + if (this.overlay.BackColor.ToArgb() == Color.FromArgb(224, 224, 224).ToArgb()) { + colorOption = 1; + } else if (this.overlay.BackColor.ToArgb() == Color.White.ToArgb()) { + colorOption = 2; + } else if (this.overlay.BackColor.ToArgb() == Color.Black.ToArgb()) { + colorOption = 3; + } else if (this.overlay.BackColor.ToArgb() == Color.Magenta.ToArgb()) { + colorOption = 4; + } else if (this.overlay.BackColor.ToArgb() == Color.Red.ToArgb()) { + colorOption = 5; + } else if (this.overlay.BackColor.ToArgb() == Color.Green.ToArgb()) { + colorOption = 6; + } else if (this.overlay.BackColor.ToArgb() == Color.Blue.ToArgb()) { + colorOption = 0; + } + this.overlay.SetBackgroundColor(colorOption); + this.CurrentSettings.OverlayColor = colorOption; + this.SaveUserSettings(); + break; + case true when e.KeyCode == Keys.F: + if (!this.overlay.IsFixed()) { + this.overlay.FlipDisplay(!this.overlay.flippedImage); + this.CurrentSettings.FlippedDisplay = this.overlay.flippedImage; + this.SaveUserSettings(); + this.overlay.UpdateDisplay(); + } + break; + case true when e.KeyCode == Keys.R: + this.CurrentSettings.ColorByRoundType = !this.CurrentSettings.ColorByRoundType; + this.SaveUserSettings(); + this.overlay.UpdateDisplay(); + break; + case true when e.KeyCode == Keys.C: + this.CurrentSettings.PlayerByConsoleType = !this.CurrentSettings.PlayerByConsoleType; + this.SaveUserSettings(); + this.overlay.UpdateDisplay(); + break; + case false when e.KeyCode == Keys.ControlKey: + this.ctrlKeyToggle = true; + break; + case false when e.KeyCode == Keys.ShiftKey: + this.shiftKeyToggle = true; + break; + case true when e.Shift && e.KeyCode == Keys.Z: + this.SetAutoChangeProfile(!this.CurrentSettings.AutoChangeProfile); + break; + case true when e.Shift && e.KeyCode == Keys.X: + this.overlay.ResetOverlaySize(); + break; + case true when e.Shift && e.KeyCode == Keys.C: + this.overlay.ResetOverlayLocation(); + break; + case true when e.Shift && e.KeyCode == Keys.Up: + this.SetOverlayBackgroundOpacity(this.CurrentSettings.OverlayBackgroundOpacity + 5); + break; + case true when e.Shift && e.KeyCode == Keys.Down: + this.SetOverlayBackgroundOpacity(this.CurrentSettings.OverlayBackgroundOpacity - 5); + break; + } + e.SuppressKeyPress = true; + } + + private void lblCurrentProfileIcon_Click(object sender, EventArgs e) { + this.SetAutoChangeProfile(!this.CurrentSettings.AutoChangeProfile); + this.HideCustomTooltip(this); + } + + private void lblCurrentProfile_MouseDown(object sender, MouseEventArgs e) { + if (e.Button == MouseButtons.Left) { + for (int i = 0; i < this.ProfileMenuItems.Count; i++) { + if (!(this.ProfileMenuItems[i] is ToolStripMenuItem menuItem)) continue; + if (this.shiftKeyToggle) { + if (menuItem.Checked && i - 1 >= 0) { + this.menuStats_Click(this.ProfileMenuItems[i - 1], EventArgs.Empty); + break; + } + if (menuItem.Checked && i - 1 < 0) { + this.menuStats_Click(this.ProfileMenuItems[this.ProfileMenuItems.Count - 1], EventArgs.Empty); + break; + } + } else { + if (menuItem.Checked && i + 1 < this.ProfileMenuItems.Count) { + this.menuStats_Click(this.ProfileMenuItems[i + 1], EventArgs.Empty); + break; + } + if (menuItem.Checked && i + 1 >= this.ProfileMenuItems.Count) { + this.menuStats_Click(this.ProfileMenuItems[0], EventArgs.Empty); + break; + } + } + } + } else if (e.Button == MouseButtons.Right) { + for (int i = 0; i < this.ProfileMenuItems.Count; i++) { + if (!(this.ProfileMenuItems[i] is ToolStripMenuItem menuItem)) continue; + if (menuItem.Checked && i - 1 >= 0) { + this.menuStats_Click(this.ProfileMenuItems[i - 1], EventArgs.Empty); + break; + } + if (menuItem.Checked && i - 1 < 0) { + this.menuStats_Click(this.ProfileMenuItems[this.ProfileMenuItems.Count - 1], EventArgs.Empty); + break; + } + } + } + } + + private void lblTotalTime_Click(object sender, EventArgs e) { + try { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + this.DisplayLevelGraph(); + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void lblTotalFinals_Click(object sender, EventArgs e) { + try { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + this.DisplayFinals(); + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void lblTotalShows_Click(object sender, EventArgs e) { + try { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + this.DisplayShows(); + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void lblTotalRounds_Click(object sender, EventArgs e) { + try { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + this.DisplayRounds(); + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void lblTotalWins_Click(object sender, EventArgs e) { + try { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + this.DisplayWinsGraph(); + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public bool InitializeWeeklyCrownList(string date) { + using (ApiWebClient web = new ApiWebClient()) { + try { + string weeklyCrownApiUrl = "https://data.fallalytics.com/api/crown-leaderboard"; + web.Headers.Add("X-Authorization-Key", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + string json = web.DownloadString($"{weeklyCrownApiUrl}?page=1{(!string.IsNullOrEmpty(date) ? $"&date={date}" : "")}"); + WeeklyCrown weeklyCrown = System.Text.Json.JsonSerializer.Deserialize(json); + if (weeklyCrown.found) { + this.weeklyCrownPrevious = weeklyCrown.previous; + this.weeklyCrownNext = weeklyCrown.next; + this.weeklyCrownCurrentYear = (int)weeklyCrown.year; + this.weeklyCrownCurrentWeek = (int)weeklyCrown.week; + this.weeklyCrownPeriod = Utils.GetStartAndEndDates(this.weeklyCrownCurrentYear, this.weeklyCrownCurrentWeek); + int totalPlayers = weeklyCrown.total; + int totalPages = (int)Math.Ceiling(Math.Min(1000, totalPlayers) / 100f); + for (int i = 0; i < weeklyCrown.users.Count; i++) { + WeeklyCrown.Player temp = weeklyCrown.users[i]; + temp.rank = i + 1; + weeklyCrown.users[i] = temp; + } + this.totalWeeklyCrownPlayers = totalPlayers; + this.weeklyCrownList = weeklyCrown.users; + if (totalPages > 1) { + var tasks = new List(); + HttpClient client = new HttpClient(); + client.DefaultRequestHeaders.Add("X-Authorization-Key", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + for (int i = 2; i <= totalPages; i++) { + int page = i; + tasks.Add(Task.Run(async () => { + HttpResponseMessage response = await client.GetAsync($"{weeklyCrownApiUrl}?page={page}{(!string.IsNullOrEmpty(date) ? $"&date={date}" : "")}"); + if (response.IsSuccessStatusCode) { + json = await response.Content.ReadAsStringAsync(); + weeklyCrown = System.Text.Json.JsonSerializer.Deserialize(json); + for (int j = 0; j < weeklyCrown.users.Count; j++) { + WeeklyCrown.Player temp = weeklyCrown.users[j]; + temp.rank = j + 1 + ((page - 1) * 100); + weeklyCrown.users[j] = temp; + } + this.weeklyCrownList.AddRange(weeklyCrown.users); + } + })); + } + Task.WhenAll(tasks).Wait(); + } + this.weeklyCrownList.Sort((r1, r2) => r1.rank.CompareTo(r2.rank)); + this.weeklyCrownLoadTime = DateTime.UtcNow; + return true; + } + return false; + } catch { + this.weeklyCrownList = null; + return false; + } + } + } + + public bool InitializeOverallRankList() { + using (ApiWebClient web = new ApiWebClient()) { + try { + string overallRankApiUrl = "https://data.fallalytics.com/api/speedrun-total"; + web.Headers.Add("X-Authorization-Key", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + string json = web.DownloadString($"{overallRankApiUrl}?page=1"); + var options = new JsonSerializerOptions(); + options.Converters.Add(new LevelRankInfoConverter()); + OverallRank overallRank = System.Text.Json.JsonSerializer.Deserialize(json); + if (overallRank.found) { + int totalPlayers = overallRank.total; + int totalPages = (int)Math.Ceiling(Math.Min(1000, totalPlayers) / 100f); + for (int i = 0; i < overallRank.users.Count; i++) { + OverallRank.Player temp = overallRank.users[i]; + temp.rank = i + 1; + overallRank.users[i] = temp; + } + this.totalOverallRankPlayers = totalPlayers; + this.leaderboardOverallRankList = overallRank.users; + if (totalPages > 1) { + var tasks = new List(); + HttpClient client = new HttpClient(); + client.DefaultRequestHeaders.Add("X-Authorization-Key", Environment.GetEnvironmentVariable("FALLALYTICS_KEY")); + for (int i = 2; i <= totalPages; i++) { + int page = i; + tasks.Add(Task.Run(async () => { + HttpResponseMessage response = await client.GetAsync($"{overallRankApiUrl}?page={page}"); + if (response.IsSuccessStatusCode) { + json = await response.Content.ReadAsStringAsync(); + overallRank = System.Text.Json.JsonSerializer.Deserialize(json, options); + for (int j = 0; j < overallRank.users.Count; j++) { + OverallRank.Player temp = overallRank.users[j]; + temp.rank = j + 1 + ((page - 1) * 100); + overallRank.users[j] = temp; + } + this.leaderboardOverallRankList.AddRange(overallRank.users); + } + })); + } + Task.WhenAll(tasks).Wait(); + } + this.leaderboardOverallRankList.Sort((r1, r2) => r1.rank.CompareTo(r2.rank)); + this.overallRankLoadTime = DateTime.UtcNow; + return true; + } + return false; + } catch { + this.leaderboardOverallRankList = null; + return false; + } + } + } + + private void mlReportCheater_Click(object sender, EventArgs e) { + Process.Start("https://github.com/ShootMe/FallGuysStats/issues/332#issuecomment-2042482371"); + } + + private void mlLeaderboard_Click(object sender, EventArgs e) { + try { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + using (LeaderboardDisplay leaderboard = new LeaderboardDisplay()) { + leaderboard.StatsForm = this; + leaderboard.Text = $@" {Multilingual.GetWord("leaderboard_menu_title")}"; + leaderboard.BackImage = this.Theme == MetroThemeStyle.Light ? Properties.Resources.leaderboard_icon : Properties.Resources.leaderboard_gray_icon; + leaderboard.BackMaxSize = 32; + leaderboard.BackImagePadding = new Padding(20, 21, 0, 0); + this.leaderboardOverallRankList?.Sort((r1, r2) => r1.rank.CompareTo(r2.rank)); + this.weeklyCrownList?.Sort((r1, r2) => r1.rank.CompareTo(r2.rank)); + leaderboard.ShowDialog(this); + } + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public void menuStats_Click(object sender, EventArgs e) { + try { + ToolStripMenuItem button = sender as ToolStripMenuItem; + if (Equals(button, this.menuCustomRangeStats) || Equals(button, this.trayCustomRangeStats)) { + if (this.isStartingUp) { + this.updateFilterRange = true; + } else { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + using (FilterCustomRange filterCustomRange = new FilterCustomRange()) { + filterCustomRange.StatsForm = this; + filterCustomRange.startDate = this.customfilterRangeStart; + filterCustomRange.endDate = this.customfilterRangeEnd; + filterCustomRange.selectedCustomTemplateSeason = this.selectedCustomTemplateSeason; + if (filterCustomRange.ShowDialog(this) == DialogResult.OK) { + this.menuCustomRangeStats.Checked = true; + this.menuAllStats.Checked = false; + this.menuSeasonStats.Checked = false; + this.menuWeekStats.Checked = false; + this.menuDayStats.Checked = false; + this.menuSessionStats.Checked = false; + this.trayCustomRangeStats.Checked = true; + this.trayAllStats.Checked = false; + this.traySeasonStats.Checked = false; + this.trayWeekStats.Checked = false; + this.trayDayStats.Checked = false; + this.traySessionStats.Checked = false; + this.selectedCustomTemplateSeason = filterCustomRange.selectedCustomTemplateSeason; + this.customfilterRangeStart = filterCustomRange.startDate; + this.customfilterRangeEnd = filterCustomRange.endDate; + this.updateFilterRange = true; + } else { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + return; + } + } + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } + } else if (Equals(button, this.menuAllStats) || Equals(button, this.menuSeasonStats) || Equals(button, this.menuWeekStats) || Equals(button, this.menuDayStats) || Equals(button, this.menuSessionStats)) { + if (!this.menuAllStats.Checked && !this.menuSeasonStats.Checked && !this.menuWeekStats.Checked && !this.menuDayStats.Checked && !this.menuSessionStats.Checked) { + button.Checked = true; + switch (button.Name) { + case "menuCustomRangeStats": + this.trayCustomRangeStats.Checked = true; break; + case "menuAllStats": + this.trayAllStats.Checked = true; break; + case "menuSeasonStats": + this.traySeasonStats.Checked = true; break; + case "menuWeekStats": + this.trayWeekStats.Checked = true; break; + case "menuDayStats": + this.trayDayStats.Checked = true; break; + case "menuSessionStats": + this.traySessionStats.Checked = true; break; + } + return; + } + this.updateFilterType = true; + this.updateFilterRange = false; + + foreach (var item in this.menuStatsFilter.DropDownItems) { + if (item is ToolStripMenuItem menuItem) { + if (menuItem != null && menuItem.Checked && menuItem != button) { + menuItem.Checked = false; + switch (menuItem.Name) { + case "menuCustomRangeStats": + this.trayCustomRangeStats.Checked = false; break; + case "menuAllStats": + this.trayAllStats.Checked = false; break; + case "menuSeasonStats": + this.traySeasonStats.Checked = false; break; + case "menuWeekStats": + this.trayWeekStats.Checked = false; break; + case "menuDayStats": + this.trayDayStats.Checked = false; break; + case "menuSessionStats": + this.traySessionStats.Checked = false; break; + } + } + + if (menuItem.Checked) { + switch (menuItem.Name) { + case "menuCustomRangeStats": + this.trayCustomRangeStats.Checked = true; break; + case "menuAllStats": + this.trayAllStats.Checked = true; break; + case "menuSeasonStats": + this.traySeasonStats.Checked = true; break; + case "menuWeekStats": + this.trayWeekStats.Checked = true; break; + case "menuDayStats": + this.trayDayStats.Checked = true; break; + case "menuSessionStats": + this.traySessionStats.Checked = true; break; + } + } + } + } + } else if (Equals(button, this.menuAllPartyStats) || Equals(button, this.menuSoloStats) || Equals(button, this.menuPartyStats)) { + if (!this.menuAllPartyStats.Checked && !this.menuSoloStats.Checked && !this.menuPartyStats.Checked) { + button.Checked = true; + switch (button.Name) { + case "menuAllPartyStats": + this.trayAllPartyStats.Checked = true; break; + case "menuSoloStats": + this.traySoloStats.Checked = true; break; + case "menuPartyStats": + this.trayPartyStats.Checked = true; break; + } + return; + } + + foreach (var item in this.menuPartyFilter.DropDownItems) { + if (item is ToolStripMenuItem menuItem) { + if (menuItem != null && menuItem.Checked && menuItem != button) { + menuItem.Checked = false; + switch (menuItem.Name) { + case "menuAllPartyStats": + this.trayAllPartyStats.Checked = false; break; + case "menuSoloStats": + this.traySoloStats.Checked = false; break; + case "menuPartyStats": + this.trayPartyStats.Checked = false; break; + } + } + + if (menuItem.Checked) { + switch (menuItem.Name) { + case "menuAllPartyStats": + this.trayAllPartyStats.Checked = true; break; + case "menuSoloStats": + this.traySoloStats.Checked = true; break; + case "menuPartyStats": + this.trayPartyStats.Checked = true; break; + } + } + } + } + } else if (this.ProfileMenuItems.Contains(button)) { + if (this.AllProfiles.Count != 0) { + for (int i = this.ProfileMenuItems.Count - 1; i >= 0; i--) { + if (this.ProfileMenuItems[i].Name == button.Name) { + this.SetCurrentProfileIcon(this.AllProfiles.FindIndex(p => string.Equals(p.ProfileName, this.ProfileMenuItems[i].Text.Replace("&&", "&")) && !string.IsNullOrEmpty(p.LinkedShowId)) != -1); + } + this.ProfileMenuItems[i].Checked = this.ProfileMenuItems[i].Name == button.Name; + this.ProfileTrayItems[i].Checked = this.ProfileTrayItems[i].Name == button.Name; + } + } + this.currentProfile = this.GetProfileIdByName(button.Text.Replace("&&", "&")); + this.updateSelectedProfile = true; + } else if (Equals(button, this.trayAllStats) || Equals(button, this.traySeasonStats) || Equals(button, this.trayWeekStats) || Equals(button, this.trayDayStats) || Equals(button, this.traySessionStats)) { + if (!this.trayAllStats.Checked && !this.traySeasonStats.Checked && !this.trayWeekStats.Checked && !this.trayDayStats.Checked && !this.traySessionStats.Checked) { + button.Checked = true; + switch (button.Name) { + case "trayCustomRangeStats": + this.menuCustomRangeStats.Checked = true; break; + case "trayAllStats": + this.menuAllStats.Checked = true; break; + case "traySeasonStats": + this.menuSeasonStats.Checked = true; break; + case "trayWeekStats": + this.menuWeekStats.Checked = true; break; + case "trayDayStats": + this.menuDayStats.Checked = true; break; + case "traySessionStats": + this.menuSessionStats.Checked = true; break; + } + return; + } + this.updateFilterType = true; + this.updateFilterRange = false; + + foreach (var item in this.trayStatsFilter.DropDownItems) { + if (item is ToolStripMenuItem menuItem) { + if (menuItem != null && menuItem.Checked && menuItem != button) { + menuItem.Checked = false; + switch (menuItem.Name) { + case "trayCustomRangeStats": + this.menuCustomRangeStats.Checked = false; break; + case "trayAllStats": + this.menuAllStats.Checked = false; break; + case "traySeasonStats": + this.menuSeasonStats.Checked = false; break; + case "trayWeekStats": + this.menuWeekStats.Checked = false; break; + case "trayDayStats": + this.menuDayStats.Checked = false; break; + case "traySessionStats": + this.menuSessionStats.Checked = false; break; + } + } + + if (menuItem.Checked) { + switch (menuItem.Name) { + case "trayCustomRangeStats": + this.menuCustomRangeStats.Checked = true; break; + case "trayAllStats": + this.menuAllStats.Checked = true; break; + case "traySeasonStats": + this.menuSeasonStats.Checked = true; break; + case "trayWeekStats": + this.menuWeekStats.Checked = true; break; + case "trayDayStats": + this.menuDayStats.Checked = true; break; + case "traySessionStats": + this.menuSessionStats.Checked = true; break; + } + } + } + } + } else if (Equals(button, this.trayAllPartyStats) || Equals(button, this.traySoloStats) || Equals(button, this.trayPartyStats)) { + if (!this.trayAllPartyStats.Checked && !this.traySoloStats.Checked && !this.trayPartyStats.Checked) { + button.Checked = true; + switch (button.Name) { + case "trayAllPartyStats": + this.menuAllPartyStats.Checked = true; break; + case "traySoloStats": + this.menuSoloStats.Checked = true; break; + case "trayPartyStats": + this.menuPartyStats.Checked = true; break; + } + return; + } + + foreach (var item in this.trayPartyFilter.DropDownItems) { + if (item is ToolStripMenuItem menuItem) { + if (menuItem != null && menuItem.Checked && menuItem != button) { + menuItem.Checked = false; + switch (menuItem.Name) { + case "trayAllPartyStats": + this.menuAllPartyStats.Checked = false; break; + case "traySoloStats": + this.menuSoloStats.Checked = false; break; + case "trayPartyStats": + this.menuPartyStats.Checked = false; break; + } + } + + if (menuItem.Checked) { + switch (menuItem.Name) { + case "trayAllPartyStats": + this.menuAllPartyStats.Checked = true; break; + case "traySoloStats": + this.menuSoloStats.Checked = true; break; + case "trayPartyStats": + this.menuPartyStats.Checked = true; break; + } + } + } + } + } else if (this.ProfileTrayItems.Contains(button)) { + if (this.AllProfiles.Count != 0) { + for (int i = this.ProfileTrayItems.Count - 1; i >= 0; i--) { + if (this.ProfileTrayItems[i].Name == button.Name) { + this.SetCurrentProfileIcon(this.AllProfiles.FindIndex(p => string.Equals(p.ProfileName, this.ProfileTrayItems[i].Text.Replace("&&", "&")) && !string.IsNullOrEmpty(p.LinkedShowId)) != -1); + } + this.ProfileTrayItems[i].Checked = this.ProfileTrayItems[i].Name == button.Name; + this.ProfileMenuItems[i].Checked = this.ProfileMenuItems[i].Name == button.Name; + } + } + this.currentProfile = this.GetProfileIdByName(button.Text.Replace("&&", "&")); + this.updateSelectedProfile = true; + } + + foreach (LevelStats calculator in this.StatDetails) { + calculator.Clear(); + } + + this.ClearTotals(); + + int profile = this.currentProfile; + + List rounds; + if (this.menuCustomRangeStats.Checked) { + rounds = this.AllStats.Where(roundInfo => roundInfo.Start >= this.customfilterRangeStart && + roundInfo.Start <= this.customfilterRangeEnd && + roundInfo.Profile == profile && this.IsInPartyFilter(roundInfo)).ToList(); + } else { + DateTime compareDate = this.menuAllStats.Checked ? DateTime.MinValue : + this.menuSeasonStats.Checked ? SeasonStart : + this.menuWeekStats.Checked ? WeekStart : + this.menuDayStats.Checked ? DayStart : SessionStart; + rounds = this.AllStats.Where(roundInfo => roundInfo.Start > compareDate && roundInfo.Profile == profile && this.IsInPartyFilter(roundInfo)).ToList(); + } + + rounds.Sort(); + + if (!this.isStartingUp && this.updateFilterType) { + this.updateFilterType = false; + this.CurrentSettings.FilterType = this.menuSeasonStats.Checked ? 2 : + this.menuWeekStats.Checked ? 3 : + this.menuDayStats.Checked ? 4 : + this.menuSessionStats.Checked ? 5 : 1; + this.CurrentSettings.SelectedCustomTemplateSeason = -1; + this.CurrentSettings.CustomFilterRangeStart = DateTime.MinValue; + this.CurrentSettings.CustomFilterRangeEnd = DateTime.MaxValue; + this.SaveUserSettings(); + } else if (!this.isStartingUp && this.updateFilterRange) { + this.updateFilterRange = false; + this.CurrentSettings.FilterType = 0; + this.CurrentSettings.SelectedCustomTemplateSeason = this.selectedCustomTemplateSeason; + this.CurrentSettings.CustomFilterRangeStart = this.customfilterRangeStart; + this.CurrentSettings.CustomFilterRangeEnd = this.customfilterRangeEnd; + this.SaveUserSettings(); + } else if (!this.isStartingUp && this.updateSelectedProfile) { + this.updateSelectedProfile = false; + this.CurrentSettings.SelectedProfile = profile; + this.SaveUserSettings(); + } + + this.overlay.UpdateDisplay(); + + this.loadingExisting = true; + this.LogFile_OnParsedLogLines(rounds); + this.loadingExisting = false; + } catch (Exception ex) { + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void menuUpdate_Click(object sender, EventArgs e) { + try { + if (Utils.IsInternetConnected()) { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + if (this.CheckForUpdate(false)) { + return; + } + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } else { + MetroMessageBox.Show(this, $"{Multilingual.GetWord("message_check_internet_connection")}", $"{Multilingual.GetWord("message_check_internet_connection_caption")}", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_update_error_caption")}", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public string GetUserCreativeLevelTitle(string shareCode) { + string levelName = this.AllStats.FindLast(r => r.UseShareCode && string.Equals(r.Name, shareCode))?.CreativeTitle; + return string.IsNullOrEmpty(levelName) ? shareCode : levelName; + } + + public string[] FindUserCreativeAuthor(JsonElement authorData) { + string[] onlinePlatformInfo = { "N/A", "N/A" }; + string onlinePlatformId = string.Empty; + string onlinePlatformNickname = string.Empty; + using (JsonElement.ObjectEnumerator objectEnumerator = authorData.EnumerateObject()) { + while (objectEnumerator.MoveNext()) { + JsonProperty current = objectEnumerator.Current; + if (!string.IsNullOrEmpty(onlinePlatformId)) onlinePlatformId += ";"; + onlinePlatformId += current.Name; + if (!string.IsNullOrEmpty(onlinePlatformNickname)) onlinePlatformNickname += ";"; + onlinePlatformNickname += current.Value.GetString(); + } + onlinePlatformInfo[0] = onlinePlatformId; + onlinePlatformInfo[1] = onlinePlatformNickname; + } + return onlinePlatformInfo; + } + +#if AllowUpdate + public void ChangeStateForAvailableNewVersion(string newVersion) { + this.isAvailableNewVersion = true; + this.availableNewVersion = newVersion; + this.menuUpdate.Image = CurrentTheme == MetroThemeStyle.Light ? Properties.Resources.github_update_icon : Properties.Resources.github_update_gray_icon; + this.trayUpdate.Image = CurrentTheme == MetroThemeStyle.Light ? Properties.Resources.github_update_icon : Properties.Resources.github_update_gray_icon; + this.menuUpdate.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow; + this.trayUpdate.ForeColor = this.Theme == MetroThemeStyle.Light ? Color.FromArgb(0, 174, 219) : Color.GreenYellow; + } + + private bool CheckForNewVersion() { + using (ZipWebClient web = new ZipWebClient()) { + try { + string assemblyInfo = web.DownloadString(@"https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/AssemblyInfo.cs"); + int index = assemblyInfo.IndexOf("AssemblyVersion("); + if (index > 0) { + int indexEnd = assemblyInfo.IndexOf("\")", index); + Version currentVersion = Assembly.GetEntryAssembly().GetName().Version; + Version newVersion = new Version(assemblyInfo.Substring(index + 17, indexEnd - index - 17)); + if (newVersion > currentVersion) { + this.ChangeStateForAvailableNewVersion(newVersion.ToString(2)); + return true; + } + } + } catch { + return false; + } + } + return false; + } + + private void CheckForNewVersionJob(bool retry = false) { + double interval; + if (retry) { + interval = 5 * 1000; + } else { + interval = 24 * 60 * 60 * 1000; + } + TimerAbsolute checkForNewVersionTimer = new TimerAbsolute((s, e) => { + Task.Run(() => { + if (!Utils.IsInternetConnected()) { + this.CheckForNewVersionJob(true); + return; + } + + this.CheckForNewVersion(); + this.CheckForNewVersionJob(); + }); + }); + checkForNewVersionTimer.Start(interval); + } +#endif + + private bool CheckForUpdate(bool isSilent) { +#if AllowUpdate + using (ZipWebClient web = new ZipWebClient()) { + try { + string assemblyInfo = web.DownloadString(@"https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/AssemblyInfo.cs"); + int index = assemblyInfo.IndexOf("AssemblyVersion("); + if (index > 0) { + int indexEnd = assemblyInfo.IndexOf("\")", index); + Version currentVersion = Assembly.GetEntryAssembly().GetName().Version; + Version newVersion = new Version(assemblyInfo.Substring(index + 17, indexEnd - index - 17)); + if (newVersion > currentVersion) { + this.ChangeStateForAvailableNewVersion(newVersion.ToString(2)); + if (MetroMessageBox.Show(this, + $"{Multilingual.GetWord("message_update_question_prefix")} [ v{newVersion.ToString(2)} ] {Multilingual.GetWord("message_update_question_suffix")}", + $"{Multilingual.GetWord("message_update_question_caption")}", + MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { + Task.Run(() => { + IsExitingForUpdate = true; + IsUpdatingOnAppLaunch = isSilent; + this.Stats_ExitProgram(this, null); + this.UpdateProgram(web); + }); + return true; + } + } else if (!isSilent) { + MetroMessageBox.Show(this, + $"{Multilingual.GetWord("message_update_latest_version")}" + + $"{Environment.NewLine}{Environment.NewLine}{Environment.NewLine}{Environment.NewLine}" + + $"{Multilingual.GetWord("main_update_prefix_tooltip").Trim()}{Environment.NewLine}{Multilingual.GetWord("main_update_suffix_tooltip").Trim()}", + $"{Multilingual.GetWord("message_update_question_caption")}", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } else if (!isSilent) { + MetroMessageBox.Show(this, $"{Multilingual.GetWord("message_update_not_determine_version")}", + $"{Multilingual.GetWord("message_update_error_caption")}", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } catch { + return false; + } + } +#else + this.LaunchHelpInBrowser(); +#endif + return false; + } + +#if AllowUpdate + public void UpdateProgram(ZipWebClient web) { + using (DownloadProgress updater = new DownloadProgress()) { + updater.CurrentExeName = Path.GetFileName(Assembly.GetEntryAssembly().Location); + updater.ZipWebClient = web; + updater.DownloadUrl = Utils.FALLGUYSSTATS_RELEASES_LATEST_DOWNLOAD_URL; + updater.ZipFileName = $"{CURRENTDIR}FallGuysStats.zip"; + updater.ShowDialog(this); + } + } +#endif + + private void SetSystemTrayIcon(bool enable) { + this.trayIcon.Visible = enable; + if (!enable && !this.Visible) { + this.Visible = true; + this.CurrentSettings.Visible = true; + } + } + + public void SetOverlayTopMost(bool topMost) { + this.overlay.TopMost = topMost; + if (this.overlay.Visible) { + this.overlay.Hide(); + this.overlay.ShowInTaskbar = !topMost; + this.overlay.Show(); + } else { + this.overlay.ShowInTaskbar = !topMost; + } + this.overlay.UpdateDisplay(); + } + + public void SetAutoChangeProfile(bool autoChangeProfile) { + this.CurrentSettings.AutoChangeProfile = autoChangeProfile; + if (this.AllProfiles.Count != 0) { + this.SetCurrentProfileIcon(this.AllProfiles.FindIndex(p => p.ProfileId == this.GetCurrentProfileId() && !string.IsNullOrEmpty(p.LinkedShowId)) != -1); + } + this.SaveUserSettings(); + } + + public void SetOverlayBackgroundOpacity(int opacity) { + if (opacity > 100) { opacity = 100; } + if (opacity < 0) { opacity = 0; } + this.CurrentSettings.OverlayBackgroundOpacity = opacity; + this.overlay.Opacity = opacity / 100d; + this.SaveUserSettings(); + this.overlay.UpdateDisplay(); + } + + private void SetMinimumSize() { + this.MinimumSize = new Size(CurrentLanguage == Language.English ? 730 : + CurrentLanguage == Language.French ? 860 : + CurrentLanguage == Language.Spanish ? 860 : + CurrentLanguage == Language.Korean ? 710 : + CurrentLanguage == Language.Japanese ? 805 : 685 + , 350); + } + + private async void menuSettings_Click(object sender, EventArgs e) { + try { + using (Settings settings = new Settings()) { + //settings.Icon = this.Icon; + settings.CurrentSettings = this.CurrentSettings; + settings.BackMaxSize = 32; + settings.BackImagePadding = new Padding(20, 19, 0, 0); + settings.StatsForm = this; + settings.Overlay = this.overlay; + string lastLogPath = this.CurrentSettings.LogPath ?? string.Empty; + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + if (settings.ShowDialog(this) == DialogResult.OK) { + this.CurrentSettings = settings.CurrentSettings; + UseWebProxy = this.CurrentSettings.UseProxyServer; + ProxyAddress = this.CurrentSettings.ProxyAddress; + ProxyPort = this.CurrentSettings.ProxyPort; + EnableProxyAuthentication = this.CurrentSettings.EnableProxyAuthentication; + ProxyUsername = this.CurrentSettings.ProxyUsername; + ProxyPassword = this.CurrentSettings.ProxyPassword; + SucceededTestProxy = this.CurrentSettings.SucceededTestProxy; + + IpGeolocationService = this.CurrentSettings.IpGeolocationService; + + this.SetSystemTrayIcon(this.CurrentSettings.SystemTrayIcon); + this.SetTheme(CurrentTheme); + this.SaveUserSettings(); + if (this.currentLanguage != (int)CurrentLanguage) { + this.SetMinimumSize(); + this.ChangeLanguage(); + this.UpdateTotals(); + this.gridDetails.ChangeContextMenuLanguage(); + this.UpdateGridRoundName(); + this.overlay.ChangeLanguage(); + } + this.SortGridDetails(true); + this.ChangeLaunchPlatformLogo(this.CurrentSettings.LaunchPlatform); + this.UpdateHoopsieLegends(); + this.SetOverlayTopMost(!this.CurrentSettings.OverlayNotOnTop); + this.SetOverlayBackgroundOpacity(this.CurrentSettings.OverlayBackgroundOpacity); + this.overlay.SetBackgroundResourcesName(this.CurrentSettings.OverlayBackgroundResourceName, this.CurrentSettings.OverlayTabResourceName); + if (this.AllProfiles.Count != 0) { + this.SetCurrentProfileIcon(this.AllProfiles.FindIndex(p => p.ProfileId == this.GetCurrentProfileId() && !string.IsNullOrEmpty(p.LinkedShowId)) != -1); + } + this.Invalidate(); + + IsDisplayOverlayPing = this.CurrentSettings.OverlayVisible && !this.CurrentSettings.HideRoundInfo && (this.CurrentSettings.SwitchBetweenPlayers || this.CurrentSettings.OnlyShowPing); + IsOverlayRoundInfoNeedRefresh = true; + + if (!string.Equals(this.CurrentSettings.LogPath, lastLogPath, StringComparison.OrdinalIgnoreCase)) { + await this.logFile.Stop(); + string logPath = !string.IsNullOrEmpty(this.CurrentSettings.LogPath) && Directory.Exists(this.CurrentSettings.LogPath) ? this.CurrentSettings.LogPath : LOGPATH; + this.logFile.Start(logPath, LOGFILENAME); + } + + this.overlay.UpdateDisplay(true); + } else { + this.overlay.Opacity = this.CurrentSettings.OverlayBackgroundOpacity / 100D; + } + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void menuOverlay_Click(object sender, EventArgs e) { + this.ToggleOverlay(this.overlay); + } + + public void ToggleOverlay(Overlay overlay, bool saveSetting = true) { + if (overlay.Visible) { + IsDisplayOverlayPing = false; + overlay.Hide(); + this.menuOverlay.Image = Properties.Resources.stat_gray_icon; + this.menuOverlay.Text = $"{Multilingual.GetWord("main_show_overlay")}"; + this.trayOverlay.Image = Properties.Resources.stat_gray_icon; + this.trayOverlay.Text = $"{Multilingual.GetWord("main_show_overlay")}"; + } else { + this.overlay.saveDisplayChange = false; + if (overlay.IsFixed()) { + if (this.CurrentSettings.OverlayFixedPositionX.HasValue && + Utils.IsOnScreen(this.CurrentSettings.OverlayFixedPositionX.Value, this.CurrentSettings.OverlayFixedPositionY.Value, overlay.Width, overlay.Height)) + { + overlay.FlipDisplay(this.CurrentSettings.FixedFlippedDisplay); + overlay.Location = new Point(this.CurrentSettings.OverlayFixedPositionX.Value, this.CurrentSettings.OverlayFixedPositionY.Value); + } else { + overlay.Location = this.Location; + } + } else { + overlay.Location = this.CurrentSettings.OverlayLocationX.HasValue && Utils.IsOnScreen(this.CurrentSettings.OverlayLocationX.Value, this.CurrentSettings.OverlayLocationY.Value, overlay.Width, overlay.Height) + ? new Point(this.CurrentSettings.OverlayLocationX.Value, this.CurrentSettings.OverlayLocationY.Value) + : this.Location; + } + this.overlay.saveDisplayChange = true; + this.overlay.UpdateDisplay(); + IsDisplayOverlayPing = !this.CurrentSettings.HideRoundInfo && (this.CurrentSettings.SwitchBetweenPlayers || this.CurrentSettings.OnlyShowPing); + overlay.TopMost = !this.CurrentSettings.OverlayNotOnTop; + overlay.Show(); + overlay.ShowInTaskbar = this.CurrentSettings.OverlayNotOnTop; + this.menuOverlay.Image = Properties.Resources.stat_icon; + this.menuOverlay.Text = $"{Multilingual.GetWord("main_hide_overlay")}"; + this.trayOverlay.Image = Properties.Resources.stat_icon; + this.trayOverlay.Text = $"{Multilingual.GetWord("main_hide_overlay")}"; + } + if (saveSetting) { + this.CurrentSettings.OverlayVisible = overlay.Visible; + this.SaveUserSettings(); + } + } + + private void menuHelp_Click(object sender, EventArgs e) { + this.LaunchHelpInBrowser(); + } + + private void menuEditProfiles_Click(object sender, EventArgs e) { + try { + using (EditProfiles editProfiles = new EditProfiles()) { + editProfiles.StatsForm = this; + editProfiles.Profiles = this.AllProfiles; + editProfiles.AllStats = this.AllStats; + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + editProfiles.ShowDialog(this); + if (editProfiles.IsUpdate || editProfiles.IsDelete) { + lock (this.StatsDB) { + Task editProfilesTask = new Task(() => { + this.StatsDB.BeginTrans(); + this.AllProfiles = editProfiles.Profiles; + this.Profiles.DeleteAll(); + this.Profiles.InsertBulk(this.AllProfiles); + this.AllStats = editProfiles.AllStats; + if (editProfiles.IsUpdate) this.RoundDetails.Update(this.AllStats); + if (editProfiles.IsDelete) { + foreach (int p in editProfiles.DeleteList) { + this.RoundDetails.DeleteMany(r => r.Profile == p); + } + } + this.StatsDB.Commit(); + }); + this.RunDatabaseTask(editProfilesTask, false); + } + this.ReloadProfileMenuItems(); + IsOverlayRoundInfoNeedRefresh = true; + } + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void menuLaunchFallGuys_Click(object sender, EventArgs e) { + try { + this.EnableInfoStrip(false); + this.EnableMainMenu(false); + this.LaunchGame(false); + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + } catch (Exception ex) { + this.EnableInfoStrip(true); + this.EnableMainMenu(true); + MetroMessageBox.Show(this, ex.ToString(), $"{Multilingual.GetWord("message_program_error_caption")}", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ChangeLaunchPlatformLogo(int launchPlatform) { + this.trayLaunchFallGuys.Image = launchPlatform == 0 ? Properties.Resources.epic_main_icon : Properties.Resources.steam_main_icon; + this.menuLaunchFallGuys.Image = launchPlatform == 0 ? Properties.Resources.epic_main_icon : Properties.Resources.steam_main_icon; + } + + public void SetLeaderboardTitle() { + this.BeginInvoke((MethodInvoker)delegate { + if (OnlineServiceType != OnlineServiceTypes.None && !string.IsNullOrEmpty(OnlineServiceId) && !string.IsNullOrEmpty(OnlineServiceNickname)) { + this.mlLeaderboard.Image = OnlineServiceType == OnlineServiceTypes.EpicGames ? Properties.Resources.epic_main_icon : Properties.Resources.steam_main_icon; + this.mlLeaderboard.Text = OnlineServiceNickname; + } else { + this.mlLeaderboard.Text = Multilingual.GetWord("leaderboard_menu_title"); + } + this.mlLeaderboard.Location = new Point(this.Width - this.mlLeaderboard.Width - 10, this.mlLeaderboard.Location.Y); + this.mlLeaderboard.Enabled = true; + }); + } + + private void ChangeLanguage() { + this.SuspendLayout(); + this.currentLanguage = (int)CurrentLanguage; + this.mainWndTitle = $@" {Multilingual.GetWord("main_fall_guys_stats")} v{Assembly.GetExecutingAssembly().GetName().Version.ToString(3)}"; + this.trayIcon.Text = this.mainWndTitle.Trim(); + this.Text = this.mainWndTitle; + this.menu.Font = Overlay.GetMainFont(12); + this.menuLaunchFallGuys.Font = Overlay.GetMainFont(12); + this.infoStrip.Font = Overlay.GetMainFont(13); + this.infoStrip2.Font = Overlay.GetMainFont(13); + this.dataGridViewCellStyle1.Font = Overlay.GetMainFont(12); + this.dataGridViewCellStyle2.Font = Overlay.GetMainFont(14); + this.lblCreativeLevel.Text = Multilingual.GetWord("settings_grouping_creative_round_levels"); + this.lblIgnoreLevelTypeWhenSorting.Text = Multilingual.GetWord("settings_ignore_level_type_when_sorting"); + this.mlReportCheater.Text = Multilingual.GetWord("leaderboard_report_cheater"); + this.mlReportCheater.Location = new Point(this.Width - this.mlReportCheater.Width - 10, this.mlReportCheater.Location.Y); + + this.traySettings.Text = Multilingual.GetWord("main_settings"); + this.trayFilters.Text = Multilingual.GetWord("main_filters"); + this.trayStatsFilter.Text = Multilingual.GetWord("main_stats"); + this.trayCustomRangeStats.Text = Multilingual.GetWord("main_custom_range"); + this.trayAllStats.Text = Multilingual.GetWord("main_all"); + this.traySeasonStats.Text = Multilingual.GetWord("main_season"); + this.trayWeekStats.Text = Multilingual.GetWord("main_week"); + this.trayDayStats.Text = Multilingual.GetWord("main_day"); + this.traySessionStats.Text = Multilingual.GetWord("main_session"); + this.trayPartyFilter.Text = Multilingual.GetWord("main_party_type"); + this.trayAllPartyStats.Text = Multilingual.GetWord("main_all"); + this.traySoloStats.Text = Multilingual.GetWord("main_solo"); + this.trayPartyStats.Text = Multilingual.GetWord("main_party"); + this.trayProfile.Text = Multilingual.GetWord("main_profile"); + this.trayEditProfiles.Text = Multilingual.GetWord("main_profile_setting"); + this.trayOverlay.Text = Multilingual.GetWord(CurrentSettings.OverlayVisible ? "main_hide_overlay" : "main_show_overlay"); + this.trayUsefulThings.Text = Multilingual.GetWord("main_useful_things"); + this.trayFallGuysWiki.Text = Multilingual.GetWord("main_fall_guys_wiki"); + this.trayFallGuysReddit.Text = Multilingual.GetWord("main_fall_guys_reddit"); + this.trayFallalytics.Text = Multilingual.GetWord("main_fallalytics"); + this.trayFallalyticsMain.Text = Multilingual.GetWord("main_fallalytics_main"); + this.trayFallalyticsFindPlayer.Text = Multilingual.GetWord("main_fallalytics_find_player"); + this.trayFallalyticsOverallRankings.Text = Multilingual.GetWord("main_fallalytics_overall_rankings"); + this.trayFallalyticsLevelRankings.Text = Multilingual.GetWord("main_fallalytics_level_rankings"); + this.trayFallalyticsWeeklyCrownLeague.Text = Multilingual.GetWord("main_fallalytics_weekly_crown_league"); + this.trayFallalyticsRoundStatistics.Text = Multilingual.GetWord("main_fallalytics_round_statistics"); + this.trayFallalyticsShowStatistics.Text = Multilingual.GetWord("main_fallalytics_show_statistics"); + this.trayFallalyticsNews.Text = Multilingual.GetWord("main_fallalytics_news"); + this.trayRollOffClub.Text = Multilingual.GetWord("main_roll_off_club"); + this.trayLostTempleAnalyzer.Text = Multilingual.GetWord("main_lost_temple_analyzer"); + this.trayFallGuysDB.Text = Multilingual.GetWord("main_fall_guys_db"); + this.trayFallGuysDBMain.Text = Multilingual.GetWord("main_fall_guys_db_main"); + this.trayFallGuysDBShows.Text = Multilingual.GetWord("main_fall_guys_db_shows"); + this.trayFallGuysDBDiscovery.Text = Multilingual.GetWord("main_fall_guys_db_discovery"); + this.trayFallGuysDBShop.Text = Multilingual.GetWord("main_fall_guys_db_shop"); + this.trayFallGuysDBNewsfeeds.Text = Multilingual.GetWord("main_fall_guys_db_newsfeeds"); + this.trayFallGuysDBStrings.Text = Multilingual.GetWord("main_fall_guys_db_strings"); + this.trayFallGuysDBCosmetics.Text = Multilingual.GetWord("main_fall_guys_db_cosmetics"); + this.trayFallGuysDBCrownRanks.Text = Multilingual.GetWord("main_fall_guys_db_crown_ranks"); + this.trayFallGuysDBLiveEvents.Text = Multilingual.GetWord("main_fall_guys_db_live_events"); + this.trayFallGuysDBDailyShop.Text = Multilingual.GetWord("main_fall_guys_db_daily_shop"); + this.trayFallGuysDBCreative.Text = Multilingual.GetWord("main_fall_guys_db_creative"); + this.trayFallGuysDBFaq.Text = Multilingual.GetWord("main_fall_guys_db_faq"); + this.trayFallGuysOfficial.Text = Multilingual.GetWord("main_fall_guys_official"); + this.trayUpdate.Text = Multilingual.GetWord("main_update"); + this.trayHelp.Text = Multilingual.GetWord("main_help"); + this.trayLaunchFallGuys.Text = Multilingual.GetWord("main_launch_fall_guys"); + this.trayExitProgram.Text = Multilingual.GetWord("main_exit_program"); + + this.menuSettings.Text = Multilingual.GetWord("main_settings"); + this.menuFilters.Text = Multilingual.GetWord("main_filters"); + this.menuStatsFilter.Text = Multilingual.GetWord("main_stats"); + this.menuCustomRangeStats.Text = Multilingual.GetWord("main_custom_range"); + this.menuAllStats.Text = Multilingual.GetWord("main_all"); + this.menuSeasonStats.Text = Multilingual.GetWord("main_season"); + this.menuWeekStats.Text = Multilingual.GetWord("main_week"); + this.menuDayStats.Text = Multilingual.GetWord("main_day"); + this.menuSessionStats.Text = Multilingual.GetWord("main_session"); + this.menuPartyFilter.Text = Multilingual.GetWord("main_party_type"); + this.menuAllPartyStats.Text = Multilingual.GetWord("main_all"); + this.menuSoloStats.Text = Multilingual.GetWord("main_solo"); + this.menuPartyStats.Text = Multilingual.GetWord("main_party"); + this.menuProfile.Text = Multilingual.GetWord("main_profile"); + this.menuEditProfiles.Text = Multilingual.GetWord("main_profile_setting"); + this.menuOverlay.Text = Multilingual.GetWord(CurrentSettings.OverlayVisible ? "main_hide_overlay" : "main_show_overlay"); + this.menuUpdate.Text = Multilingual.GetWord("main_update"); + this.menuHelp.Text = Multilingual.GetWord("main_help"); + this.menuLaunchFallGuys.Text = Multilingual.GetWord("main_launch_fall_guys"); + this.menuUsefulThings.Text = Multilingual.GetWord("main_useful_things"); + this.menuFallGuysWiki.Text = Multilingual.GetWord("main_fall_guys_wiki"); + this.menuFallGuysReddit.Text = Multilingual.GetWord("main_fall_guys_reddit"); + this.menuFallalytics.Text = Multilingual.GetWord("main_fallalytics"); + this.menuFallalyticsMain.Text = Multilingual.GetWord("main_fallalytics_main"); + this.menuFallalyticsFindPlayer.Text = Multilingual.GetWord("main_fallalytics_find_player"); + this.menuFallalyticsOverallRankings.Text = Multilingual.GetWord("main_fallalytics_overall_rankings"); + this.menuFallalyticsLevelRankings.Text = Multilingual.GetWord("main_fallalytics_level_rankings"); + this.menuFallalyticsWeeklyCrownLeague.Text = Multilingual.GetWord("main_fallalytics_weekly_crown_league"); + this.menuFallalyticsRoundStatistics.Text = Multilingual.GetWord("main_fallalytics_round_statistics"); + this.menuFallalyticsShowStatistics.Text = Multilingual.GetWord("main_fallalytics_show_statistics"); + this.menuFallalyticsNews.Text = Multilingual.GetWord("main_fallalytics_news"); + this.menuRollOffClub.Text = Multilingual.GetWord("main_roll_off_club"); + this.menuLostTempleAnalyzer.Text = Multilingual.GetWord("main_lost_temple_analyzer"); + this.menuFallGuysDB.Text = Multilingual.GetWord("main_fall_guys_db"); + this.menuFallGuysDBMain.Text = Multilingual.GetWord("main_fall_guys_db_main"); + this.menuFallGuysDBShows.Text = Multilingual.GetWord("main_fall_guys_db_shows"); + this.menuFallGuysDBDiscovery.Text = Multilingual.GetWord("main_fall_guys_db_discovery"); + this.menuFallGuysDBShop.Text = Multilingual.GetWord("main_fall_guys_db_shop"); + this.menuFallGuysDBNewsfeeds.Text = Multilingual.GetWord("main_fall_guys_db_newsfeeds"); + this.menuFallGuysDBStrings.Text = Multilingual.GetWord("main_fall_guys_db_strings"); + this.menuFallGuysDBCosmetics.Text = Multilingual.GetWord("main_fall_guys_db_cosmetics"); + this.menuFallGuysDBCrownRanks.Text = Multilingual.GetWord("main_fall_guys_db_crown_ranks"); + this.menuFallGuysDBLiveEvents.Text = Multilingual.GetWord("main_fall_guys_db_live_events"); + this.menuFallGuysDBDailyShop.Text = Multilingual.GetWord("main_fall_guys_db_daily_shop"); + this.menuFallGuysDBCreative.Text = Multilingual.GetWord("main_fall_guys_db_creative"); + this.menuFallGuysDBFaq.Text = Multilingual.GetWord("main_fall_guys_db_faq"); + this.menuFallGuysOfficial.Text = Multilingual.GetWord("main_fall_guys_official"); + // this.SetLeaderboardTitle(); + this.ResumeLayout(); + } + } +} diff --git a/Views/Stats.resx b/Views/Stats.resx new file mode 100644 index 000000000..f3eb5ad9f --- /dev/null +++ b/Views/Stats.resx @@ -0,0 +1,372 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 124, 17 + + + 207, 17 + + + 17, 17 + + + 307, 17 + + + 405, 17 + + + + + AAABAAEAQEAAAAEAIAB7GgAAFgAAAIlQTkcNChoKAAAADUlIRFIAAABAAAAAQAgGAAAAqmlx3gAAGkJJ + REFUeJy1W3mwleV5/33L2c89d+deWS6LIJFguIhUXKIGNDFoXNrGJGpTs9jkj6SSzjSTJtNpO9NpZzJx + grVOm2lTbTpZihq1WdRoopIUFxREBQOiIiAXLhfucvZv7e95v+8792z3QiJ9mY9zzre9z/78nud9r4nW + sYjHHTyu6Eoaw3+2Oo7emI1UrguVcgm6psH3fViVErr9Xnzi5KfRk+/g7T58XYPbmQYMHVrVhZ85Af2S + +6B1jPGy1jiLzyPD+9bzM+sFv5vGpKfj4VISRT0OQ4upeyrOODzPhrxtHGfj36b+HSPOApiaj2xMR9nx + kIubmLIdZKc8bHiigI5J72UXeBpw7rrv4YsO1M9h1v/Qdf3bnudtin5r6pyBWCqGSqmIRDrD3yaZLwc8 + cDKtYtee1zwfms2p+EkqAYvXfK+NjE93+HC9KmVnwPEcmEaCr3VrV12es7zg/ZQ9krqOeMJAgcyb8l33 + I1kPU2/DZHfTbTds33zfw2u/0iIATdN2kvnhxvlJgF2FU9HIk48qhQBNV+dnGnqxGgqDMtCc98C8eouI + AFV7it802A7nR3uBisyLjguXtNnygxxbrqesteGNGjZ95sbtV9z70NrV8jsSwGbeOEwLUA9ED6n/ybBu + GjDNmAgJrutSIGWe5nnDaCW5NqHWcu29DV/9ax60eiVsYdzlnDFaLMmFzd+a1uhaojv5zUvDn7nxxc33 + PnTBJhHAIgQ+j2QyCcuy4DhOOCUl6zqwKxa/lxsZJfNmPKFEOn1SC1ydn5rrt/XrBpY0Q82iNWg1pLLh + YY0mbgQiUAKOzD5gWGQtp0uOV7sm5+Jevch8GKRZlGhb4kb+Hbfd8OxmEUDN58vlcovJRC9rZkYEYzml + BnfwSbuXiMHnIUEQqfi0HVD8viFWxM9YAlp5CkhkeU70lhfygnm0JDVaCiYUJswsGdHo0zG6QIWartRI + Ebcs0exn8cgGJhzba9JXTFnA5TUGmv2Fh2iZ9NYCX8Oou10ygE/b0+RcmRYTj6vfNSeRYBhqT4unqX1O + zQAngdPXMyJRXrfkYdS06IuWKTQat+2UlfYMI64C42zBVehOxRi89VbJNLLoXy4CGG65K3qRrimzcSn5 + Uw3l+8KMOKWEZB6a1RgENdcKLKFSUAxrqCqB+T7J8G3FaLOlCbO6WIUhr3f5mGQdj9komKZBpRFbPCxJ + h0JDW2rlDnVl2Gx7PbqNDFnM/V6iUdpGLB6kI7v+ZqgUKIcnlmDy1XHeE0uhISCK5siEJozEJWboinEV + O4Qjzw/VRJ/Xk3BcZiFKyfMsXnKUUspTCYwd1jFWpVSINRJ9QyISRv9pOh2+QzBBe++YpqetALQQ7AT/ + 2kjY84KILMEnZgbEyuSCA/ic7ohwPHjELvBs1Ek8GGReBUDDJEO8SXdxbBT47VvA0KCNgX7ylXLIEhnW + aP5uKQgPnGffC0k8832eO8R3uIdQzX0d5tW3wtnwh+QmibaRVwsMpV2saCuAzq4uVKsWEoaDWFyicqML + SAD0AweFR5Dk00/VbwlITJO6G6Yfpe3IDUIqRKQEMERRFJJYQlkAA/7jwQQeeBxYOmSipxNYNmRg/uI4 + jvQx3Xa7SGV8HHw9ice+XcXNMQ0fX8bMkEzhkXcP4Z7vfxMTFKZ+1ceVAUUjaepMiRqzG92Oc1fKdqMi + 2gnAjMWUNpPJBHpynURWZN6utBWskqhYi5iu+LucIAyG25jC/JjA47jSPEMxrcRB/QsnCzFsfcnHVz7b + gY9c6uHYmIGjYxrePVHBW7tpB3S5bM7Atp+WcQnf/bX3ecgKyCLkHVroY6xYxneefADGhVfCy/UoOoJA + aCLbwYxDQQtpOoVRByRnEACDnph/qVRGiSnK4YQac61oVl1PJJUirWpFmbuCvqJ5pjyBv5qYv9Y0iwAm + IxYIiNHZp0BVDJBBee3eb+LEuI11q3zM6XMwp9fHecurmGLk96Z8jFs6KlNplE/oWJNj6aC5gYyrZaTJ + 6qqcjvTYUZQKk7A7e9U8hiBB4pkq07FOGg0GZ10s1m3UZIsAJOqbEsAYnGzbglulucemg4tYhwqAfgB0 + 9BKjtC0BygtqAbEETu4lY8rsBMwKs76RDF/AQOlF0dNXJDz1vI/Bfh3zBuhI4j6MDxqDn3wXv4/FKcCO + ChJdBt55m5CcETMe4sKiq+Eos6JjxsV8a4YlQbBKZl2+IyZxShCj1gyw2gigVCqhWCwGykkI9OWT5vRD + rm01PxLcW1cUiXB0CkIFQRmsJ8QMg9w97YPyrVCM4dcverj0fGoxPhHGDIk7wb0+BeZS4MLfORcY+NkO + HxeO6risW1NWsH1Kx0+OU9Nr18Lt6muIdI5kMaK+ctEPXtlmmIL/Reu2bYe0+yoOOPZ7LGT8emn7dcCl + TgM0yTcPmzjwbhlf/WyqznWiezVEuUhed/4GF+/ui+NrT1kYpkExFuL1io+3Fq+DdsPn4MRTbQGS1AAa + /d91puc2Y8FvkxUgMpmMSn1SB8iIxyJTciI6VBnsuU3ARqqOJFXjBDnGZwBUsUBQIV/uM0jNIPjwBRqe + 20WfTut4/1IbDSE8HAZBUJwuaXD+eI+DG75k49XVSex/2UHZ7sThebfAXXcD7P65inmxKoPzO3WWYBhB + BnJD4Utmk3jgMDYoFxDtixAiAYgbKAUxYBkUhknAEk9nVDkcZ+qx+GmLWQsPrtdgdp4IRM1HYgy9LVLT + wv8c18S2nQ7WvF9Hf48TpZWGG8VCdZAGPaEaIfF0ARd82MeaDTrG/R78a/F6TDrzkTZ8xMWSSU+Sn3kG + wAQZ18MawNf8SOaIM6ZUQpc1xdzjxO3VarWNinzVEJH0USkUkMx2BG8ImfIk+te7CifXq3yxnBPI6wdM + aQGK4VcdVc9kAUMQTJR2bNzAq/td3P6nKVQtCpmR2jBD4CTCcIKGCKMAma+EAM1TlzSVCcqqPI/SXkxq + BVplnoE7ZoZxpLkR5Qt5EhgNFV9Ml5LK5/Ntq0Cf0VZKY9f2VRUnmheteq7bcm+kWS0fFk1k1mfKqvgx + vHMygZePmdh1xMXb4xpO0sBK5LPsWBjJe/ju94Gf/MJE/4CO5YsTWH2uifPoEule4dQiwXbIR7M1Tf+W + JkhUGYp5S6co4UXlc6NlWRW3ZphmPeNaeHa6IRI8KExr9EHVECExkgalGaI57UoNTZXFR/w8npx6A4/9 + vII3mMvTtKKzO7NY1RnD/ME4ehImUqoU1ki4jlESdeBwFa/stvCT+wm8sj7OWWWg66IUzlphI5W1Vfnb + mMV8VT4I2SIAUyxA3AZak0JDBFrjb9prG9JgKpVS8SDKCCqwMYc7FbelJpCCKGFmWhoiI1oRD5R248HS + K3AzeXxwTgafX96DFVkPvbAQJ7iBMxkWPV7olDxSJGUgiTLfOep14+VxH7/YncfTvynAXajjgo1prFhH + v04Tc4TBUqdVZhggJ2wNtjRE3LoMID3CJnkZdAslLMut3dQgAIkDbp15h2EDOgGG6zRmALtSgUUfjCKa + pXv4hb0f90xtQzl7Ep9Y04FrBroxDyUYlRF4k5YCNm6kkHajkEecKh3ifAuzGWw8P4c3rU786PWTuH/z + FF5h8br+ljTmnyO1iavkVyRddlP2iDKB1nRWNUT0RgIaBOC28W1ph6czGvInx1quSRCUtttJvYK7C8/i + EXsnrntfCp9Z1Ikhdwp+vkgiXdTeeqo2obJUlr4Ctnjo+UksZ4D+xpCG63Ia/nmvgwf/Frjo1iTWXkUh + GF67zKlGH7ORGWsN7M0wYdZ+gMoAPMr58RY61Sft6QhNfvPEr7EnsR9/T6B+VaYEszAGz5u5Y3Pag9R6 + rDlEaavpbZvPNfDDEQPf/k4V48diWPWJeBh5a2kmeIzHeMXCWaT9VDKfvSFCAoqTJ4l1AvOXgGOrVBYE + FYva/avxJ1FNn8Tdw2ms0sfgFyx4Z7ohjCBkSBH0uQUa5qdj+MaPqzguRvAxi5F8Mqj3Eym4ZlDNVvnA + pGWf8r2zNkSCIBDk8YqnY+9JHftO0FWrQUQtuUUsSVZx98okVvrUut2ad1vefQqCZutvyjU9ncPG3gwB + zCT+/NERTL32dwx2ntS6sAYXwVh3JdzzLiQsTtRN2gSw6kZbAUg2EK6TMZ91eJr1+jiePKCxqPBwZZ+B + lYOGQuvv8PfGQR0r9CkCllObvBQvlhdUcFVpILlBV0kClvRdUoKsdYG/M4vBK+WVW244y8Q/EkfsHNuO + szvIPAPNzt0v4NGXHsPRKz4J/Y9uR3eqm4CopBoiDgOwbbe+t205LEMm6ehIs/QEfvmOhg4itbvOMzCc + sQlMg0rNk3LXt8n8LJ03ZT0aTjAejfFlRU7pJtIw01loTKVKMITgbqkAg1Vohmbexyq0nwpMaG2WQohD + 3Inj6r3Xdmk8JO+7aqLqWTpunCji67+6F3vihM83fhlJ6VgJ7CWtuu6jWU8tAtANPZyH+Z+ReN94DMUC + cOdKHWszVrgCIyPo/7XirDpaeRwrazhcYZrsHkTHmgswuHItkguWQe8eUC0tedorl+GdHEH5nb2YfG07 + 3n59B0Ymj2MBL/cn/JaCKvTMsFZEjR6KFuu7Pfz14hi+8Kv7oa38EOldqnBDFCebR4sAaiCDRUiZkfS1 + Q2Vcztp7ddZRzLcQ0ua7DGInvFnUMNE5F70br0fPZdchvmAp1ZpWy2oCrQWySizx1HLcSqTWrEf3R/8E + 1oE9GHvqYezb+jO633EsygjObwPV2whd6L+ky8Pqg8exY/tWuP2Lg5iG9itVZmTyEQYQwFOKQI9D+Ev0 + tLwPyuyjRSlbOjJaqzAiARfo4/uKfO/w5Vj6yS8hsXyN1KCqzE4kkvRLM4DSmjbdgRbL4rxWJotYZw8S + S1eha92H8e4P78befc9jWcarzRnNFX0KTQ7dLKEHFpGmGy2iCz3/7kHYtFqrorWszsuKmuhT1QIS9KQE + 9v0gusdIaFQai+mUXFWYKXMZs02VkubEW0GTH2p+X5nMXvVJzLtlE/TeQTKdQIbltFSemtZqh9E5UUac + 96o0RprMCz+M5LwlOHjfN/HGs/+DZWlHNUHqRR+59OGqiYGEiw4i0jKFUVS9zNB5tKAB4oRBUNCgVINW + 1Q0aIjKxEFmpVCKK1CFLS51pDS+zmDlm65gT87C7GMP7s9OLp6jTvAhpf9lE/MpPYf5tX4XR2YcsIW2S + vt6O8ZmGEC7PxJnKSvEVWPiFv8E7PH/wuYexOO21LFUKPhG49EZZZ5C28HpRx+tE6cbQ2fBNU5XO0w/4 + fK9ZK4jChoiDdDqtBKB2f4S9gUTMxAVL+vDcnlE8ftJUHdlDlNG6rvYp70jZhz28HkuoebOrH525HC0/ + ftqMNw+JQ9lsFsbCZVj42a/hzbERnHhrG/qTWmP84Y9uk7XIWEyVNz8ecbE/twiD6z4E/VVNwd+oQySK + MKn9atQQSSSTPGGiGHaB6odUTwtSZRydY+KeAxYu7kvg0k5fpafmzFeiURzvWoihT30ZZv/c98x8/UiR + Rm3pSsy9eROO3LkfOXeU1tloUV3ELCMEF9sOgWV4GvYtn0Z57iJorxVbhGVVHQIpQ3WoTdF2tdJ+8VPW + CAymlg/OAx6vGnh0pIKbB4Wp1gB4lC7Ssf7jSC1fjawEsjPEfDREUXPWbcDEJdfh+BPfxdxU4/xJVmX9 + rH/vHEnAu+lLwJV/TKBlqEXUZpexicbsMHo0NESCXSCo9QNKpSq/J9CVBBZ16bDyOuYn3GhJoOb7FQac + qe4hLLjsWma5LMFH8owyj3CuFLPDwEduwuFnf4o59lGYDVbgYyUzRbYji/yay+AkCeImWSoTnkegWAKh + FyHQ6Fz9JIlEvBb9ZThMjXa1DIeR9XjBwLyEjlwb8JyXhd7zLkaKeV7B6DO+PSYYwm/vuefjyPILUNz5 + U3Qm6lIiv8yjBQw4BUwcPYTqwuWouk3lsgQ9urVVV/Y3sBOlwmioVR1ZvGYSnaCXLOMENLDa0l9055SW + QAcLkEQ2p1Lo/+eId/Wic9UlmHrpUXSEDVLVheZH1mSlaFjYPXKwgb5oOJKmnMb03SCA1saopvYCEdeg + bFG6WcHdfsPap6A4K9WFzqHlzOFn1u/bDWE0t/wDGElkOfdkcCZ0yQTjwHwGQ4weQUwC3GkY4qz9gEQy + gUQqQT8q0Wx89CXl9kYJKhPL5BDvmaNiSLvhqfVEL1hzPI0h94oyjDa70GSkB4egpTpYGU6iPgwwuxOg + aTBYLGlElSmiz5iqbdp3sYNnZhkSDC3mN5OSlX5jd0xXGvfqsKjakseAEyNw0bXWdaCjR4/i/vvvx+jo + KNavX4/LL79c5feZxttvH8CDDzyg1ic3XrMRa9eubSU628E5k/CKdSdDNxggRogXJlBhIVe0jRkr1VkF + oCSv6WopzPMNhfAEhnca0xmgYf+dNE51vWURSLS4ZcsWPPLIIwrQpFNpLFy4EEuWLGlLjM0A/L3v/Se2 + bt2Knp4edOQ6MDQ0hIGBgcYbCeQNtWETtXgb0OVjkIE6Vi6gZBHMaSmlMEPWAV3/9HeIJFMBDNWrU8rE + yk5gXl1m654bVWVaZWKK1sVUWV4/cOBACD4s7Ni5E5fRAmYSQIll8aFDh9V3sYAdO3bg6quvbhGAWylB + dypBG6zuvHzvNV0kK1OYtHid1iA7RFIpAxXi/qAdPssOEfHRnp5e5YP5Qh49SfFpi2mO2Jx4Oqm3lpQi + ILM0AWfyRAtDauMYTVCgtnxWKAT/FHuHZW7bdqkxgnl/vO2KlUVIbJTzrdsX+SMj+6aqBej5Cfips9Sy + XrVM2lMm6wsThbzVYAktbfFo1ceQPTe0e9knODbuMP9TknprahFsHS9Pwjr4BnD+pS3XfCUAG1HRNeuQ + +CJbcR0nWIVKtA9e1QN7kKzmWxZeVSYgwzm7iNixQ0jOPU+9R6FB2SHaZlNlSxos0PTi8QDuyhaTw1MG + 9o662NgtVuC0bGKVkXErKOx+Ht61t6pFlHoByN4+cQXZC6iEO0sAlCpQwJdF/432LOhNTHp2FZVX/hdp + j1ZltOY56SkuMat4+ZcPAX3LqYA+ebMyf4HAzcOMmhJRH79CP5RDhkX7fnyfjnUdOq4f0KYzQLPUOenE + K8+gfORtZIbOqV0TULRixQo89dTTyqfPWbYMCxYsmFEAskS/fPk5eOmlHYoeuX9gcLDhnsrBvSxwfqPW + AJu1KT+lXXvr/Bje3b8Vu+46ir2DG7G4dx2ydAeDgE0Ld0zLh7il2vwivQApiiIhiKF2M3Ku7DBx7Rwd + 1/R7al+P47d4nRqipczR/Tjx9CPIfPovG67dfPMtyHXkcGRkBFdu2DCrAETrX/ziFzE4eBaKhQI+uvGj + KhvUGGT8mPrlFiTGDs2ItiVjvS9l4+5zTfz3kX34+ev7sdXYglzvKgz2rUZPbhlymUFihAzfZ8BMyyKi + Y6GPVj+QMLE0rWMlEd/qTg3npDx0G7aaeNQNNhtEfdrmtlTGdzDx2H0ofPAaZBevqBHU2ZnDLbfeMiPT + zaO/vx+33/75ttfKe3fAfvIHah3A0yIZTOdC1SANU/ZQzMJfLDJw01zZRzSCZ08exp59T2CXRwSZHEQ8 + NZdArw/mv3wgxfzuoY/po4fu28FUl0Sw6UD1AH21vVlpP9rcjnDPTs0W5BRNKn14D8Z+8C0kN22GSXR4 + Joc7dQL5H32Lwe3tGg7xwkUbP9yEEdAZkCP06ow/QzEXC/s0XNdnYIIx7UhlAm9VJnGwtAejBbrARzpL + 0zv0w66ni0ZDZ0xG2dWRUouRbdBEKAyJqN4zW3CClVj/TXdAj5+ZstivlpB/4J/g/uaR2v6x2jV/+tNT + dYpsjpDNlR5k/6pCqgKGyEUvH+7LAKsyUlZKgidOkL8xaBNMG4ZsNyvykNUbEU5zMqu3hHilCGfLnZhk + Jun82O3QU9n3xnxpCsWH7kH5gbugE9zMVmmHG9Yx5WgYlNI3QolN90wv/MtawmlUTLIYWnB05BQU1sK1 + thmG7NBgMVL5r38AJsfQcf0XYM5ZgN+5RyBt8pE3UXzwbhR/fh+h4dQpX+EGG+5Rcny1BJc4BezwyIvp + 1wW2GfiBxRvznvzJiqt2YpzKYtRDZL5y/2bgzV1IbbwN8Q9cBr2zD2hTMDVSRTA2fgz2S0+i+LN7UX11 + G03QiqreWYf4vdxToAtY9X/3NMMQXar+sK9NC7f+gXBnDcZpUkVvOsigKRM0f48e9onZy88+CmvfDiRW + XoTkmg0wlg5D718APZ1V2+XVcIkUqWHv2EE4v30RlRefQGXPdvhTJ6YJmZEL1CpBJ4xFkzSDCdLcbbbS + 10CnWhiBtotRdFWzpITZYN+NhqOWhkqIgJwmMNRcjLQSSGx/fAT2Mw+h/MITMHrPQnzOXBhdcwAVH2SS + PJyT1ProYfXpyZ/nRNvrZnxxHWMh47YfKKxElx2l0eQMPdg/qAWNHL/1dbtMMvi0oWurgrSCcHuer5a/ + rPDFstJihW0gOe/VgshpjrBp5xbJKA/r4L5gI7XsKI3ST61vX/fM7Lw3CMGvWWfwJ3NCc4kMiTBEANJG + j4VpU6FfX2GGp81xz9sMR7+jHuPV7wiTak/W3ZyaBQTX9dMirVUQ0/wFIVuruxYx007xft1t7VxPrVmG + +zPkM9oKIGRX5PCCvkXD0L3N5kXP4cC2tbiLir1jJro91RidFoBCW3VYPNJa8+9TjZn+3K3ldN37anm/ + 6X7Hn8YHXlPVHgmtqXS+62LyrqLQxdu9Tc/+gX4Fb1jVjiBd86cl7Qe7PIy6YN5SlPwexjHrOI33WSEG + ECIFDNVbaBvr2XXR9uBvpGvl8EUveMPb1uqb0cYS0oYXrrFPB5szv/Tx3oYdpkBhUvw9HeD21kHNR8zL + aOgHKEtYh82+q28iv8oiRJsZXXZooQZ5rdpkZ1rVv9+IMpb6zs8ca5qk/H1QjUJ/F3z9ac1wNovZ1z/7 + f1mjsGWG6Wp/AAAAAElFTkSuQmCC + + + + + AAABAAEAQEAAAAEAIAB7GgAAFgAAAIlQTkcNChoKAAAADUlIRFIAAABAAAAAQAgGAAAAqmlx3gAAGkJJ + REFUeJy1W3mwleV5/33L2c89d+deWS6LIJFguIhUXKIGNDFoXNrGJGpTs9jkj6SSzjSTJtNpO9NpZzJx + grVOm2lTbTpZihq1WdRoopIUFxREBQOiIiAXLhfucvZv7e95v+8792z3QiJ9mY9zzre9z/78nud9r4nW + sYjHHTyu6Eoaw3+2Oo7emI1UrguVcgm6psH3fViVErr9Xnzi5KfRk+/g7T58XYPbmQYMHVrVhZ85Af2S + +6B1jPGy1jiLzyPD+9bzM+sFv5vGpKfj4VISRT0OQ4upeyrOODzPhrxtHGfj36b+HSPOApiaj2xMR9nx + kIubmLIdZKc8bHiigI5J72UXeBpw7rrv4YsO1M9h1v/Qdf3bnudtin5r6pyBWCqGSqmIRDrD3yaZLwc8 + cDKtYtee1zwfms2p+EkqAYvXfK+NjE93+HC9KmVnwPEcmEaCr3VrV12es7zg/ZQ9krqOeMJAgcyb8l33 + I1kPU2/DZHfTbTds33zfw2u/0iIATdN2kvnhxvlJgF2FU9HIk48qhQBNV+dnGnqxGgqDMtCc98C8eouI + AFV7it802A7nR3uBisyLjguXtNnygxxbrqesteGNGjZ95sbtV9z70NrV8jsSwGbeOEwLUA9ED6n/ybBu + GjDNmAgJrutSIGWe5nnDaCW5NqHWcu29DV/9ax60eiVsYdzlnDFaLMmFzd+a1uhaojv5zUvDn7nxxc33 + PnTBJhHAIgQ+j2QyCcuy4DhOOCUl6zqwKxa/lxsZJfNmPKFEOn1SC1ydn5rrt/XrBpY0Q82iNWg1pLLh + YY0mbgQiUAKOzD5gWGQtp0uOV7sm5+Jevch8GKRZlGhb4kb+Hbfd8OxmEUDN58vlcovJRC9rZkYEYzml + BnfwSbuXiMHnIUEQqfi0HVD8viFWxM9YAlp5CkhkeU70lhfygnm0JDVaCiYUJswsGdHo0zG6QIWartRI + Ebcs0exn8cgGJhzba9JXTFnA5TUGmv2Fh2iZ9NYCX8Oou10ygE/b0+RcmRYTj6vfNSeRYBhqT4unqX1O + zQAngdPXMyJRXrfkYdS06IuWKTQat+2UlfYMI64C42zBVehOxRi89VbJNLLoXy4CGG65K3qRrimzcSn5 + Uw3l+8KMOKWEZB6a1RgENdcKLKFSUAxrqCqB+T7J8G3FaLOlCbO6WIUhr3f5mGQdj9komKZBpRFbPCxJ + h0JDW2rlDnVl2Gx7PbqNDFnM/V6iUdpGLB6kI7v+ZqgUKIcnlmDy1XHeE0uhISCK5siEJozEJWboinEV + O4Qjzw/VRJ/Xk3BcZiFKyfMsXnKUUspTCYwd1jFWpVSINRJ9QyISRv9pOh2+QzBBe++YpqetALQQ7AT/ + 2kjY84KILMEnZgbEyuSCA/ic7ohwPHjELvBs1Ek8GGReBUDDJEO8SXdxbBT47VvA0KCNgX7ylXLIEhnW + aP5uKQgPnGffC0k8832eO8R3uIdQzX0d5tW3wtnwh+QmibaRVwsMpV2saCuAzq4uVKsWEoaDWFyicqML + SAD0AweFR5Dk00/VbwlITJO6G6Yfpe3IDUIqRKQEMERRFJJYQlkAA/7jwQQeeBxYOmSipxNYNmRg/uI4 + jvQx3Xa7SGV8HHw9ice+XcXNMQ0fX8bMkEzhkXcP4Z7vfxMTFKZ+1ceVAUUjaepMiRqzG92Oc1fKdqMi + 2gnAjMWUNpPJBHpynURWZN6utBWskqhYi5iu+LucIAyG25jC/JjA47jSPEMxrcRB/QsnCzFsfcnHVz7b + gY9c6uHYmIGjYxrePVHBW7tpB3S5bM7Atp+WcQnf/bX3ecgKyCLkHVroY6xYxneefADGhVfCy/UoOoJA + aCLbwYxDQQtpOoVRByRnEACDnph/qVRGiSnK4YQac61oVl1PJJUirWpFmbuCvqJ5pjyBv5qYv9Y0iwAm + IxYIiNHZp0BVDJBBee3eb+LEuI11q3zM6XMwp9fHecurmGLk96Z8jFs6KlNplE/oWJNj6aC5gYyrZaTJ + 6qqcjvTYUZQKk7A7e9U8hiBB4pkq07FOGg0GZ10s1m3UZIsAJOqbEsAYnGzbglulucemg4tYhwqAfgB0 + 9BKjtC0BygtqAbEETu4lY8rsBMwKs76RDF/AQOlF0dNXJDz1vI/Bfh3zBuhI4j6MDxqDn3wXv4/FKcCO + ChJdBt55m5CcETMe4sKiq+Eos6JjxsV8a4YlQbBKZl2+IyZxShCj1gyw2gigVCqhWCwGykkI9OWT5vRD + rm01PxLcW1cUiXB0CkIFQRmsJ8QMg9w97YPyrVCM4dcverj0fGoxPhHGDIk7wb0+BeZS4MLfORcY+NkO + HxeO6risW1NWsH1Kx0+OU9Nr18Lt6muIdI5kMaK+ctEPXtlmmIL/Reu2bYe0+yoOOPZ7LGT8emn7dcCl + TgM0yTcPmzjwbhlf/WyqznWiezVEuUhed/4GF+/ui+NrT1kYpkExFuL1io+3Fq+DdsPn4MRTbQGS1AAa + /d91puc2Y8FvkxUgMpmMSn1SB8iIxyJTciI6VBnsuU3ARqqOJFXjBDnGZwBUsUBQIV/uM0jNIPjwBRqe + 20WfTut4/1IbDSE8HAZBUJwuaXD+eI+DG75k49XVSex/2UHZ7sThebfAXXcD7P65inmxKoPzO3WWYBhB + BnJD4Utmk3jgMDYoFxDtixAiAYgbKAUxYBkUhknAEk9nVDkcZ+qx+GmLWQsPrtdgdp4IRM1HYgy9LVLT + wv8c18S2nQ7WvF9Hf48TpZWGG8VCdZAGPaEaIfF0ARd82MeaDTrG/R78a/F6TDrzkTZ8xMWSSU+Sn3kG + wAQZ18MawNf8SOaIM6ZUQpc1xdzjxO3VarWNinzVEJH0USkUkMx2BG8ImfIk+te7CifXq3yxnBPI6wdM + aQGK4VcdVc9kAUMQTJR2bNzAq/td3P6nKVQtCpmR2jBD4CTCcIKGCKMAma+EAM1TlzSVCcqqPI/SXkxq + BVplnoE7ZoZxpLkR5Qt5EhgNFV9Ml5LK5/Ntq0Cf0VZKY9f2VRUnmheteq7bcm+kWS0fFk1k1mfKqvgx + vHMygZePmdh1xMXb4xpO0sBK5LPsWBjJe/ju94Gf/MJE/4CO5YsTWH2uifPoEule4dQiwXbIR7M1Tf+W + JkhUGYp5S6co4UXlc6NlWRW3ZphmPeNaeHa6IRI8KExr9EHVECExkgalGaI57UoNTZXFR/w8npx6A4/9 + vII3mMvTtKKzO7NY1RnD/ME4ehImUqoU1ki4jlESdeBwFa/stvCT+wm8sj7OWWWg66IUzlphI5W1Vfnb + mMV8VT4I2SIAUyxA3AZak0JDBFrjb9prG9JgKpVS8SDKCCqwMYc7FbelJpCCKGFmWhoiI1oRD5R248HS + K3AzeXxwTgafX96DFVkPvbAQJ7iBMxkWPV7olDxSJGUgiTLfOep14+VxH7/YncfTvynAXajjgo1prFhH + v04Tc4TBUqdVZhggJ2wNtjRE3LoMID3CJnkZdAslLMut3dQgAIkDbp15h2EDOgGG6zRmALtSgUUfjCKa + pXv4hb0f90xtQzl7Ep9Y04FrBroxDyUYlRF4k5YCNm6kkHajkEecKh3ifAuzGWw8P4c3rU786PWTuH/z + FF5h8br+ljTmnyO1iavkVyRddlP2iDKB1nRWNUT0RgIaBOC28W1ph6czGvInx1quSRCUtttJvYK7C8/i + EXsnrntfCp9Z1Ikhdwp+vkgiXdTeeqo2obJUlr4Ctnjo+UksZ4D+xpCG63Ia/nmvgwf/Frjo1iTWXkUh + GF67zKlGH7ORGWsN7M0wYdZ+gMoAPMr58RY61Sft6QhNfvPEr7EnsR9/T6B+VaYEszAGz5u5Y3Pag9R6 + rDlEaavpbZvPNfDDEQPf/k4V48diWPWJeBh5a2kmeIzHeMXCWaT9VDKfvSFCAoqTJ4l1AvOXgGOrVBYE + FYva/avxJ1FNn8Tdw2ms0sfgFyx4Z7ohjCBkSBH0uQUa5qdj+MaPqzguRvAxi5F8Mqj3Eym4ZlDNVvnA + pGWf8r2zNkSCIBDk8YqnY+9JHftO0FWrQUQtuUUsSVZx98okVvrUut2ad1vefQqCZutvyjU9ncPG3gwB + zCT+/NERTL32dwx2ntS6sAYXwVh3JdzzLiQsTtRN2gSw6kZbAUg2EK6TMZ91eJr1+jiePKCxqPBwZZ+B + lYOGQuvv8PfGQR0r9CkCllObvBQvlhdUcFVpILlBV0kClvRdUoKsdYG/M4vBK+WVW244y8Q/EkfsHNuO + szvIPAPNzt0v4NGXHsPRKz4J/Y9uR3eqm4CopBoiDgOwbbe+t205LEMm6ehIs/QEfvmOhg4itbvOMzCc + sQlMg0rNk3LXt8n8LJ03ZT0aTjAejfFlRU7pJtIw01loTKVKMITgbqkAg1Vohmbexyq0nwpMaG2WQohD + 3Inj6r3Xdmk8JO+7aqLqWTpunCji67+6F3vihM83fhlJ6VgJ7CWtuu6jWU8tAtANPZyH+Z+ReN94DMUC + cOdKHWszVrgCIyPo/7XirDpaeRwrazhcYZrsHkTHmgswuHItkguWQe8eUC0tedorl+GdHEH5nb2YfG07 + 3n59B0Ymj2MBL/cn/JaCKvTMsFZEjR6KFuu7Pfz14hi+8Kv7oa38EOldqnBDFCebR4sAaiCDRUiZkfS1 + Q2Vcztp7ddZRzLcQ0ua7DGInvFnUMNE5F70br0fPZdchvmAp1ZpWy2oCrQWySizx1HLcSqTWrEf3R/8E + 1oE9GHvqYezb+jO633EsygjObwPV2whd6L+ky8Pqg8exY/tWuP2Lg5iG9itVZmTyEQYQwFOKQI9D+Ev0 + tLwPyuyjRSlbOjJaqzAiARfo4/uKfO/w5Vj6yS8hsXyN1KCqzE4kkvRLM4DSmjbdgRbL4rxWJotYZw8S + S1eha92H8e4P78befc9jWcarzRnNFX0KTQ7dLKEHFpGmGy2iCz3/7kHYtFqrorWszsuKmuhT1QIS9KQE + 9v0gusdIaFQai+mUXFWYKXMZs02VkubEW0GTH2p+X5nMXvVJzLtlE/TeQTKdQIbltFSemtZqh9E5UUac + 96o0RprMCz+M5LwlOHjfN/HGs/+DZWlHNUHqRR+59OGqiYGEiw4i0jKFUVS9zNB5tKAB4oRBUNCgVINW + 1Q0aIjKxEFmpVCKK1CFLS51pDS+zmDlm65gT87C7GMP7s9OLp6jTvAhpf9lE/MpPYf5tX4XR2YcsIW2S + vt6O8ZmGEC7PxJnKSvEVWPiFv8E7PH/wuYexOO21LFUKPhG49EZZZ5C28HpRx+tE6cbQ2fBNU5XO0w/4 + fK9ZK4jChoiDdDqtBKB2f4S9gUTMxAVL+vDcnlE8ftJUHdlDlNG6rvYp70jZhz28HkuoebOrH525HC0/ + ftqMNw+JQ9lsFsbCZVj42a/hzbERnHhrG/qTWmP84Y9uk7XIWEyVNz8ecbE/twiD6z4E/VVNwd+oQySK + MKn9atQQSSSTPGGiGHaB6odUTwtSZRydY+KeAxYu7kvg0k5fpafmzFeiURzvWoihT30ZZv/c98x8/UiR + Rm3pSsy9eROO3LkfOXeU1tloUV3ELCMEF9sOgWV4GvYtn0Z57iJorxVbhGVVHQIpQ3WoTdF2tdJ+8VPW + CAymlg/OAx6vGnh0pIKbB4Wp1gB4lC7Ssf7jSC1fjawEsjPEfDREUXPWbcDEJdfh+BPfxdxU4/xJVmX9 + rH/vHEnAu+lLwJV/TKBlqEXUZpexicbsMHo0NESCXSCo9QNKpSq/J9CVBBZ16bDyOuYn3GhJoOb7FQac + qe4hLLjsWma5LMFH8owyj3CuFLPDwEduwuFnf4o59lGYDVbgYyUzRbYji/yay+AkCeImWSoTnkegWAKh + FyHQ6Fz9JIlEvBb9ZThMjXa1DIeR9XjBwLyEjlwb8JyXhd7zLkaKeV7B6DO+PSYYwm/vuefjyPILUNz5 + U3Qm6lIiv8yjBQw4BUwcPYTqwuWouk3lsgQ9urVVV/Y3sBOlwmioVR1ZvGYSnaCXLOMENLDa0l9055SW + QAcLkEQ2p1Lo/+eId/Wic9UlmHrpUXSEDVLVheZH1mSlaFjYPXKwgb5oOJKmnMb03SCA1saopvYCEdeg + bFG6WcHdfsPap6A4K9WFzqHlzOFn1u/bDWE0t/wDGElkOfdkcCZ0yQTjwHwGQ4weQUwC3GkY4qz9gEQy + gUQqQT8q0Wx89CXl9kYJKhPL5BDvmaNiSLvhqfVEL1hzPI0h94oyjDa70GSkB4egpTpYGU6iPgwwuxOg + aTBYLGlElSmiz5iqbdp3sYNnZhkSDC3mN5OSlX5jd0xXGvfqsKjakseAEyNw0bXWdaCjR4/i/vvvx+jo + KNavX4/LL79c5feZxttvH8CDDzyg1ic3XrMRa9eubSU628E5k/CKdSdDNxggRogXJlBhIVe0jRkr1VkF + oCSv6WopzPMNhfAEhnca0xmgYf+dNE51vWURSLS4ZcsWPPLIIwrQpFNpLFy4EEuWLGlLjM0A/L3v/Se2 + bt2Knp4edOQ6MDQ0hIGBgcYbCeQNtWETtXgb0OVjkIE6Vi6gZBHMaSmlMEPWAV3/9HeIJFMBDNWrU8rE + yk5gXl1m654bVWVaZWKK1sVUWV4/cOBACD4s7Ni5E5fRAmYSQIll8aFDh9V3sYAdO3bg6quvbhGAWylB + dypBG6zuvHzvNV0kK1OYtHid1iA7RFIpAxXi/qAdPssOEfHRnp5e5YP5Qh49SfFpi2mO2Jx4Oqm3lpQi + ILM0AWfyRAtDauMYTVCgtnxWKAT/FHuHZW7bdqkxgnl/vO2KlUVIbJTzrdsX+SMj+6aqBej5Cfips9Sy + XrVM2lMm6wsThbzVYAktbfFo1ceQPTe0e9knODbuMP9TknprahFsHS9Pwjr4BnD+pS3XfCUAG1HRNeuQ + +CJbcR0nWIVKtA9e1QN7kKzmWxZeVSYgwzm7iNixQ0jOPU+9R6FB2SHaZlNlSxos0PTi8QDuyhaTw1MG + 9o662NgtVuC0bGKVkXErKOx+Ht61t6pFlHoByN4+cQXZC6iEO0sAlCpQwJdF/432LOhNTHp2FZVX/hdp + j1ZltOY56SkuMat4+ZcPAX3LqYA+ebMyf4HAzcOMmhJRH79CP5RDhkX7fnyfjnUdOq4f0KYzQLPUOenE + K8+gfORtZIbOqV0TULRixQo89dTTyqfPWbYMCxYsmFEAskS/fPk5eOmlHYoeuX9gcLDhnsrBvSxwfqPW + AJu1KT+lXXvr/Bje3b8Vu+46ir2DG7G4dx2ydAeDgE0Ld0zLh7il2vwivQApiiIhiKF2M3Ku7DBx7Rwd + 1/R7al+P47d4nRqipczR/Tjx9CPIfPovG67dfPMtyHXkcGRkBFdu2DCrAETrX/ziFzE4eBaKhQI+uvGj + KhvUGGT8mPrlFiTGDs2ItiVjvS9l4+5zTfz3kX34+ev7sdXYglzvKgz2rUZPbhlymUFihAzfZ8BMyyKi + Y6GPVj+QMLE0rWMlEd/qTg3npDx0G7aaeNQNNhtEfdrmtlTGdzDx2H0ofPAaZBevqBHU2ZnDLbfeMiPT + zaO/vx+33/75ttfKe3fAfvIHah3A0yIZTOdC1SANU/ZQzMJfLDJw01zZRzSCZ08exp59T2CXRwSZHEQ8 + NZdArw/mv3wgxfzuoY/po4fu28FUl0Sw6UD1AH21vVlpP9rcjnDPTs0W5BRNKn14D8Z+8C0kN22GSXR4 + Joc7dQL5H32Lwe3tGg7xwkUbP9yEEdAZkCP06ow/QzEXC/s0XNdnYIIx7UhlAm9VJnGwtAejBbrARzpL + 0zv0w66ni0ZDZ0xG2dWRUouRbdBEKAyJqN4zW3CClVj/TXdAj5+ZstivlpB/4J/g/uaR2v6x2jV/+tNT + dYpsjpDNlR5k/6pCqgKGyEUvH+7LAKsyUlZKgidOkL8xaBNMG4ZsNyvykNUbEU5zMqu3hHilCGfLnZhk + Jun82O3QU9n3xnxpCsWH7kH5gbugE9zMVmmHG9Yx5WgYlNI3QolN90wv/MtawmlUTLIYWnB05BQU1sK1 + thmG7NBgMVL5r38AJsfQcf0XYM5ZgN+5RyBt8pE3UXzwbhR/fh+h4dQpX+EGG+5Rcny1BJc4BezwyIvp + 1wW2GfiBxRvznvzJiqt2YpzKYtRDZL5y/2bgzV1IbbwN8Q9cBr2zD2hTMDVSRTA2fgz2S0+i+LN7UX11 + G03QiqreWYf4vdxToAtY9X/3NMMQXar+sK9NC7f+gXBnDcZpUkVvOsigKRM0f48e9onZy88+CmvfDiRW + XoTkmg0wlg5D718APZ1V2+XVcIkUqWHv2EE4v30RlRefQGXPdvhTJ6YJmZEL1CpBJ4xFkzSDCdLcbbbS + 10CnWhiBtotRdFWzpITZYN+NhqOWhkqIgJwmMNRcjLQSSGx/fAT2Mw+h/MITMHrPQnzOXBhdcwAVH2SS + PJyT1ProYfXpyZ/nRNvrZnxxHWMh47YfKKxElx2l0eQMPdg/qAWNHL/1dbtMMvi0oWurgrSCcHuer5a/ + rPDFstJihW0gOe/VgshpjrBp5xbJKA/r4L5gI7XsKI3ST61vX/fM7Lw3CMGvWWfwJ3NCc4kMiTBEANJG + j4VpU6FfX2GGp81xz9sMR7+jHuPV7wiTak/W3ZyaBQTX9dMirVUQ0/wFIVuruxYx007xft1t7VxPrVmG + +zPkM9oKIGRX5PCCvkXD0L3N5kXP4cC2tbiLir1jJro91RidFoBCW3VYPNJa8+9TjZn+3K3ldN37anm/ + 6X7Hn8YHXlPVHgmtqXS+62LyrqLQxdu9Tc/+gX4Fb1jVjiBd86cl7Qe7PIy6YN5SlPwexjHrOI33WSEG + ECIFDNVbaBvr2XXR9uBvpGvl8EUveMPb1uqb0cYS0oYXrrFPB5szv/Tx3oYdpkBhUvw9HeD21kHNR8zL + aOgHKEtYh82+q28iv8oiRJsZXXZooQZ5rdpkZ1rVv9+IMpb6zs8ca5qk/H1QjUJ/F3z9ac1wNovZ1z/7 + f1mjsGWG6Wp/AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Views/WinStatsDisplay.Designer.cs b/Views/WinStatsDisplay.Designer.cs new file mode 100644 index 000000000..1995dc26e --- /dev/null +++ b/Views/WinStatsDisplay.Designer.cs @@ -0,0 +1,147 @@ +namespace FallGuysStats { + partial class WinStatsDisplay { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WinStatsDisplay)); + this.picSwitchGraphStyle = new System.Windows.Forms.PictureBox(); + this.chkWins = new MetroFramework.Controls.MetroCheckBox(); + this.chkFinals = new MetroFramework.Controls.MetroCheckBox(); + this.chkShows = new MetroFramework.Controls.MetroCheckBox(); + this.formsPlot = new ScottPlot.FormsPlot(); + ((System.ComponentModel.ISupportInitialize)(this.picSwitchGraphStyle)).BeginInit(); + this.SuspendLayout(); + // + // picSwitchGraphStyle + // + this.picSwitchGraphStyle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.picSwitchGraphStyle.BackColor = System.Drawing.Color.Transparent; + this.picSwitchGraphStyle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picSwitchGraphStyle.Cursor = System.Windows.Forms.Cursors.Hand; + this.picSwitchGraphStyle.Image = global::FallGuysStats.Properties.Resources.scatter_plot_icon; + this.picSwitchGraphStyle.Location = new System.Drawing.Point(880, 33); + this.picSwitchGraphStyle.Name = "picSwitchGraphStyle"; + this.picSwitchGraphStyle.Size = new System.Drawing.Size(27, 24); + this.picSwitchGraphStyle.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picSwitchGraphStyle.TabIndex = 0; + this.picSwitchGraphStyle.TabStop = false; + this.picSwitchGraphStyle.MouseClick += new System.Windows.Forms.MouseEventHandler(this.picSwitchGraphStyle_MouseClick); + // + // chkWins + // + this.chkWins.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.chkWins.AutoSize = true; + this.chkWins.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkWins.FontSize = MetroFramework.MetroCheckBoxSize.Tall; + this.chkWins.FontWeight = MetroFramework.MetroCheckBoxWeight.Bold; + this.chkWins.ForeColor = System.Drawing.Color.Red; + this.chkWins.Location = new System.Drawing.Point(1003, 35); + this.chkWins.Name = "chkWins"; + this.chkWins.Size = new System.Drawing.Size(70, 25); + this.chkWins.TabIndex = 2; + this.chkWins.Text = "Wins"; + this.chkWins.UseCustomForeColor = true; + this.chkWins.UseSelectable = true; + this.chkWins.CheckedChanged += new System.EventHandler(this.chkWins_CheckedChanged); + // + // chkFinals + // + this.chkFinals.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.chkFinals.AutoSize = true; + this.chkFinals.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkFinals.FontSize = MetroFramework.MetroCheckBoxSize.Tall; + this.chkFinals.FontWeight = MetroFramework.MetroCheckBoxWeight.Bold; + this.chkFinals.ForeColor = System.Drawing.Color.Green; + this.chkFinals.Location = new System.Drawing.Point(1088, 35); + this.chkFinals.Name = "chkFinals"; + this.chkFinals.Size = new System.Drawing.Size(76, 25); + this.chkFinals.TabIndex = 3; + this.chkFinals.Text = "Finals"; + this.chkFinals.UseCustomForeColor = true; + this.chkFinals.UseSelectable = true; + this.chkFinals.CheckedChanged += new System.EventHandler(this.chkFinals_CheckedChanged); + // + // chkShows + // + this.chkShows.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.chkShows.AutoSize = true; + this.chkShows.Cursor = System.Windows.Forms.Cursors.Hand; + this.chkShows.FontSize = MetroFramework.MetroCheckBoxSize.Tall; + this.chkShows.FontWeight = MetroFramework.MetroCheckBoxWeight.Bold; + this.chkShows.ForeColor = System.Drawing.Color.Blue; + this.chkShows.Location = new System.Drawing.Point(1175, 35); + this.chkShows.Name = "chkShows"; + this.chkShows.Size = new System.Drawing.Size(82, 25); + this.chkShows.TabIndex = 4; + this.chkShows.Text = "Shows"; + this.chkShows.UseCustomForeColor = true; + this.chkShows.UseSelectable = true; + this.chkShows.CheckedChanged += new System.EventHandler(this.chkShows_CheckedChanged); + // + // formsPlot + // + this.formsPlot.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.formsPlot.Location = new System.Drawing.Point(0, 58); + this.formsPlot.Margin = new System.Windows.Forms.Padding(4, 2, 4, 2); + this.formsPlot.Name = "formsPlot"; + this.formsPlot.Size = new System.Drawing.Size(1280, 860); + this.formsPlot.TabIndex = 5; + this.formsPlot.MouseLeave += new System.EventHandler(this.formsPlot_MouseLeave); + this.formsPlot.MouseMove += new System.Windows.Forms.MouseEventHandler(this.formsPlot_MouseMove); + // + // WinStatsDisplay + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.ClientSize = new System.Drawing.Size(1294, 900); + this.Controls.Add(this.formsPlot); + this.Controls.Add(this.picSwitchGraphStyle); + this.Controls.Add(this.chkShows); + this.Controls.Add(this.chkFinals); + this.Controls.Add(this.chkWins); + this.ForeColor = System.Drawing.Color.Black; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Location = new System.Drawing.Point(15, 15); + this.MinimumSize = new System.Drawing.Size(720, 360); + this.Name = "WinStatsDisplay"; + this.Padding = new System.Windows.Forms.Padding(20, 60, 20, 0); + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; + this.Style = MetroFramework.MetroColorStyle.Teal; + this.Text = "Stats Display"; + this.Load += new System.EventHandler(this.WinStatsDisplay_Load); + this.Shown += new System.EventHandler(this.WinStatsDisplay_Shown); + ((System.ComponentModel.ISupportInitialize)(this.picSwitchGraphStyle)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + private ScottPlot.FormsPlot formsPlot; + private System.Windows.Forms.PictureBox picSwitchGraphStyle; + private MetroFramework.Controls.MetroCheckBox chkWins; + private MetroFramework.Controls.MetroCheckBox chkFinals; + private MetroFramework.Controls.MetroCheckBox chkShows; + } +} \ No newline at end of file diff --git a/Views/WinStatsDisplay.cs b/Views/WinStatsDisplay.cs new file mode 100644 index 000000000..ac49ce44c --- /dev/null +++ b/Views/WinStatsDisplay.cs @@ -0,0 +1,466 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using MetroFramework; +using ScottPlot; +using ScottPlot.Plottable; + +namespace FallGuysStats { + public partial class WinStatsDisplay : MetroFramework.Forms.MetroForm { + public double[] dates, shows, finals, wins; + public Dictionary> winsInfo; + public double manualSpacing = 1.0; + public int graphStyle; + public Stats StatsForm { get; set; } + public WinStatsDisplay() { + this.InitializeComponent(); + this.Opacity = 0; + } + + private double yMax; + private ScatterPlot MyScatterPlot1, MyScatterPlot2, MyScatterPlot3; + private BarPlot MyBarPlot1, MyBarPlot2, MyBarPlot3; + private LollipopPlot MyLollipopPlot1, MyLollipopPlot2, MyLollipopPlot3; + private MarkerPlot HighlightedDate; + private Tooltip tooltip; + + private void WinStatsDisplay_Load(object sender, EventArgs e) { + this.SetTheme(Stats.CurrentTheme); + this.ChangeLanguage(); + //this.formsPlot.Plot.Title("Title"); + //this.formsPlot.Plot.XLabel("Horizontal Axis"); + //this.formsPlot.Plot.YLabel("Vertical Axis"); + + if (this.dates != null) { + this.yMax = this.shows.Max() < this.finals.Max() ? (this.finals.Max() < this.wins.Max() ? this.wins.Max() : this.finals.Max()) : this.shows.Max(); + + this.MyBarPlot1 = this.formsPlot.Plot.AddBar(this.shows, this.dates, color: this.GetColorWithAlpha(this.chkShows.ForeColor, 255)); + this.MyBarPlot2 = this.formsPlot.Plot.AddBar(this.finals, this.dates, color: this.GetColorWithAlpha(this.chkFinals.ForeColor, 255)); + this.MyBarPlot3 = this.formsPlot.Plot.AddBar(this.wins, this.dates, color: this.GetColorWithAlpha(this.chkWins.ForeColor, 255)); + + this.MyScatterPlot1 = this.formsPlot.Plot.AddScatter(this.dates, this.shows, markerSize: 4, color: this.GetColorWithAlpha(this.chkShows.ForeColor, 255), label: Multilingual.GetWord("level_detail_shows")); + this.MyScatterPlot2 = this.formsPlot.Plot.AddScatter(this.dates, this.finals, markerSize: 4, color: this.GetColorWithAlpha(this.chkFinals.ForeColor, 255), label: Multilingual.GetWord("level_detail_finals")); + this.MyScatterPlot3 = this.formsPlot.Plot.AddScatter(this.dates, this.wins, markerSize: 4, color: this.GetColorWithAlpha(this.chkWins.ForeColor, 255), label: Multilingual.GetWord("level_detail_wins")); + + this.MyLollipopPlot1 = this.formsPlot.Plot.AddLollipop(this.shows, this.dates, color: this.GetColorWithAlpha(this.chkShows.ForeColor, 255)); + this.MyLollipopPlot2 = this.formsPlot.Plot.AddLollipop(this.finals, this.dates, color: this.GetColorWithAlpha(this.chkFinals.ForeColor, 255)); + this.MyLollipopPlot3 = this.formsPlot.Plot.AddLollipop(this.wins, this.dates, color: this.GetColorWithAlpha(this.chkWins.ForeColor, 255)); + + this.formsPlot.Plot.Legend(location: Alignment.UpperRight); + + this.formsPlot.Plot.YAxis.SetBoundary(-0.9); + this.formsPlot.Plot.YAxis.MinimumTickSpacing(1.0); + + this.formsPlot.Plot.XAxis.DateTimeFormat(true); + this.formsPlot.Plot.XAxis.ManualTickSpacing(Math.Max(1.0, this.manualSpacing), ScottPlot.Ticks.DateTimeUnit.Day); + this.formsPlot.Plot.XAxis.TickLabelStyle(rotation: 45); + //this.formsPlot.Plot.XAxis.SetSizeLimit(min: 50); + this.formsPlot.Plot.SetAxisLimits( + yMin: (this.dates.Length / 14D) * -1, + yMax: this.yMax + (this.dates.Length / 14D), + xMin: DateTime.FromOADate(this.dates[0]).AddDays(-4).ToOADate(), + xMax: DateTime.FromOADate(this.dates[this.dates.Length-1]).AddDays(4).ToOADate() + ); + + this.HighlightedDate = this.formsPlot.Plot.AddPoint(0, 0); + this.HighlightedDate.Color = this.Theme == MetroThemeStyle.Light ? Color.Green : Color.Red; + this.HighlightedDate.MarkerSize = 9000; + this.HighlightedDate.MarkerShape = MarkerShape.verticalBar; + this.HighlightedDate.IsVisible = false; + + this.formsPlot.Refresh(); + this.MyScatterPlot1.IsVisible = false; + this.MyScatterPlot2.IsVisible = false; + this.MyScatterPlot3.IsVisible = false; + this.MyBarPlot1.IsVisible = false; + this.MyBarPlot2.IsVisible = false; + this.MyBarPlot3.IsVisible = false; + this.MyLollipopPlot1.IsVisible = false; + this.MyLollipopPlot2.IsVisible = false; + this.MyLollipopPlot3.IsVisible = false; + + this.chkShows.Checked = true; + this.chkFinals.Checked = true; + this.chkWins.Checked = true; + this.picSwitchGraphStyle.Image = this.graphStyle == 0 ? Properties.Resources.scatter_plot_teal_icon : (this.graphStyle == 1 ? Properties.Resources.lollipop_plot_teal_icon : Properties.Resources.bar_plot_teal_icon); + this.ChangeFormsPlotStyle(this.graphStyle); + } else { + this.formsPlot.Refresh(); + } + } + + private void WinStatsDisplay_Shown(object sender, EventArgs e) { + this.Opacity = 1; + } + + private void ChangeFormsPlotStyle(int style) { + this.BeginInvoke((MethodInvoker)delegate { + if (style == 1) { + // LollipopPlot + this.MyBarPlot1.IsVisible = false; + this.MyBarPlot2.IsVisible = false; + this.MyBarPlot3.IsVisible = false; + this.MyBarPlot1.Label = null; + this.MyBarPlot2.Label = null; + this.MyBarPlot3.Label = null; + + this.MyLollipopPlot1.IsVisible = this.chkShows.Checked; + this.MyLollipopPlot2.IsVisible = this.chkFinals.Checked; + this.MyLollipopPlot3.IsVisible = this.chkWins.Checked; + this.MyLollipopPlot1.Label = Multilingual.GetWord("level_detail_shows"); + this.MyLollipopPlot2.Label = Multilingual.GetWord("level_detail_finals"); + this.MyLollipopPlot3.Label = Multilingual.GetWord("level_detail_wins"); + + this.MyScatterPlot1.Color = this.GetColorWithAlpha(this.chkShows.ForeColor, 0); + this.MyScatterPlot2.Color = this.GetColorWithAlpha(this.chkFinals.ForeColor, 0); + this.MyScatterPlot3.Color = this.GetColorWithAlpha(this.chkWins.ForeColor, 0); + this.MyScatterPlot1.Label = null; + this.MyScatterPlot2.Label = null; + this.MyScatterPlot3.Label = null; + + //this.HighlightedDate.MarkerShape = MarkerShape.none; + } else if (style == 2) { + // BarPlot + this.MyBarPlot1.IsVisible = this.chkShows.Checked; + this.MyBarPlot2.IsVisible = this.chkFinals.Checked; + this.MyBarPlot3.IsVisible = this.chkWins.Checked; + this.MyBarPlot1.Label = Multilingual.GetWord("level_detail_shows"); + this.MyBarPlot2.Label = Multilingual.GetWord("level_detail_finals"); + this.MyBarPlot3.Label = Multilingual.GetWord("level_detail_wins"); + + this.MyLollipopPlot1.IsVisible = false; + this.MyLollipopPlot2.IsVisible = false; + this.MyLollipopPlot3.IsVisible = false; + this.MyLollipopPlot1.Label = null; + this.MyLollipopPlot2.Label = null; + this.MyLollipopPlot3.Label = null; + + this.MyScatterPlot1.Color = this.GetColorWithAlpha(this.chkShows.ForeColor, 0); + this.MyScatterPlot2.Color = this.GetColorWithAlpha(this.chkFinals.ForeColor, 0); + this.MyScatterPlot3.Color = this.GetColorWithAlpha(this.chkWins.ForeColor, 0); + this.MyScatterPlot1.Label = null; + this.MyScatterPlot2.Label = null; + this.MyScatterPlot3.Label = null; + + //this.HighlightedDate.MarkerShape = MarkerShape.none; + } else { + // ScatterPlot + this.MyBarPlot1.IsVisible = false; + this.MyBarPlot2.IsVisible = false; + this.MyBarPlot3.IsVisible = false; + this.MyBarPlot1.Label = null; + this.MyBarPlot2.Label = null; + this.MyBarPlot3.Label = null; + + this.MyLollipopPlot1.IsVisible = false; + this.MyLollipopPlot2.IsVisible = false; + this.MyLollipopPlot3.IsVisible = false; + this.MyLollipopPlot1.Label = null; + this.MyLollipopPlot2.Label = null; + this.MyLollipopPlot3.Label = null; + + this.MyScatterPlot1.Color = this.GetColorWithAlpha(this.chkShows.ForeColor, 255); + this.MyScatterPlot2.Color = this.GetColorWithAlpha(this.chkFinals.ForeColor, 255); + this.MyScatterPlot3.Color = this.GetColorWithAlpha(this.chkWins.ForeColor, 255); + this.MyScatterPlot1.IsVisible = this.chkShows.Checked; + this.MyScatterPlot2.IsVisible = this.chkFinals.Checked; + this.MyScatterPlot3.IsVisible = this.chkWins.Checked; + this.MyScatterPlot1.Label = Multilingual.GetWord("level_detail_shows"); + this.MyScatterPlot2.Label = Multilingual.GetWord("level_detail_finals"); + this.MyScatterPlot3.Label = Multilingual.GetWord("level_detail_wins"); + + //this.HighlightedDate.MarkerShape = MarkerShape.openCircle; + } + + this.formsPlot.Plot.SetAxisLimits( + yMin: (this.dates.Length / 14D) * -1, + yMax: this.yMax + (this.dates.Length / 14D), + xMin: DateTime.FromOADate(this.dates[0]).AddDays(-4).ToOADate(), + xMax: DateTime.FromOADate(this.dates[this.dates.Length - 1]).AddDays(4).ToOADate() + ); + //this.formsPlot.Plot.AxisZoom(0.9, 0.9); + this.formsPlot.Refresh(); + }); + } + + private Color GetColorWithAlpha(Color color, int alpha) { + return Color.FromArgb(alpha, color.R, color.G, color.B); + } + + private void formsPlot_MouseMove(object sender, MouseEventArgs e) { + if (this.dates == null) return; + if (!(this.MyScatterPlot1.IsVisible || this.MyScatterPlot2.IsVisible || this.MyScatterPlot3.IsVisible)) return; + + this.BeginInvoke((MethodInvoker)delegate { + this.formsPlot.Plot.Remove(this.tooltip); + + (int nearestDateIndex, double nearestDateX) = this.GetNearestDateColumn(this.formsPlot.GetMouseCoordinates().x); + + if (nearestDateIndex == -1) return; + + this.HighlightedDate.X = nearestDateX; + this.HighlightedDate.Y = Math.Round(this.formsPlot.Plot.GetAxisLimits().YMax / 1.2); + this.HighlightedDate.IsVisible = true; + + if (this.HasStatisticalData(nearestDateIndex)) { + string tooltipText = this.BuildStatTooltip(nearestDateIndex); + this.tooltip = this.formsPlot.Plot.AddTooltip(tooltipText, this.HighlightedDate.X, this.HighlightedDate.Y); + } else { + string tooltipText = $" {DateTime.FromOADate(this.HighlightedDate.X).ToString(Multilingual.GetWord("level_date_format"), Utils.GetCultureInfo())}{Environment.NewLine}{Environment.NewLine}{Multilingual.GetWord("level_no_statistical_data")}"; + this.tooltip = this.formsPlot.Plot.AddTooltip(tooltipText, this.HighlightedDate.X, this.HighlightedDate.Y); + } + + this.SetTooltipStyle(); + + //this.HighlightedDate.MarkerShape = (this.graphStyle == 0) ? MarkerShape.openCircle : MarkerShape.none; + this.formsPlot.Render(); + }); + } + + private (int index, double x) GetNearestDateColumn(double mouseX) { + double minDist = double.MaxValue; + (int index, double x) nearest = (-1, 0); + for (int i = 0; i < this.MyScatterPlot1.Xs.Length; i++) { + double dateX = this.MyScatterPlot1.Xs[i]; + double dist = Math.Sqrt(Math.Pow(mouseX - dateX, 2)); + if (dist < minDist) { + minDist = dist; + nearest = (i, dateX); + } + } + return nearest; + } + + private bool HasStatisticalData(int idx) { + return this.MyScatterPlot1.Ys[idx] > 0 || this.MyScatterPlot2.Ys[idx] > 0 || this.MyScatterPlot3.Ys[idx] > 0; + } + + private string BuildStatTooltip(int idx) { + var sb = new StringBuilder(); + sb.Append($" {DateTime.FromOADate(this.MyScatterPlot1.Xs[idx]).ToString(Multilingual.GetWord("level_date_format"), Utils.GetCultureInfo())}{Environment.NewLine}{Environment.NewLine}"); + if (this.MyScatterPlot1.IsVisible) + sb.Append($" - {Multilingual.GetWord("level_detail_shows")} : ⟪ {this.MyScatterPlot1.Ys[idx]:N0}{Multilingual.GetWord("main_inning")} ⟫{(this.MyScatterPlot2.IsVisible || this.MyScatterPlot3.IsVisible ? Environment.NewLine : "")}"); + if (this.MyScatterPlot2.IsVisible) + sb.Append($" - {Multilingual.GetWord("level_detail_finals")} : {this.MyScatterPlot2.Ys[idx]:N0}{Multilingual.GetWord("main_inning")}{(this.MyScatterPlot1.Ys[idx] > 0 ? $" - {Math.Truncate(this.MyScatterPlot2.Ys[idx] * 100d / this.MyScatterPlot1.Ys[idx] * 10) / 10}% " : "")}{(this.MyScatterPlot3.IsVisible ? Environment.NewLine : "")}"); + if (this.MyScatterPlot3.IsVisible) + sb.Append($" - {Multilingual.GetWord("level_detail_wins")} : {this.MyScatterPlot3.Ys[idx]:N0}{Multilingual.GetWord(this.MyScatterPlot3.Ys[idx] > 1 ? "level_wins_suffix" : "level_win_suffix")}{(this.MyScatterPlot1.Ys[idx] > 0 ? $" - {Math.Truncate(this.MyScatterPlot3.Ys[idx] * 100d / this.MyScatterPlot1.Ys[idx] * 10) / 10}% " : "")}"); + + if (this.winsInfo.ContainsKey(this.MyScatterPlot1.Xs[idx])) { + sb.Append(BuildWinsInfoTooltip(this.MyScatterPlot1.Xs[idx])); + } + return sb.ToString(); + } + + private string BuildWinsInfoTooltip(double dateKey) { + var infos = this.winsInfo[dateKey]; + int winsCount = infos.Where(kv => kv.Key.EndsWith(";crown")).Sum(kv => kv.Value); + int lossesCount = infos.Where(kv => kv.Key.EndsWith(";eliminated")).Sum(kv => kv.Value); + int winLevelCount = infos.Keys.Count(s => s.EndsWith(";crown")); + int lossLevelCount = infos.Keys.Count(s => s.EndsWith(";eliminated")); + int levelCount = Math.Max(winLevelCount, lossLevelCount); + + var sb = new StringBuilder(); + if (this.MyScatterPlot3.IsVisible) + sb.Append($"{Environment.NewLine} - {Multilingual.GetWord("level_detail_losses")} : {lossesCount:N0}{Multilingual.GetWord(lossesCount > 1 ? "level_losses_suffix" : "level_loss_suffix")}{(this.MyScatterPlot1.Ys[(int)Array.IndexOf(this.MyScatterPlot1.Xs, dateKey)] > 0 ? $" - {Math.Truncate(lossesCount * 100d / this.MyScatterPlot1.Ys[(int)Array.IndexOf(this.MyScatterPlot1.Xs, dateKey)] * 10) / 10}% " : "")}"); + + sb.Append($"{Environment.NewLine}{Environment.NewLine}⁘ {Multilingual.GetWord("level_detail_finals_stats")} ⟪ {winsCount}{Multilingual.GetWord(winsCount > 1 ? "level_wins_suffix" : "level_win_suffix")} / {lossesCount}{Multilingual.GetWord(lossesCount > 1 ? "level_losses_suffix" : "level_loss_suffix")} ⟫ - {Math.Truncate(winsCount * 100d / (winsCount + lossesCount) * 10) / 10}%{Environment.NewLine}"); + + string prevLevel = string.Empty; + int prevLength = 0; + string temp = string.Empty; + int index = 0; + int longestLength = 0; + if (levelCount > 5) { + int i = 0; + StringBuilder c = new StringBuilder(); + foreach (var kv in infos) { + if (!string.IsNullOrEmpty(prevLevel) && string.Equals(kv.Key.Split(';')[0], prevLevel)) { + c.Append($" / {kv.Value}{(kv.Key.EndsWith(";crown") ? Multilingual.GetWord(kv.Value > 1 ? "level_wins_suffix" : "level_win_suffix") : Multilingual.GetWord(kv.Value > 1 ? "level_losses_suffix" : "level_loss_suffix"))}"); + continue; + } + if (!string.IsNullOrEmpty(prevLevel) && !string.Equals(kv.Key.Split(';')[0], prevLevel)) { + if (i % 2 != 0 && longestLength < c.ToString().Length) + longestLength = c.ToString().Length; + c.Clear(); + } + c.Append($"{kv.Key.Split(';')[0]} : {kv.Value}{(kv.Key.EndsWith(";crown") ? Multilingual.GetWord(kv.Value > 1 ? "level_wins_suffix" : "level_win_suffix") : Multilingual.GetWord(kv.Value > 1 ? "level_losses_suffix" : "level_loss_suffix"))}"); + prevLevel = kv.Key.Split(';')[0]; + i++; + } + } + foreach (var kv in infos) { + if (!string.IsNullOrEmpty(prevLevel) && string.Equals(kv.Key.Split(';')[0], prevLevel)) { + temp = $" / {kv.Value}{(kv.Key.EndsWith(";crown") ? Multilingual.GetWord(kv.Value > 1 ? "level_wins_suffix" : "level_win_suffix") : Multilingual.GetWord(kv.Value > 1 ? "level_losses_suffix" : "level_loss_suffix"))}"; + sb.Append(temp); + prevLength += temp.Length; + continue; + } + if (index > 0) { + if (levelCount > 5) { + if (index % 2 == 0) { + sb.Append($"{Environment.NewLine} • "); + } else { + temp = $"{new string('\t', (int)Math.Ceiling(-1f * (prevLength / (float)longestLength) + 1.75f))}\t • "; + sb.Append(temp); + } + } else { + sb.Append($"{Environment.NewLine} • "); + } + } else { + sb.Append(" • "); + } + temp = $"{kv.Key.Split(';')[0]} : {kv.Value}{(kv.Key.EndsWith(";crown") ? Multilingual.GetWord(kv.Value > 1 ? "level_wins_suffix" : "level_win_suffix") : Multilingual.GetWord(kv.Value > 1 ? "level_losses_suffix" : "level_loss_suffix"))}"; + prevLength = temp.Length; + sb.Append(temp); + prevLevel = kv.Key.Split(';')[0]; + index++; + } + return sb.ToString(); + } + + private void SetTooltipStyle() { + this.tooltip.BorderWidth = 1.7f; + this.tooltip.BorderColor = Color.FromArgb(239, this.Theme == MetroThemeStyle.Light ? Color.GreenYellow : Color.Crimson); + this.tooltip.FillColor = Color.Black; + this.tooltip.Font.Color = Color.White; + this.tooltip.Font.Family = Overlay.GetMainFontFamilies(Stats.CurrentLanguage); + this.tooltip.Font.Size = 15f; + this.tooltip.ArrowSize = 5; + } + + private void formsPlot_MouseLeave(object sender, EventArgs e) { + if (this.dates == null) return; + if (!(this.MyScatterPlot1.IsVisible || this.MyScatterPlot2.IsVisible || this.MyScatterPlot3.IsVisible)) return; + + this.HighlightedDate.IsVisible = false; + this.HighlightedDate.X = 0; + this.HighlightedDate.Y = 0; + this.formsPlot.Plot.Remove(this.tooltip); + this.formsPlot.Refresh(); + } + + private void SetTheme(MetroThemeStyle theme) { + this.SuspendLayout(); + this.picSwitchGraphStyle.Image = this.graphStyle == 0 ? Properties.Resources.scatter_plot_teal_icon : (this.graphStyle == 1 ? Properties.Resources.lollipop_plot_teal_icon : Properties.Resources.bar_plot_teal_icon); + this.chkWins.Theme = theme; + this.chkFinals.Theme = theme; + this.chkShows.Theme = theme; + this.chkWins.ForeColor = theme == MetroThemeStyle.Light ? Color.Goldenrod : Color.Gold; + this.chkFinals.ForeColor = theme == MetroThemeStyle.Light ? Color.DeepPink : Color.DeepPink; + this.chkShows.ForeColor = theme == MetroThemeStyle.Light ? Color.RoyalBlue : Color.DodgerBlue; + if (theme == MetroThemeStyle.Dark) { + this.formsPlot.Plot.Style(ScottPlot.Style.Black); + this.formsPlot.Plot.Style(figureBackground: Color.FromArgb(17, 17, 17)); + this.formsPlot.Plot.Style(dataBackground: Color.FromArgb(17, 17, 17)); + this.formsPlot.Plot.Style(tick: Color.WhiteSmoke); + } + this.Theme = theme; + this.ResumeLayout(); + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { + if(keyData == Keys.Escape) { + this.Close(); + return true; + } + return base.ProcessCmdKey(ref msg, keyData); + } + + private void picSwitchGraphStyle_MouseClick(object sender, MouseEventArgs e) { + if (e.Button == MouseButtons.Left) { + this.graphStyle += 1; + if (this.graphStyle > 2) { this.graphStyle = 0; } + } else if (e.Button == MouseButtons.Right) { + this.graphStyle -= 1; + if (this.graphStyle < 0) { this.graphStyle = 2; } + } + this.picSwitchGraphStyle.Image = this.graphStyle == 0 ? Properties.Resources.scatter_plot_teal_icon : (this.graphStyle == 1 ? Properties.Resources.lollipop_plot_teal_icon : Properties.Resources.bar_plot_teal_icon); + if (this.dates == null) return; + + this.ChangeFormsPlotStyle(this.graphStyle); + } + + private void chkWins_CheckedChanged(object sender, EventArgs e) { + if (this.dates == null) return; + if (this.graphStyle == 1) { + this.MyScatterPlot3.IsVisible = this.chkWins.Checked; + this.MyBarPlot3.IsVisible = false; + this.MyLollipopPlot3.IsVisible = this.chkWins.Checked; + } else if (this.graphStyle == 2) { + this.MyScatterPlot3.IsVisible = this.chkWins.Checked; + this.MyBarPlot3.IsVisible = this.chkWins.Checked; + this.MyLollipopPlot3.IsVisible = false; + } else { + this.MyScatterPlot3.IsVisible = this.chkWins.Checked; + } + this.formsPlot.Refresh(); + } + + private void chkFinals_CheckedChanged(object sender, EventArgs e) { + if (this.dates == null) return; + if (this.graphStyle == 1) { + this.MyScatterPlot2.IsVisible = this.chkFinals.Checked; + this.MyBarPlot2.IsVisible = false; + this.MyLollipopPlot2.IsVisible = this.chkFinals.Checked; + } else if (this.graphStyle == 2) { + this.MyScatterPlot2.IsVisible = this.chkFinals.Checked; + this.MyBarPlot2.IsVisible = this.chkFinals.Checked; + this.MyLollipopPlot2.IsVisible = false; + } else { + this.MyScatterPlot2.IsVisible = this.chkFinals.Checked; + } + this.formsPlot.Refresh(); + } + + private void chkShows_CheckedChanged(object sender, EventArgs e) { + if (this.dates == null) return; + if (this.graphStyle == 1) { + this.MyScatterPlot1.IsVisible = this.chkShows.Checked; + this.MyBarPlot1.IsVisible = false; + this.MyLollipopPlot1.IsVisible = this.chkShows.Checked; + } else if (this.graphStyle == 2) { + this.MyScatterPlot1.IsVisible = this.chkShows.Checked; + this.MyBarPlot1.IsVisible = this.chkShows.Checked; + this.MyLollipopPlot1.IsVisible = false; + } else { + this.MyScatterPlot1.IsVisible = this.chkShows.Checked; + } + this.formsPlot.Refresh(); + } + + private void ChangeLanguage() { + this.chkWins.Text = Multilingual.GetWord("level_detail_wins"); + this.chkFinals.Text = Multilingual.GetWord("level_detail_finals"); + this.chkShows.Text = Multilingual.GetWord("level_detail_shows"); + if (Stats.CurrentLanguage == Language.English) { + this.chkShows.Location = new Point(1147, 35); + this.chkFinals.Location = new Point(1053, 35); + this.chkWins.Location = new Point(961, 35); + } else if (Stats.CurrentLanguage == Language.French) { + this.chkShows.Location = new Point(1147, 35); + this.chkFinals.Location = new Point(1042, 35); + this.chkWins.Location = new Point(925, 35); + } else if (Stats.CurrentLanguage == Language.Spanish) { + this.chkShows.Location = new Point(1147, 35); + this.chkFinals.Location = new Point(1042, 35); + this.chkWins.Location = new Point(925, 35); + } else if (Stats.CurrentLanguage == Language.Korean) { + this.chkShows.Location = new Point(1187, 35); + this.chkFinals.Location = new Point(1088, 35); + this.chkWins.Location = new Point(1001, 35); + } else if (Stats.CurrentLanguage == Language.Japanese) { + this.chkShows.Location = new Point(1147, 35); + this.chkFinals.Location = new Point(1048, 35); + this.chkWins.Location = new Point(961, 35); + } else if (Stats.CurrentLanguage == Language.SimplifiedChinese || Stats.CurrentLanguage == Language.TraditionalChinese) { + this.chkShows.Location = new Point(1147, 35); + this.chkFinals.Location = new Point(1053, 35); + this.chkWins.Location = new Point(961, 35); + } + this.picSwitchGraphStyle.Location = new Point(this.chkWins.Location.X - this.picSwitchGraphStyle.Size.Width - 50 , 33); + } + } +} \ No newline at end of file diff --git a/Views/WinStatsDisplay.resx b/Views/WinStatsDisplay.resx new file mode 100644 index 000000000..f53159b63 --- /dev/null +++ b/Views/WinStatsDisplay.resx @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA + AAADNsT/AjbF/wI2xv8DNsX/AjbG/wI2xv8CNsb/AjbG/wI2x/8FMbH/BiaP/wM2x/8CNsX/AjjN/wE8 + 3/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ATze/wI4zP8CNsb/AzbF/wgpj/8GM7P/AzbG/wM2xf8DNsX/AzbF/wM2 + xf8DNsX/AjbF/wI2xv8DNsX/AjbF/wI2xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2xv8CN8j/BS+m/wYl + g/8DN8f/AjbG/wE50/8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA8 + 4P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8APOD/ADzg/wA84P8COdH/AjbG/wM3x/8IJIH/BTCr/wI2 + yP8CNsb/AjbG/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI1xP8CNsb/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8CNsb/AjfI/wcsnP8GJIL/AzfI/wI2x/8BOtj/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ATrW/wI2 + x/8DN8f/ByJ8/wUtof8CN8j/AjbG/wI2xv8CNsb/AjbH/wI2xv8CNsb/AjbG/wM2xf8CNMP/AjbG/wI2 + xv8CNsb/AjbG/wI2xv8CNsb/AjbG/wI3yP8IK5r/BiSD/wM3x/8CN8n/ATze/wA94v8APOH/ADzh/wA9 + 4v8APeL/ADzh/wA84f8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/AD3i/wA94v8APeL/ADzh/wA8 + 4f8APOH/ADzh/wA84f8APOH/ADzh/wA84f8APOH/ADzh/wA94f8APeH/AD3h/wA84f8APOH/ADzh/wA8 + 4f8APOH/ADzh/wE73P8CN8n/AzfH/wYjf/8FLZ//AjfI/wI2xv8CNsf/AjbG/wI2xv8CNsb/AjbG/wI2 + xv8DNcP/AjXF/wI2x/8CNsj/AjbH/wI2x/8CNsb/AjbG/wI2xv8CN8j/Byuc/wYlhv8DN8f/AjjN/wE9 + 4f8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3i/wA9 + 4v8APeP/AD3i/wA94/8APeP/AD3i/wA94/8BPeD/AjfL/wM3x/8GJIH/BS2g/wI3yP8CNsb/AjbG/wI2 + xv8CNsf/AjbH/wI2x/8CNsf/AjXF/wI72P8CPNv/Ajvb/wI72f8COtj/ATnU/wI4z/8CN8n/AjfI/wYt + oP8GJ4r/AzfH/wI50f8APeL/AD3i/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA9 + 4/8APeP/AD3j/wA84/8APOL/ADzj/wE94v8CP+P/Aj7i/wE94v8APOL/ADzi/wA94/8APeP/AD3j/wA9 + 5P8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AD3j/wA94/8APeP/AT3i/wI50P8DN8b/BiaG/wUu + pf8CN8j/AjfI/wI4zv8COtP/ATrY/wE72f8CPNr/Ajvb/wI72P8BPeH/AD3k/wA95P8APeT/AD3k/wA9 + 5P8BPeL/ATzd/wI50/8FL6n/ByqQ/wM3x/8BOtb/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA9 + 5P8APeT/AD3k/wA95P8APeT/ADzj/wE+4/8NR+b/Jlrp/0Bw7/9WgPL/Yony/2GJ8v9Uf/L/PW3u/yFX + 6f8KReX/AT3j/wA84/8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeT/AD3k/wA95P8APeP/AD3k/wA9 + 5P8COtT/AzfG/wcni/8EMK7/AjnS/wE83P8BPeL/AD3k/wA95P8APeT/AD3k/wA95P8BPeH/AD3j/wA+ + 5f8APub/AD7m/wA+5f8APuX/AD7l/wA+5v8BPub/BDXB/wgsmP8DN8f/Ajva/wA+5v8APub/AD7l/wA+ + 5v8APub/AD7l/wA+5v8APub/AD7m/wA+5v8APeX/Aj7l/xlR6P9Sfe//lbD3/8XU+v/i6fz/7vP+//L2 + /v/y9v7/7fP+/9/o/P/B0fr/jan2/0h17v8TS+b/AD3l/wA95f8APuX/AD7l/wA+5f8APuX/AD7l/wA+ + 5f8APuX/AD3l/wA+5f8APub/AjvZ/wI3x/8GKZX/BDbE/wA+5f8APub/AD7m/wA+5f8APub/AD7l/wA+ + 5v8APub/AT3i/wE+4/8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7n/wM50v8ILqP/AjfJ/wE8 + 3v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APeb/CkXm/0t37v+rwff/6e/9//3+ + //////////////////////////////////////////////z9///l7P3/obn4/0Bu7f8GQeb/AD3m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wA+5v8APub/AD7m/wI83f8CN8j/Biyk/wM61P8APuf/AD7m/wA+ + 5v8APub/AD7m/wA+5v8APub/AD7m/wE+4v8APuT/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8COtj/BTCw/wI3yv8BPeP/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APeb/FEzm/3qa + 7v/h6fv//v////////////////////////////////////////////////////////////////////7+ + ///b5fz/bpLx/w5I5v8APeb/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeH/AjfJ/wQu + sP8CO9r/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8BPeP/AD3k/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/ATzf/wM0vP8COM3/AD7k/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APef/FU3k/46p7v/z9v3///////////////////////////////////////////////////////// + //////////////////////////////H1/v+GpPP/D0nm/wA95/8APuf/AD7n/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD3k/wI3zP8FMrr/Aj3g/wA+5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5/8APuf/AD7l/wA/ + 6P8AP+r/AD/p/wA+6P8APuj/AD7o/wA+5/8APuf/AD7n/wI+4/8ENsf/AjnQ/wA+5/8APuf/AD7n/wA+ + 5/8APuf/AD7o/wA+5/8APef/C0Xh/4ij6P/3+f3///////////////////////////////////////// + ////////////////////////////////////////////////////////9fj+/36d7/8IQ+X/AD7n/wA+ + 5/8APuf/AD7n/wA+5/8APuf/AD7n/wA+5f8COM7/BDbI/wI+4/8APuj/AD7n/wA+6P8APuj/AD7o/wA/ + 6f8BP+r/AT/q/wI/5P8KMKH/CDOw/wU3xP8FPNb/BEDj/wFA6/8AP+v/AD/q/wA/6f8BP+f/AjnQ/wI5 + 0/8BP+n/AD/p/wA+6P8APuj/AD7o/wA/6f8AP+n/AD3j/2GE3//x9Pv///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///s8fz/V3/o/wA+5/8APun/AD7p/wA+6P8AP+n/AD7o/wA/6f8BP+f/AjnR/wI50v8BPuf/AD7p/wA/ + 6v8BQOv/BEDl/wU81f8FNLv/BiyZ/wMie/8CG2X/AQIK/wMFEv8CCBz/BA8z/wYZV/8GJYP/BzS0/wU9 + 2v8CQOv/AD/q/wE61P8COtb/AD/q/wA/6v8AP+n/AD/q/wA/6f8AP+r/AD3p/ypZ2f/V3vP///////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////8vX9f8hVeL/AD7q/wA/6f8BP+r/AD/q/wE/6v8BP+r/AT/p/wI6 + 1f8COtb/AD/r/wNA6P8FOsz/BiyX/wMaXv8JEDT/FQ4f/y0WHf9HHyP/Wycq/wEBAP8JCQj/AgIC/wAA + AP8AAAD/AAAD/wEFFP8FEkD/ByiM/wU91/8CO9j/AjvZ/wE/6/8BP+v/AT/r/wE/6/8BP+v/AT/s/wQ+ + 3v+KoeH///////////////////////Hw8P+ko6T/i4qK/87Nzv////////////////////////////// + /////////////+rq6v+bmpr/j46P/9jY2P/////////////////9/v7/e5nn/wI/5v8AP+v/AT/r/wE/ + 6/8BP+v/AT/r/wE/6/8CO9j/AjzZ/wY6zf8FIHb/Bwws/x8PFv9OIiT/fzY8/6RETv+8T1z/x1dl/8pT + Yv8BAQH/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQIE/wMIF/8FFU//Bze+/wE83f8BP+v/AT/r/wE/ + 6/8BP+v/AT/r/wA+6v8oVtP/2eH0//////////////////////+Wlpb/LCsr/ygnJ/9NTE3/4uLi//// + //////////////////////////////z8/P+CgoL/Kigo/ygmJv9cW1z/7e3t/////////////////9Hc + 9f8fU9//AD7r/wE/6/8BP+v/AT/r/wE/6/8BP+v/Ajzc/wczsf8FETr/Kx0L/3U1M/+tSFT/xlFg/81S + Y//NUmL/zFJi/8xUY//LUmH/AAAA/wAAAP8AAAD/AAAA/wkJCP8PDw7/CwsK/wcNFf8KLl7/BA8l/wYg + b/8CPd//AUDt/wFA7P8BQOz/AUDs/wFA7f8APOP/Z4TX//r7/f/////////////////6+vr/bGxs/zMy + Mv83Njb/OTg4/8XFxf/////////////////////////////////x8fH/XFtb/zQzM/83Njb/QkFB/9XV + 1v/////////////////4+v3/W3/e/wA96P8BQOz/AUDs/wFA7P8BQOz/AUDt/wQ82f8EF1X/QzUD/7uM + GP/PYlr/z1lp/89bav/NVWX/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wEBAf8UFBT/FxcW/wwL + Cv8LERv/Czx6/wclTP8EET//BDzX/wFA7v8BQO3/AUDt/wFA7f8BQO7/CD/Y/56v4v////////////// + ////////+fn5/29tbv85Nzf/PDo6/z89Pf/Dw8P/////////////////////////////////7+/w/19e + X/87OTn/PDo6/0dGRv/U1NT//////////////////////5at5v8EP+H/AUDu/wFA7f8BQO3/AUDt/wFA + 7v8EOtH/CxMz/5R4Cv/eqRj/z2Rb/85Zaf/SYW//z1xq/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAA + AP8EBAT/FxYW/xUUFP8ICAf/ChAZ/wQ2dv8GLWD/Aw0x/wQ6zv8BQO//AUDt/wFA7f8BQO3/AD/t/xdI + 0v/Dzej///////////////////////j4+P9wb2//Pjw8/0E/P/9CQED/w8PD//////////////////// + //////////////Dw8P9iYWH/Pz09/0A/P/9KSEn/1NTU///////////////////////Aze3/EUbZ/wA/ + 7v8BQO3/AUDt/wFA7f8BQO//AzfK/xYYJf+xjwX/2qUQ/85jWv/NV2f/0WBu/9Ffbv/LUmL/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAAAP8MDAv/ExIR/wULE/8FNnb/BDJt/wMMKf8FOMb/AUHv/wFA + 7f8BQO3/AUDt/wA+6/8nUs7/1tzs///////////////////////4+fn/cXFx/0JBQf9IR0j/VVRU/8XE + xP/////////////////////////////////w8PD/ZGNj/0JCQv9JSUn/W1tb/9XV1f////////////// + ////////2eHz/x5P1v8AP+3/AUDt/wFA7f8BQO3/AUHv/wM0v/8iHxr/wZwD/9qkEf/NYFj/0F5u/81X + Zv/KUWH/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwMD/wUEA/8BBxD/BDV0/wM1 + dv8DDCX/BzS2/wFB8P8BQO3/AUDt/wFA7f8APur/MFjN/9rf7f///////////////////////v7+/5GR + kf9CQkL/Tk5O/4aFhv/d3d3/////////////////////////////////+fn6/4CAgP9CQkL/VFRU/42N + jf/o6Oj//////////////////////+Pp9v8mU9T/AD7s/wFA7v8BQO7/AUDt/wFB8P8GMKz/MCcS/8mi + A//ZoxD/zF1U/8xVZf/LUmL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/BAoS/wU2dv8DN3r/Aw0k/woxp/8BQvH/AUDu/wFB7v8BQO7/AD7q/y9YzP/Y3ev///7+//// + ///////////////////n5+f/kpKS/3x8fP++vr7//f39//////////////////////////////////// + ///f3t7/i4qL/4B/gP/Kysr////////////////////////////g5/b/JFLR/wA/7P8BQO7/AUDu/wFB + 7v8CQvH/BCmU/zwwDf/QqAX/2aMQ/81eVv/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkPF/8QQHz/Bjt+/wQPJ/8ILJb/AkPz/wFB8P8BQfD/AUHw/wA/ + 7P8lUMv/z9Xm//39/P////////////////////////////39/f/7+/v///////////////////////// + //////////////////////////////39/f/8/Pz/////////////////////////////////09vy/xxK + 0P8AQO7/AUHw/wFB8P8BQfD/AkLy/wMhff9MPAf/1q0I/9yoG//OYFn/y1Bi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CBxD/Bjd1/wY9g/8FEi3/BSSC/wJD + 8/8BQfD/AUHw/wFB8P8AQO7/F0XL/7nD4P/4+fj///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////7XD6P8PQc//AEHw/wFB8P8BQfD/AUHw/wNC7v8CG2f/YUwE/9qxBf/YoxL/zF1U/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8BAQH/AAAA/wAAAP8AAAD/AQcQ/wM0 + dP8CPIb/BBg2/wUea/8DQ/H/AULy/wFC8v8BQvL/AULy/wc80f+Spdj/8vLy//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v+HnNr/AzrX/wFC8v8BQfH/AULx/wFC8v8FQuf/BhZL/3ti + BP/dsgD/2KIO/8xdVP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/CwsL/wUF + Bf8AAAD/AAAA/wIHD/8DNHP/AT2J/wQgRv8GFlD/BkPq/wFD9f8BQ/P/AUP0/wFD9P8AO9//W3jL/+Tm + 6//6+vr///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////s7/j/TG3L/wA85f8BQ/T/AUPz/wFD + 9P8BQ/X/BD7b/wwTL/+Zewj/3bIA/9iiD//MXVT/y1Bi/8tRYf/MVWX/zlhn/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wUEBP8FBQX/AAAA/wAAAP8FChP/DDt4/wlDjf8ILFv/BA81/wU/3P8BQ/X/AUPz/wFD + 9P8BQ/T/AEDs/yFLxf/AyeL/8fHx//7///////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v3/usbl/xhG + yf8AQfD/AUP0/wFD9P8BQ/T/AUT2/wU2wP8YFxj/tpML/960B//apRb/zF5W/8tQYv/LUWH/zFZl/8xU + Y//LUWH/y1Fh/8tRYf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DBQd/w9Aff8JPoL/Bhw7/wIH + Hf8IOMD/AUT2/wFD9P8BQ/T/AUP0/wFD9P8DOtP/dIvQ/+Xn6v/29vf///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7/7e/0/2R/zv8BOtr/AUP0/wFD9P8BQ/T/AUP0/wJE9v8HK5T/DAoM/3hgCv/UrAr/3Kkd/85j + W//LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/CAgH/w4ODf8ICAf/AAAA/wAAAP8AAAD/AAAA/wkR + Gf8SQHr/CSNF/wMMLP8KIGb/CS+i/wJE9v8BQ/T/AUP0/wFD9P8BQ/X/AT/r/x9Jw/+0wOH/6uvr//n5 + +v////////////////////////////////////////////////////////////////////////////// + ////////////////////////9/f3/6q33v8WRMf/AEHv/wFD9P8BQ/T/AUP0/wFD9f8EQ+7/CCN//wUb + Xv8MDRr/gGgL/9mnH//OYVn/y1Bh/8tRYf/LUWH/y1Fh/81XZv/PWmn/zFVl/wAAAP8KCQn/EhIS/wAA + AP8AAAD/AAAA/wAAAP8HDRb/Gzdd/wUNJf8HLJf/BzrK/wkrmv8DQ+//AUP2/wFD9f8BQ/X/AUP2/wFD + 9v8AOdj/R2fF/9DW5//r6+v/+fn6//////////////////////////////////////////////////// + ////////////////////////////////////////9/f2/8vT5/86XcT/ADvh/wFD9v8BQ/X/AUP1/wFD + 9f8BQ/b/BT7e/woqmP8FOMj/Ah1x/yIdEP+5jSj/z2BY/8tQYv/LUWH/y1Fh/8tSYv/RXmz/zFZl/8tR + Yf8AAAD/Dg4O/wgICP8AAAD/AQEB/wcHBv8BAQD/AwgP/wcVKf8FF1P/Az7e/wFD9P8JM7f/BT/i/wFD + 9v8BQ/X/AUP1/wFD9v8BQ/b/AULy/wU3yv9ge8v/1tvn/+rq6v/19vb//v7+//////////////////// + ///////////////////////////////////////////////////9/f3/8/Pz/9LY5/9Tccj/AznT/wFD + 9P8BQ/X/AUP1/wFD9f8BQ/X/AUT3/wc6zf8HOMf/AUP3/wQ2w/8EDzT/eFUV/85fVv/LUmP/zFVl/8tR + Yf/KUWH/zllo/85YZ//LUWH/AgIC/wsLC/8BAQH/AAAA/wEBAf8GBgb/AAAA/wQGCv8GCxr/BSWD/wFD + 9f8AQ/n/BD7i/wQ94P8BQ/b/AUP2/wFD9v8BQ/b/AUP2/wFD9v8BQO7/BzfF/196y//P1eb/5+jo/+7v + 7//5+fr//v7+//////////////////////////////////////////////////39/v/29/f/7e3t/8nR + 5v9Tccj/BTjM/wFC8f8BQ/b/AUP1/wFD9v8BQ/b/AUP1/wFD9f8FOtX/AkHs/wBD+f8CQez/ARhd/1U3 + Ev/KW1f/y1Fi/8xWZf/LUWH/y1Fh/8tTYv/OWWj/y1Ji/wMDA/8DAwP/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBgr/BgoZ/wUojf8BRPn/AEP4/wBD9v8BQvH/AEP3/wBD9/8AQ/f/AEP3/wBD9v8AQ/f/AEP3/wFA + 6/8ENcX/Q2XF/6+94f/i5Oj/6Ono/+3u7v/19fX/+fn6//z8/P/9/f3//v7+//39/f/8/Pz/+Pj5//Pz + 8//t7u3/4OPp/6e23v86XcP/AzfM/wFC8f8AQ/f/AEP3/wBD9v8AQ/f/AEP2/wBD9/8AQ/X/AUHx/wBD + +P8AQ/j/AUP1/wEbaP9TNRH/yltX/8tQYv/LUWH/y1Fh/8tRYf/LUWH/y1Rj/8tTYv8AAAD/AAAA/wAA + AP8AAAD/BAQD/woKCv8LCgr/DBAY/wkUJ/8FHWb/A0T0/wBD+P8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEDw/wE1zf8bRL3/aoXQ/7jD4v/c4Oj/5ufo/+jp6f/q6ur/6+zs/+zt + 7f/r7Ov/6uvq/+fo6f/b3+j/sb/i/2F+zv8WQLz/ATfT/wFC8/8AQ/j/AEP4/wBD+P8AQ/j/AEP4/wBD + +P8AQ/j/AEP4/wBD+P8AQ/j/AEP5/wRC6/8EFEj/cVAW/9BlXP/OWGj/zVhn/8tTY//LUWH/y1Fh/8tR + Yf/LUWH/AAAA/wAAAP8AAAD/AAAA/wUGBf8KCgr/CQgI/xIYIf8XMVP/BAwr/wc4w/8BRPv/AEP4/wBD + +P8AQ/j/AEP5/wBD+f8AQ/j/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/b/ATvf/wIzw/8aRL3/Tm7K/4Oa + 2P+ot+D/v8ji/8jQ5P/H0OT/vsfi/6W14P9+ltf/SWrI/xdBvf8CM8X/ATzi/wBD9/8AQ/n/AEP5/wBD + +f8AQ/n/AEP4/wBD+P8AQ/n/AEP4/wBD+P8AQ/j/AEP4/wFF+/8GMrD/GRcX/6+FJ//TaV//zVdn/81Y + Z//LVGP/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8DAwP/CgoK/w4NDP8YHSX/GEJ5/wQY + Nv8FEUL/BznG/wJE9v8ARPv/AUT7/wJF+f8BRPr/AEP5/wBD+f8AQ/n/AEP5/wBD+f8AQ/n/AEP6/wBE + +v8BQvL/ATvf/wA0y/8ENMD/Dju9/xpFwf8gSsL/IErC/xpEv/8OOrz/AzO//wA0yv8BO97/AULz/wBD + +v8AQ/n/AEP5/wBD+f8AQ/n/AEP5/wBD+f8ARPn/AUT5/wFE+f8ARPv/AUT7/wNE9P8GNLn/CBEz/25Z + Cf/bqib/02pi/85Zaf/NV2b/y1Nj/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/woK + Cv8LCwr/ChAY/xRDgP8DN3n/BBc1/wMMLP8GIHD/CC6c/wgumv8GI3v/CjvF/wJF/P8ARPv/AET7/wBE + +/8ARPv/AET7/wBE+/8ARPv/AET7/wBE+/8AQ/j/AEHy/wE+5/8BPOD/ADne/wA63v8BPOH/AT7n/wFB + 8P8BQ/j/AET7/wBE+/8ARPv/AET7/wBE+/8ARPv/AET7/wVH+v8VU/z/ElH7/ww0rf8DIHz/Bi2f/wYr + mf8DG2j/ERMf/2lTB//Opgb/36wi/85hWv/OWWr/zFZm/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8BAQH/AAAA/wIHEP8ENXT/ATyI/wM6f/8FKVj/BRYy/wQPJv8EECf/BA0d/wgV + P/8QQ9L/Akb+/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/f8ARP3/AET9/wBE + /f8ARP3/AET9/wBE/f8ARP3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8SUf3/HVr+/w44 + uP8MECb/OC0I/zYsDP85Lgz/WUYG/51+B//UqwT/27EA/9ijEf/MXVX/ylFi/8tRYf/LUWH/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CCBD/BTV0/wE7h/8BO4b/ATyI/wM7 + g/8EOXz/Azl8/w81gP8eEE7/DBdH/xZHzv8GSf3/AEP8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARP3/BEf7/wk0tP8CDy//JVkz/7emFv/OpQT/zqYF/9etBP/csQH/2q8A/9qwAP/YoxH/zF1V/8tQ + Yv/LUWH/y1Fh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BAkR/xdE + f/8GQIr/ATuG/wE7hv8BO4b/ATuH/wA7hv8SN5b/YiHV/zANZf8MFDv/GkS1/xBP+v8CRv7/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARf7/A0Px/wYqmP8EESf/CGFI/yW4d/+9shP/3bAA/9uwAP/arwD/2q8A/9qv + AP/bsgf/3akg/8xdVf/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wEHD/8UQn3/FU2T/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETaV/20g7/93He3/PhGA/w0M + Mf8WMn//HFLg/w5P/v8DRv3/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE/P8ARPz/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AkX8/whL/v8JSvr/BjrN/wUaYf8FHCD/C3hZ/wO9jv8fwHz/vbET/9yv + AP/arwD/2q8A/9qvAP/arwH/4boY/9qnHP/MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wMDA/8AAAD/AAAA/wAAAP8BBw//BDR0/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xQ6 + l/9tIu7/fxv//3wd+f9ZGLP/HwpI/w0WP/8aPJb/HlPh/xRT/P8IS///Akb9/wBD/P8AQ/z/AET8/wBE + /P8ARPz/AET8/wBE/P8ARPz/AEP8/wFF/P8GSf7/EVL//x9b+v8lVdf/Eyx//wURKv8JQTH/C5xz/wPC + j/8Awo//Ib98/72yFf/crwD/2q8A/9qvAP/arwD/2q8B/9uyBP/YohD/zF1U/8tQYv/LUWH/y1Fh/8tT + Yv/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8KCgr/BQUF/wAAAP8AAAD/AQcQ/wM0dP8AO4f/ATuG/wE7 + hv8BO4b/ATuG/whDiv8dQp3/bSHu/34b//99G///fhz//3Md5v9IE5L/Ggk//w0UPP8YMHn/IUm8/x9V + 5v8ZVfn/EFH//wpN//8JS///B0r//whL//8JTP//DU///xVV//8eWfb/JFfg/yNGsP8WKWr/Chgu/wg3 + K/8LgV//B7mJ/wHDkP8AwY7/AMGP/yHAff/BtiD/3bEF/9qvAP/arwD/2q8A/9qvAP/asAD/2KIP/8xd + VP/LUGL/ylFh/81WZf/NV2b/ylFh/8pRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wEBAf8AAAD/AAAA/wII + EP8IN3X/CUOL/w1FjP8ORo3/CUKK/wI8hv8DPof/EjeW/2wg7v9+G///fRv//30b//9+G///fh3+/3Ic + 5P9IGqD/DyJY/wYUM/8MFz3/FCZg/xk1hv8fQKL/I0e0/yBKvf8hSr7/I0a0/yA+nv8ZMX7/EyJX/wsZ + OP8IJTj/C1Re/wuNbv8Gt4f/AcOQ/wDCjv8AwY7/AMGO/wDBj/8fv3v/vbIV/9ywAf/arwH/3LIK/9yz + Df/dswz/27IH/9ijEv/MXVX/y1Bi/8pRYf/LUmL/y1Ji/8tRYf/LUWH/y1Fh/wEBAf8BAQH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8DCBH/Bzd1/wZAiv8IQYr/CkKL/wxFjP8FPoj/ADuF/xE2lf9sIO7/fhv//30b + //99G///fRv//30b//9/Gv//bSj+/xds9v8Hatf/C1On/wg5eP8JKFf/CR5F/wYZO/8FFTL/AwgY/wgh + M/8MNkn/Ck1e/wpuhf8Ol7b/Cbvj/wjO7f8CxZ7/AMGN/wDBjv8BwY7/AMGO/wDBjv8AwY//IL97/72x + E//crwD/27EG/9yzC//csgr/3LII/9uyBf/YoxL/zF1V/8pQYv/LUWH/y1Fh/8tRYf/LUWH/y1Ji/8tS + Yv8FBQT/Dg4O/woKCv8AAAD/AAAA/wAAAP8AAAD/AgkS/ws7ef8MRY3/CECJ/xVMkf8WTZH/CEGK/wA7 + hf8RNpX/bCDu/34b//99G///fRv+/4Yo/f+CI/3/hCT9/20p/P8Sbf3/AHz//wF8//8De/7/B3n3/wh1 + 7f8Gceb/C2nP/wgdMf8RfJb/C8v2/wjQ/P8D1P//AtT//wHT//8Cz/D/BcSe/wnEkv8LxJP/DMWU/wDB + jv8AwY7/AMGP/x+/e/+9sRP/3K8A/9yzC//ftxX/37cT/9uwBv/dtAv/2aUW/81eVv/LUGL/y1Fh/8tR + Yf/LUWH/zlln/85aaf/LVGP/AAAA/wgICP8RERH/AAAA/wAAAP8AAAD/AAAA/wMJEv8IOXf/CUKL/xRM + kf8JQor/EkqQ/wdAiv8AO4X/FDqX/3Al7/9+G///fRv//38e/v+LL/v/izD7/4kq/P9xMPz/E279/wB7 + /v8Bev7/AXr+/wF6/v8Bev//AXr//wiE+/8LQV7/ClNm/wbR/f8A0f//AdH//wHR//8B0f//A9Dw/wzG + of8TxpX/Gsma/xXHmP8Cwo//AcOQ/wPAj/8ov37/wLQW/92wAP/cswr/3rYQ/9yzC//fthP/27IG/9ml + Fv/NXVb/y1Bi/8tRYf/LUWH/y1Ji/9BdbP/LVWT/y1Fh/wAAAP8NDQ3/BgYG/wAAAP8AAAD/CgoK/wUE + BP8BBxD/AzR0/wE8h/8FPoj/ATuG/wE7hv8BO4b/ADuF/xQ6lv9yKO7/fxz//30b//9/Hv7/hSf9/4Yp + /f+FJfz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Eh///D3KY/wgoM/8Kv+j/AdL//wHR + //8B0f//AdH//wPP8P8KxJ//DsWT/xLHlv8Ox5X/CbiJ/wt9XP8HTTj/Fkgv/3FjD//Bmwb/27AB/9qv + AP/arwH/27EE/9qwAP/Yog//zF1U/8xVZv/NVmb/y1Fh/8tRYf/NV2b/zllo/8tRYf8CAgL/BQUF/wAA + AP8AAAD/AAAA/wUFBP8BAAD/AQcQ/wM0dP8BO4f/ATuG/wE7hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b + //99G///fRv//30b//99G///fhv//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4b//w+h + 0P8GHif/D5u9/wLU//8B0f//AdH//wHR//8Dz/D/AsOc/wHBjf8Bwo//B7WG/wlMOf8DCx//AxNP/wMU + VP8EDCv/OS0J/7eTCP/csAD/2q8A/9qvAP/asAD/2KIP/8xdVP/LUmP/zFVk/8tRYf/LUWH/y1Fh/8xW + Zf/LUmL/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AAAA/wEHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wE7 + hv8AO4X/ETaV/2wg7v9+G///fRv//30b//99G///fRv//38c//9sJ/3/Em39/wF7/v8De/7/AXr+/wJ6 + /v8Bev7/AXn+/wKE//8LvfP/CjlH/wxrg/8F0///AdH//wPR//8B0f//As/w/wLDnf8CwY7/AsOQ/wpy + VP8DDCX/BC6n/wM/5f8DPuL/BTCt/wEOOf9UQwf/06oE/9uvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tS + Yv/LUmL/y1Fh/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8LCwv/EhIS/xAPDv8KEBn/Bjd3/wI8 + h/8BO4b/ATuG/wdAif8EPoj/ADuF/xE2lf9sIO7/fhv//4Ij/f+BIf7/fRv//34c//+DIv3/bCj8/xJt + /f8IgP7/FYb9/w+C/f8LgP3/AXr+/wF5/v8ChP7/Bsj//wxthP8KPUz/Fc31/w/U/v8U1f7/BtL//wLP + 8P8FxJ7/CMSR/we9jP8KPi7/BB1w/wJE+P8ARP7/AET9/wJB7/8DI4b/HxoO/7+aCP/csAD/2q8A/9qw + AP/ZpBP/z2Na/9Bba//QXWv/zVdm/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/CAgI/w4O + Dv8JCAf/DxUe/w4+ev8EPoj/ATuG/wE7hv8JQor/CUOL/wE8hf8RN5X/cyrs/4Qk/f+IK/z/hin8/4Ml + /f9+Hf//fhr//2sn/f8Tbf3/DYP9/xWG/f8Pgv3/DoH9/wZ8/f8Bef7/A4T+/wPI//8NpMX/CCg0/xa2 + 2v8R1///FNb//w3W//8E0vH/A8Sd/wW+jP8PsIT/Cy4n/wUnj/8BRf//AET8/wBE/P8BRPr/Ayqe/xkW + Ev+6lgj/3LEA/9qvAP/bsQT/2qca/9FmXf/MVmb/zltp/8xWZf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAA + AP8AAAD/AAAA/wUFBP8PDw//EhIR/xogKP8SQX7/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/EjiU/3Yv + 6/+HKP3/giL9/4Eh/f+BIv3/fhz//34a//9rJ/3/E239/wqA/f8Qg/3/C4D9/wZ8/f8Cev7/AXn+/wOE + /v8Dxv//Ccfw/wo5R/8Xh6L/FcPp/xiv0v8Zm7r/EYif/wt6Yv8Pf17/Eo1q/wlBMP8FGVz/BETz/wBF + //8JS///B0bw/wIcb/8xJwj/yaIF/9uwAP/arwD/2rAB/96rIP/UbWT/z1tr/89aaf/LVGP/y1Fh/8tR + Yf/LUWH/y1Fh/wAAAP8AAAD/AAAA/wAAAP8AAAD/EREQ/wsKCf8HDRb/CTp4/wE7h/8BO4b/ATuG/wE7 + hv8BO4b/ADuF/xI5lf91Luv/hib+/4Um/f+CIv3/fx/9/30c//9+Gv//ayf9/xJt/f8Ae/7/Anr+/wN7 + /v8Ce/7/AXr+/wF5/v8DhP7/A8b//wTT//8LbIX/CyUx/w1DVf8NUmf/DHCM/xKRqP8JpYT/BraG/wXB + j/8NmHH/Bhwh/wche/8FOtD/DkLS/wgng/8LDRj/hWsI/9qwAv/arwD/2q8A/9qwAP/aphf/zWBY/85Z + av/PWmn/ylFh/8tRYf/LUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf8AAAD/AQcP/wM0 + c/8BO4f/ATuG/wE7hv8BO4b/BT6I/wM+hv8RN5X/cCXt/4Eg//9/Hv7/fhz+/30b//99G///fhr//20o + /f8WcP3/AHv+/wF6/v8Bev7/AXr+/wV8/f8Iff3/DIn9/xHJ/v8O1f//Dr/n/w6dv/8Jtd3/Ccr0/wXT + //8H0/H/AcSe/wDBjf8AwY7/A8GP/wuNaf8IMir/BBUl/wUSJP8lIAz/gWgL/9OrB//brwD/2q8A/9qv + AP/asAD/2KIP/8xdVP/LUWL/y1Ji/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wIHEP8DNHT/ATuH/wE7hv8BO4b/ATuG/wdAif8EPof/ETaV/2wg7v9+G///fRv//30b + //99G///gB/9/4Qj/f9tKf3/G3L9/wF7/v8Bev7/AXr+/wF6/v8Kf/3/BXz+/waG/v8Ix/7/BtP//wTS + /v8C1P//AdL//wDR//8D0f//C9Hv/wTDnf8KxJL/BMKQ/wDBjv8Bw4//B7WG/wmZcv8ikl7/q50T/9yx + B//csQX/2q8A/9qvAP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LUWH/y1Fh/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DCRH/DT16/wU/if8BO4b/ATuG/wE7hv8BO4b/ADuF/xE2 + lf9sIO7/fhv//30c//+AIP7/hSf9/4Yp/P+JK/v/cC37/xJt/f8Ae/7/AXr+/wF6/v8De/7/D4L9/wyA + /f8Fhf7/Bcb//wnT/v8E0f7/AdH//wHR//8B0f//AdH//wPP8P8LxqH/E8aW/w/Glf8MxZP/BMKQ/wDC + j/8Aw5H/H8J9/76yE//crwD/2q8A/9qvAP/arwD/2q8A/9uxBP/aphj/zF1V/8tQYv/LUWH/y1Fh/8tR + Yf/KUWH/y1Fh/8tRYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgcQ/wo6d/8KQ4z/ATuG/wE7 + hv8BO4b/ATuG/wA7hf8RNpX/bCDu/34b//9+Hf7/gSL9/4Mk/f+CI/z/iCn7/3Qz+v8Sbf3/AHv+/wF6 + /v8Hff3/CH7+/xuK/v8Vhf3/Dor9/w3H/v8N1P7/CtL+/wTR/v8E0v7/AdH//wHR//8Dz/D/Esik/w/F + lP8Kw5L/C8ST/wnEkv8Cwo//AMGP/x+/e/+9sRP/3K8A/9qvAP/arwD/2q8A/9qvAf/dtQr/2aQU/8xd + VP/LUGL/y1Fh/8tRYf/LUWH/y1Fh/8tRYf/LUWH/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AAAA/wIH + D/8DNHP/ATyH/wE7hv8BO4b/ATuG/wE7hv8AO4X/ETeV/2wg7v9+G///fRv//34e/v+DJfz/iCz7/4Ul + /P9xL/z/Em39/wB7/v8De/7/CH79/wp//v8RhP3/A3v+/xKM/f8Pyf3/AtL//wXR/v8F0v7/DdP+/wPR + //8B0f//A9Dw/w3Hov8OxZP/E8eX/wvDkv8DwY//AMGO/wDBj/8fv3v/vbET/9yvAP/arwD/2q8A/9qv + AP/arwD/2rAA/9iiD//MXVT/y1Bi/8tRYf/LUWH/y1Ji/8tRYf/LUWH/y1Fh/wAAAP8AAAD/AAAA/woK + Cv8EBAT/AAAA/wAAAP8CBw//AzRz/wE7h/8BO4b/ATuG/wE7hv8BO4b/BD6H/xs/m/9tIe7/fhv//30b + //9+HP//fh3+/38e/v9+G///ayb9/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8Ghf3/Bcb+/wHS + //8B0f//AdH//wPR//8C0f//AdH//wPP8P8Bw5z/AcGN/wTCkP8Dwo//AsGO/wDBjv8AwY//IMB9/8C1 + Hf/csAH/2q8A/9qvAP/arwD/2q8A/9qwAP/Yog//zF1U/8tQYv/KUWH/zVZl/85XZv/LUWH/y1Fh/8tR + Yf8AAAD/AAAA/wAAAP8CAgL/AQEB/wAAAP8AAAD/AgcQ/wc3df8KQ4z/D0eO/xBIj/8NRYz/BD2I/wI9 + hv8UOZf/bCDu/34b//99G///fRv//30b//99G///fhr//2sn/f8Sbf3/AHv+/wF6/v8Bev7/AXr+/wF6 + /v8Bef7/A4T+/wPG//8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/AcOc/wDBjf8AwY7/AMGO/wDB + jv8AwY7/AMGP/x+/e/+9sxj/3K8B/9qvAf/cswr/3rQP/961Dv/dtAn/2aQU/8xdVf/LUGL/y1Fh/8tT + Yv/LUmL/y1Fh/8tRYf/LUWH/AgIC/wMDA/8BAQH/AAAA/wAAAP8AAAD/AAAA/wIHEf8FNnX/Bj+K/wU+ + iP8JQor/C0OK/wpCiv8AO4X/ETaV/2wg7v9+G///fRv//30b//9+HP7/fhz+/34a//9rJ/3/Em39/wB7 + /v8Bev7/AXr+/wF6/v8Bev7/AXn+/wOE/v8Dxv//AdL//wHR//8B0f//AdH//wHR//8B0f//A8/w/wHD + nP8AwY3/AcGO/wLBj/8AwY7/AMGO/wDBj/8fv3v/vbET/9yvAP/bsAT/3LMN/9uyCv/asAX/27EF/9ij + E//MXlX/y1Bi/8tRYf/LUWH/y1Fh/8tRYf/LU2P/y1Nj/wICAv8LCwv/ERER/wICAv8AAAD/AAAA/wAA + AP8DCBH/DDt4/w5Hjv8JQor/FEyR/xhOk/8PRo3/ADuF/xE2lf9sIO7/fhv//30b//99G///hSf8/4cq + /P+FJvz/by37/xJt/f8Ae/7/AXr+/wF6/v8Bev7/AXr+/wF5/v8DhP7/A8b//wHS//8B0f//AdH//wHR + //8B0f//AdH//wLP8P8Ew53/DsaU/w3FlP8UyJj/AsGO/wDBjv8AwY//H797/72xE//crwD/27EG/9+3 + GP/guBb/3LMK/920C//aphn/zV9W/8tQYv/LUWH/y1Fh/8tRYf/OWWj/z1xq/8tVZP8AAAD/AwMD/xMT + E/8CAgL/AAAA/wAAAP8AAAD/AwgQ/wk5dv8EPon/FEyS/wpDiv8LRIz/CkOL/wA7hf8TOpb/cSjt/34b + //99G///fh3+/4gs+/+KL/v/hyj8/3Qz+/8Ubv3/AHv+/wF6/v8Bev7/AXr+/wF6/v8Bef7/A4T+/wPG + //8B0v//AdH//wHR//8B0f//AdH//wHR//8Dz/D/C8Wg/xHHlf8WyJj/FseY/wXDkP8AwY7/AMGP/yPB + fv+/sxn/3K8A/9uwBP/dtRD/27EH/9+3Ff/bsgf/2aQT/81fVv/LUGL/y1Fh/8tRYf/LUWH/z1tq/81X + Zv/LUWH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/docs/en/download.png b/docs/en/download.png new file mode 100644 index 000000000..65bc945c4 Binary files /dev/null and b/docs/en/download.png differ diff --git a/docs/en/download2.png b/docs/en/download2.png new file mode 100644 index 000000000..56e156e34 Binary files /dev/null and b/docs/en/download2.png differ diff --git a/docs/en/epic_1.png b/docs/en/epic_1.png new file mode 100644 index 000000000..9ffebbc8a Binary files /dev/null and b/docs/en/epic_1.png differ diff --git a/docs/en/epic_2.png b/docs/en/epic_2.png new file mode 100644 index 000000000..fb40ea259 Binary files /dev/null and b/docs/en/epic_2.png differ diff --git a/docs/en/epic_3.png b/docs/en/epic_3.png new file mode 100644 index 000000000..39805d47a Binary files /dev/null and b/docs/en/epic_3.png differ diff --git a/docs/en/epic_4.png b/docs/en/epic_4.png new file mode 100644 index 000000000..b66109e2f Binary files /dev/null and b/docs/en/epic_4.png differ diff --git a/docs/en/firstRun.png b/docs/en/firstRun.png new file mode 100644 index 000000000..eda204100 Binary files /dev/null and b/docs/en/firstRun.png differ diff --git a/docs/fr/README.md b/docs/fr/README.md new file mode 100644 index 000000000..bdc05d59c --- /dev/null +++ b/docs/fr/README.md @@ -0,0 +1,251 @@ +![Fall Guys Stats](https://capsule-render.vercel.app/api?type=waving&color=timeAuto&height=300§ion=header&text=Fall%20Guys%20Stats&desc=Fall%20Guys%20Stats%20Tracker&fontSize=70&descAlignY=70) + +

+ + MIT License + + + Tests Passing + + + Issues + + + GitHub pull requests + + + + + + + +
+
+ 🇺🇸 English + | + 🇫🇷 Français + | + 🇰🇷 한국어 + | + 🇯🇵 日本語 +
+
+ Cette application n'est pas affiliée à MediaTonic.
Les images de FallGuys sont la propriété de Mediatonic Limited.
+

+ +Programme simple pour générer des statistiques pour le jeu Fall Guys. Lit le fichier journal des jeux pour suivre votre progression. + +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainFallguysSeason.png) + +# Table des matières + - [**Téléchargement**](#téléchargement) + - [**Première exécution**](#première-exécution) + - [**Utilisation**](#utilisation) + - [**Thème**](#thème) + - [**Thème Clair**](#thème-clair) + - [**Thème Sombre**](#thème-sombre) + - [**Langues disponibles**](#langues-disponibles) + - [**Overlay**](#overlay) + - [**Raccourcis**](#raccourcis) + - [**Créer vos propres arrière-plans**](#créer-vos-propres-arrière-plans) + - [**Comment Overlay l'image d'arrière-plan personnalisée**](#comment-overlay-l'image-d'arrière-plan-personnalisée) + - [**Profil**](#profil) + - [**Lier un profil à une émission spécifique**](#lier-un-profil-à-une-émission-spécifique) + - [**Supprimer des émissions ou déplacer des émissions vers un autre profil**](#supprimer-des-émissions-ou-déplacer-des-émissions-vers-un-autre-profil) + - [**Classement**](#classement) + - [**Menu du classement**](#menu-du-classement) + - [**Options de classement**](#options-de-classement) + - [**FAQ**](#faq) + - [**Comment définir l'option `Lancer FallGuys` dans Epic Games**](#comment-définir-l'option-lancer-fallguys-dans-epic-games) + - [**Changelog**](#changelog) + + + +## Téléchargement +  ![FallGuysStats.zip](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/FallGuysStats-download.svg) + - Si votre logiciel antivirus bloque l'utilisation du tracker, utilisez alors la version ci-dessous qui ne possède pas la fonction de MAJ automatique. + +  ![FallGuysStats.zip](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/FallGuysStatsManualUpdate-download.svg) + +
+ +--- + +>Si, lors du téléchargement d'un fichier, votre navigateur Web soupçonne qu'il s'agit d'un logiciel malveillant et arrête le téléchargement, reportez-vous à la capture d'écran ci-dessous. +FallGuysStats est open source, ce qui signifie que tout le monde peut voir le code, alors téléchargez-le en toute confiance. + +![Download](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/fr/download.png) + +![Download](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/fr/download2.png) + +### Première exécution + + - Lorsque vous exécutez le programme pour la première fois, reportez-vous à la capture d'écran ci-dessous. + +![First Run](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/fr/firstRun.png) + +> **[Information]** **Les certificats pour les programmes Windows coûtent entre 200 $ et 400 $ par an.** + +## Utilisation + - Extrayez le zip dans son propre dossier. + - Exécutez le programme tout en jouant à Fall Guys pour voir de nouvelles statistiques. + - Seules les mises à jour après la fin d'un spectacle et les résultats sont donnés. + + +### Fenêtre Principale +![Fall Guys Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindow.png) + +### Liste des Stats des émissions +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/showWindow.png) + +### Liste des Stats des Manches +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindow.png) + +### Nombre de victoires par jour +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/chartWindow.png) + +## Thème + - Le tracker supporte actuellement deux thèmes: `Clair` et `Sombre`. + +### Thème Clair +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindowLightTheme.png) + +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindowLightTheme.png) + +### Thème Sombre +![Fall Guys Stats Dark Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindowDarkTheme.png) + +![Fall Guys Stats Dark Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindowDarkTheme.png) + +## Langues disponibles + - Le Tracker Fall Guys supporte les langues suivantes: + - 🇺🇸 `Anglais` + - 🇫🇷 `Français` + - 🇰🇷 `Coréen` + - 🇯🇵 `Japonais` + - 🇨🇳 `Chinois Simplifié` + - 🇨🇳 `Chinois traditionnel` + +## Overlay +![Overlay](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/overlay.png) + +### Raccourcis + - Cliquer une fois sur l'overlay pour le sélectionner puis: + - Appuyer sur 'Ctrl + Maj + X' pour réinitialiser les dimensions de l'overlay. + - Appuyer sur 'Ctrl + Maj + C' pour réinitialiser la position de l'overlay. + - Appuyer sur la touche 'Ctrl + T' pour changer la couleur de l'arrière-plan. + - Appuyer sur la touche 'Ctrl + F' pour inverser horizontalement l'affichage. + - Appuyer sur la touche 'Ctrl + C' pour afficher le nombre de joueurs par support de jeu. + - Appuyer sur la touche 'Ctrl + R' pour colorer le nom des manches selon leur type. + - Appuyer sur la touche 'P' pour passer au profil suivant. + - Appuyer sur les touches des chiffres situés au dessus des lettres (1 à 9) pour changer de profil. + - Maintenir la touche 'Maj' enfoncée et utiliser la molette de votre souris pour changer de profil. + - Maintenir la touche 'Maj' enfoncée et utiliser la touche directionnelle 'Droite'/'Bas' ou 'Gauche'/'Haut' pour changer de profil. + + +### Créer vos propres arrière-plans +![Customized Overlay](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/customizedOverlay.png) + + +### Comment Overlay l'image d'arrière-plan personnalisée + - **Étape 1.** [Télécharger](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/original_image_for_overlay.zip) l'image originale de l'overlay. + + + - **Étape 2.** Modifiez les fichiers `background.png` et `tab.png` [ici](https://www.photopea.com/) à votre guise. + + + - **Étape 3.** Renommez l'image modifiée comme ci-dessous. + - `{Nom de mon image}` doit être le même pour les deux fichiers. + - background_**{Nom de mon image}**.png + - tab_**{Nom de mon image}**.png + + + - **Étape 4.** Placez l'image dans le dossier Overlay du dossier FallGuysStats. + + + - **Étape 5.** Vous pouvez voir que l'image d'arrière-plan que vous avez ajoutée apparaît en premier dans l'image d'arrière-plan de l'élément de Overlay dans les paramètres. + + + - **Étape 6.** Sélectionnez et enregistrez l'image ajoutée. + +## Profile + +### Lier un profil à une émission spécifique + - Permet de changer de profil automatiquement au moment où l'émission spécifiée commence. + + + - `Fenêtre principale > Menu "Profil" > "Gestion des profils"` + +![Profile And Show Linkage](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/profileAndShowLinkage.png) + + + - `Fenêtre principale > Menu "Configuration" -> Option "Passer automatiquement sur le profil lié"` + +![Automatic Profile Change](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/automaticProfileChange.png) + + +### Supprimer des émissions ou déplacer des émissions vers un autre profil + - En haut de la fenêtre principale, cliquer sur le premier nombre à droite du nom du profil pour voir la liste des stats des émissions. + - Sélectionner une ou plusieurs émissions avec la touche `Ctrl` ou avec la combinaison de touches `Ctrl + Maj`. + - Faire un clique-droit sur la sélection pour pouvoir déplacer ou supprimer celle-ci. + +![Shows Window](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/showsWindow.png) + +## Classement + +![Leaderboards](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboards.png) + +### Menu du classement + +- Cliquez sur votre pseudo en ligne pour ouvrir le menu des classements. + +![Leaderboards Menu](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboardsMenu.png) + +### Options de classement + +- Activez l'option Fallalytics pour rejoindre le classement. + +![Leaderboards Options](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboardsOptions.png) + +## FAQ +### Comment définir l'option `Lancer FallGuys` dans Epic Games +1. Ouvrez Epic Games Launcher (si vous jouez à Fall Guys, fermez Fall Guys) + + +2. Cliquez sur `Library` + + +3. Cliquez sur `...` de FallGuys + + +4. Cliquez sur `Manage` +![IMG1](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_1.png) + + +5. Cliquez sur `CREATE` +![IMG2](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_2.png) + + +6. Ouvrez FallGuysStats (ver >= 1.136) + + +7. Cliquez sur `Settings` + + +8. Cliquez sur `Launch Fall Guys` + + +9. Cliquez sur l'icône EpicGames dans `Platform` + + +10. Cliquez sur `Browse` +![IMG3](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_3.png) + + +11. Sélectionnez le raccourci de FallGuys dans Desktop +![IMG4](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_4.png) + +![Footer](https://capsule-render.vercel.app/api?type=waving&color=auto&height=200§ion=footer) + +## Changelog +(sauter) \ No newline at end of file diff --git a/docs/fr/download.png b/docs/fr/download.png new file mode 100644 index 000000000..a1b7616d9 Binary files /dev/null and b/docs/fr/download.png differ diff --git a/docs/fr/download2.png b/docs/fr/download2.png new file mode 100644 index 000000000..50a855da0 Binary files /dev/null and b/docs/fr/download2.png differ diff --git a/docs/fr/firstRun.png b/docs/fr/firstRun.png new file mode 100644 index 000000000..9d08c2be1 Binary files /dev/null and b/docs/fr/firstRun.png differ diff --git a/docs/ja/README.md b/docs/ja/README.md new file mode 100644 index 000000000..185dd12a5 --- /dev/null +++ b/docs/ja/README.md @@ -0,0 +1,248 @@ +![Fall Guys Stats](https://capsule-render.vercel.app/api?type=waving&color=timeAuto&height=300§ion=header&text=Fall%20Guys%20Stats&desc=Fall%20Guys%20トラッカー&fontSize=70&descAlignY=70) + +

+ + MIT License + + + Tests Passing + + + Issues + + + GitHub pull requests + + + + + + + +
+
+ 🇺🇸 English + | + 🇫🇷 Français + | + 🇰🇷 한국어 + | + 🇯🇵 日本語 +
+
+ このアプリはMediaTonicによって承認されたものではありません。
FallGuysの画像はMediatonic Limitedの財産です。
+

+ +FallGuysStatsはシンプルなFall Guysのトラッカーです。Fall Guysのログを使用して、プレイしたラウンドや勝率を追跡します。 + +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainFallguysSeason.png) + +# 目次 + - [**ダウンロード**](#ダウンロード) + - [**初めて実行**](#初めて実行) + - [**使用方法**](#使用方法) + - [**テーマ**](#テーマ) + - [**ライトテーマ**](#ライトテーマ) + - [**ダークテーマ**](#ダークテーマ) + - [**多言語**](#多言語) + - [**オーバーレイ**](#オーバーレイ) + - [**ホットキー**](#ホットキー) + - [**オーバーレイをカスタマイズ**](#オーバーレイをカスタマイズ) + - [**オーバーレイの画像を変更する方法**](#オーバーレイの画像を変更する方法) + - [**プロファイル**](#プロファイル) + - [**プロファイルとショーをリンク**](#プロファイルとショーをリンク) + - [**ショーを削除/別のプロファイルに移動**](#ショーを削除別のプロファイルに移動) + - [**リーダーボード**](#リーダーボード) + - [**リーダーボードメニュー**](#リーダーボードメニュー) + - [**リーダーボードオプション**](#リーダーボードオプション) + - [**変更履歴**](#変更履歴) + + + +## ダウンロード +  ![FallGuysStats.zip](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/FallGuysStats-download.svg) + - ウイルス対策ソフトに誤検知される場合は、自動アップデートを無効にしたバージョンを使用することができます: + +  ![FallGuysStats.zip](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/FallGuysStatsManualUpdate-download.svg) + +
+ +--- + +>よくある質問: ファイルのダウンロード中にWebブラウザなどにマルウェアと疑われてダウンロードが中止された +FallGuysStatsはソースコードが公開されており、誰でもコードを見ることができます(オープンソース)。安心してダウンロードしてください。 + +![Download](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/ja/download.png) + +![Download](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/ja/download2.png) + +### 初めて実行 + +- プログラムを初めて実行するときは、以下のスクリーンショットを参照してください。 + +![First Run](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/ja/firstRun.png) + +> [情報] Windows プログラムの証明書の費用は年間 200 ドルから 400 ドルです。 + +## 使用方法 + - ダウンロードしたzipファイルを展開します。 + - プログラムを起動し、Fall Guysをプレイすると記録が確認できます。 + - ショーが終わり結果が確認できたらラウンドが記録されます。 + + +### メインウインドウ +![Fall Guys Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindow.png) + +### ショー記録リスト +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/showWindow.png) + +### ラウンド記録リスト +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindow.png) + +### 日ごとの勝利数グラフ +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/chartWindow.png) + +## テーマ + - FallGuysStatsには`ライト`/`ダーク`の2つのテーマがあります。 + +### ライトテーマ +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindowLightTheme.png) + +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindowLightTheme.png) + +### ダークテーマ +![Fall Guys Stats Dark Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindowDarkTheme.png) + +![Fall Guys Stats Dark Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindowDarkTheme.png) + +## 多言語 + - FallGuysStatsは以下の言語に対応しています: + - 🇺🇸 `英語` + - 🇫🇷 `フランス語` + - 🇰🇷 `韓国語` + - 🇯🇵 `日本語` + - 🇨🇳 `簡体字中国語` + - 🇨🇳 `繁体字中国語` + +## オーバーレイ +![Overlay](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/overlay.png) + +### ホットキー + - `Ctrl + Shift + X`: デフォルトの大きさに戻す + - `Ctrl + Shift + C`: 位置をリセットする + - `Ctrl + T`: 背景色を変更する + - `Ctrl + F`: 向きを変更する + - `Ctrl + C`: プラットフォーム別の人数を表示する + - `Ctrl + R`: ラウンドタイプ別に色を変更する + - `P`: プロファイルを変更する + - `1 から 9`: 1番目から9番目のプロファイルに変更する + - `Shift + 上にスクロール` / `Shift + 下にスクロール`: 前/次のプロファイルに変更する + - `Shift + ↑`または`Shift + ←` / `Shift + ↓`または`Shift + →`: 前/次のプロファイルに変更する + + + +### オーバーレイをカスタマイズ +![Customized Overlay](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/customizedOverlay.png) + + +### オーバーレイの画像を変更する方法 + - **Step 1.** オーバーレイのオリジナル画像を[ダウンロード](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/original_image_for_overlay.zip)します。 + + + - **Step 2.** `background.png`と`tab.png`ファイルを画像編集アプリ([Photopea](https://www.photopea.com/)など)で好きなように編集します。 + + + - **Step 3.** 編集した画像ファイルを次のように名前を変更します。 + - `{画像名}`はどちらとも同じ名前である必要があります。 + - background_**{画像名}**.png + - tab_**{画像名}**.png + + + - **Step 4.** Overlayフォルダに画像ファイルを移動します。 + + + - **Step 5.** 追加した画像が、設定のオーバーレイ項目の背景画像の最初に表示されます。 + + + - **Step 6.** 追加した画像を選択し保存します。 + +## プロファイル + +### プロファイルとショーをリンク + - プロファイルとショーをリンクすることで、ショーをプレイするとき、それに対応するプロファイルに自動で変更されるようになります。 + + + - `プロファイル設定`でショーを選択します。 + +![Profile And Show Linkage](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/profileAndShowLinkage.png) + + + - `設定` - `リンク先のプロファイルに自動で変更する`にチェックを入れます。 + +![Automatic Profile Change](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/automaticProfileChange.png) + + +### ショーを削除/別のプロファイルに移動 + - メインウインドウの`ショー`をクリックします。 + - 削除/移動したいショーを選択し`Delete`キーまたは右クリックメニューの`削除`/`ショーを移動`をクリックします。 + +![Shows Window](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/showsWindow.png) + +## リーダーボード + +![Leaderboards](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboards.png) + +### リーダーボードメニュー + +- あなたのオンラインニックネームをクリックして、リーダーボードメニューを開きます。 + +![Leaderboards Menu](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboardsMenu.png) + +### リーダーボードオプション + +- リーダーボードに参加するには、Fallalyticsオプションを有効にしてください。 + +![Leaderboards Options](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboardsOptions.png) + +## FAQ +### Epic Gamesで"Fall Guys を起動"オプションを設定する方法 +1. Epic Gamesランチャーを起動します。 (FallGuysを起動している場合、閉じてください。) + + +2. `ライブラリ`を押します。 + + +3. FallGuysの`...`を押します。 + + +4. `管理`を押します。 +![IMG1](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_1.png) + + +5. `作成する`を押します。 +![IMG2](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_2.png) + + +6. FallGuysStatsを起動します。 + + +7. `設定`を開きます。 + + +8. 左側の`Fall Guysを起動`を押します。 + + +9. `プラットフォーム`で、Epic Gamesを選択します。 + + +10. `選択`を押します。 +![IMG3](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_3.png) + + +11. デスクトップに作成されたFallGuysのショートカットを選択します。 +![IMG4](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_4.png) + +![Footer](https://capsule-render.vercel.app/api?type=waving&color=auto&height=200§ion=footer) + +## 変更履歴 +(省略) \ No newline at end of file diff --git a/docs/ja/download.png b/docs/ja/download.png new file mode 100644 index 000000000..57a06a98e Binary files /dev/null and b/docs/ja/download.png differ diff --git a/docs/ja/download2.png b/docs/ja/download2.png new file mode 100644 index 000000000..5161b03a7 Binary files /dev/null and b/docs/ja/download2.png differ diff --git a/docs/ja/firstRun.png b/docs/ja/firstRun.png new file mode 100644 index 000000000..823363334 Binary files /dev/null and b/docs/ja/firstRun.png differ diff --git a/docs/ko/README.md b/docs/ko/README.md new file mode 100644 index 000000000..61db53320 --- /dev/null +++ b/docs/ko/README.md @@ -0,0 +1,249 @@ +![Fall Guys Stats](https://capsule-render.vercel.app/api?type=waving&color=timeAuto&height=300§ion=header&text=폴%20가이즈%20스탯츠&desc=폴%20가이즈%20통계%20추적기&fontSize=70&descAlignY=70) + +

+ + MIT License + + + Tests Passing + + + Issues + + + GitHub pull requests + + + + + + + +
+
+ 🇺🇸 English + | + 🇫🇷 Français + | + 🇰🇷 한국어 + | + 🇯🇵 日本語 +
+
+ 이 애플리케이션은 미디어토닉과 관련이 없습니다.
FallGuys의 이미지는 Mediatonic Limited의 자산입니다.
+

+ +Fall Guys 게임의 통계를 생성하는 간단한 프로그램입니다. 게임 로그 파일을 읽어 게임 진행 상황을 추적합니다. + +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainFallguysSeason.png) + +# 목차 + - [**다운로드**](#다운로드) + - [**처음 실행**](#처음-실행) + - [**사용 방법**](#사용-방법) + - [**테마**](#테마) + - [**라이트 테마**](#라이트-테마) + - [**다크 테마**](#다크-테마) + - [**다국어 지원**](#다국어-지원) + - [**통계 창**](#통계-창) + - [**단축키**](#단축키) + - [**나만의 통계 창 만들기**](#나만의-통계-창-만들기) + - [**사용자 지정 배경 이미지로 변경하는 방법**](#사용자-지정-배경-이미지로-변경하는-방법) + - [**프로필**](#프로필) + - [**프로필과 쇼 연결하기**](#프로필과-쇼-연결하기) + - [**쇼 삭제 또는 다른 프로필로 쇼 이동하기**](#쇼-삭제-또는-다른-프로필로-이동하기) + - [**리더보드**](#리더보드) + - [**리더보드 메뉴**](#리더보드-메뉴) + - [**리더보드 옵션**](#리더보드-옵션) + - [**자주 묻는 질문**](#자주-묻는-질문) + - [**에픽게임즈에서 `폴 가이즈 실행` 옵션을 설정하는 방법**](#에픽게임즈에서-폴-가이즈-실행-옵션을-설정하는-방법) + - [**변경 내역**](#변경-내역) + + + +## 다운로드 +  ![FallGuysStats.zip](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/FallGuysStats-download.svg) + - 또는 바이러스 프로그램에서 오탐지 문제가 있는 경우 자동 업데이트 기능이 제거된 아래 버전을 다운로드하세요. + +  ![FallGuysStats.zip](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Resources/FallGuysStatsManualUpdate-download.svg) + +
+ +--- + +>파일을 다운로드 하는 중 웹브라우저가 악성코드로 의심하여 다운로드를 중단시키는 경우 아래 스크린샷을 참조하세요. +폴 가이즈 스탯츠는 오픈소스이므로, 누구나 코드를 볼 수 있습니다. 그러니 안심하고 다운로드하세요. + +![Download](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/ko/download.png) + +![Download](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/ko/download2.png) + +### 처음 실행 + +- 프로그램을 처음 실행할 때는 아래 스크린샷을 참조하세요. + +![First Run](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/ko/firstRun.png) + +> [정보] Windows 프로그램에 대한 인증서 비용은 연간 $200에서 $400 정도입니다. + +## 사용 방법 + - 다운로드 받은 ZIP 파일을 자체 폴더로 압축 해제 + - 폴 가이즈를 플레이하는 동안 프로그램을 실행하면 통계를 저장하고 확인할 수 있습니다. + - 쇼가 완료되고 결과가 나온 후에만 저장됩니다. + + +### 기본 창 +![Fall Guys Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindow.png) + +### 쇼 통계 목록 +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/showWindow.png) + +### 라운드 통계 목록 +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindow.png) + +### 일별 승리 횟수 그래프 +![Fall Guys Level Stats](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/chartWindow.png) + +## 테마 + - 폴 가이즈 스탯츠는 `라이트`와 `다크` 두 가지 테마를 지원합니다. + +### 라이트 테마 +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindowLightTheme.png) + +![Fall Guys Stats Light Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindowLightTheme.png) + +### 다크 테마 +![Fall Guys Stats Dark Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/mainWindowDarkTheme.png) + +![Fall Guys Stats Dark Theme](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/levelWindowDarkTheme.png) + +## 다국어 지원 + - 폴 가이즈 스탯츠는 다음 언어를 지원합니다. + - 🇺🇸 `영어` + - 🇫🇷 `프랑스어` + - 🇰🇷 `한국어` + - 🇯🇵 `일본어` + - 🇨🇳 `중국어 간체` + - 🇨🇳 `중국어 번체` + +## 통계 창 +![Overlay](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/overlay.png) + +### 단축키 + - `Ctrl + Shift + X` 키를 누르면 통계 창을 기본 크기로 설정합니다. + - `Ctrl + Shift + C` 키를 누르면 통계 창의 위치를 재설정합니다. + - `Ctrl + T` 키를 누르면 통계 창의 배경색이 전환됩니다. + - `Ctrl + F` 키를 누르면 통계 창을 좌우 반전합니다. + - `Ctrl + C` 키를 누르면 플랫폼별 사용자 수가 표시됩니다. + - `Ctrl + R` 키를 누르면 라운드 이름에 해당 라운드 유형에 대한 색상 배지가 표시됩니다. + - `P` 키를 누르면 프로필 순서를 변경합니다. + - `1~9` 키를 누르면 1~9번 프로파일을 선택합니다. + - 이전 또는 다음 프로필을 선택하려면 `Shift + 마우스 휠 위쪽` 또는 `Shift + 마우스 휠 아래쪽` 키를 누릅니다. + - 이전 또는 다음 프로필을 선택하려면 `Shift + (↑, ←) 화살표 키` 또는 `Shift + (↓, →) 화살표 키`를 누릅니다. + + +### 나만의 통계 창 만들기 +![Customized Overlay](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/customizedOverlay.png) + + +### 사용자 지정 배경 이미지로 변경하는 방법 + - **1단계.** 오버레이의 원본 이미지를 [다운로드](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/original_image_for_overlay.zip) 받습니다. + + + - **2단계.** `background.png`와 `tab.png` 파일을 [이곳](https://www.photopea.com/)에서 원하는 대로 편집합니다. + + + - **3단계.** 편집한 2개의 이미지 이름을 아래와 같이 변경합니다. + - `{my_image_name}`은 두 파일 모두 동일해야 합니다. + - background_**{my_image_name}**.png + - tab_**{my_image_name}**.png + + + - **4단계.** 이미지를 폴 가이즈 스탯츠 폴더의 Overlay 폴더 안에 넣습니다. + + + - **5단계.** 추가한 배경 이미지가 `설정 - 통계표시 설정 - 통계창 배경 이미지`에 가장 먼저 표시되는 것을 볼 수 있습니다. + + + - **6단계.** 추가된 이미지를 선택하고 저장합니다. + +## 프로필 + +### 프로필과 쇼 연결하기 + - 프로필과 쇼를 연결하면 쇼가 시작될 때 프로필이 자동으로 변경됩니다. + + + - `프로필 설정`에서 쇼를 선택합니다. + +![Profile And Show Linkage](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/profileAndShowLinkage.png) + + + - `설정` - `연동된 프로필로 자동 변경`옵션을 체크 합니다. + +![Automatic Profile Change](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/automaticProfileChange.png) + + +### 쇼 삭제 또는 다른 프로필로 이동하기 + - 메인 화면에서 상단의 `쇼 통계 라벨`을 클릭합니다. + - 삭제 또는 이동하고자 하는 쇼를 선택하고 `Delete`키 또는 우클릭 메뉴의 `삭제`/`쇼 데이터 이동`을 클릭합니다. + +![Shows Window](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/showsWindow.png) + +### 리더보드 + +![Automatic Profile Change](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboards.png) + +### 리더보드 메뉴 + +- 나의 온라인 닉네임을 클릭하여 리더보드를 여세요. + +![Leaderboards Menu](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboardsMenu.png) + +### 리더보드 옵션 + +- 리더보드에 참여하려면 폴라리틱스 옵션을 활성화하세요. + +![Leaderboards Options](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/Properties/leaderboardsOptions.png) + +## 자주 묻는 질문 +### 에픽게임즈에서 `폴 가이즈 실행` 옵션을 설정하는 방법 +1. 에픽게임즈 런처를 엽니다. (폴가이즈를 플레이 중인 경우 폴가이즈를 종료합니다) + + +2. `라이브러리`를 클릭합니다. + + +3. Fall Guys의 `...` 버튼을 클릭합니다. + + +4. `관리` 메뉴를 클릭합니다. +![IMG1](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_1.png) + + +5. `만들기` 버튼을 클릭합니다. +![IMG2](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_2.png) + + +6. 폴 가이즈 스탯츠를 실행합니다. + + +7. `설정` 메뉴를 클릭합니다. + + +8. `폴 가이즈 실행` 메뉴를 클릭합니다 + + +9. `플랫폼`에서 에픽게임즈 아이콘을 선택합니다. + + +10. `찾아보기` 버튼을 클릭합니다. +![IMG3](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_3.png) + + +11. 바탕화면에 생성된 Fall Guys 바로가기 파일을 선택합니다. +![IMG4](https://raw.githubusercontent.com/ShootMe/FallGuysStats/master/docs/en/epic_4.png) + +![Footer](https://capsule-render.vercel.app/api?type=waving&color=auto&height=200§ion=footer) + +## 변경 내역 +(생략) \ No newline at end of file diff --git a/docs/ko/download.png b/docs/ko/download.png new file mode 100644 index 000000000..f86bb42da Binary files /dev/null and b/docs/ko/download.png differ diff --git a/docs/ko/download2.png b/docs/ko/download2.png new file mode 100644 index 000000000..0c658436f Binary files /dev/null and b/docs/ko/download2.png differ diff --git a/docs/ko/firstRun.png b/docs/ko/firstRun.png new file mode 100644 index 000000000..08ee6c7fe Binary files /dev/null and b/docs/ko/firstRun.png differ diff --git a/info.png b/info.png deleted file mode 100644 index d6eb3c183..000000000 Binary files a/info.png and /dev/null differ diff --git a/medal_bronze.png b/medal_bronze.png deleted file mode 100644 index 3499932df..000000000 Binary files a/medal_bronze.png and /dev/null differ diff --git a/medal_eliminated.png b/medal_eliminated.png deleted file mode 100644 index 9474af595..000000000 Binary files a/medal_eliminated.png and /dev/null differ diff --git a/medal_gold.png b/medal_gold.png deleted file mode 100644 index 2a977b7ea..000000000 Binary files a/medal_gold.png and /dev/null differ diff --git a/medal_pink.png b/medal_pink.png deleted file mode 100644 index dad336d50..000000000 Binary files a/medal_pink.png and /dev/null differ diff --git a/medal_silver.png b/medal_silver.png deleted file mode 100644 index 737cff9d6..000000000 Binary files a/medal_silver.png and /dev/null differ