| 
						
						
							
								
							
						
						
					 | 
					@ -15,7 +15,7 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/// Coincidentally, log(32, 29334498) is approximately equal to 4.96, so using
 | 
					 | 
					 | 
					/// Coincidentally, log(32, 29334498) is approximately equal to 4.96, so using
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/// 5-bit base32 can make good use of space, so any valid klotski cases can be
 | 
					 | 
					 | 
					/// 5-bit base32 can make good use of space, so any valid klotski cases can be
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/// represented by a 5-bit length code. As in CommonCode, the characters here
 | 
					 | 
					 | 
					/// represented by a 5-bit length code. As in CommonCode, the characters here
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					/// are case insensitive, but uppercase is still recommended.
 | 
					 | 
					 | 
					/// are case-insensitive, but uppercase is still recommended.
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/// Compared with the CommonCode, although ShortCode saves space, it completely
 | 
					 | 
					 | 
					/// Compared with the CommonCode, although ShortCode saves space, it completely
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/// loses readability. The former can directly get the case without the help of
 | 
					 | 
					 | 
					/// loses readability. The former can directly get the case without the help of
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -24,47 +24,39 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/// cases, either verbally or handwritten.
 | 
					 | 
					 | 
					/// cases, either verbally or handwritten.
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					///                ShortCode Convert Table                ///
 | 
					 | 
					 | 
					///                ShortCode Convert Table                ///
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   -------------------------------------------------   ///
 | 
					 | 
					 | 
					///   ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   |  00 |  01 |  02 |  03 |  04 |  05 |  06 |  07 |   ///
 | 
					 | 
					 | 
					///   │  00 │  01 │  02 │  03 │  04 │  05 │  06 │  07 │   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   | `1` | `2` | `3` | `4` | `5` | `6` | `7` | `8` |   ///
 | 
					 | 
					 | 
					///   │ `1` │ `2` │ `3` │ `4` │ `5` │ `6` │ `7` │ `8` │   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   |-----------------------------------------------|   ///
 | 
					 | 
					 | 
					///   ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   |  08 |  09 |  10 |  11 |  12 |  13 |  14 |  15 |   ///
 | 
					 | 
					 | 
					///   │  08 │  09 │  10 │  11 │  12 │  13 │  14 │  15 │   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   | `9` | `A` | `B` | `C` | `D` | `E` | `F` | `G` |   ///
 | 
					 | 
					 | 
					///   │ `9` │ `A` │ `B` │ `C` │ `D` │ `E` │ `F` │ `G` │   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   |-----------------------------------------------|   ///
 | 
					 | 
					 | 
					///   ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   |  16 |  17 |  18 |  19 |  20 |  21 |  22 |  23 |   ///
 | 
					 | 
					 | 
					///   │  16 │  17 │  18 │  19 │  20 │  21 │  22 │  23 │   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   | `H` | `J` | `K` | `M` | `N` | `P` | `Q` | `R` |   ///
 | 
					 | 
					 | 
					///   │ `H` │ `J` │ `K` │ `M` │ `N` │ `P` │ `Q` │ `R` │   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   |-----------------------------------------------|   ///
 | 
					 | 
					 | 
					///   ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   |  24 |  25 |  26 |  27 |  28 |  29 |  30 |  31 |   ///
 | 
					 | 
					 | 
					///   │  24 │  25 │  26 │  27 │  28 │  29 │  30 │  31 │   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   | `S` | `T` | `U` | `V` | `W` | `X` | `Y` | `Z` |   ///
 | 
					 | 
					 | 
					///   │ `S` │ `T` │ `U` │ `V` │ `W` │ `X` │ `Y` │ `Z` │   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   -------------------------------------------------   ///
 | 
					 | 
					 | 
					///   └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					/// ------------------------------------------------------------------------------------------ ///
 | 
					 | 
					 | 
					/// ------------------------------------------------------------------------------------------------ ///
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					///   Eg1:                                                                                           ///
 | 
					 | 
					 | 
					///   Eg1:                                                                                           ///
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					///     % # # %                                                                                ///
 | 
					 | 
					 | 
					///     ┏━┳━━━┳━┓  CommonCode = 0x1A9BF0C00 (index 4091296)                                          ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///     % # # %                                                                                ///
 | 
					 | 
					 | 
					///     ┃ ┃   ┃ ┃  ShortCode = 4091296                                                               ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///     @ $ $ @    CommonCode = 0x1A9BF0C00 (index 4091296)                                    ///
 | 
					 | 
					 | 
					///     ┣━╋━━━╋━┫    => 3 * (32 ^ 4) + 28 * (32 ^ 3) + 27 * (32 ^ 2) + 13 * (32 ^ 1) + 0 * (32 ^ 0)  ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///     @ & * @                                                                                ///
 | 
					 | 
					 | 
					///     ┃ ┣━┳━┫ ┃    => (3), (28), (27), (13), (0)                                                   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///     *     &                                                                                ///
 | 
					 | 
					 | 
					///     ┣━╋━┻━╋━┫    => `4`, `W`, `V`, `E`, `1`                                                      ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///                                                                                            ///
 | 
					 | 
					 | 
					///     ┗━┛   ┗━┛    => "4WVE1"                                                                      ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   4091296 => 3 * (32 ^ 4) + 28 * (32 ^ 3) + 27 * (32 ^ 2) + 13 * (32 ^ 1) + 0 * (32 ^ 0)   ///
 | 
					 | 
					 | 
					/// ------------------------------------------------------------------------------------------------ ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///           => (3), (28), (27), (13), (0)                                                    ///
 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///           => `4`, `W`, `V`, `E`, `1`                                                       ///
 | 
					 | 
					 | 
					/// ------------------------------------------------------------------------------------------------- ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					///           => "4WVE1"                                                                       ///
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/// ------------------------------------------------------------------------------------------ ///
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/// -------------------------------------------------------------------------------------------- ///
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					///   Eg2:                                                                                            ///
 | 
					 | 
					 | 
					///   Eg2:                                                                                            ///
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					///     * @ & %                                                                                  ///
 | 
					 | 
					 | 
					///     ┏━┳━┳━┳━┓  CommonCode = 0x4FEA13400 (index 10399732)                                          ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///     # # $ %                                                                                  ///
 | 
					 | 
					 | 
					///     ┣━┻━╋━┫ ┃  ShortCode = 10399732                                                               ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///     # # $ ^    CommonCode = 0x4FEA13400 (index 10399732)                                     ///
 | 
					 | 
					 | 
					///     ┃   ┃ ┣━┫    => 9 * (32 ^ 4) + 29 * (32 ^ 3) + 11 * (32 ^ 2) + 31 * (32 ^ 1) + 20 * (32 ^ 0)  ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///       ~ ~ ^                                                                                  ///
 | 
					 | 
					 | 
					///     ┗━┳━┻━┫ ┃    => (9), (29), (11), (31), (20)                                                   ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///       @ % %                                                                                  ///
 | 
					 | 
					 | 
					///       ┣━┳━┻━┫    => `A`, `X`, `C`, `Z`, `N`                                                       ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///                                                                                              ///
 | 
					 | 
					 | 
					///       ┗━┻━━━┛    => "AXCZN"                                                                       ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					///   10399732 => 9 * (32 ^ 4) + 29 * (32 ^ 3) + 11 * (32 ^ 2) + 31 * (32 ^ 1) + 20 * (32 ^ 0)   ///
 | 
					 | 
					 | 
					/// ------------------------------------------------------------------------------------------------- ///
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					///            => (9), (29), (11), (31), (20)                                                    ///
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					///            => `A`, `X`, `C`, `Z`, `N`                                                        ///
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					///            => "AXCZN"                                                                        ///
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/// -------------------------------------------------------------------------------------------- ///
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#pragma once | 
					 | 
					 | 
					#pragma once | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |