Add gruvbox theme
|
@ -7,99 +7,78 @@ let
|
|||
popups = amount;
|
||||
};
|
||||
|
||||
base16 = name: "${inputs.base16-schemes}/base16/${name}.yaml";
|
||||
|
||||
themes = {
|
||||
# {{{ Catppuccin variants
|
||||
# {{{ Catppuccin mocha
|
||||
catppuccin-mocha = {
|
||||
stylix = {
|
||||
image = ./wallpapers/breaking_phos.jpg;
|
||||
base16Scheme = "${inputs.catppuccin-base16}/base16/mocha.yaml";
|
||||
base16Scheme = base16 "catppuccin-mocha";
|
||||
opacity = transparency 0.7;
|
||||
polarity = "dark";
|
||||
};
|
||||
|
||||
satellite = {
|
||||
rounding.radius = 8.0;
|
||||
};
|
||||
satellite.rounding.radius = 8.0;
|
||||
};
|
||||
|
||||
# }}}
|
||||
# {{{ Catppuccin latte
|
||||
catppuccin-latte = {
|
||||
stylix = {
|
||||
image = ./wallpapers/field_diamond.jpg;
|
||||
base16Scheme = "${inputs.catppuccin-base16}/base16/latte.yaml";
|
||||
base16Scheme = base16 "catppuccin-latte";
|
||||
opacity = transparency 0.7;
|
||||
polarity = "light";
|
||||
};
|
||||
|
||||
satellite = {
|
||||
rounding.radius = 8.0;
|
||||
};
|
||||
satellite.rounding.radius = 8.0;
|
||||
};
|
||||
|
||||
# }}}
|
||||
# {{{ Catppuccin macchiato
|
||||
catppuccin-macchiato = {
|
||||
stylix = {
|
||||
image = ./wallpapers/gabriel.jpg;
|
||||
base16Scheme = "${inputs.catppuccin-base16}/base16/macchiato.yaml";
|
||||
base16Scheme = base16 "catppuccin-macchiato";
|
||||
opacity = transparency 0.7;
|
||||
polarity = "dark";
|
||||
};
|
||||
satellite = {
|
||||
rounding.radius = 8.0;
|
||||
};
|
||||
satellite.rounding.radius = 8.0;
|
||||
};
|
||||
# }}}
|
||||
# {{{ Rosepine variants
|
||||
# {{{ Rosepine dawn
|
||||
rosepine-dawn = {
|
||||
stylix = {
|
||||
image = ./wallpapers/rosepine_light_field.png;
|
||||
base16Scheme = "${inputs.rosepine-base16}/rose-pine-dawn.yaml";
|
||||
base16Scheme = base16 "rose-pine-dawn";
|
||||
polarity = "light";
|
||||
};
|
||||
satellite = { };
|
||||
};
|
||||
# }}}
|
||||
# {{{ Bluloco variants
|
||||
bluloco-light = {
|
||||
# {{{ Gruvbox light
|
||||
gruvbox-light = {
|
||||
stylix = {
|
||||
image = ./wallpapers/watercag.png;
|
||||
base16Scheme = ./schemes/bluloco-light.yaml;
|
||||
opacity = transparency 0.6;
|
||||
image = ./wallpapers/rosepine_light_field.png;
|
||||
base16Scheme = base16 "gruvbox-light-soft";
|
||||
opacity = transparency 0.7;
|
||||
polarity = "light";
|
||||
};
|
||||
|
||||
satellite = {
|
||||
rounding.radius = 8.0;
|
||||
};
|
||||
satellite.rounding.radius = 8.0;
|
||||
};
|
||||
# }}}
|
||||
# {{{ Experiment: AI generated themes
|
||||
gpt = {
|
||||
monopurple-light = {
|
||||
stylix = {
|
||||
image = ./wallpapers/auto/catppuccin-latte-city.png;
|
||||
base16Scheme = ./schemes/gpt-themes/monopurple-light.yaml;
|
||||
polarity = "light";
|
||||
};
|
||||
satellite = { };
|
||||
};
|
||||
|
||||
purplepink-light = {
|
||||
stylix = {
|
||||
image = ./wallpapers/spaceship.jpg;
|
||||
base16Scheme = ./schemes/gpt-themes/purplepink-light.yaml;
|
||||
transparency.alpha = 0.6;
|
||||
polarity = "light";
|
||||
};
|
||||
|
||||
satellite = {
|
||||
rounding.radius = 8.0;
|
||||
};
|
||||
# {{{ Gruvbox dark
|
||||
gruvbox-dark = {
|
||||
stylix = {
|
||||
image = ./wallpapers/sad_hikari.png;
|
||||
base16Scheme = base16 "gruvbox-dark-soft";
|
||||
opacity = transparency 0.7;
|
||||
polarity = "dark";
|
||||
};
|
||||
satellite.rounding.radius = 8.0;
|
||||
};
|
||||
# }}}
|
||||
};
|
||||
|
||||
# Select your current theme here!
|
||||
currentTheme = themes.catppuccin-latte;
|
||||
currentTheme = themes.gruvbox-dark;
|
||||
in
|
||||
{
|
||||
# We apply the current theme here.
|
||||
|
|
BIN
common/themes/wallpapers/sad_hikari.png
Normal file
After Width: | Height: | Size: 2.6 MiB |
|
@ -4,13 +4,22 @@ This file tells the story of my setup throughout it's history. This document is
|
|||
|
||||
## 2024-04-29
|
||||
|
||||
- the vibe of sad light passing through the trees
|
||||
- [Hikari (Arcaea) wallpaper](https://wallhaven.cc/w/85doxj)
|
||||
- apps on display: [pipes](https://github.com/pipeseroni/pipes.sh), [uptimes script](../home/features/cli/scripts/uptimes.sh), [bottom](https://github.com/ClementTsang/bottom), [Neovim](https://neovim.io/), [Zathura](https://pwmt.org/projects/zathura/)
|
||||
|
||||
![terminals](img/2024-04-29-terminals.png)
|
||||
![zathura and neovim](img/2024-04-29-zathura-neovim.png)
|
||||
|
||||
## 2024-04-07
|
||||
|
||||
- sunny field vibes
|
||||
- [Diamond (Land of the Lustrous) wallpaper](https://wallhaven.cc/w/vmk2e3)
|
||||
- [catppuccin-latte](https://github.com/catppuccin/base16) colors
|
||||
- apps on display: [Yazi](https://github.com/sxyazi/yazi), [Cmatrix](https://github.com/abishekvashok/cmatrix), [Neovim](https://neovim.io/), [Anyrun](https://github.com/catppuccin/base16)
|
||||
|
||||
![Terminals](img/2024-04-29-terminals.png)
|
||||
![Anyrun](img/2024-04-29-anyrun-calculation.png)
|
||||
![Terminals](img/2024-04-07-terminals.png)
|
||||
![Anyrun](img/2024-04-07-anyrun-calculation.png)
|
||||
|
||||
## 2024-02-29
|
||||
|
||||
|
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 2.3 MiB |
BIN
docs/img/2024-04-07-terminals.png
Normal file
After Width: | Height: | Size: 2.2 MiB |
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 2.1 MiB |
BIN
docs/img/2024-04-29-zathura-neovim.png
Normal file
After Width: | Height: | Size: 2.1 MiB |
63
flake.lock
|
@ -90,11 +90,11 @@
|
|||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1689633990,
|
||||
"narHash": "sha256-iwvQg2Vx0IIDWZaKo8Xmzxlv1YPHg+Kp/QSv8dRv0RY=",
|
||||
"lastModified": 1708890466,
|
||||
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "dddf2e1c04845d43c89a8e9e37d574519649a404",
|
||||
"rev": "665b3c6748534eb766c777298721cece9453fdae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -200,6 +200,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1713388094,
|
||||
"narHash": "sha256-wcotm0Ek2ISn8iJBzEujJQdcPLKWrPAOZ/dS/DLKafw=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "abcf2a055ae69f1bf047463332f83db3125aa8a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
@ -232,22 +248,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"catppuccin-base16": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1665586920,
|
||||
"narHash": "sha256-fZDsmJ+xFjOJDoI+bPki9W7PEI5lT5aGoCYtkatcZ8A=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "base16",
|
||||
"rev": "ca74b4070d6ead4213e92da1273fcc1853de7af8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "catppuccin",
|
||||
"repo": "base16",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"conformance": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
@ -1110,11 +1110,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1700847865,
|
||||
"narHash": "sha256-uWaOIemGl9LF813MW0AEgCBpKwFo2t1Wv3BZc6e5Frw=",
|
||||
"lastModified": 1706001011,
|
||||
"narHash": "sha256-J7Bs9LHdZubgNHZ6+eE/7C18lZ1P6S5/zdJSdXFItI4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "8cedd63eede4c22deb192f1721dd67e7460e1ebe",
|
||||
"rev": "3df2a80f3f85f91ea06e5e91071fa74ba92e5084",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -1918,7 +1918,7 @@
|
|||
"root": {
|
||||
"inputs": {
|
||||
"anyrun": "anyrun",
|
||||
"catppuccin-base16": "catppuccin-base16",
|
||||
"base16-schemes": "base16-schemes",
|
||||
"darkmatter-grub-theme": "darkmatter-grub-theme",
|
||||
"disko": "disko",
|
||||
"firefox-addons": "firefox-addons",
|
||||
|
@ -1932,29 +1932,12 @@
|
|||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_8",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"rosepine-base16": "rosepine-base16",
|
||||
"smos": "smos",
|
||||
"sops-nix": "sops-nix",
|
||||
"spicetify-nix": "spicetify-nix",
|
||||
"stylix": "stylix"
|
||||
}
|
||||
},
|
||||
"rosepine-base16": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1669049843,
|
||||
"narHash": "sha256-4+U8llaqsztHrmR7OYBplz2Ez7Txbi8z/r9AQjKJEBk=",
|
||||
"owner": "edunfelt",
|
||||
"repo": "base16-rose-pine-scheme",
|
||||
"rev": "424c0327b8251e4662e6cbc62518273c8800f507",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edunfelt",
|
||||
"repo": "base16-rose-pine-scheme",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"safe-coloured-text": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
|
@ -71,11 +71,8 @@
|
|||
# stylix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
# stylix.inputs.home-manager.follows = "home-manager";
|
||||
|
||||
catppuccin-base16.url = "github:catppuccin/base16";
|
||||
catppuccin-base16.flake = false;
|
||||
|
||||
rosepine-base16.url = "github:edunfelt/base16-rose-pine-scheme";
|
||||
rosepine-base16.flake = false;
|
||||
base16-schemes.url = "github:tinted-theming/schemes";
|
||||
base16-schemes.flake = false;
|
||||
# }}}
|
||||
};
|
||||
# }}}
|
||||
|
|
|
@ -15,7 +15,14 @@ end
|
|||
local font_size = 20.0
|
||||
|
||||
-- {{{ Theming
|
||||
config.colors = wezterm.color.load_base16_scheme(colorscheme.source)
|
||||
local themeMap = {
|
||||
["Gruvbox light, soft"] = "Gruvbox light, soft (base16)",
|
||||
["Gruvbox dark, soft"] = "Gruvbox dark, soft (base16)",
|
||||
}
|
||||
|
||||
config.color_scheme = themeMap[colorscheme.name]
|
||||
config.colors = {}
|
||||
-- config.colors = wezterm.color.load_base16_scheme(colorscheme.source)
|
||||
|
||||
-- {{{ Window frame
|
||||
config.window_frame = {
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
"catppuccin": { "branch": "main", "commit": "9703f227bfab20d04bcee62d2f08f1795723b4ae" },
|
||||
"clipboard-image": { "branch": "main", "commit": "485de5493d196154db30f85665f8ac480ce116a2" },
|
||||
"cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
|
@ -18,6 +17,7 @@
|
|||
"github-actions": { "branch": "master", "commit": "f2f16243447cea174daa6b4a9ffd3ff9213814ef" },
|
||||
"gitlinker": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" },
|
||||
"gitsigns": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" },
|
||||
"gruvbox": { "branch": "main", "commit": "6e4027ae957cddf7b193adfaec4a8f9e03b4555f" },
|
||||
"harpoon": { "branch": "master", "commit": "ccae1b9bec717ae284906b0bf83d720e59d12b91" },
|
||||
"haskell-tools": { "branch": "master", "commit": "92e097c6832405fb64e4c44a7ce8bebe7836cae6" },
|
||||
"hyprland": { "branch": "main", "commit": "71760fe0cad972070657b0528f48456f7e0027b2" },
|
||||
|
|
|
@ -6,8 +6,8 @@ end
|
|||
|
||||
function M.setup()
|
||||
require("lazy").setup({
|
||||
importFrom("my.plugins"),
|
||||
importFrom("my.plugins.themes"),
|
||||
require("my.plugins.themes"),
|
||||
require("my.plugins.whichkey"),
|
||||
unpack(require("nix").lazy),
|
||||
}, {
|
||||
defaults = { lazy = true },
|
||||
|
|
99
home/features/neovim/config/lua/my/plugins/themes.lua
Normal file
|
@ -0,0 +1,99 @@
|
|||
local H = require("my.tempest")
|
||||
local M = {}
|
||||
|
||||
-- {{{ Custom overrides
|
||||
local function theme(callback)
|
||||
return function()
|
||||
if H.theme.polarity ~= nil then
|
||||
vim.o.background = H.theme.polarity
|
||||
end
|
||||
|
||||
callback()
|
||||
|
||||
if H.theme.transparency.terminal.enabled then
|
||||
vim.cmd([[highlight FloatBorder blend=0 guibg=NONE]])
|
||||
-- vim.cmd([[highlight MiniStatuslineInactive blend=0 guibg=NONE]])
|
||||
vim.cmd([[highlight MiniStatuslineFilename blend=0 guibg=NONE]])
|
||||
-- vim.cmd([[highlight MiniStatuslineFileinfo blend=0 guibg=NONE]])
|
||||
-- vim.cmd([[highlight MiniStatuslineDevInfo blend=0 guibg=NONE]])
|
||||
vim.cmd([[highlight Statusline blend=0 guibg=NONE]])
|
||||
vim.cmd([[highlight StatuslineNC blend=0 guibg=NONE]])
|
||||
end
|
||||
end
|
||||
end
|
||||
-- }}}
|
||||
-- {{{ Catppuccin
|
||||
table.insert(M, {
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
lazy = false,
|
||||
enabled = H.theme_contains("Catppuccin"),
|
||||
config = theme(function()
|
||||
local catppuccin = require("catppuccin")
|
||||
vim.g.catppuccin_flavour = H.theme_variant("Catppuccin")
|
||||
|
||||
catppuccin.setup({
|
||||
transparent_background = H.theme.transparency.terminal.enabled,
|
||||
integrations = {
|
||||
nvimtree = true,
|
||||
telescope = true,
|
||||
mini = { enabled = true },
|
||||
},
|
||||
})
|
||||
|
||||
vim.cmd([[highlight NotifyINFOIcon guifg=#d6b20f]])
|
||||
vim.cmd([[highlight NotifyINFOTitle guifg=#d6b20f]])
|
||||
|
||||
vim.cmd("colorscheme catppuccin")
|
||||
end),
|
||||
})
|
||||
-- }}}
|
||||
-- {{{ Rose-pine
|
||||
table.insert(M, {
|
||||
"rose-pine/neovim",
|
||||
name = "rose-pine",
|
||||
lazy = false,
|
||||
enabled = H.theme_contains("Rosé Pine"),
|
||||
config = theme(function()
|
||||
local variant = H.theme_variant("Rosé Pine")
|
||||
|
||||
if variant == "" then
|
||||
variant = "main"
|
||||
end
|
||||
|
||||
require("rose-pine").setup({
|
||||
dark_variant = variant,
|
||||
})
|
||||
|
||||
vim.cmd("colorscheme rose-pine")
|
||||
end),
|
||||
})
|
||||
-- }}}
|
||||
-- {{{ Gruvbox
|
||||
table.insert(M, {
|
||||
"ellisonleao/gruvbox.nvim",
|
||||
name = "gruvbox",
|
||||
lazy = false,
|
||||
enabled = H.theme_contains("Gruvbox"),
|
||||
config = theme(function()
|
||||
local variant = H.theme_variant("Gruvbox")
|
||||
local contrast = H.helpers.drop_prefix(variant, H.theme.polarity .. ", ")
|
||||
|
||||
require("gruvbox").setup({
|
||||
contrast = contrast,
|
||||
transparent_mode = H.theme.transparency.terminal.enabled,
|
||||
})
|
||||
|
||||
vim.cmd("colorscheme gruvbox")
|
||||
vim.cmd(
|
||||
"hi MiniStatuslineDevInfo guibg=#"
|
||||
.. H.theme.base06
|
||||
.. " guifg=#"
|
||||
.. H.theme.base00
|
||||
)
|
||||
vim.cmd("redraw")
|
||||
end),
|
||||
})
|
||||
-- }}}
|
||||
|
||||
return M
|
|
@ -1,21 +0,0 @@
|
|||
local H = require("my.tempest")
|
||||
|
||||
local M = {
|
||||
"uloco/bluloco.nvim",
|
||||
lazy = false,
|
||||
dependencies = { "rktjmp/lush.nvim" },
|
||||
enabled = H.theme_contains("Bluloco"),
|
||||
}
|
||||
|
||||
function M.config()
|
||||
local bluloco = require("bluloco")
|
||||
|
||||
bluloco.setup({
|
||||
transparent = H.theme.transaprency.terminal.enabled,
|
||||
style = H.theme_variant("Bluloco"),
|
||||
})
|
||||
|
||||
vim.cmd("colorscheme bluloco")
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,39 +0,0 @@
|
|||
local H = require("my.tempest")
|
||||
|
||||
local M = {
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
lazy = false,
|
||||
enabled = H.theme_contains("Catppuccin"),
|
||||
}
|
||||
|
||||
function M.config()
|
||||
local catppuccin = require("catppuccin")
|
||||
vim.g.catppuccin_flavour = H.theme_variant("Catppuccin")
|
||||
|
||||
catppuccin.setup({
|
||||
transparent_background = H.theme.transparency.terminal.enabled,
|
||||
integrations = {
|
||||
nvimtree = true,
|
||||
telescope = true,
|
||||
mini = { enabled = true },
|
||||
},
|
||||
})
|
||||
|
||||
vim.cmd([[highlight NotifyINFOIcon guifg=#d6b20f]])
|
||||
vim.cmd([[highlight NotifyINFOTitle guifg=#d6b20f]])
|
||||
|
||||
vim.cmd("colorscheme catppuccin")
|
||||
|
||||
if H.theme.transparency.terminal.enabled then
|
||||
vim.cmd([[highlight FloatBorder blend=0 guibg=NONE]])
|
||||
-- vim.cmd([[highlight MiniStatuslineInactive blend=0 guibg=NONE]])
|
||||
vim.cmd([[highlight MiniStatuslineFilename blend=0 guibg=NONE]])
|
||||
-- vim.cmd([[highlight MiniStatuslineFileinfo blend=0 guibg=NONE]])
|
||||
-- vim.cmd([[highlight MiniStatuslineDevInfo blend=0 guibg=NONE]])
|
||||
vim.cmd([[highlight Statusline blend=0 guibg=NONE]])
|
||||
vim.cmd([[highlight StatuslineNC blend=0 guibg=NONE]])
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,31 +0,0 @@
|
|||
local H = require("my.tempest")
|
||||
|
||||
local M = {
|
||||
"rose-pine/neovim",
|
||||
name = "rose-pine",
|
||||
lazy = false,
|
||||
enabled = H.theme_contains("Rosé Pine"),
|
||||
}
|
||||
|
||||
function M.config()
|
||||
local variant = H.theme_variant("Rosé Pine")
|
||||
|
||||
if variant == "dawn" then
|
||||
vim.o.background = "light"
|
||||
else
|
||||
vim.o.background = "dark"
|
||||
end
|
||||
|
||||
local dark_variants = {
|
||||
[""] = "main",
|
||||
moon = "moon",
|
||||
}
|
||||
|
||||
require("rose-pine").setup({
|
||||
dark_variant = dark_variants[variant],
|
||||
})
|
||||
|
||||
vim.cmd("colorscheme rose-pine")
|
||||
end
|
||||
|
||||
return M
|
|
@ -31,6 +31,11 @@ function H.split(text, sep)
|
|||
end)
|
||||
return fields
|
||||
end
|
||||
|
||||
function H.drop_prefix(whole, prefix)
|
||||
-- +1 for 1-indexed strings
|
||||
return string.sub(whole, string.len(prefix) + 1)
|
||||
end
|
||||
-- }}}
|
||||
-- {{{ Tables
|
||||
function H.mergeTables(t1, t2)
|
||||
|
@ -326,8 +331,7 @@ function M.theme_contains(name)
|
|||
end
|
||||
|
||||
function M.theme_variant(name)
|
||||
-- +1 for 1-indexed strings and +1 for the space between name and variant
|
||||
return string.lower(string.sub(theme.name, string.len(name) + 2))
|
||||
return string.lower(H.drop_prefix(theme.name, name .. " "))
|
||||
end
|
||||
-- }}}
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
|
||||
theme = {
|
||||
name = config.lib.stylix.scheme.scheme;
|
||||
polarity = config.stylix.polarity or null;
|
||||
base00 = config.lib.stylix.scheme.base00;
|
||||
base01 = config.lib.stylix.scheme.base01;
|
||||
base02 = config.lib.stylix.scheme.base02;
|
||||
|
|