Run authentik

This commit is contained in:
Ivan R. 2024-10-19 13:00:15 +05:00
parent b487698693
commit e03943b724
Signed by: lumin
GPG key ID: E0937DC7CD6D3817
6 changed files with 263 additions and 164 deletions

7
authentik.yml Normal file
View file

@ -0,0 +1,7 @@
---
- hosts: webservers
roles:
- name: authentik
postgresql_password: "{{ postgresql_users.authentik }}"
secret_key: "{{ authentik.secret_key }}"
smtp_pasword: "{{ mail_users['auth@comfycamp.space'] }}"

View file

@ -0,0 +1,57 @@
---
- name: Create authentik networks
become: true
community.docker.docker_network:
name: "{{ item }}"
loop: ["authentik", "authentik-redis"]
- name: Create authnetik docker volumes
become: true
community.docker.docker_volume:
name: "{{ item }}"
loop: ["authentik-redis", "authentik-media", "authentik-templates"]
- name: Run redis container
become: true
community.docker.docker_container:
name: authentik-redis
image: redis:7.4-bookworm
command: ["redis-server", "--save", "60", "1", "--loglevel", "warning"]
networks:
- name: authentik-redis
volumes:
- authentik-redis:/data
restart_policy: unless-stopped
- name: Create authentik config dir
become: true
ansible.builtin.file:
path: /etc/authentik
state: directory
mode: "1700"
owner: root
- name: Copy authentik config
become: true
ansible.builtin.template:
src: authentik.env.j2
dest: /etc/authentik/.env
- name: Run authentik server container
become: true
community.docker.docker_container:
name: authentik
image: "{{ image }}:{{ tag }}"
command: ["server"]
networks:
- name: authentik
- name: authentik-redis
- name: postgresql
- name: haproxy
env_file: /etc/authentik/.env
- name: Run authentik worker container
become: true
community.docker.docker_container:
name: authentik-worker
image: "{{ image }}:{{ tag }}"
command: ["worker"]
networks:
- name: authentik
- name: authentik-redis
- name: postgresql
env_file: /etc/authentik/.env

View file

@ -0,0 +1,14 @@
AUTHENTIK_REDIS__HOST=authentik-redis
AUTHENTIK_POSTGRESQL__HOST=postgresql
AUTHENTIK_POSTGRESQL__USER=authentik
AUTHENTIK_POSTGRESQL__NAME=authentik
AUTHENTIK_POSTGRESQL__PASSWORD={{ postgresql_password }}
AUTHENTIK_SECRET_KEY={{ secret_key }}
AUTHENTIK_EMAIL__HOST=comfycamp.space
AUTHENTIK_EMAIL__PORT=587
AUTHENTIK_EMAIL__USERNAME=auth@comfycamp.space
AUTHENTIK_EMAIL__PASSWORD={{ smtp_password }}
AUTHENTIK_EMAIL__USE_TLS=true
AUTHENTIK_EMAIL__USE_SSL=false
AUTHENTIK_EMAIL__FROM=auth@comfycamp.space

View file

@ -0,0 +1,6 @@
image: ghcr.io/goauthentik/server
tag: 2024.8.3
postgresql_password:
secret_key:
smtp_password:

View file

@ -53,6 +53,9 @@ frontend www
acl host_peertube hdr(host) -i v.comfycamp.space acl host_peertube hdr(host) -i v.comfycamp.space
use_backend peertube if host_peertube use_backend peertube if host_peertube
acl host_authentik hdr(host) -i auth.comfycamp.space
use_backend authentik if host_authentik
acl host_comfycamp hdr(host) -i comfycamp.space acl host_comfycamp hdr(host) -i comfycamp.space
use_backend comfycamp if host_comfycamp use_backend comfycamp if host_comfycamp
@ -127,3 +130,8 @@ backend peertube
mode http mode http
option forwardfor option forwardfor
server s1 peertube:9000 server s1 peertube:9000
backend authentik
mode http
option forwardfor
server s1 authentik:9000

