Kieran's opinionated (and probably slightly dumb) nix config

feat: add agenix and desktop packages

+306 -33
+151 -18
flake.lock
··· 1 1 { 2 2 "nodes": { 3 - "bird-nix-lib": { 3 + "agenix": { 4 4 "inputs": { 5 + "darwin": "darwin", 6 + "home-manager": "home-manager", 5 7 "nixpkgs": "nixpkgs", 6 8 "systems": "systems" 7 9 }, 8 10 "locked": { 11 + "lastModified": 1720546205, 12 + "narHash": "sha256-boCXsjYVxDviyzoEyAk624600f3ZBo/DKtUdvMTpbGY=", 13 + "owner": "ryantm", 14 + "repo": "agenix", 15 + "rev": "de96bd907d5fbc3b14fc33ad37d1b9a3cb15edc6", 16 + "type": "github" 17 + }, 18 + "original": { 19 + "owner": "ryantm", 20 + "repo": "agenix", 21 + "type": "github" 22 + } 23 + }, 24 + "bird-nix-lib": { 25 + "inputs": { 26 + "nixpkgs": "nixpkgs_2", 27 + "systems": "systems_2" 28 + }, 29 + "locked": { 9 30 "lastModified": 1718015582, 10 31 "narHash": "sha256-VzK23WKktlJdTcoOh+rXKhSPYRWkl9ShIZh4tB44UV4=", 11 32 "owner": "spikespaz", ··· 19 40 "type": "github" 20 41 } 21 42 }, 43 + "darwin": { 44 + "inputs": { 45 + "nixpkgs": [ 46 + "agenix", 47 + "nixpkgs" 48 + ] 49 + }, 50 + "locked": { 51 + "lastModified": 1700795494, 52 + "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", 53 + "owner": "lnl7", 54 + "repo": "nix-darwin", 55 + "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", 56 + "type": "github" 57 + }, 58 + "original": { 59 + "owner": "lnl7", 60 + "ref": "master", 61 + "repo": "nix-darwin", 62 + "type": "github" 63 + } 64 + }, 22 65 "disko": { 23 66 "inputs": { 24 67 "nixpkgs": [ ··· 26 69 ] 27 70 }, 28 71 "locked": { 29 - "lastModified": 1721612107, 30 - "narHash": "sha256-1F2N90WqHV14oIn5RpDfzINj4zMi5gBQOt1BAc34gGM=", 72 + "lastModified": 1721735625, 73 + "narHash": "sha256-4T0FK0b3Q7Dd7oj79M7GhA9+YqKxxGT0iN+h8yqdP7s=", 31 74 "owner": "nix-community", 32 75 "repo": "disko", 33 - "rev": "2f5df5dcceb8473dd5715c4ae92f9b0d5f87fff9", 76 + "rev": "4698b1ef375e9c904037e0b2049aa73d39ac1b2d", 34 77 "type": "github" 35 78 }, 36 79 "original": { ··· 39 82 "type": "github" 40 83 } 41 84 }, 85 + "flake-compat": { 86 + "flake": false, 87 + "locked": { 88 + "lastModified": 1696426674, 89 + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 90 + "owner": "edolstra", 91 + "repo": "flake-compat", 92 + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 93 + "type": "github" 94 + }, 95 + "original": { 96 + "owner": "edolstra", 97 + "repo": "flake-compat", 98 + "type": "github" 99 + } 100 + }, 42 101 "hardware": { 43 102 "locked": { 44 - "lastModified": 1721413321, 45 - "narHash": "sha256-0GdiQScDceUrVGbxYpV819LHesK3szHOhJ09e6sgES4=", 103 + "lastModified": 1721754224, 104 + "narHash": "sha256-JEVfxzZRo+/zdWKBjHpAUG905SDZL9fmoLJxf9b5CGU=", 46 105 "owner": "NixOS", 47 106 "repo": "nixos-hardware", 48 - "rev": "ab165a8a6cd12781d76fe9cbccb9e975d0fb634f", 107 + "rev": "405b654893aba16c8014de6a17e84439d3fb8e46", 49 108 "type": "github" 50 109 }, 51 110 "original": { ··· 58 117 "home-manager": { 59 118 "inputs": { 60 119 "nixpkgs": [ 120 + "agenix", 121 + "nixpkgs" 122 + ] 123 + }, 124 + "locked": { 125 + "lastModified": 1703113217, 126 + "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", 127 + "owner": "nix-community", 128 + "repo": "home-manager", 129 + "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", 130 + "type": "github" 131 + }, 132 + "original": { 133 + "owner": "nix-community", 134 + "repo": "home-manager", 135 + "type": "github" 136 + } 137 + }, 138 + "home-manager_2": { 139 + "inputs": { 140 + "nixpkgs": [ 61 141 "nixpkgs" 62 142 ] 63 143 }, ··· 112 192 "hyprland-protocols": "hyprland-protocols_2", 113 193 "hyprland-xdph": "hyprland-xdph", 114 194 "hyprlang": "hyprlang_3", 115 - "nixpkgs": "nixpkgs_2", 116 - "systems": "systems_3" 195 + "nixpkgs": "nixpkgs_3", 196 + "systems": "systems_4" 117 197 }, 118 198 "locked": { 119 199 "lastModified": 1718089837, ··· 245 325 "hyprland-xdph", 246 326 "nixpkgs" 247 327 ], 248 - "systems": "systems_2" 328 + "systems": "systems_3" 249 329 }, 250 330 "locked": { 251 331 "lastModified": 1708681732, ··· 290 370 "locked": { 291 371 "lastModified": 1721413321, 292 372 "narHash": "sha256-0GdiQScDceUrVGbxYpV819LHesK3szHOhJ09e6sgES4=", 293 - "owner": "NixOS", 294 - "repo": "nixos-hardware", 373 + "path": "/nix/store/r4aydq3av3gh49gw7k0wcp3wdxkll0ni-source", 295 374 "rev": "ab165a8a6cd12781d76fe9cbccb9e975d0fb634f", 296 - "type": "github" 375 + "type": "path" 297 376 }, 298 377 "original": { 299 378 "id": "nixos-hardware", ··· 302 381 }, 303 382 "nixpkgs": { 304 383 "locked": { 384 + "lastModified": 1703013332, 385 + "narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=", 386 + "owner": "NixOS", 387 + "repo": "nixpkgs", 388 + "rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6", 389 + "type": "github" 390 + }, 391 + "original": { 392 + "owner": "NixOS", 393 + "ref": "nixos-unstable", 394 + "repo": "nixpkgs", 395 + "type": "github" 396 + } 397 + }, 398 + "nixpkgs_2": { 399 + "locked": { 305 400 "lastModified": 1717868076, 306 401 "narHash": "sha256-c83Y9t815Wa34khrux81j8K8ET94ESmCuwORSKm2bQY=", 307 402 "owner": "nixos", ··· 316 411 "type": "github" 317 412 } 318 413 }, 319 - "nixpkgs_2": { 414 + "nixpkgs_3": { 320 415 "locked": { 321 416 "lastModified": 1697723726, 322 417 "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", ··· 332 427 "type": "github" 333 428 } 334 429 }, 335 - "nixpkgs_3": { 430 + "nixpkgs_4": { 336 431 "locked": { 337 432 "lastModified": 1720535198, 338 433 "narHash": "sha256-zwVvxrdIzralnSbcpghA92tWu2DV2lwv89xZc8MTrbg=", ··· 350 445 }, 351 446 "root": { 352 447 "inputs": { 448 + "agenix": "agenix", 353 449 "disko": "disko", 354 450 "hardware": "hardware", 355 - "home-manager": "home-manager", 451 + "home-manager": "home-manager_2", 356 452 "hyprland-nix": "hyprland-nix", 357 453 "nixos-hardware": "nixos-hardware", 358 - "nixpkgs": "nixpkgs_3" 454 + "nixpkgs": "nixpkgs_4", 455 + "spicetify-nix": "spicetify-nix" 456 + } 457 + }, 458 + "spicetify-nix": { 459 + "inputs": { 460 + "flake-compat": "flake-compat", 461 + "nixpkgs": [ 462 + "nixpkgs" 463 + ] 464 + }, 465 + "locked": { 466 + "lastModified": 1721727694, 467 + "narHash": "sha256-X3qaEUG5zgJi9G1ceLpjuvlC9euTVNGlnJilfCgWJu4=", 468 + "owner": "Gerg-L", 469 + "repo": "spicetify-nix", 470 + "rev": "597ae057680ac250083166efab806dcc2e47dd6b", 471 + "type": "github" 472 + }, 473 + "original": { 474 + "owner": "Gerg-L", 475 + "repo": "spicetify-nix", 476 + "type": "github" 359 477 } 360 478 }, 361 479 "systems": { ··· 375 493 }, 376 494 "systems_2": { 377 495 "locked": { 496 + "lastModified": 1681028828, 497 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 498 + "owner": "nix-systems", 499 + "repo": "default", 500 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 501 + "type": "github" 502 + }, 503 + "original": { 504 + "owner": "nix-systems", 505 + "repo": "default", 506 + "type": "github" 507 + } 508 + }, 509 + "systems_3": { 510 + "locked": { 378 511 "lastModified": 1689347949, 379 512 "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", 380 513 "owner": "nix-systems", ··· 388 521 "type": "github" 389 522 } 390 523 }, 391 - "systems_3": { 524 + "systems_4": { 392 525 "locked": { 393 526 "lastModified": 1689347949, 394 527 "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
+10
flake.nix
··· 17 17 18 18 disko.url = "github:nix-community/disko"; 19 19 disko.inputs.nixpkgs.follows = "nixpkgs"; 20 + 21 + # agenix 22 + agenix.url = "github:ryantm/agenix"; 23 + 24 + spicetify-nix = { 25 + url = "github:Gerg-L/spicetify-nix"; 26 + inputs.nixpkgs.follows = "nixpkgs"; 27 + }; 20 28 }; 21 29 22 30 outputs = { 23 31 self, 24 32 nixpkgs, 33 + agenix, 25 34 home-manager, 26 35 nixos-hardware, 27 36 ... ··· 38 47 modules = [ 39 48 inputs.disko.nixosModules.disko 40 49 { disko.devices.disk.disk1.device = "/dev/vda"; } 50 + agenix.nixosModules.default 41 51 ./moonlark/configuration.nix 42 52 ]; 43 53 };
+36 -1
home-manager/home.nix
··· 14 14 15 15 # You can also split up your configuration and import pieces of it here: 16 16 # ./nvim.nix 17 + 18 + # spicetify 19 + inputs.spicetify-nix.homeManagerModules.default 17 20 ]; 18 21 19 22 nixpkgs = { ··· 37 40 38 41 # Enable home-manager and git 39 42 programs.home-manager.enable = true; 40 - programs.git.enable = true; 43 + 44 + # git config 45 + programs.git = { 46 + enable = true; 47 + userName = "Kieran Klukas"; 48 + userEmail = "92754843+kcoderhtml@users.noreply.github.com"; 49 + aliases = { 50 + c = "commit"; 51 + p = "push"; 52 + pl = "pull"; 53 + }; 54 + extraConfig = { 55 + commit.gpgsign = true; 56 + gpg.format = "ssh"; 57 + gpg.ssh.allowedSignersFile = "~/.ssh/allowedSigners"; 58 + user.signingKey = "~/.ssh/id_rsa.pub"; 59 + }; 60 + }; 41 61 62 + programs.spicetify = 63 + let 64 + spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; 65 + in 66 + { 67 + enable = true; 68 + enabledExtensions = with spicePkgs.extensions; [ 69 + adblock 70 + hidePodcasts 71 + shuffle # shuffle+ (special characters are sanitized out of extension names) 72 + ]; 73 + theme = spicePkgs.themes.catppuccin; 74 + colorScheme = "macchiato"; 75 + }; 76 + 42 77 # Nicely reload system units when changing configs 43 78 systemd.user.startServices = "sd-switch"; 44 79
+66 -4
moonlark/configuration.nix
··· 1 + 1 2 # This is your system's configuration file. 2 3 # Use this to configure your system environment (it replaces /etc/nixos/configuration.nix) 3 4 { ··· 20 21 21 22 # Import disko's configuration 22 23 ./disk-config.nix 24 + 25 + # hpyrland config 26 + #./hyprland 23 27 ]; 24 - 28 + 25 29 nixpkgs = { 26 30 # Configure your nixpkgs instance 27 31 config = { ··· 49 53 nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs; 50 54 }; 51 55 56 + time = { 57 + timeZone = "America/New_York"; 58 + hardwareClockInLocalTime = true; 59 + }; 60 + 61 + services.automatic-timezoned.enable = true; 62 + 52 63 environment.systemPackages = map lib.lowPrio [ 53 64 pkgs.curl 65 + inputs.agenix.packages.x86_64-linux.default 66 + pkgs.wpa_supplicant_gui 67 + pkgs.alacritty 68 + pkgs.zsh 69 + pkgs.swww 70 + pkgs.sunwait 71 + pkgs.wluma 72 + pkgs.brightnessctl 73 + pkgs.playerctl 74 + pkgs.firefox 75 + pkgs.slack 76 + pkgs.gnome.nautilus 77 + pkgs.gnome.file-roller 78 + pkgs.fprintd 54 79 pkgs.gitMinimal 80 + (pkgs.vscode-with-extensions.override { 81 + vscodeExtensions = with pkgs.vscode-extensions; [ 82 + bbenoist.nix 83 + ]; 84 + }) 85 + pkgs.github-desktop 55 86 ]; 56 87 88 + services.fprintd.enable = true; 89 + 90 + fonts.packages = with pkgs; [ 91 + nerdfonts 92 + ]; 93 + 94 + programs.hyprland.enable = true; 95 + 96 + environment.sessionVariables = { 97 + XDG_CACHE_HOME = "$HOME/.cache"; 98 + XDG_CONFIG_HOME = "$HOME/.config"; 99 + XDG_DATA_HOME = "$HOME/.local/share"; 100 + XDG_STATE_HOME = "$HOME/.local/state"; 101 + NIXOS_OZONE_WL = "1"; 102 + }; 103 + 104 + # import the secret 105 + age.identityPaths = [ "/home/kierank/.ssh/id_rsa" ]; 106 + age.secrets.wifi = { 107 + file = ../secrets/wifi.age; 108 + owner = "kierank"; 109 + }; 110 + 111 + # setup the network 57 112 networking = { 58 113 hostName = "moonlark"; 59 - wireless.enable = true; 114 + wireless = { 115 + environmentFile = config.age.secrets.wifi.path; 116 + userControlled.enable = true; 117 + enable = true; 118 + networks = { 119 + "KlukasNet".psk = "@PSK_HOME@"; 120 + "Everseen".psk = "@PSK_HOTSPOT@"; 121 + }; 122 + }; 60 123 }; 61 - 62 124 # TODO: Configure your system-wide user settings (groups, etc), add more users as needed. 63 125 users.users = { 64 126 kierank = { ··· 69 131 openssh.authorizedKeys.keys = [ 70 132 "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzEEjvbL/ttqmYoDjxYQmDIq36BabROJoXgQKeh9liBxApwp+2PmgxROzTg42UrRc9pyrkq5kVfxG5hvkqCinhL1fMiowCSEs2L2/Cwi40g5ZU+QwdcwI8a4969kkI46PyB19RHkxg54OUORiIiso/WHGmqQsP+5wbV0+4riSnxwn/JXN4pmnE//stnyAyoiEZkPvBtwJjKb3Ni9n3eNLNs6gnaXrCtaygEZdebikr9kS2g9mM696HvIFgM6cdR/wZ7DcLbG3IdTXuHN7PC3xxL+Y4ek5iMreQIPmuvs4qslbthPGYoYbYLUQiRa9XO5s/ksIj5Z14f7anHE6cuTQVpvNWdGDOigyIVS5qU+4ZF7j+rifzOXVL48gmcAvw/uV68m5Wl/p0qsC/d8vI3GYwEsWG/EzpAlc07l8BU2LxWgN+d7uwBFaJV9VtmUDs5dcslsh8IbzmtC9gq3OLGjklxTfIl6qPiL8U33oc/UwqzvZUrI2BlbagvIZYy6rP+q0= kierank@mockingjay" 71 133 ]; 72 - extraGroups = ["wheel" "networkmanager" "audio" "docker"]; 134 + extraGroups = ["wheel" "networkmanager" "audio" "video" "docker" "plugdev"]; 73 135 }; 74 136 root.openssh.authorizedKeys.keys = [ 75 137 "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzEEjvbL/ttqmYoDjxYQmDIq36BabROJoXgQKeh9liBxApwp+2PmgxROzTg42UrRc9pyrkq5kVfxG5hvkqCinhL1fMiowCSEs2L2/Cwi40g5ZU+QwdcwI8a4969kkI46PyB19RHkxg54OUORiIiso/WHGmqQsP+5wbV0+4riSnxwn/JXN4pmnE//stnyAyoiEZkPvBtwJjKb3Ni9n3eNLNs6gnaXrCtaygEZdebikr9kS2g9mM696HvIFgM6cdR/wZ7DcLbG3IdTXuHN7PC3xxL+Y4ek5iMreQIPmuvs4qslbthPGYoYbYLUQiRa9XO5s/ksIj5Z14f7anHE6cuTQVpvNWdGDOigyIVS5qU+4ZF7j+rifzOXVL48gmcAvw/uV68m5Wl/p0qsC/d8vI3GYwEsWG/EzpAlc07l8BU2LxWgN+d7uwBFaJV9VtmUDs5dcslsh8IbzmtC9gq3OLGjklxTfIl6qPiL8U33oc/UwqzvZUrI2BlbagvIZYy6rP+q0= kierank@mockingjay"
+8 -8
moonlark/hyprland/default.nix
··· 5 5 ./config.nix 6 6 ./windowrules.nix 7 7 ./keybinds.nix 8 - ./waybar.nix 8 + #./waybar.nix 9 9 ]; 10 10 11 - home.packages = [ 12 - # Screen Capture 13 - pkgs.prtsc 14 - # xwayland perm for pkexec 15 - pkgs.xorg.xhost 16 - ]; 11 + # home.packages = [ 12 + # # Screen Capture 13 + # pkgs.prtsc 14 + # # xwayland perm for pkexec 15 + # pkgs.xorg.xhost 16 + # ]; 17 17 18 18 wayland.windowManager.hyprland = { 19 19 enable = true; ··· 49 49 # common = { default = [ "gtk" ]; }; 50 50 # }; 51 51 # }; 52 - } 52 + }
+2 -2
moonlark/hyprland/keybinds.nix
··· 272 272 ### WINDOW RESIZING ### 273 273 groups.toggleSplit 274 274 groups.mouseResizeWindow 275 - } 275 + 276 276 ### WORKSPACE SWITCHING ### 277 277 groups.switchWorkspace 278 278 ### WORKSPACE WINDOW MOVEMENT ### 279 279 groups.sendWindow 280 280 ]; 281 - } 281 + }
+10
secrets/secrets.nix
··· 1 + let 2 + kierank = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzEEjvbL/ttqmYoDjxYQmDIq36BabROJoXgQKeh9liBxApwp+2PmgxROzTg42UrRc9pyrkq5kVfxG5hvkqCinhL1fMiowCSEs2L2/Cwi40g5ZU+QwdcwI8a4969kkI46PyB19RHkxg54OUORiIiso/WHGmqQsP+5wbV0+4riSnxwn/JXN4pmnE//stnyAyoiEZkPvBtwJjKb3Ni9n3eNLNs6gnaXrCtaygEZdebikr9kS2g9mM696HvIFgM6cdR/wZ7DcLbG3IdTXuHN7PC3xxL+Y4ek5iMreQIPmuvs4qslbthPGYoYbYLUQiRa9XO5s/ksIj5Z14f7anHE6cuTQVpvNWdGDOigyIVS5qU+4ZF7j+rifzOXVL48gmcAvw/uV68m5Wl/p0qsC/d8vI3GYwEsWG/EzpAlc07l8BU2LxWgN+d7uwBFaJV9VtmUDs5dcslsh8IbzmtC9gq3OLGjklxTfIl6qPiL8U33oc/UwqzvZUrI2BlbagvIZYy6rP+q0="; 3 + users = [ kierank ]; 4 + 5 + moonlark = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzEEjvbL/ttqmYoDjxYQmDIq36BabROJoXgQKeh9liBxApwp+2PmgxROzTg42UrRc9pyrkq5kVfxG5hvkqCinhL1fMiowCSEs2L2/Cwi40g5ZU+QwdcwI8a4969kkI46PyB19RHkxg54OUORiIiso/WHGmqQsP+5wbV0+4riSnxwn/JXN4pmnE//stnyAyoiEZkPvBtwJjKb3Ni9n3eNLNs6gnaXrCtaygEZdebikr9kS2g9mM696HvIFgM6cdR/wZ7DcLbG3IdTXuHN7PC3xxL+Y4ek5iMreQIPmuvs4qslbthPGYoYbYLUQiRa9XO5s/ksIj5Z14f7anHE6cuTQVpvNWdGDOigyIVS5qU+4ZF7j+rifzOXVL48gmcAvw/uV68m5Wl/p0qsC/d8vI3GYwEsWG/EzpAlc07l8BU2LxWgN+d7uwBFaJV9VtmUDs5dcslsh8IbzmtC9gq3OLGjklxTfIl6qPiL8U33oc/UwqzvZUrI2BlbagvIZYy6rP+q0="; 6 + systems = [ moonlark ]; 7 + in 8 + { 9 + "wifi.age".publicKeys = [ kierank moonlark ]; 10 + }
+23
secrets/wifi.age
··· 1 + age-encryption.org/v1 2 + -> ssh-rsa DqcG0Q 3 + XU+SPcbnaUk/Zgr2ZMXN//6Qwh9mwygWNNr2bXj9MSV5znc3jD62r4G6UDiQkc3b 4 + 4qgW/C28yEdNBn8moKIYj4x4oOcOZ0qBuY7Kxrmh0gJshFjzeCrkTVCU2tmcP7sy 5 + oAJFcuG+9FpqQlU6Ns+Y9bx9o+ZO5dhTQoW2Bviwtokd4FyGpQd/79pqoYjUkM0m 6 + fp/HKx9ZMhELDVeZ7v1IXZE8ztcZrQW6dB9FJ9hT9M4iQq+GWJrIoxoIEIxTJD0I 7 + Q+wPaL3EeXMajPvi8DJ6U6pm43SdhH3e9T4/a5YcRVaGlvuo1m6Nbcdu9AyifN6h 8 + ybRQsLMMGaUd3Dv0BdDTQV3Z7KHB0pnLTqGYrVSFp4/sdxvTKAHz4m9l0jfNy46Q 9 + ZeUOh918gBWIe1eJxPS5WCXf+k47u3+OftOYCe0EfBnLo/2V4Ja/wGYVOskjT8W+ 10 + eTBEDyM9NrxpKzMhzK6vqaGFmRG76hc6tOr57A5DyaIDthQMuASGxpk95so22wKB 11 + 12 + -> ssh-rsa DqcG0Q 13 + IqCflvCv75+D3SZF7GQMJ6otP4gEudplWAJ0qhcD9DaDLekvk+20YyuyM9Vh2edi 14 + pxEJR+h8ggrGIu9oJZggqjGDiiSzAVaxcfb7kLmsR/5BS4yH//srWxwf9XyLXsL5 15 + gj4Yfj6J4fukMN/V/V9pwzYqiSWYbRbjTMROULFE/4seUNYqA8lIIo67XGz4+GIy 16 + YKZ2U65+6kKejyjzOTnJfxZrhVWECrGLRYaTQf4ah4SWrS1YorMjeXuE18L5jXcN 17 + p3ct0AJRxJQPrDsgcl3TXANcIPk93WRxElGlp57CgZf9qGCVOXANvUaxslLm4mkm 18 + 93U5T0gdSMBgn3KcT0doQEcg+PnXVnrrmYaTDEhqWNrBrxZYrmqgM8M0HlnWgXjQ 19 + 9Y3iDp8Vl9M/hoJ6pRwpy+9KNkgIxJKvrsRkPdH1QbHQA1q/oZJHYhZ5ahXskdWl 20 + EFplzjA2D6ZA4DULPkbq8wpC+hax+2nUBnZTGMtoCzugGQE5CRnfKeSGlIIGCE83 21 + 22 + --- e2ncZ3eBi7ELB+EOGzK/DbawSZUAYfZ6tFd0p2kwi7U 23 + w�o_�lδ�:��.8y�}�Z�.��fxU��-aTÁFS��>� gr���Z`�7u��C����=�6U��v�h6.)`M�c$D�^