387 lines
15 KiB
Plaintext
387 lines
15 KiB
Plaintext
|
# i3 config file (v4)
|
|||
|
font pango:lemon 7
|
|||
|
|
|||
|
# Terminus (TTF) 9
|
|||
|
|
|||
|
# Lmao
|
|||
|
set $mod Mod4
|
|||
|
set $Locker "/bin/bash ~/.config/i3/locker.sh"
|
|||
|
set $Locker_suspend "/bin/bash ~/.config/i3/locker.sh suspend"
|
|||
|
set $Locker_hibernate "/bin/bash ~/.config/i3/locker.sh hibernate"
|
|||
|
set $terminal st
|
|||
|
|
|||
|
|
|||
|
set $left h
|
|||
|
set $down j
|
|||
|
set $up k
|
|||
|
set $right l
|
|||
|
|
|||
|
floating_modifier Mod4
|
|||
|
|
|||
|
# Notifications
|
|||
|
bindsym $mod+bracketleft exec --no-startup-id dunstctl close
|
|||
|
bindsym $mod+Shift+bracketleft exec --no-startup-id dunstctl close-all
|
|||
|
bindsym $mod+bracketright exec --no-startup-id dunstctl history-pop
|
|||
|
bindsym $mod+Shift+bracketright exec --no-startup-id dunstctl context
|
|||
|
|
|||
|
# Basics
|
|||
|
bindsym $mod+Return exec $terminal
|
|||
|
bindsym $mod+Shift+v exec $terminal vtm
|
|||
|
bindsym $mod+Ctrl+Return exec st -C '#363636@0' -C '#953641@1' -C '#679a2f@2' -C '#ca973e@3' -C '#535f7f@4' -C '#655876@5' -C '#728c91@6' -C '#a3a3a3@7' -C '#888888@8' -C '#c47b86@9' -C '#89be7f@10' -C '#f9c0ad@11' -C '#6283bd@12' -C '#ad8bc5@13' -C '#a9dfe2@14' -C '#dadada@15' -f lemon -A 0.95
|
|||
|
bindsym $mod+F4 kill
|
|||
|
bindsym $mod+shift+r exec rofi -show drun
|
|||
|
bindsym $mod+shift+d exec --no-startup-id dmenu_run -c -l 20 -g 2
|
|||
|
bindsym $mod+d exec --no-startup-id dmenu_run -c -l 20 -g 2
|
|||
|
|
|||
|
# Focusing
|
|||
|
bindsym $mod+$left focus left
|
|||
|
bindsym $mod+$down focus down
|
|||
|
bindsym $mod+$up focus up
|
|||
|
bindsym $mod+$right focus right
|
|||
|
bindsym $mod+Left focus left
|
|||
|
bindsym $mod+Down focus down
|
|||
|
bindsym $mod+Up focus up
|
|||
|
bindsym $mod+Right focus right
|
|||
|
bindsym Mod1+Tab focus next
|
|||
|
|
|||
|
focus_follows_mouse no
|
|||
|
|
|||
|
|
|||
|
# Moving focused
|
|||
|
bindsym $mod+Mod1+$left move left
|
|||
|
bindsym $mod+Mod1+$down move down
|
|||
|
bindsym $mod+Mod1+$up move up
|
|||
|
bindsym $mod+Mod1+$right move right
|
|||
|
bindsym $mod+Mod1+Left move left
|
|||
|
bindsym $mod+Mod1+Down move down
|
|||
|
bindsym $mod+Mod1+Up move up
|
|||
|
bindsym $mod+Mod1+Right move right
|
|||
|
|
|||
|
|
|||
|
# Splitting
|
|||
|
bindsym $mod+g split h
|
|||
|
bindsym $mod+v split v
|
|||
|
|
|||
|
# Fullscreen
|
|||
|
bindsym $mod+f fullscreen toggle
|
|||
|
|
|||
|
# Layout
|
|||
|
bindsym $mod+t border normal 1
|
|||
|
bindsym $mod+y border pixel
|
|||
|
bindsym $mod+u border none
|
|||
|
|
|||
|
bindsym $mod+s layout stacking
|
|||
|
bindsym $mod+w layout tabbed
|
|||
|
bindsym $mod+e layout toggle split
|
|||
|
bindsym $mod+Shift+f sticky toggle
|
|||
|
bindsym $mod+Shift+space floating toggle
|
|||
|
bindsym $mod+space focus mode_toggle
|
|||
|
bindsym $mod+Mod1+minus move scratchpad
|
|||
|
bindsym $mod+minus scratchpad show
|
|||
|
|
|||
|
# Workspaces
|
|||
|
set $workspace1 "1"
|
|||
|
set $workspace2 "2"
|
|||
|
set $workspace3 "3"
|
|||
|
set $workspace4 "4"
|
|||
|
set $workspace5 "5"
|
|||
|
set $workspace6 "6"
|
|||
|
set $workspace7 "7"
|
|||
|
set $workspace8 "8"
|
|||
|
set $workspace9 "9"
|
|||
|
set $workspace10 "10:IM"
|
|||
|
set $workspace11 "11"
|
|||
|
set $workspace12 "12"
|
|||
|
set $workspace13 "13"
|
|||
|
set $workspace14 "14"
|
|||
|
set $workspace15 "15"
|
|||
|
set $workspace16 "16"
|
|||
|
set $workspace17 "17"
|
|||
|
set $workspace18 "18"
|
|||
|
set $workspace19 "19"
|
|||
|
set $workspace20 "20"
|
|||
|
|
|||
|
# switch to workspace
|
|||
|
bindsym $mod+1 workspace $workspace1
|
|||
|
bindsym $mod+2 workspace $workspace2
|
|||
|
bindsym $mod+3 workspace $workspace3
|
|||
|
bindsym $mod+4 workspace $workspace4
|
|||
|
bindsym $mod+5 workspace $workspace5
|
|||
|
bindsym $mod+6 workspace $workspace6
|
|||
|
bindsym $mod+7 workspace $workspace7
|
|||
|
bindsym $mod+8 workspace $workspace8
|
|||
|
bindsym $mod+9 workspace $workspace9
|
|||
|
bindsym $mod+0 workspace $workspace10
|
|||
|
bindsym $mod+Control+1 workspace $workspace11
|
|||
|
bindsym $mod+Control+2 workspace $workspace12
|
|||
|
bindsym $mod+Control+3 workspace $workspace13
|
|||
|
bindsym $mod+Control+4 workspace $workspace14
|
|||
|
bindsym $mod+Control+5 workspace $workspace15
|
|||
|
bindsym $mod+Control+6 workspace $workspace16
|
|||
|
bindsym $mod+Control+7 workspace $workspace17
|
|||
|
bindsym $mod+Control+8 workspace $workspace18
|
|||
|
bindsym $mod+Control+9 workspace $workspace19
|
|||
|
bindsym $mod+Control+0 workspace $workspace20
|
|||
|
|
|||
|
bindsym $mod+Tab workspace next
|
|||
|
bindsym $mod+Shift+Tab workspace prev
|
|||
|
bindsym $mod+Ctrl+Left workspace prev
|
|||
|
bindsym $mod+Ctrl+Right workspace next
|
|||
|
|
|||
|
bindsym $mod+mod1+1 move container to workspace $workspace1
|
|||
|
bindsym $mod+mod1+2 move container to workspace $workspace2
|
|||
|
bindsym $mod+mod1+3 move container to workspace $workspace3
|
|||
|
bindsym $mod+mod1+4 move container to workspace $workspace4
|
|||
|
bindsym $mod+mod1+5 move container to workspace $workspace5
|
|||
|
bindsym $mod+mod1+6 move container to workspace $workspace6
|
|||
|
bindsym $mod+mod1+7 move container to workspace $workspace7
|
|||
|
bindsym $mod+mod1+8 move container to workspace $workspace8
|
|||
|
bindsym $mod+mod1+9 move container to workspace $workspace9
|
|||
|
bindsym $mod+mod1+0 move container to workspace $workspace10
|
|||
|
bindsym $mod+Control+mod1+1 move container to workspace $workspace11
|
|||
|
bindsym $mod+Control+mod1+2 move container to workspace $workspace12
|
|||
|
bindsym $mod+Control+mod1+3 move container to workspace $workspace13
|
|||
|
bindsym $mod+Control+mod1+4 move container to workspace $workspace14
|
|||
|
bindsym $mod+Control+mod1+5 move container to workspace $workspace15
|
|||
|
bindsym $mod+Control+mod1+6 move container to workspace $workspace16
|
|||
|
bindsym $mod+Control+mod1+7 move container to workspace $workspace17
|
|||
|
bindsym $mod+Control+mod1+8 move container to workspace $workspace18
|
|||
|
bindsym $mod+Control+mod1+9 move container to workspace $workspace19
|
|||
|
bindsym $mod+Control+mod1+0 move container to workspace $workspace20
|
|||
|
|
|||
|
# Resizing
|
|||
|
mode "resize" {
|
|||
|
# These bindings trigger as soon as you enter the resize mode
|
|||
|
|
|||
|
# Pressing left will shrink the window’s width.
|
|||
|
# Pressing right will grow the window’s width.
|
|||
|
# Pressing up will shrink the window’s height.
|
|||
|
# Pressing down will grow the window’s height.
|
|||
|
bindsym $down resize shrink height 10 px
|
|||
|
bindsym $up resize grow height 10 px
|
|||
|
bindsym $left resize shrink width 10 px
|
|||
|
bindsym $right resize grow width 10 px
|
|||
|
|
|||
|
# same bindings, but for the arrow keys
|
|||
|
bindsym Left resize shrink width 10 px
|
|||
|
bindsym Down resize grow height 10 px
|
|||
|
bindsym Up resize shrink height 10 px
|
|||
|
bindsym Right resize grow width 10 px
|
|||
|
|
|||
|
# Same but with small step
|
|||
|
bindsym Shift+$down resize shrink height 1 px or 1 ppt
|
|||
|
bindsym Shift+$up resize grow height 1 px or 1 ppt
|
|||
|
bindsym Shift+$left resize shrink width 1 px or 1 ppt
|
|||
|
bindsym Shift+$right resize grow width 1 px or 1 ppt
|
|||
|
|
|||
|
bindsym Shift+Left resize shrink width 1 px or 1 ppt
|
|||
|
bindsym Shift+Down resize grow height 1 px or 1 ppt
|
|||
|
bindsym Shift+Up resize shrink height 1 px or 1 ppt
|
|||
|
bindsym Shift+Right resize grow width 1 px or 1 ppt
|
|||
|
|
|||
|
|
|||
|
# back to normal: Enter or Escape
|
|||
|
bindsym Return mode "default"
|
|||
|
bindsym Escape mode "default"
|
|||
|
}
|
|||
|
|
|||
|
bindsym $mod+r mode "resize"
|
|||
|
|
|||
|
# Exiting
|
|||
|
#set $mode_system System: --L --E --S --H --R --P
|
|||
|
#mode "$mode_system" {
|
|||
|
# bindsym l exec --no-startup-id $Locker
|
|||
|
# bindsym e exec --no-startup-id i3-msg exit
|
|||
|
# bindsym s exec --no-startup-id $Locker_suspend
|
|||
|
# bindsym h exec --no-startup-id $Locker_hibernate
|
|||
|
# bindsym r exec --no-startup-id systemctl reboot
|
|||
|
# bindsym p exec --no-startup-id systemctl poweroff -i
|
|||
|
|
|||
|
# #back to normal: Enter or Escape
|
|||
|
# bindsym Return mode "default"
|
|||
|
# bindsym Escape mode "default"
|
|||
|
#}
|
|||
|
#bindsym $mod+Delete mode "$mode_system"
|
|||
|
bindsym $mod+Delete exec /bin/bash ~/.config/i3/power.sh
|
|||
|
|
|||
|
set $mode_mouse Mouse: h j k l [ y u i ]
|
|||
|
mode "$mode_mouse" {
|
|||
|
bindsym Shift+$up exec --no-startup-id xdotool mousemove_relative 0 -1
|
|||
|
bindsym Shift+$down exec --no-startup-id xdotool mousemove_relative 0 1
|
|||
|
bindsym Shift+$left exec --no-startup-id xdotool mousemove_relative -- -1 0
|
|||
|
bindsym Shift+$right exec --no-startup-id xdotool mousemove_relative 1 0
|
|||
|
bindsym Shift+Up exec --no-startup-id xdotool mousemove_relative 0 -1
|
|||
|
bindsym Shift+Down exec --no-startup-id xdotool mousemove_relative 0 1
|
|||
|
bindsym Shift+Left exec --no-startup-id xdotool mousemove_relative -- -1 0
|
|||
|
bindsym Shift+Right exec --no-startup-id xdotool mousemove_relative 1 0
|
|||
|
|
|||
|
bindsym Control+$up exec --no-startup-id xdotool mousemove_relative 0 -20
|
|||
|
bindsym Control+$down exec --no-startup-id xdotool mousemove_relative 0 20
|
|||
|
bindsym Control+$left exec --no-startup-id xdotool mousemove_relative -- -20 0
|
|||
|
bindsym Control+$right exec --no-startup-id xdotool mousemove_relative 20 0
|
|||
|
bindsym Control+Up exec --no-startup-id xdotool mousemove_relative 0 -20
|
|||
|
bindsym Control+Down exec --no-startup-id xdotool mousemove_relative 0 20
|
|||
|
bindsym Control+Left exec --no-startup-id xdotool mousemove_relative -- -20 0
|
|||
|
bindsym Control+Right exec --no-startup-id xdotool mousemove_relative 20 0
|
|||
|
|
|||
|
bindsym $up exec --no-startup-id xdotool mousemove_relative 0 -10
|
|||
|
bindsym $down exec --no-startup-id xdotool mousemove_relative 0 10
|
|||
|
bindsym $left exec --no-startup-id xdotool mousemove_relative -- -10 0
|
|||
|
bindsym $right exec --no-startup-id xdotool mousemove_relative 10 0
|
|||
|
bindsym Up exec --no-startup-id xdotool mousemove_relative 0 -10
|
|||
|
bindsym Down exec --no-startup-id xdotool mousemove_relative 0 10
|
|||
|
bindsym Left exec --no-startup-id xdotool mousemove_relative -- -10 0
|
|||
|
bindsym Right exec --no-startup-id xdotool mousemove_relative 10 0
|
|||
|
|
|||
|
bindsym y exec --no-startup-id xdotool mousedown 1; exec sleep 0.05; exec xdotool mouseup 1
|
|||
|
bindsym Shift+y exec --no-startup-id xdotool mousedown 1
|
|||
|
bindsym u exec --no-startup-id xdotool mousedown 2; exec sleep 0.05; exec xdotool mouseup 2
|
|||
|
bindsym Shift+u exec --no-startup-id xdotool mousedown 2
|
|||
|
bindsym i exec --no-startup-id xdotool mousedown 3; exec sleep 0.05; exec xdotool mouseup 3
|
|||
|
bindsym Shift+i exec --no-startup-id xdotool mousedown 3
|
|||
|
bindsym t exec --no-startup-id xdotool mousedown 4; exec sleep 0.05; exec xdotool mouseup 4
|
|||
|
bindsym g exec --no-startup-id xdotool mousedown 5; exec sleep 0.05; exec xdotool mouseup 5
|
|||
|
|
|||
|
bindsym Return mode "default"
|
|||
|
bindsym Escape mode "default"
|
|||
|
}
|
|||
|
bindsym $mod+z mode "$mode_mouse"
|
|||
|
|
|||
|
|
|||
|
set $mode_altnum Numpad: ...
|
|||
|
mode "$mode_altnum" {
|
|||
|
bindsym Escape mode default
|
|||
|
bindsym --release 3 exec xdotool type ♥
|
|||
|
}
|
|||
|
bindsym $mod+Mod1+space mode "$mode_altnum"
|
|||
|
|
|||
|
# Colors
|
|||
|
# bg-primary: #211a35 rgb( 33, 26, 53)
|
|||
|
# bg-secondary: #1b172c rgb( 27, 23, 44)
|
|||
|
# bg-dark: #171231 rgb( 23, 18, 49)
|
|||
|
# fg-active: #79b3f9 rgb(121, 179, 249)
|
|||
|
# fg-normal: #6349c2 rgb( 99, 73, 194)
|
|||
|
# Class border bckgrnd text indic-r bd_chld
|
|||
|
client.focused #211a35 #211a35 #79b3f9 #546799 #1a1a1a
|
|||
|
client.unfocused #1b172c #1b172c #6349c2 #546799 #1a1a1a
|
|||
|
client.focused_inactive #171231 #171231 #79b3f9 #1a1a1a
|
|||
|
client.urgent #bf6979 #733453 #f5f5f5 #c98f8f #bf6979
|
|||
|
client.background #211a35
|
|||
|
|
|||
|
# Gaps
|
|||
|
set $gaps_default_inner 25
|
|||
|
set $gaps_default_outer 15
|
|||
|
|
|||
|
gaps inner 0
|
|||
|
gaps outer 0
|
|||
|
|
|||
|
bindsym $mod+Shift+i gaps inner current toggle $gaps_default_inner
|
|||
|
bindsym $mod+Shift+o gaps outer current toggle $gaps_default_outer
|
|||
|
|
|||
|
default_border normal 1
|
|||
|
default_floating_border pixel 1
|
|||
|
|
|||
|
# Windows settings
|
|||
|
for_window [class="Anydesk" title="anydesk"] floating enable
|
|||
|
for_window [class="Ibus-ui-gtk3"] move scratchpad
|
|||
|
for_window [class="craftos-luajit"] floating enable
|
|||
|
for_window [instance="craftos-luajit"] floating enable
|
|||
|
for_window [class="ripdrag"] floating enable
|
|||
|
for_window [class="steam_proton" title="Windose"] floating enable
|
|||
|
for_window [class="VirtScreen"] floating enable
|
|||
|
for_window [class="com-group_finity-mascot-Main"] floating enable
|
|||
|
for_window [class="Chromium"] border none
|
|||
|
for_window [class="boorudownloader.exe"] floating enable
|
|||
|
for_window [class="fontforge"] floating enable
|
|||
|
for_window [class="flameshot"] floating enable
|
|||
|
for_window [class="Display-im6.q16"] floating enable
|
|||
|
for_window [class="Display"] floating enable
|
|||
|
for_window [class="ffplay"] floating enable
|
|||
|
for_window [class="Yad"] floating enable
|
|||
|
for_window [class="Tk"] floating enable
|
|||
|
for_window [class="mpv"] floating enable
|
|||
|
for_window [class="qpaeq"] floating enable
|
|||
|
for_window [class="Nitrogen"] floating enable
|
|||
|
for_window [class="floating"] floating enable
|
|||
|
for_window [instance="floating"] floating enable
|
|||
|
for_window [class="windose.exe"] floating enable
|
|||
|
for_window [title="TL.*Loading launcher"] floating enable
|
|||
|
for_window [title=".*Pixel Game Engine.*"] floating enable
|
|||
|
|
|||
|
for_window [window_role="PictureInPicture"] sticky enable
|
|||
|
|
|||
|
|
|||
|
assign [class="TelegramDesktop"] $workspace10
|
|||
|
|
|||
|
# Media
|
|||
|
set $mute pamixer -t
|
|||
|
set $vol_inc sh ~/.config/i3/volumectrl.sh inc
|
|||
|
set $vol_dec sh ~/.config/i3/volumectrl.sh dec
|
|||
|
set $music_player ncmpc
|
|||
|
set $music_stop ~/.local/bin/musicctl stop
|
|||
|
set $music_pause ~/.local/bin/musicctl pause
|
|||
|
set $music_next ~/.local/bin/musicctl next
|
|||
|
set $music_prev ~/.local/bin/musicctl prev
|
|||
|
set $music_fwd ~/.local/bin/musicctl seekf
|
|||
|
set $music_rev ~/.local/bin/musicctl seekb
|
|||
|
set $music_vinc mpc volume +2
|
|||
|
set $music_vdec mpc volume -2
|
|||
|
set $music_mute mpc toggleoutput 2
|
|||
|
|
|||
|
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute 0 toggle
|
|||
|
bindsym Control+XF86AudioMute exec --no-startup-id $music_mute
|
|||
|
bindsym XF86AudioMute exec --no-startup-id $mute
|
|||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id $vol_inc
|
|||
|
bindsym XF86AudioLowerVolume exec --no-startup-id $vol_dec
|
|||
|
bindsym Mod4+F9 exec --no-startup-id $vol_dec
|
|||
|
bindsym Mod4+F10 exec --no-startup-id $vol_inc
|
|||
|
bindsym Mod4+F11 exec --no-startup-id $mute
|
|||
|
|
|||
|
bindsym Control+XF86AudioRaiseVolume exec --no-startup-id $music_vinc
|
|||
|
bindsym Control+XF86AudioLowerVolume exec --no-startup-id $music_vdec
|
|||
|
bindsym XF86AudioNext exec --no-startup-id $music_next
|
|||
|
bindsym XF86AudioPrev exec --no-startup-id $music_prev
|
|||
|
bindsym Control+XF86AudioNext exec --no-startup-id $music_fwd
|
|||
|
bindsym Control+XF86AudioPrev exec --no-startup-id $music_rev
|
|||
|
bindsym XF86AudioStop exec --no-startup-id $music_stop
|
|||
|
bindsym XF86AudioPlay exec --no-startup-id $music_pause
|
|||
|
bindsym Control+XF86Search exec --no-startup-id playerctl previous
|
|||
|
bindsym Control+XF86LaunchA exec --no-startup-id playerctl play-pause
|
|||
|
bindsym Control+XF86Explorer exec --no-startup-id playerctl next
|
|||
|
|
|||
|
bindsym $mod+Shift+F5 exec --no-startup-id ~/.local/bin/musicctl prev
|
|||
|
bindsym $mod+F5 exec --no-startup-id ~/.local/bin/musicctl seekb
|
|||
|
bindsym $mod+F6 exec --no-startup-id ~/.local/bin/musicctl pause
|
|||
|
bindsym $mod+F7 exec --no-startup-id ~/.local/bin/musicctl stop
|
|||
|
bindsym $mod+Shift+F8 exec --no-startup-id ~/.local/bin/musicctl next
|
|||
|
bindsym $mod+F8 exec --no-startup-id ~/.local/bin/musicctl seekf
|
|||
|
bindsym $mod+m exec --no-startup-id $terminal -e $music_player
|
|||
|
bindsym $mod+Shift+m exec --no-startup-id $terminal -e mocp
|
|||
|
|
|||
|
# Screenshot
|
|||
|
bindsym $mod+p exec --no-startup-id ~/.local/bin/scr
|
|||
|
bindsym $mod+Print exec --no-startup-id ~/.local/bin/scr
|
|||
|
bindsym $mod+Shift+p --release exec --no-startup-id ~/.local/bin/scr -s
|
|||
|
bindsym $mod+Shift+s --release exec --no-startup-id ~/.local/bin/scr -s
|
|||
|
bindsym $mod+Mod1+p --release exec --no-startup-id ~/.local/bin/fscr
|
|||
|
bindsym $mod+Ctrl+p --release exec --no-startup-id ~/.local/bin/scr -U -s
|
|||
|
bindsym Print exec flameshot gui
|
|||
|
|
|||
|
# Autostart
|
|||
|
exec_always --no-startup-id ~/.config/i3/autostart.sh
|
|||
|
|
|||
|
# Other stuff
|
|||
|
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
|||
|
bindsym $mod+Mod1+i exec --no-startup-id ~/.local/bin/select-emoji
|
|||
|
bindsym $mod+i exec --no-startup-id ~/.local/bin/imgsearch
|
|||
|
bindsym $mod+Shift+c reload; exec --no-startup-id ~/.config/polybar/run.sh
|
|||
|
bindsym $mod+c exec --no-startup-id ~/.local/bin/ssh-menu
|
|||
|
bindsym $mod+F1 exec --no-startup-id ~/.local/bin/toggletouchpad
|
|||
|
bindsym --release $mod+F2 exec --no-startup-id transset
|
|||
|
bindsym Mod4+Ctrl+F2 exec --no-startup-id brightnessctl s 5%-
|
|||
|
bindsym Mod4+Ctrl+F3 exec --no-startup-id brightnessctl s 5%+
|
|||
|
bindsym $mod+F3 exec sh -c 'i3-msg -rt get_workspaces | jq -r .[].name | dmenu -c -p "goto:" | xargs i3-msg workspace'
|
|||
|
bindsym $mod+Mod1+F3 exec sh -c 'i3-msg -rt get_workspaces | jq -r .[].name | dmenu -c -p "move:" | xargs i3-msg move container to workspace'
|
|||
|
|
|||
|
|