View file

@ -1,165 +1,172 @@
$ANSIBLE_VAULT;1.1;AES256 $ANSIBLE_VAULT;1.1;AES256
64303163646665613436653936333936333930323961663039363765386536396433613963663364 62303238323030396332633131343161616138373937646534376462633863353632343063303063
6333336135623536303462333733353339646530633763310a303933303933653233393065666336 3665323164346365336532646364636363353636356535630a616137356630386337373564333537
30376533343264646362646139356430633063633231316433653463393866623965643336353932 65373834653363373432303535333563636535656431316132326632356136633931386332323363
3739666463323464350a613837663136333932306231636535356537643634336466613764336633 6433613965383565370a316661343864623731346135656563643266663131623632363536623866
61303065333430643461386434333663663832666130656632303361306662336562316265656332 66323361343136343566346532376132326438653133303337383332303533666637663632333633
32353738313761373034623766396235306434653133323664363665333232633238333765343039 66643439343231633635336164613637353461636430386461306665636434383837336433316135
32373135343065363563366138376265386562333361393738663261633534396531313432363837 32623634343264333339613537363739613932386564306430373162646535663665316566396663
38623935663937353739383533353432363031313236643830356232383931376363633864363930 65306365653537306164663631306433363038653566313462656434656537323133613464653662
39313939366435643836363636383039353561626335386266353239376264616462646264383334 66313535646436643763616534623761393634376465613332326533343532326466616437323338
66393762373564336534353963366234336263383532343038323032653234633636663632383061 65653166346563613637343134386331323038346136373764636135343162666530373831666530
35333335633466653231343737653333393539346664613561396161363061666231346134663763 33666633363464653139663636343662306432376538316162643663626430396435363464626138
66373465616164643135343334373465313465363565303165633635323035373165336435383531 34623863663737366131666632313136353635653431613738313032376631373064353966346134
33626431353430393930303339613035663836323735313733663338663734343966643636353932 32613633373762323232646437326663306265333333616238643039613131633066336439376330
64663964366433393232353031353635333263613738363536383534363637626639383035313231 62393062653830316436346563656265653465386266323131623039323633393534306232613337
63306234313735636163306638656535653234396463303865653663306362366636653536663065 37316336383639313939636264633363666265393438353439396530323239663734336330343031
38616535383331366565316163643237653166643539393931396363363836613766646161353431 30633537323937383533313562316233336532373932336163656263636239653066663765373539
31663630373236376537333766346263646231363330653762383533303834336436626165333361 64663166396430336533316330313733343838653739306334333132653731626236333437376136
35626562663666393462346265666164343064343731623238383534636562363732373866326138 36363430343362656632616139663164356434633534366663373438323931363532646636663933
64373439643236323265386533333331663936646463373131643737666531336165366366656163 39333166653334336437613139363535356261373936636433356366653663356631306138346336
31383231376130636231353062613132356638393163356533306236393461643161343136353734 65643236353064306364643639363134656635303162313235653730396166323763306238353836
35616163303433663036393534616234373038653235663836343731373661656366386239306534 34653439623937616431626465623139636364333062393636376132333661353330363465626137
63353039356561636535653335363965623165393436363639313238626335373461303164306262 35373836333134356336643233303563366437326562386265336564643761656465333934356335
37306365623033663865363332613030313837396434363963306231616231663032633834343532 61316539333931396233643466396138653164636335326563383866616366373161623061663834
38626435396231636433626533633662633035626562313762333131656439616138366161373265 31383436636262383663333639313634633239363466326135373437633761363830656161303232
65313532343065333662373665653638646334383666646539613830376664306263633930636463 37376634633361303235643330333939326439376564376630616232336636623564316161396530
39353135366434653535393961656466626234616465653336663130373930303134333134393339 64626331613562386338366663363961366439633634653665646131306330333137626330333166
64653162343063363530323038666361376439626437313431323938643161643763663232666230 35626461306463386332656639663938323166643866383534316333313332323032646665306237
66363662323931363762326539623566306234366238396261393166643335346436653065396138 65626431653366353533393835303230306430363366636161303735343262383865633164343030
32353435346665393966623862366237333435636461343765323436393961313634666432373436 65356336633335373063303337323538313533626531396532323161363161666438623835303361
35643735653531666664303833643531353838613430363239396337396235643134356535396466 34626132643465346530653263306565343166373666313862623931366339373961373836636661
61356663383165396463393663373463343466363934653836343330376536333261356138636535 65653861396466316466323764383539643662376236316636323736313866363132363263646463
64336331396234313937666235316133336462633936303235396234383638656466346135353634 34623064326130313464666562643838646233383836366238653137326634643761363766356533
61333464393364366666316134653066373231343133616435663239323561363237336634356532 39626637343331323634333038626238303162666436303462316232623266643639626634356131
39663839333561633131316238653035343363646236343137353965383637623261323338666632 63323136333763393739386236663761383836653631373264393965343662666363356231313933
30323431333038303635613965316162333332626661623231396634626665316335653265336130 33323864626330656535303335396533623031353536336537653230373134316139353064353631
37623235343165373939643731376333306237343034313335323235623436396233636331383037 61646530636139323065383238666661333763356438316335666364306562393039363233383464
64376261313530326163396261336539333833633138623331316637343637653262313833643266 65343939306630376361666232356634323837656133656334386636663436313137623561386538
65353530373832366430333631386166336432666236333363373133326237383238373065373239 63303237643937376631383532393761383265353935613063393763313934613430393135386331
32656637323865303539366463386435366239633664656637316562643334613139393131643838 64323866356261663137376466386537343965323264343633623730646237663464633963366132
31656662643263363665613664636663396534353966313536366361363936346536616365623639 38336639643939393434383033396363303063363632343131373330306461346361636162343139
63636635346134383032376139313131643535646264666435663931653866363235656438613933 61626164636564613564636637373638313664653038333664346131313539303634326233333264
32313764363332633038363166633731633130656664656135353666333266336639346565396366 37303933343030636230616332643962653061623161636530626261376234653730396432616432
34313631313832323733336438643433393934313335383266613033663136333363613362646535 65643631353831643936353136333462643039303432613735393236363765393265346233666231
62316630393438626431623939343463326333373333363337396235343031316461333335393962 36653433393761393333336631376139393939386639306337376562303231626239313031326330
37646633373830383566623539333962303961306263623361653738383533306262366135323962 33613262616461383631326135343166353563373439336232613339343331306662663736333433
66313761356463636435363466343966326634373364646432306330343161336463393733623164 37306132633466356531623561313030346566383064356236636538353732323436396361643439
65373236633237303037633839363662366138306163343666373938653138653431613166653366 34393162636263363338333165363735396535613465303531393466316438623665626265396534
63356664363866643731333333326537326566303864363533393239396165383938306432303865 62393633393239386665313162626637386162316463343235346331643166383966633634316332
66383662363936323462656330396631333531646139343938376331613630373235336465353065 36643065656638383961323062343665616333386365393936633864353138646630343966366533
65343832343135393033366133643438653762343736393037643531613430623737313438356535 33356438643063316431663962626431343635653065636664336238643030356464343839666330
36303838616635343833643165346464613564313131643863643835343230323136383732343665 36343130626365346465323234383538656564616531363763636132636236363166363432326234
36643966383331633739393364653936613138386331623161306564333138303266636166643030 62643161316334393961653335623733303163663730646331326464333265353364363331396634
32353634316333316661656231323231383430326134623866313639663763333665396166376365 31326239366130343238613332313266623933373965326432386538653138306263653333373433
35383336613830383963633264333633356663633265663962363334333636626438653962386363 37303962646263643833636233626634336234386136356266386237376337646435656262323032
65663036376439663337316266343664643430373466626332626263353533653330303135646130 62366661363537313433633965363363616330663030303036666561316239306131323838386337
36613333373865353038386238393036623866396132666265336465393463653737386138623166 38313734396562373836623435326463613838396439376633363362663034353738626466396133
38303261393739373931343432363033306436386531313166376630366163376665343265653735 34323037336263623138363738313932666435646335353834373532323631343363396338623366
64643132393962646332316330336434383532653435393064343038663036373932643839663535 66326166336561396531306534366463633464663135346236663431356533363030396262383463
61363735633432626535616237633261373663663365326461656131346239316463306466636665 31396463656564313635616662626636633566313761633536373935326230363434623837666562
34316330613866626138343436366530616564663737303632343738626135616533393139663335 61393232636362383232633831373934343032663433363834383339336139396264343935353139
30663362313130346438356533373834666331303762653732626465643436346336306635323230 36653537393264303063356165356532646432636562303761646236323965353033383535323137
64336664343333396636363935393536613861666366656632373336373332313861656665353362 32643664613131383239613331323635633363333439633565663731633464373965653134306536
66616134663565626338353836356432646234306531386138633833366630313834333265666538 32643737343631396136653763373733633331353362653239346537663435623566316136633466
38306338663765346561366539666537626332666666623964643831363034643864356635396366 38393164346562353462353635306137633164366339306235396462633537316537663937356338
39666639393735366464333361643966313962316638313235306563366562323066346634343235 63636664376162303931353462303432353633383765623638636131316630303131316161346166
62626361613533343639343764663836376439343633356266626464636539643431386265623634 38393834613539316364666466646564653632326462626132643735366565643436663063373764
36383735636434316138323161373533363630356433653230646565333036633966326235636561 32366237303562336435333561313332313739646564376233336366626437326262653962626533
64356563313263343766386638613530376562653233343432643238323838336234636533373534 64393733346437303534613037663233373230643336373962633463613930653763633732333833
66376537623139613265396663643366386134646339656465663439636331303633396639313139 64323438323165643464343536396233623562303461636561666663623635316363643161613164
38366263353732323835613964623538626162383838326635366263653032393366663738376165 66313865333736636230333136393638666231386164356132313932393338396564336338353763
36353366643731656364333739663765363362383133333532316164353837616263666338343665 32323936323362326664613164366635323033313862386663353465643363613964613832336134
39313034643236653230643430633065653132383130373437643733653164353864663937353765 65636336393839343364393130356164663730363932646638363564353139303834303630623534
32623962313237383233613331623261396466353038313365383465646463313138313735626661 35366665303730613033393833623163626635666362353635356535396161313333633063343232
30323461326263353532393066636231623631333537653561306434653061303536386533303431 33363861303530366136656230613063306563326631663665303261396335373430633162363666
34373761666562396332623763626634643563306363623362393031383363383237353032653038 63353636303331313235306636333431366536353135343336386537653436346536326135376336
36313338366332303962333434616163363230343039353036393263653439336664356364303761 66323230393863323833343832366461653038313766393161316632393065636465643835333535
36663638303938653236323739326636303466376438623437303334353666646461666536363338 37303764363031626263376566386633356335626539353863313861336130376138303164653839
36373831663732616634363738386532653931626239663838323534383961333262326462313930 36356333306635343535333437646562316262383531626339623534653733303466653435653332
66356637633338613932626463613762343634633934373136346461666533643334306237626236 63393664306266333465613032303230373562633839623832633539326337313662356337316464
36643735646465623464303262643065313162343065386634353064386135366233666563363963 33363437306630393666376532653261333434666163393139623963353661316264646536613938
31376136633938316361346332376632313132373235656365643664306361653937653033613164 39396466373562643865343236323964656163326433393136636565623132316466303335336563
39363765386335633561643632663339396565633936663266333764633861373865646431323338 34656266366335316131613965636139666363656239636336306137633535386239663639613235
31666236393961366138613238613537656135323965353033333337343836663036613338613862 33623835343835663262656639613136303732333631343165393763643739313739396364323337
39613537353833306233326664336232373763346566313134643464376564633766366130633139 61643138626133363831363165313234313231396265326335643564343237306239333663376565
31373232646565363636636137336464326431316134366330326432396637383230343865306239 32353834373735616232343662623232376433623833356232323239636631623864336435316264
35343766316338363166663731643166383766346239313736666237623635613761643664343733 33663363623035383865643666396130383861386137303738623935376163316438356162306135
62366137316539383239666535626431326261303565663061663666633838303139623832333632 62653763613536623337373236636564643762613362303466343139353764396431393430363832
65346235653236623131373463626132316535383330343135323563373633316432353339363931 39323330353862303063356331646536383533306330343062653939336364643039626331666666
32353166366530306133356362663661316565396236303639306432636464623237383664326631 36653130366137383533313665383065626236383363393164646339356330653032633265373761
30656466643435623431363835353038636134653531303734366562633536626633366164363666 62613766303166656362376231383561626565623430356665396234643934363565303638326433
64396335353462353831323332636633363263643032623364613633323130636232396337333032 62643433333037643034386461343464633430386432366133623332313139373037313635633831
66386563323962313338343631666362306339356338343462393535666564326633396662643533 37653431393963306263653166663266646462633463393635303339376664323836343030353931
62623463636337306234643838303133363338313232616563353463613566383432373234343661 66663030396634336363343233396366343836633238623536653331653363306361393934376164
66313731313435373034613930386162633536373834646164323365383261643763393562396538 31306335643030373639356635626232306331353630343530626531623235323961303339373865
34643366386663346433643966306662373265313563386535333438643863623265343162373731 30356531303938323431313937353134393162333761626535356365643232383032323433633465
36383264373837646565336362306666323664663433646633336335343536666137616239643833 30343534313763353834666333313235336564646237666133373330636533323532353735363863
37343530363462386536343639373561383936363661343535396261333134333139613864313130 33373838393035396162633066376462333632636232336531633936666366373861636232373364
39336538616565386565323035616162386130383761323738666137353630356365613764626335 30333666343836333436383363356261633335613831336662326364343961333462353035303537
66383562373533653666373236343532623665656262383464613761316563303833383239393461 36323862363762303336396634363564353762646432383833343965643965366533306661376133
35653538346530656163323233646134373836373233633635343432613937376537306165613863 39363132333265306232363930326265653537373261613265386435333862386462666234316332
32313561346239373030393566666561326662663035653433366561633737363831333262356164 39393136383336626534393738326438393761633339623833336530333462363362353237323332
38336531343562336166383536336264353964656433623330343939343239626338333834626339 61623638646630646261396364633833643434633430313962326638643165373637613935383865
65636331656334636533306138316363616365363564636233663638333432323333653366303765 37326535633238313234386362333937353837636563326133666163346431383736616363623539
34373637656134663464616366353266383263386136336663306565663563316566343639616263 33313939626133393464656330666166376533303064623636633163336563306437383336373030
32343230623164646237396230643630323932336566633666323533303037323135373236616166 32316633303162343737323034383264643638306264623166373139323363326130646336623434
62356138653364316165373735613135626135383739626132343239646133303439373439373131 62653433626131323837613736373036303635343761663738653637373335636562616530313166
61306366353731636136333438373764383330346132356139333437653037376633393839323761 32643931343537383331363233336236373963376435643933613637626638363665623061653665
35303730336662386435373731353837306263636437393063613162383134316631343865323530 37363432343266663531323534656333376566633139666164363031643664316531663765633564
39356234633238323435303164656362333336393733626162613863303335393666656235646531 63366631636236313363386138626232383061636139653637333263353762353632633439343166
30383932633034363463633861646466316464303934653837306465346630353964663464663838 31323562623332643135363662643434653238323538383432373861663733396334633036613738
61653362636136373366393434616262373833613561663165373532663062646164666133363139 61303934386362633566613239343463643265333864373133333164373739343538383931386330
36393764653032636431356532393932613535333966346564613636386335396561623835303835 32306630393338643830633461653463613337313661613064313332343864666231353366633030
33383965636132653332353665626634306335333061653631633431643263653165323565626434 38346563326564633462663036666331633038663639386162313835643431386166383466626332
66333964383464323031313538356135663931326538333930663365623132623931316231303330 32326161623535666137386537303562303634356433343465626233366639393762303562303163
39306537343237373639626166353333646565396537616562303431363935643438373461653739 37663366343630313434623665646438393539643136306333333630623133393736353763396630
66643464386631376462613938363262363865326533663937353232303138646535346665383165 31306430373266336337633364656634356539336335663165643631383030616262646664396364
61343466653437663639306165376233323964626166653235613963306235633163393864316463 37633236313935383166346365636466373739616661306536306631333735313462366634393137
30343863623063383931323337346232653534663930646435333031656566353138346231633463 35623736646264363664306139653366353466343766653264363836643633323331633334386532
39636464323231326365643938656237363133633234326661633834333939653066633932663830 35313166396163663532313032323366336238636262396361613130306239616432333338636430
35386263663063393464626438343332333933366432336232646564643862343966313831356633 33376438323863343031373633336234643839393235386330363939303038376639616330303931
30386262383837343765616338303665653865623939393832316338616132666232373339633264 65383339353837353531366563306337653233386162363137643965316330333566653861376132
62356235656565313438373565623736613365323730636563323261316434363638643639643833 63353236396438323839386331393731306237383532666133616132353430363836376631653335
36616434363835363836333764623966653838666439323161353232383334663931346136633265 32353262623439636466373038663564313234366163646365333836336336343238353239393433
31653834353261373431656666643336316161626135656664303731343337373562303237326530 34303062326461376430313761386236326631383339313332653430656133396230623838383963
65396665633664663434353366336466333938303937333165303130386133373332343339343336 64666261656365626537623436616662376464376161363733376461303039363135323835396165
64656537633861663532393138636664356639623531306538316233326636666563623634306630 62333538643630353739623233346530626338643931656566326137643533303266656462626462
38666163623464306532396333646330346533656266663862386264356339306235333265626462 61663963303236353562396532303734633863643030613830613666623438373764363937636566
63643162626263333864333761666566633335386263383034363235633434373538653938323136 65323137353965316233643038626632396432653431326533643961303834653231376362343438
66303638303535336365663832303937343231303636373533666533643331303065633864383533 62633232353962333533663366623335656134373364343365393161313263616336333330333538
36663638323961653537363039656431343939336131653664326231313035373864643637633931 36653230336236366139356233663434396335626565336566313436666539376433353562353438
38326438316335383238363163306436336338383937343438633365616432343035326538316665 64346464336430616338326530616365373364643733323238303339343633663936636566363339
33373365343561646662646162636539373061326461386566376633353061343033326561633664 37303635643662643333313030643735613635386537636331313637303439396665386463643537
65636262343566303836396436333737633937363661323766633837363936346561393735633236 32643163356139313465326666313364633366313862323338383737393566626637303965636466
36393633336262633561303066646235313563653163623462383565333637373830383538343033 33656631613832343235383334373635303131643666313565316330366132396333326535663232
64613063313565386362336664636631326336393666393631393661623762383733663835616432 32323462353362303166356535323137323034373832613839306164336634376661656662616436
37313661386130343232363063663135323263393264333033646161356236373433333733396439 39616264376339376566343332303965386534656463343831356166643931616662363437653639
63333136626264313634643238623562393463623163366339343234626333343839636438663730 63363833356534363637333130633166343764663065633763326465333336316331386436653735
37366633336263396461643136653762616262343532383562636263336662326563326230373633 39613366666439336664363161313163646362373762643366386334666565653163613861306433
35626164636631353035663339316631333332323233643361643531303834303939656632386164 37336263386439343237373035623364313533636534656234623836326336306138363666343434
61303235353766666138646434396134663662666564366235313139623231303630363236656162 35616362303438383639393139386362396233393765303966653266646431633564656331353336
36373338386231356564356537383437386266666431316365303937646130346332613036656138 63343864326465643134323963336132363034643538653732653736313761306663383832343564
62353166613333396230663434663938633130303165356137623430653039396265363162383931 66333334386432373936366530363331316633313936633766376561333635623433356234323530
39376435633737386463303966393331346538656535376266656462323061643263383765373930 62336330343665373836653137306436646236646237373331333737373433663566643964613231
34336363396236613630333130653336643538653465356564666131343164353862363637323938 31373637386462333038386362303964656638363365616335643032653861376366333533613366
61363561353734633636646334303034633031653938663866333535316236666231393265363934 39633765663433323933376164626533396663653037653364396665636166326237343235643962
61363664623834393230343563626531393866363537396430333734326534616335376565666237 39393536323432633962383162396533616433663336353536376339393563333933613836366663
39613836323862616533386364666563363431363861656466636636623464656365363530656135 37366533376462346139626665323366363331396632323933363566613862383437396461316664
66376463326132323637333138643163663635383161383362353565373335313935383836643834 33623930323331366530323263326535396230306332313638356235623934643634376666633761
62653732626637643934343935663738653231326138313137323034316130363137666532313765 64343930326238623730613331356663346338323162623331313361393066396662663034643634
32326662393161383062343762643235363836306434313735396663306266393463333134383564 64313936306438313362623937393365386533363435306263313965346338326564656432323233
38643334346631383430613830363164353339626363646633316564663562393164633031653538 35343131373263353364313238663033333433636462326266323230383964616539373132303434
38643637623037363164613635366161646164646561393235366265343539303562376166393939 30393565333462393834656634346233343461323261306232326531633133623531313964663063
30616533643730333062666432343235623437313037383463653165653733633362346131313263 66656465646131343835383832363836373961346162386162616161333939343763333234656161
32396163313630313338623239393565313264643230383463313535623664633563356335653231 65353663303161663735613432663734326634633463636638633830316238636263333735633963
31646636313363663731373439613637663165336264666131343937313438346632386265663732 36343861306366373663336635366139303333643835376139623666623062396462613835313138
63336166656333373263383735326665653964643835623830363761343864393838326133623234 37653964626434656235373936613234313561636361636531376364393331346432336439343137
64383866626634393239313438636631343262333534333138643934346235386334303432383962 63353139613065303266633336313535376630653066653361336362346335363362333336383864
34653039396638326164363264366139313865633034373433393561346363373332393634353766 64323836326231313862306630633832346234656436653135343166323038323738333964346135
64303665393338646537386434303961643063363235356533643436646637386138326238656564 38653263623563313164336665613965376539343166363263636233653331653638363932303532
39393334343165333738363137383933333263616636626538336566623831306333633133616139 34343165353937663539666333653331636233623565373662376362393337653130373735326132
65643062643861343533316332666662393232636338323734633435323539353237656130616362 34386134656165343836393630626235376537616137666439333634656638623331333432633436
33383437373265353465323439343437623062336236653364396437303366396635653036356561 35613937613637313534356237386336366538653162613733626666366530646238363330656566
34333662616538643832623633653963353335326562613931353532636238626538353034383961 39303035316338333531313631653836353831353831373766666564316138323536313138343765
38356164663161386433 32373538663432363231333833663633326239313337643831623937393661313431326539666461
66333238663834376331666631316163343833383834363366613938343837653136643935306335
62636361376632326164643061636631323364393731383833613661336335373763383161333535
62343861333634663930626635343562313762633036376132323933353232633564323038373565
66633735643933393965393030333939653338306637646532303538373534363961343761643866
39336566383238336563646636313339313237326637306134303636616130633238353665643166
61666637396562333134386462623134333463303661303637393537666330646630346531313938
623563313335646235323464363837633438